; LLVM IR from aws/s2n-tls :: tests/unit (s2n_cert_authorities_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_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_result = type { i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_stuffer_reservation = type { ptr, i32, i8 }
%struct.s2n_test_io_pair = type { i32, i32 }
%struct.anon = type { ptr, i8, [1000 x i8] }
%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_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_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }

@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 [84 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [146 x i8], align 1
@s2n_unsupported_extension = external constant i8, align 1
@s2n_cert_authorities_extension = external constant %struct.s2n_extension_type, align 8
@.str.11 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [51 x i8], align 1
@__const.main.ca_data = external hidden unnamed_addr constant [17 x i8], align 16
@.str.29 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [75 x i8], align 1
@__const.main.test_cases = external hidden unnamed_addr constant <{ { ptr, i8, <{ [32 x i8], [968 x i8] }> }, { ptr, i8, <{ [107 x i8], [893 x i8] }> }, { ptr, i8, <{ [192 x i8], [808 x i8] }> }, { ptr, i8, <{ [94 x i8], [906 x i8] }> } }>, align 16
@.str.77 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.86 = 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 ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca i8, align 1
  %12 = alloca i32, align 4
  %13 = alloca i8, align 1
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca %struct.s2n_result, align 4
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca %struct.s2n_result, align 4
  %38 = alloca ptr, align 8
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca %struct.s2n_result, align 4
  %43 = alloca ptr, align 8
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca %struct.s2n_result, align 4
  %51 = alloca [17 x i8], align 16
  %52 = alloca ptr, align 8
  %53 = alloca i32, align 4
  %54 = alloca i64, align 8
  %55 = alloca i32, align 4
  %56 = alloca ptr, align 8
  %57 = alloca i32, align 4
  %58 = alloca %struct.s2n_stuffer, align 8
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i16, align 2
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca ptr, align 8
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca %struct.s2n_result, align 4
  %69 = alloca %struct.s2n_result, align 4
  %70 = alloca ptr, align 8
  %71 = alloca i32, align 4
  %72 = alloca ptr, align 8
  %73 = alloca i32, align 4
  %74 = alloca %struct.s2n_stuffer, align 8
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca %struct.s2n_result, align 4
  %81 = alloca %struct.s2n_result, align 4
  %82 = alloca ptr, align 8
  %83 = alloca ptr, align 8
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca %struct.s2n_result, align 4
  %91 = alloca %struct.s2n_result, align 4
  %92 = alloca ptr, align 8
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %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 ptr, align 8
  %102 = alloca ptr, align 8
  %103 = alloca i32, align 4
  %104 = alloca ptr, align 8
  %105 = alloca i64, align 8
  %106 = alloca i32, align 4
  %107 = alloca %struct.s2n_stuffer_reservation, align 8
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca ptr, align 8
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca %struct.s2n_result, align 4
  %120 = alloca %struct.s2n_result, align 4
  %121 = alloca %struct.s2n_result, align 4
  %122 = alloca ptr, align 8
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca ptr, align 8
  %129 = alloca i32, align 4
  %130 = alloca ptr, align 8
  %131 = alloca i32, align 4
  %132 = alloca %struct.s2n_test_io_pair, align 4
  %133 = alloca i32, align 4
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca %struct.s2n_result, align 4
  %143 = alloca %struct.s2n_result, align 4
  %144 = alloca %struct.s2n_result, align 4
  %145 = alloca [4 x %struct.anon], align 16
  %146 = alloca i64, align 8
  %147 = alloca ptr, align 8
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca ptr, align 8
  %151 = alloca i32, align 4
  %152 = alloca %struct.s2n_stuffer, align 8
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca i64, align 8
  %156 = alloca i32, align 4
  %157 = alloca ptr, align 8
  %158 = alloca i32, align 4
  %159 = alloca i32, align 4
  %160 = alloca %struct.s2n_result, align 4
  %161 = alloca %struct.s2n_result, align 4
  %162 = alloca i32, align 4
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca %struct.s2n_result, 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 %166

166:                                              ; preds = %2
  br label %167

167:                                              ; preds = %166
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %168 = load ptr, ptr @stdout, align 8, !tbaa !9
  %169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %168, ptr noundef @.str, ptr noundef @.str.1) #10
  %170 = load ptr, ptr @stdout, align 8, !tbaa !9
  %171 = call i32 @fflush(ptr noundef %170)
  br label %172

172:                                              ; preds = %167
  %173 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %174 = icmp eq i32 %173, -1
  br i1 %174, label %175, label %226

175:                                              ; preds = %172
  br label %176

176:                                              ; preds = %175
  br label %177

177:                                              ; preds = %176
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #10
  %178 = call ptr @__errno_location() #11
  %179 = load i32, ptr %178, align 4, !tbaa !5
  store i32 %179, ptr %6, align 4, !tbaa !5
  %180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %181 = call i32 @s2n_print_stacktrace(ptr noundef %180)
  %182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %183 = trunc i8 %182 to i1
  br i1 %183, label %184, label %206

184:                                              ; preds = %177
  %185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %186 = call i32 @fileno(ptr noundef %185) #10
  %187 = call i32 @isatty(i32 noundef %186) #10
  %188 = icmp ne i32 %187, 0
  br i1 %188, label %189, label %206

189:                                              ; preds = %184
  %190 = load i32, ptr %6, align 4, !tbaa !5
  %191 = call ptr @__errno_location() #11
  store i32 %190, ptr %191, align 4, !tbaa !5
  %192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %193 = load i32, ptr @test_count, align 4, !tbaa !5
  %194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %195 = load i32, ptr %194, align 4, !tbaa !5
  %196 = call ptr @s2n_strerror(i32 noundef %195, ptr noundef @.str.4)
  %197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %198 = load i32, ptr %197, align 4, !tbaa !5
  %199 = call ptr @s2n_strerror_debug(i32 noundef %198, ptr noundef @.str.4)
  %200 = call ptr @__errno_location() #11
  %201 = load i32, ptr %200, align 4, !tbaa !5
  %202 = call ptr @strerror(i32 noundef %201) #10
  %203 = call ptr @__errno_location() #11
  %204 = load i32, ptr %203, align 4, !tbaa !5
  %205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %192, ptr noundef @.str.2, i32 noundef %193, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 29, ptr noundef %196, ptr noundef %199, ptr noundef %202, i32 noundef %204) #10
  br label %223

206:                                              ; preds = %184, %177
  %207 = load i32, ptr %6, align 4, !tbaa !5
  %208 = call ptr @__errno_location() #11
  store i32 %207, ptr %208, align 4, !tbaa !5
  %209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %210 = load i32, ptr @test_count, align 4, !tbaa !5
  %211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %212 = load i32, ptr %211, align 4, !tbaa !5
  %213 = call ptr @s2n_strerror(i32 noundef %212, ptr noundef @.str.4)
  %214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %215 = load i32, ptr %214, align 4, !tbaa !5
  %216 = call ptr @s2n_strerror_debug(i32 noundef %215, ptr noundef @.str.4)
  %217 = call ptr @__errno_location() #11
  %218 = load i32, ptr %217, align 4, !tbaa !5
  %219 = call ptr @strerror(i32 noundef %218) #10
  %220 = call ptr @__errno_location() #11
  %221 = load i32, ptr %220, align 4, !tbaa !5
  %222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %209, ptr noundef @.str.5, i32 noundef %210, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 29, ptr noundef %213, ptr noundef %216, ptr noundef %219, i32 noundef %221) #10
  br label %223

223:                                              ; preds = %206, %189
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #10
  br label %224

224:                                              ; preds = %223
  call void @exit(i32 noundef 1) #12
  unreachable

225:                                              ; No predecessors!
  br label %226

226:                                              ; preds = %225, %172
  br label %227

227:                                              ; preds = %226
  br label %228

228:                                              ; preds = %227
  %229 = load i32, ptr @test_count, align 4, !tbaa !5
  %230 = add nsw i32 %229, 1
  store i32 %230, ptr @test_count, align 4, !tbaa !5
  %231 = call i32 @s2n_enable_atexit()
  %232 = icmp eq i32 %231, -1
  br i1 %232, label %233, label %284

233:                                              ; preds = %228
  br label %234

234:                                              ; preds = %233
  br label %235

235:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #10
  %236 = call ptr @__errno_location() #11
  %237 = load i32, ptr %236, align 4, !tbaa !5
  store i32 %237, ptr %7, align 4, !tbaa !5
  %238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %239 = call i32 @s2n_print_stacktrace(ptr noundef %238)
  %240 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %241 = trunc i8 %240 to i1
  br i1 %241, label %242, label %264

242:                                              ; preds = %235
  %243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %244 = call i32 @fileno(ptr noundef %243) #10
  %245 = call i32 @isatty(i32 noundef %244) #10
  %246 = icmp ne i32 %245, 0
  br i1 %246, label %247, label %264

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

264:                                              ; preds = %242, %235
  %265 = load i32, ptr %7, align 4, !tbaa !5
  %266 = call ptr @__errno_location() #11
  store i32 %265, ptr %266, align 4, !tbaa !5
  %267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %268 = load i32, ptr @test_count, align 4, !tbaa !5
  %269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %270 = load i32, ptr %269, align 4, !tbaa !5
  %271 = call ptr @s2n_strerror(i32 noundef %270, ptr noundef @.str.4)
  %272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %273 = load i32, ptr %272, align 4, !tbaa !5
  %274 = call ptr @s2n_strerror_debug(i32 noundef %273, ptr noundef @.str.4)
  %275 = call ptr @__errno_location() #11
  %276 = load i32, ptr %275, align 4, !tbaa !5
  %277 = call ptr @strerror(i32 noundef %276) #10
  %278 = call ptr @__errno_location() #11
  %279 = load i32, ptr %278, align 4, !tbaa !5
  %280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %267, ptr noundef @.str.5, i32 noundef %268, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 29, ptr noundef %271, ptr noundef %274, ptr noundef %277, i32 noundef %279) #10
  br label %281

281:                                              ; preds = %264, %247
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #10
  br label %282

282:                                              ; preds = %281
  call void @exit(i32 noundef 1) #12
  unreachable

283:                                              ; No predecessors!
  br label %284

284:                                              ; preds = %283, %228
  br label %285

285:                                              ; preds = %284
  br label %286

286:                                              ; preds = %285
  br label %287

287:                                              ; preds = %286
  %288 = call i32 @s2n_init()
  %289 = icmp eq i32 %288, -1
  br i1 %289, label %290, label %341

290:                                              ; preds = %287
  br label %291

291:                                              ; preds = %290
  br label %292

292:                                              ; preds = %291
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #10
  %293 = call ptr @__errno_location() #11
  %294 = load i32, ptr %293, align 4, !tbaa !5
  store i32 %294, ptr %8, align 4, !tbaa !5
  %295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %296 = call i32 @s2n_print_stacktrace(ptr noundef %295)
  %297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %298 = trunc i8 %297 to i1
  br i1 %298, label %299, label %321

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

304:                                              ; preds = %299
  %305 = load i32, ptr %8, align 4, !tbaa !5
  %306 = call ptr @__errno_location() #11
  store i32 %305, ptr %306, align 4, !tbaa !5
  %307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %308 = load i32, ptr @test_count, align 4, !tbaa !5
  %309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %310 = load i32, ptr %309, align 4, !tbaa !5
  %311 = call ptr @s2n_strerror(i32 noundef %310, ptr noundef @.str.4)
  %312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %313 = load i32, ptr %312, align 4, !tbaa !5
  %314 = call ptr @s2n_strerror_debug(i32 noundef %313, ptr noundef @.str.4)
  %315 = call ptr @__errno_location() #11
  %316 = load i32, ptr %315, align 4, !tbaa !5
  %317 = call ptr @strerror(i32 noundef %316) #10
  %318 = call ptr @__errno_location() #11
  %319 = load i32, ptr %318, align 4, !tbaa !5
  %320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %307, ptr noundef @.str.2, i32 noundef %308, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 29, ptr noundef %311, ptr noundef %314, ptr noundef %317, i32 noundef %319) #10
  br label %338

321:                                              ; preds = %299, %292
  %322 = load i32, ptr %8, align 4, !tbaa !5
  %323 = call ptr @__errno_location() #11
  store i32 %322, ptr %323, align 4, !tbaa !5
  %324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %325 = load i32, ptr @test_count, align 4, !tbaa !5
  %326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %327 = load i32, ptr %326, align 4, !tbaa !5
  %328 = call ptr @s2n_strerror(i32 noundef %327, ptr noundef @.str.4)
  %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_debug(i32 noundef %330, ptr noundef @.str.4)
  %332 = call ptr @__errno_location() #11
  %333 = load i32, ptr %332, align 4, !tbaa !5
  %334 = call ptr @strerror(i32 noundef %333) #10
  %335 = call ptr @__errno_location() #11
  %336 = load i32, ptr %335, align 4, !tbaa !5
  %337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %324, ptr noundef @.str.5, i32 noundef %325, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 29, ptr noundef %328, ptr noundef %331, ptr noundef %334, i32 noundef %336) #10
  br label %338

338:                                              ; preds = %321, %304
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #10
  br label %339

339:                                              ; preds = %338
  call void @exit(i32 noundef 1) #12
  unreachable

340:                                              ; No predecessors!
  br label %341

341:                                              ; preds = %340, %287
  br label %342

342:                                              ; preds = %341
  br label %343

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

344:                                              ; preds = %343
  %345 = load i32, ptr @test_count, align 4, !tbaa !5
  %346 = add nsw i32 %345, 1
  store i32 %346, ptr @test_count, align 4, !tbaa !5
  %347 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %9, ptr noundef @.str.8, ptr noundef @.str.9)
  %348 = icmp eq i32 %347, -1
  br i1 %348, label %349, label %402

349:                                              ; preds = %344
  br label %350

350:                                              ; preds = %349
  br label %351

351:                                              ; preds = %350
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #10
  %352 = call ptr @__errno_location() #11
  %353 = load i32, ptr %352, align 4, !tbaa !5
  store i32 %353, ptr %10, align 4, !tbaa !5
  %354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %355 = call i32 @s2n_print_stacktrace(ptr noundef %354)
  %356 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %357 = trunc i8 %356 to i1
  br i1 %357, label %358, label %380

358:                                              ; preds = %351
  %359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %360 = call i32 @fileno(ptr noundef %359) #10
  %361 = call i32 @isatty(i32 noundef %360) #10
  %362 = icmp ne i32 %361, 0
  br i1 %362, label %363, label %380

363:                                              ; preds = %358
  %364 = load i32, ptr %10, align 4, !tbaa !5
  %365 = call ptr @__errno_location() #11
  store i32 %364, ptr %365, align 4, !tbaa !5
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = load i32, ptr @test_count, align 4, !tbaa !5
  %368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %369 = load i32, ptr %368, align 4, !tbaa !5
  %370 = call ptr @s2n_strerror(i32 noundef %369, ptr noundef @.str.4)
  %371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %372 = load i32, ptr %371, align 4, !tbaa !5
  %373 = call ptr @s2n_strerror_debug(i32 noundef %372, ptr noundef @.str.4)
  %374 = call ptr @__errno_location() #11
  %375 = load i32, ptr %374, align 4, !tbaa !5
  %376 = call ptr @strerror(i32 noundef %375) #10
  %377 = call ptr @__errno_location() #11
  %378 = load i32, ptr %377, align 4, !tbaa !5
  %379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %366, ptr noundef @.str.2, i32 noundef %367, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 34, ptr noundef %370, ptr noundef %373, ptr noundef %376, i32 noundef %378) #10
  br label %397

380:                                              ; preds = %358, %351
  %381 = load i32, ptr %10, align 4, !tbaa !5
  %382 = call ptr @__errno_location() #11
  store i32 %381, ptr %382, align 4, !tbaa !5
  %383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %384 = load i32, ptr @test_count, align 4, !tbaa !5
  %385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %386 = load i32, ptr %385, align 4, !tbaa !5
  %387 = call ptr @s2n_strerror(i32 noundef %386, ptr noundef @.str.4)
  %388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %389 = load i32, ptr %388, align 4, !tbaa !5
  %390 = call ptr @s2n_strerror_debug(i32 noundef %389, ptr noundef @.str.4)
  %391 = call ptr @__errno_location() #11
  %392 = load i32, ptr %391, align 4, !tbaa !5
  %393 = call ptr @strerror(i32 noundef %392) #10
  %394 = call ptr @__errno_location() #11
  %395 = load i32, ptr %394, align 4, !tbaa !5
  %396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %383, ptr noundef @.str.5, i32 noundef %384, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 34, ptr noundef %387, ptr noundef %390, ptr noundef %393, i32 noundef %395) #10
  br label %397

397:                                              ; preds = %380, %363
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #10
  br label %398

398:                                              ; preds = %397
  br label %399

399:                                              ; preds = %398
  call void @exit(i32 noundef 1) #12
  unreachable

400:                                              ; No predecessors!
  br label %401

401:                                              ; preds = %400
  br label %402

402:                                              ; preds = %401, %344
  br label %403

403:                                              ; preds = %402
  br label %404

404:                                              ; preds = %403
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #10
  %405 = load i8, ptr @s2n_unsupported_extension, align 1, !tbaa !15
  store i8 %405, ptr %11, align 1, !tbaa !15
  br label %406

406:                                              ; preds = %404
  %407 = load i32, ptr @test_count, align 4, !tbaa !5
  %408 = add nsw i32 %407, 1
  store i32 %408, ptr @test_count, align 4, !tbaa !5
  %409 = load i16, ptr @s2n_cert_authorities_extension, align 8, !tbaa !16
  %410 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %409, ptr noundef %11)
  %411 = icmp eq i32 %410, -1
  br i1 %411, label %412, label %465

412:                                              ; preds = %406
  br label %413

413:                                              ; preds = %412
  br label %414

414:                                              ; preds = %413
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #10
  %415 = call ptr @__errno_location() #11
  %416 = load i32, ptr %415, align 4, !tbaa !5
  store i32 %416, ptr %12, align 4, !tbaa !5
  %417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %418 = call i32 @s2n_print_stacktrace(ptr noundef %417)
  %419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %420 = trunc i8 %419 to i1
  br i1 %420, label %421, label %443

421:                                              ; preds = %414
  %422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %423 = call i32 @fileno(ptr noundef %422) #10
  %424 = call i32 @isatty(i32 noundef %423) #10
  %425 = icmp ne i32 %424, 0
  br i1 %425, label %426, label %443

426:                                              ; preds = %421
  %427 = load i32, ptr %12, align 4, !tbaa !5
  %428 = call ptr @__errno_location() #11
  store i32 %427, ptr %428, align 4, !tbaa !5
  %429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %430 = load i32, ptr @test_count, align 4, !tbaa !5
  %431 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = call ptr @s2n_strerror(i32 noundef %432, ptr noundef @.str.4)
  %434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %435 = load i32, ptr %434, align 4, !tbaa !5
  %436 = call ptr @s2n_strerror_debug(i32 noundef %435, ptr noundef @.str.4)
  %437 = call ptr @__errno_location() #11
  %438 = load i32, ptr %437, align 4, !tbaa !5
  %439 = call ptr @strerror(i32 noundef %438) #10
  %440 = call ptr @__errno_location() #11
  %441 = load i32, ptr %440, align 4, !tbaa !5
  %442 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %429, ptr noundef @.str.2, i32 noundef %430, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 38, ptr noundef %433, ptr noundef %436, ptr noundef %439, i32 noundef %441) #10
  br label %460

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

460:                                              ; preds = %443, %426
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #10
  br label %461

461:                                              ; preds = %460
  br label %462

462:                                              ; preds = %461
  call void @exit(i32 noundef 1) #12
  unreachable

463:                                              ; No predecessors!
  br label %464

464:                                              ; preds = %463
  br label %465

465:                                              ; preds = %464, %406
  br label %466

466:                                              ; preds = %465
  br label %467

467:                                              ; preds = %466
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #10
  %468 = load i8, ptr %11, align 1, !tbaa !15
  store i8 %468, ptr %13, align 1, !tbaa !15
  %469 = call zeroext i1 @s2n_libcrypto_is_awslc()
  br i1 %469, label %470, label %531

470:                                              ; preds = %467
  br label %471

471:                                              ; preds = %470
  %472 = load i32, ptr @test_count, align 4, !tbaa !5
  %473 = add nsw i32 %472, 1
  store i32 %473, ptr @test_count, align 4, !tbaa !5
  %474 = call zeroext i1 (...) @s2n_cert_authorities_supported_from_trust_store()
  br i1 %474, label %528, label %475

475:                                              ; preds = %471
  br label %476

476:                                              ; preds = %475
  br label %477

477:                                              ; preds = %476
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #10
  %478 = call ptr @__errno_location() #11
  %479 = load i32, ptr %478, align 4, !tbaa !5
  store i32 %479, ptr %14, align 4, !tbaa !5
  %480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %481 = call i32 @s2n_print_stacktrace(ptr noundef %480)
  %482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %483 = trunc i8 %482 to i1
  br i1 %483, label %484, label %506

484:                                              ; preds = %477
  %485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %486 = call i32 @fileno(ptr noundef %485) #10
  %487 = call i32 @isatty(i32 noundef %486) #10
  %488 = icmp ne i32 %487, 0
  br i1 %488, label %489, label %506

489:                                              ; preds = %484
  %490 = load i32, ptr %14, align 4, !tbaa !5
  %491 = call ptr @__errno_location() #11
  store i32 %490, ptr %491, align 4, !tbaa !5
  %492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %493 = load i32, ptr @test_count, align 4, !tbaa !5
  %494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %495 = load i32, ptr %494, align 4, !tbaa !5
  %496 = call ptr @s2n_strerror(i32 noundef %495, ptr noundef @.str.4)
  %497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %498 = load i32, ptr %497, align 4, !tbaa !5
  %499 = call ptr @s2n_strerror_debug(i32 noundef %498, ptr noundef @.str.4)
  %500 = call ptr @__errno_location() #11
  %501 = load i32, ptr %500, align 4, !tbaa !5
  %502 = call ptr @strerror(i32 noundef %501) #10
  %503 = call ptr @__errno_location() #11
  %504 = load i32, ptr %503, align 4, !tbaa !5
  %505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %492, ptr noundef @.str.2, i32 noundef %493, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 43, ptr noundef %496, ptr noundef %499, ptr noundef %502, i32 noundef %504) #10
  br label %523

506:                                              ; preds = %484, %477
  %507 = load i32, ptr %14, align 4, !tbaa !5
  %508 = call ptr @__errno_location() #11
  store i32 %507, ptr %508, 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 @.str.4)
  %514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %515 = load i32, ptr %514, align 4, !tbaa !5
  %516 = call ptr @s2n_strerror_debug(i32 noundef %515, ptr noundef @.str.4)
  %517 = call ptr @__errno_location() #11
  %518 = load i32, ptr %517, align 4, !tbaa !5
  %519 = call ptr @strerror(i32 noundef %518) #10
  %520 = call ptr @__errno_location() #11
  %521 = load i32, ptr %520, align 4, !tbaa !5
  %522 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %509, ptr noundef @.str.5, i32 noundef %510, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 43, ptr noundef %513, ptr noundef %516, ptr noundef %519, i32 noundef %521) #10
  br label %523

523:                                              ; preds = %506, %489
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #10
  br label %524

524:                                              ; preds = %523
  br label %525

525:                                              ; preds = %524
  call void @exit(i32 noundef 1) #12
  unreachable

526:                                              ; No predecessors!
  br label %527

527:                                              ; preds = %526
  br label %528

528:                                              ; preds = %527, %471
  br label %529

529:                                              ; preds = %528
  br label %530

530:                                              ; preds = %529
  br label %531

531:                                              ; preds = %530, %467
  br label %532

532:                                              ; preds = %531
  br label %533

533:                                              ; preds = %532
  br label %534

534:                                              ; preds = %533
  %535 = load i32, ptr @test_count, align 4, !tbaa !5
  %536 = add nsw i32 %535, 1
  store i32 %536, ptr @test_count, align 4, !tbaa !5
  %537 = call i32 @s2n_config_set_cert_authorities_from_trust_store(ptr noundef null)
  %538 = icmp eq i32 %537, -1
  br i1 %538, label %592, label %539

539:                                              ; preds = %534
  br label %540

540:                                              ; preds = %539
  br label %541

541:                                              ; preds = %540
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #10
  %542 = call ptr @__errno_location() #11
  %543 = load i32, ptr %542, align 4, !tbaa !5
  store i32 %543, ptr %15, align 4, !tbaa !5
  %544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %545 = call i32 @s2n_print_stacktrace(ptr noundef %544)
  %546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %547 = trunc i8 %546 to i1
  br i1 %547, label %548, label %570

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

553:                                              ; preds = %548
  %554 = load i32, ptr %15, align 4, !tbaa !5
  %555 = call ptr @__errno_location() #11
  store i32 %554, ptr %555, align 4, !tbaa !5
  %556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %557 = load i32, ptr @test_count, align 4, !tbaa !5
  %558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = call ptr @s2n_strerror(i32 noundef %559, ptr noundef @.str.4)
  %561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %562 = load i32, ptr %561, align 4, !tbaa !5
  %563 = call ptr @s2n_strerror_debug(i32 noundef %562, ptr noundef @.str.4)
  %564 = call ptr @__errno_location() #11
  %565 = load i32, ptr %564, align 4, !tbaa !5
  %566 = call ptr @strerror(i32 noundef %565) #10
  %567 = call ptr @__errno_location() #11
  %568 = load i32, ptr %567, align 4, !tbaa !5
  %569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %556, ptr noundef @.str.2, i32 noundef %557, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 52, ptr noundef %560, ptr noundef %563, ptr noundef %566, i32 noundef %568) #10
  br label %587

570:                                              ; preds = %548, %541
  %571 = load i32, ptr %15, align 4, !tbaa !5
  %572 = call ptr @__errno_location() #11
  store i32 %571, ptr %572, align 4, !tbaa !5
  %573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %574 = load i32, ptr @test_count, align 4, !tbaa !5
  %575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %576 = load i32, ptr %575, align 4, !tbaa !5
  %577 = call ptr @s2n_strerror(i32 noundef %576, ptr noundef @.str.4)
  %578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %579 = load i32, ptr %578, align 4, !tbaa !5
  %580 = call ptr @s2n_strerror_debug(i32 noundef %579, ptr noundef @.str.4)
  %581 = call ptr @__errno_location() #11
  %582 = load i32, ptr %581, align 4, !tbaa !5
  %583 = call ptr @strerror(i32 noundef %582) #10
  %584 = call ptr @__errno_location() #11
  %585 = load i32, ptr %584, align 4, !tbaa !5
  %586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %573, ptr noundef @.str.5, i32 noundef %574, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 52, ptr noundef %577, ptr noundef %580, ptr noundef %583, i32 noundef %585) #10
  br label %587

587:                                              ; preds = %570, %553
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #10
  br label %588

588:                                              ; preds = %587
  br label %589

589:                                              ; preds = %588
  call void @exit(i32 noundef 1) #12
  unreachable

590:                                              ; No predecessors!
  br label %591

591:                                              ; preds = %590
  br label %592

592:                                              ; preds = %591, %534
  br label %593

593:                                              ; preds = %592
  br label %594

594:                                              ; preds = %593
  br label %595

595:                                              ; preds = %594
  %596 = load i32, ptr @test_count, align 4, !tbaa !5
  %597 = add nsw i32 %596, 1
  store i32 %597, ptr @test_count, align 4, !tbaa !5
  %598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %599 = load i32, ptr %598, align 4, !tbaa !5
  %600 = icmp eq i32 %599, 402653193
  br i1 %600, label %654, label %601

601:                                              ; preds = %595
  br label %602

602:                                              ; preds = %601
  br label %603

603:                                              ; preds = %602
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #10
  %604 = call ptr @__errno_location() #11
  %605 = load i32, ptr %604, align 4, !tbaa !5
  store i32 %605, ptr %16, align 4, !tbaa !5
  %606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %607 = call i32 @s2n_print_stacktrace(ptr noundef %606)
  %608 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %609 = trunc i8 %608 to i1
  br i1 %609, label %610, label %632

610:                                              ; preds = %603
  %611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %612 = call i32 @fileno(ptr noundef %611) #10
  %613 = call i32 @isatty(i32 noundef %612) #10
  %614 = icmp ne i32 %613, 0
  br i1 %614, label %615, label %632

615:                                              ; preds = %610
  %616 = load i32, ptr %16, align 4, !tbaa !5
  %617 = call ptr @__errno_location() #11
  store i32 %616, ptr %617, align 4, !tbaa !5
  %618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %619 = load i32, ptr @test_count, align 4, !tbaa !5
  %620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %621 = load i32, ptr %620, align 4, !tbaa !5
  %622 = call ptr @s2n_strerror(i32 noundef %621, ptr noundef @.str.4)
  %623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %624 = load i32, ptr %623, align 4, !tbaa !5
  %625 = call ptr @s2n_strerror_debug(i32 noundef %624, ptr noundef @.str.4)
  %626 = call ptr @__errno_location() #11
  %627 = load i32, ptr %626, align 4, !tbaa !5
  %628 = call ptr @strerror(i32 noundef %627) #10
  %629 = call ptr @__errno_location() #11
  %630 = load i32, ptr %629, align 4, !tbaa !5
  %631 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %618, ptr noundef @.str.2, i32 noundef %619, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 52, ptr noundef %622, ptr noundef %625, ptr noundef %628, i32 noundef %630) #10
  br label %649

632:                                              ; preds = %610, %603
  %633 = load i32, ptr %16, align 4, !tbaa !5
  %634 = call ptr @__errno_location() #11
  store i32 %633, ptr %634, align 4, !tbaa !5
  %635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %636 = load i32, ptr @test_count, align 4, !tbaa !5
  %637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %638 = load i32, ptr %637, align 4, !tbaa !5
  %639 = call ptr @s2n_strerror(i32 noundef %638, ptr noundef @.str.4)
  %640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %641 = load i32, ptr %640, align 4, !tbaa !5
  %642 = call ptr @s2n_strerror_debug(i32 noundef %641, ptr noundef @.str.4)
  %643 = call ptr @__errno_location() #11
  %644 = load i32, ptr %643, align 4, !tbaa !5
  %645 = call ptr @strerror(i32 noundef %644) #10
  %646 = call ptr @__errno_location() #11
  %647 = load i32, ptr %646, align 4, !tbaa !5
  %648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %635, ptr noundef @.str.5, i32 noundef %636, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 52, ptr noundef %639, ptr noundef %642, ptr noundef %645, i32 noundef %647) #10
  br label %649

649:                                              ; preds = %632, %615
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #10
  br label %650

650:                                              ; preds = %649
  br label %651

651:                                              ; preds = %650
  call void @exit(i32 noundef 1) #12
  unreachable

652:                                              ; No predecessors!
  br label %653

653:                                              ; preds = %652
  br label %654

654:                                              ; preds = %653, %595
  br label %655

655:                                              ; preds = %654
  br label %656

656:                                              ; preds = %655
  br label %657

657:                                              ; preds = %656
  %658 = load i32, ptr @test_count, align 4, !tbaa !5
  %659 = add nsw i32 %658, 1
  store i32 %659, ptr @test_count, align 4, !tbaa !5
  %660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %661 = load i32, ptr %660, align 4, !tbaa !5
  %662 = call ptr @s2n_strerror_debug(i32 noundef %661, ptr noundef @.str.4)
  %663 = icmp eq ptr %662, null
  br i1 %663, label %664, label %717

664:                                              ; preds = %657
  br label %665

665:                                              ; preds = %664
  br label %666

666:                                              ; preds = %665
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #10
  %667 = call ptr @__errno_location() #11
  %668 = load i32, ptr %667, align 4, !tbaa !5
  store i32 %668, ptr %17, align 4, !tbaa !5
  %669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %670 = call i32 @s2n_print_stacktrace(ptr noundef %669)
  %671 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %672 = trunc i8 %671 to i1
  br i1 %672, label %673, label %695

673:                                              ; preds = %666
  %674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %675 = call i32 @fileno(ptr noundef %674) #10
  %676 = call i32 @isatty(i32 noundef %675) #10
  %677 = icmp ne i32 %676, 0
  br i1 %677, label %678, label %695

678:                                              ; preds = %673
  %679 = load i32, ptr %17, align 4, !tbaa !5
  %680 = call ptr @__errno_location() #11
  store i32 %679, ptr %680, align 4, !tbaa !5
  %681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %682 = load i32, ptr @test_count, align 4, !tbaa !5
  %683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %684 = load i32, ptr %683, align 4, !tbaa !5
  %685 = call ptr @s2n_strerror(i32 noundef %684, ptr noundef @.str.4)
  %686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %687 = load i32, ptr %686, align 4, !tbaa !5
  %688 = call ptr @s2n_strerror_debug(i32 noundef %687, ptr noundef @.str.4)
  %689 = call ptr @__errno_location() #11
  %690 = load i32, ptr %689, align 4, !tbaa !5
  %691 = call ptr @strerror(i32 noundef %690) #10
  %692 = call ptr @__errno_location() #11
  %693 = load i32, ptr %692, align 4, !tbaa !5
  %694 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %681, ptr noundef @.str.2, i32 noundef %682, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 52, ptr noundef %685, ptr noundef %688, ptr noundef %691, i32 noundef %693) #10
  br label %712

695:                                              ; preds = %673, %666
  %696 = load i32, ptr %17, align 4, !tbaa !5
  %697 = call ptr @__errno_location() #11
  store i32 %696, ptr %697, align 4, !tbaa !5
  %698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %699 = load i32, ptr @test_count, align 4, !tbaa !5
  %700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %701 = load i32, ptr %700, align 4, !tbaa !5
  %702 = call ptr @s2n_strerror(i32 noundef %701, ptr noundef @.str.4)
  %703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %704 = load i32, ptr %703, align 4, !tbaa !5
  %705 = call ptr @s2n_strerror_debug(i32 noundef %704, ptr noundef @.str.4)
  %706 = call ptr @__errno_location() #11
  %707 = load i32, ptr %706, align 4, !tbaa !5
  %708 = call ptr @strerror(i32 noundef %707) #10
  %709 = call ptr @__errno_location() #11
  %710 = load i32, ptr %709, align 4, !tbaa !5
  %711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %698, ptr noundef @.str.5, i32 noundef %699, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 52, ptr noundef %702, ptr noundef %705, ptr noundef %708, i32 noundef %710) #10
  br label %712

712:                                              ; preds = %695, %678
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #10
  br label %713

713:                                              ; preds = %712
  br label %714

714:                                              ; preds = %713
  call void @exit(i32 noundef 1) #12
  unreachable

715:                                              ; No predecessors!
  br label %716

716:                                              ; preds = %715
  br label %717

717:                                              ; preds = %716, %657
  br label %718

718:                                              ; preds = %717
  br label %719

719:                                              ; preds = %718
  br label %720

720:                                              ; preds = %719
  br label %721

721:                                              ; preds = %720
  br label %722

722:                                              ; preds = %721
  %723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %723, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %724 = call ptr @__errno_location() #11
  store i32 0, ptr %724, align 4, !tbaa !5
  br label %725

725:                                              ; preds = %722
  br label %726

726:                                              ; preds = %725
  br label %727

727:                                              ; preds = %726
  br label %728

728:                                              ; preds = %727
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #10
  %729 = call ptr @s2n_config_new_minimal()
  store ptr %729, ptr %18, align 8, !tbaa !9
  br label %730

730:                                              ; preds = %728
  %731 = load i32, ptr @test_count, align 4, !tbaa !5
  %732 = add nsw i32 %731, 1
  store i32 %732, ptr @test_count, align 4, !tbaa !5
  %733 = load ptr, ptr %18, align 8, !tbaa !9
  %734 = icmp eq ptr %733, null
  br i1 %734, label %735, label %788

735:                                              ; preds = %730
  br label %736

736:                                              ; preds = %735
  br label %737

737:                                              ; preds = %736
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  %738 = call ptr @__errno_location() #11
  %739 = load i32, ptr %738, align 4, !tbaa !5
  store i32 %739, ptr %19, align 4, !tbaa !5
  %740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %741 = call i32 @s2n_print_stacktrace(ptr noundef %740)
  %742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %743 = trunc i8 %742 to i1
  br i1 %743, label %744, label %766

744:                                              ; preds = %737
  %745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %746 = call i32 @fileno(ptr noundef %745) #10
  %747 = call i32 @isatty(i32 noundef %746) #10
  %748 = icmp ne i32 %747, 0
  br i1 %748, label %749, label %766

749:                                              ; preds = %744
  %750 = load i32, ptr %19, align 4, !tbaa !5
  %751 = call ptr @__errno_location() #11
  store i32 %750, ptr %751, align 4, !tbaa !5
  %752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %753 = load i32, ptr @test_count, align 4, !tbaa !5
  %754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %755 = load i32, ptr %754, align 4, !tbaa !5
  %756 = call ptr @s2n_strerror(i32 noundef %755, ptr noundef @.str.4)
  %757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %758 = load i32, ptr %757, align 4, !tbaa !5
  %759 = call ptr @s2n_strerror_debug(i32 noundef %758, ptr noundef @.str.4)
  %760 = call ptr @__errno_location() #11
  %761 = load i32, ptr %760, align 4, !tbaa !5
  %762 = call ptr @strerror(i32 noundef %761) #10
  %763 = call ptr @__errno_location() #11
  %764 = load i32, ptr %763, align 4, !tbaa !5
  %765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %752, ptr noundef @.str.2, i32 noundef %753, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 59, ptr noundef %756, ptr noundef %759, ptr noundef %762, i32 noundef %764) #10
  br label %783

766:                                              ; preds = %744, %737
  %767 = load i32, ptr %19, align 4, !tbaa !5
  %768 = call ptr @__errno_location() #11
  store i32 %767, ptr %768, align 4, !tbaa !5
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = load i32, ptr @test_count, align 4, !tbaa !5
  %771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %772 = load i32, ptr %771, align 4, !tbaa !5
  %773 = call ptr @s2n_strerror(i32 noundef %772, ptr noundef @.str.4)
  %774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %775 = load i32, ptr %774, align 4, !tbaa !5
  %776 = call ptr @s2n_strerror_debug(i32 noundef %775, ptr noundef @.str.4)
  %777 = call ptr @__errno_location() #11
  %778 = load i32, ptr %777, align 4, !tbaa !5
  %779 = call ptr @strerror(i32 noundef %778) #10
  %780 = call ptr @__errno_location() #11
  %781 = load i32, ptr %780, align 4, !tbaa !5
  %782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %769, ptr noundef @.str.5, i32 noundef %770, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 59, ptr noundef %773, ptr noundef %776, ptr noundef %779, i32 noundef %781) #10
  br label %783

783:                                              ; preds = %766, %749
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  br label %784

784:                                              ; preds = %783
  br label %785

785:                                              ; preds = %784
  call void @exit(i32 noundef 1) #12
  unreachable

786:                                              ; No predecessors!
  br label %787

787:                                              ; preds = %786
  br label %788

788:                                              ; preds = %787, %730
  br label %789

789:                                              ; preds = %788
  br label %790

790:                                              ; preds = %789
  br label %791

791:                                              ; preds = %790
  %792 = load i32, ptr @test_count, align 4, !tbaa !5
  %793 = add nsw i32 %792, 1
  store i32 %793, ptr @test_count, align 4, !tbaa !5
  %794 = load ptr, ptr %18, align 8, !tbaa !9
  %795 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %794, ptr noundef @.str.17, ptr noundef null)
  %796 = icmp eq i32 %795, -1
  br i1 %796, label %797, label %850

797:                                              ; preds = %791
  br label %798

798:                                              ; preds = %797
  br label %799

799:                                              ; preds = %798
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  %800 = call ptr @__errno_location() #11
  %801 = load i32, ptr %800, align 4, !tbaa !5
  store i32 %801, ptr %20, align 4, !tbaa !5
  %802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %803 = call i32 @s2n_print_stacktrace(ptr noundef %802)
  %804 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %805 = trunc i8 %804 to i1
  br i1 %805, label %806, label %828

806:                                              ; preds = %799
  %807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %808 = call i32 @fileno(ptr noundef %807) #10
  %809 = call i32 @isatty(i32 noundef %808) #10
  %810 = icmp ne i32 %809, 0
  br i1 %810, label %811, label %828

811:                                              ; preds = %806
  %812 = load i32, ptr %20, align 4, !tbaa !5
  %813 = call ptr @__errno_location() #11
  store i32 %812, ptr %813, align 4, !tbaa !5
  %814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %815 = load i32, ptr @test_count, align 4, !tbaa !5
  %816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %817 = load i32, ptr %816, align 4, !tbaa !5
  %818 = call ptr @s2n_strerror(i32 noundef %817, ptr noundef @.str.4)
  %819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %820 = load i32, ptr %819, align 4, !tbaa !5
  %821 = call ptr @s2n_strerror_debug(i32 noundef %820, ptr noundef @.str.4)
  %822 = call ptr @__errno_location() #11
  %823 = load i32, ptr %822, align 4, !tbaa !5
  %824 = call ptr @strerror(i32 noundef %823) #10
  %825 = call ptr @__errno_location() #11
  %826 = load i32, ptr %825, align 4, !tbaa !5
  %827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %814, ptr noundef @.str.2, i32 noundef %815, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 61, ptr noundef %818, ptr noundef %821, ptr noundef %824, i32 noundef %826) #10
  br label %845

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

845:                                              ; preds = %828, %811
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %846

846:                                              ; preds = %845
  br label %847

847:                                              ; preds = %846
  call void @exit(i32 noundef 1) #12
  unreachable

848:                                              ; No predecessors!
  br label %849

849:                                              ; preds = %848
  br label %850

850:                                              ; preds = %849, %791
  br label %851

851:                                              ; preds = %850
  br label %852

852:                                              ; preds = %851
  %853 = call zeroext i1 (...) @s2n_cert_authorities_supported_from_trust_store()
  br i1 %853, label %854, label %981

854:                                              ; preds = %852
  br label %855

855:                                              ; preds = %854
  %856 = load i32, ptr @test_count, align 4, !tbaa !5
  %857 = add nsw i32 %856, 1
  store i32 %857, ptr @test_count, align 4, !tbaa !5
  %858 = load ptr, ptr %18, align 8, !tbaa !9
  %859 = call i32 @s2n_config_set_cert_authorities_from_trust_store(ptr noundef %858)
  %860 = icmp eq i32 %859, -1
  br i1 %860, label %861, label %914

861:                                              ; preds = %855
  br label %862

862:                                              ; preds = %861
  br label %863

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

870:                                              ; preds = %863
  %871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %872 = call i32 @fileno(ptr noundef %871) #10
  %873 = call i32 @isatty(i32 noundef %872) #10
  %874 = icmp ne i32 %873, 0
  br i1 %874, label %875, label %892

875:                                              ; preds = %870
  %876 = load i32, ptr %21, align 4, !tbaa !5
  %877 = call ptr @__errno_location() #11
  store i32 %876, ptr %877, align 4, !tbaa !5
  %878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %879 = load i32, ptr @test_count, align 4, !tbaa !5
  %880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %881 = load i32, ptr %880, align 4, !tbaa !5
  %882 = call ptr @s2n_strerror(i32 noundef %881, ptr noundef @.str.4)
  %883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %884 = load i32, ptr %883, align 4, !tbaa !5
  %885 = call ptr @s2n_strerror_debug(i32 noundef %884, ptr noundef @.str.4)
  %886 = call ptr @__errno_location() #11
  %887 = load i32, ptr %886, align 4, !tbaa !5
  %888 = call ptr @strerror(i32 noundef %887) #10
  %889 = call ptr @__errno_location() #11
  %890 = load i32, ptr %889, align 4, !tbaa !5
  %891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %878, ptr noundef @.str.2, i32 noundef %879, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 64, ptr noundef %882, ptr noundef %885, ptr noundef %888, i32 noundef %890) #10
  br label %909

892:                                              ; preds = %870, %863
  %893 = load i32, ptr %21, align 4, !tbaa !5
  %894 = call ptr @__errno_location() #11
  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() #11
  %904 = load i32, ptr %903, align 4, !tbaa !5
  %905 = call ptr @strerror(i32 noundef %904) #10
  %906 = call ptr @__errno_location() #11
  %907 = load i32, ptr %906, align 4, !tbaa !5
  %908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %895, ptr noundef @.str.5, i32 noundef %896, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 64, ptr noundef %899, ptr noundef %902, ptr noundef %905, i32 noundef %907) #10
  br label %909

909:                                              ; preds = %892, %875
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  br label %910

910:                                              ; preds = %909
  br label %911

911:                                              ; preds = %910
  call void @exit(i32 noundef 1) #12
  unreachable

912:                                              ; No predecessors!
  br label %913

913:                                              ; preds = %912
  br label %914

914:                                              ; preds = %913, %855
  br label %915

915:                                              ; preds = %914
  br label %916

916:                                              ; preds = %915
  br label %917

917:                                              ; preds = %916
  %918 = load i32, ptr @test_count, align 4, !tbaa !5
  %919 = add nsw i32 %918, 1
  store i32 %919, ptr @test_count, align 4, !tbaa !5
  %920 = load ptr, ptr %18, align 8, !tbaa !9
  %921 = getelementptr inbounds %struct.s2n_config, ptr %920, i32 0, i32 56
  %922 = getelementptr inbounds %struct.s2n_blob, ptr %921, i32 0, i32 1
  %923 = load i32, ptr %922, align 8, !tbaa !19
  %924 = icmp eq i32 %923, 0
  br i1 %924, label %925, label %978

925:                                              ; preds = %917
  br label %926

926:                                              ; preds = %925
  br label %927

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

934:                                              ; preds = %927
  %935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %936 = call i32 @fileno(ptr noundef %935) #10
  %937 = call i32 @isatty(i32 noundef %936) #10
  %938 = icmp ne i32 %937, 0
  br i1 %938, label %939, label %956

939:                                              ; preds = %934
  %940 = load i32, ptr %22, align 4, !tbaa !5
  %941 = call ptr @__errno_location() #11
  store i32 %940, ptr %941, align 4, !tbaa !5
  %942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %943 = load i32, ptr @test_count, align 4, !tbaa !5
  %944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %945 = load i32, ptr %944, align 4, !tbaa !5
  %946 = call ptr @s2n_strerror(i32 noundef %945, ptr noundef @.str.4)
  %947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %948 = load i32, ptr %947, align 4, !tbaa !5
  %949 = call ptr @s2n_strerror_debug(i32 noundef %948, ptr noundef @.str.4)
  %950 = call ptr @__errno_location() #11
  %951 = load i32, ptr %950, align 4, !tbaa !5
  %952 = call ptr @strerror(i32 noundef %951) #10
  %953 = call ptr @__errno_location() #11
  %954 = load i32, ptr %953, align 4, !tbaa !5
  %955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %942, ptr noundef @.str.2, i32 noundef %943, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 65, ptr noundef %946, ptr noundef %949, ptr noundef %952, i32 noundef %954) #10
  br label %973

956:                                              ; preds = %934, %927
  %957 = load i32, ptr %22, align 4, !tbaa !5
  %958 = call ptr @__errno_location() #11
  store i32 %957, ptr %958, align 4, !tbaa !5
  %959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %960 = load i32, ptr @test_count, align 4, !tbaa !5
  %961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %962 = load i32, ptr %961, align 4, !tbaa !5
  %963 = call ptr @s2n_strerror(i32 noundef %962, ptr noundef @.str.4)
  %964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %965 = load i32, ptr %964, align 4, !tbaa !5
  %966 = call ptr @s2n_strerror_debug(i32 noundef %965, ptr noundef @.str.4)
  %967 = call ptr @__errno_location() #11
  %968 = load i32, ptr %967, align 4, !tbaa !5
  %969 = call ptr @strerror(i32 noundef %968) #10
  %970 = call ptr @__errno_location() #11
  %971 = load i32, ptr %970, align 4, !tbaa !5
  %972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %959, ptr noundef @.str.5, i32 noundef %960, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 65, ptr noundef %963, ptr noundef %966, ptr noundef %969, i32 noundef %971) #10
  br label %973

973:                                              ; preds = %956, %939
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  br label %974

974:                                              ; preds = %973
  br label %975

975:                                              ; preds = %974
  call void @exit(i32 noundef 1) #12
  unreachable

976:                                              ; No predecessors!
  br label %977

977:                                              ; preds = %976
  br label %978

978:                                              ; preds = %977, %917
  br label %979

979:                                              ; preds = %978
  br label %980

980:                                              ; preds = %979
  br label %1244

981:                                              ; preds = %852
  br label %982

982:                                              ; preds = %981
  br label %983

983:                                              ; preds = %982
  br label %984

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

990:                                              ; preds = %984
  br label %991

991:                                              ; preds = %990
  br label %992

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

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

1004:                                             ; preds = %999
  %1005 = load i32, ptr %23, align 4, !tbaa !5
  %1006 = call ptr @__errno_location() #11
  store i32 %1005, ptr %1006, align 4, !tbaa !5
  %1007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1008 = load i32, ptr @test_count, align 4, !tbaa !5
  %1009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  %1011 = call ptr @s2n_strerror(i32 noundef %1010, ptr noundef @.str.4)
  %1012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = call ptr @s2n_strerror_debug(i32 noundef %1013, ptr noundef @.str.4)
  %1015 = call ptr @__errno_location() #11
  %1016 = load i32, ptr %1015, align 4, !tbaa !5
  %1017 = call ptr @strerror(i32 noundef %1016) #10
  %1018 = call ptr @__errno_location() #11
  %1019 = load i32, ptr %1018, align 4, !tbaa !5
  %1020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1007, ptr noundef @.str.2, i32 noundef %1008, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1011, ptr noundef %1014, ptr noundef %1017, i32 noundef %1019) #10
  br label %1038

1021:                                             ; preds = %999, %992
  %1022 = load i32, ptr %23, align 4, !tbaa !5
  %1023 = call ptr @__errno_location() #11
  store i32 %1022, ptr %1023, align 4, !tbaa !5
  %1024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1025 = load i32, ptr @test_count, align 4, !tbaa !5
  %1026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1027 = load i32, ptr %1026, align 4, !tbaa !5
  %1028 = call ptr @s2n_strerror(i32 noundef %1027, ptr noundef @.str.4)
  %1029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1030 = load i32, ptr %1029, align 4, !tbaa !5
  %1031 = call ptr @s2n_strerror_debug(i32 noundef %1030, ptr noundef @.str.4)
  %1032 = call ptr @__errno_location() #11
  %1033 = load i32, ptr %1032, align 4, !tbaa !5
  %1034 = call ptr @strerror(i32 noundef %1033) #10
  %1035 = call ptr @__errno_location() #11
  %1036 = load i32, ptr %1035, align 4, !tbaa !5
  %1037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1024, ptr noundef @.str.5, i32 noundef %1025, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1028, ptr noundef %1031, ptr noundef %1034, i32 noundef %1036) #10
  br label %1038

1038:                                             ; preds = %1021, %1004
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #10
  br label %1039

1039:                                             ; preds = %1038
  br label %1040

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

1041:                                             ; No predecessors!
  br label %1042

1042:                                             ; preds = %1041
  br label %1043

1043:                                             ; preds = %1042, %984
  br label %1044

1044:                                             ; preds = %1043
  br label %1045

1045:                                             ; preds = %1044
  br label %1046

1046:                                             ; preds = %1045
  %1047 = load i32, ptr @test_count, align 4, !tbaa !5
  %1048 = add nsw i32 %1047, 1
  store i32 %1048, ptr @test_count, align 4, !tbaa !5
  %1049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1050 = load i32, ptr %1049, align 4, !tbaa !5
  %1051 = icmp eq i32 %1050, 469762136
  br i1 %1051, label %1105, label %1052

1052:                                             ; preds = %1046
  br label %1053

1053:                                             ; preds = %1052
  br label %1054

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

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

1066:                                             ; preds = %1061
  %1067 = load i32, ptr %24, align 4, !tbaa !5
  %1068 = call ptr @__errno_location() #11
  store i32 %1067, ptr %1068, align 4, !tbaa !5
  %1069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1070 = load i32, ptr @test_count, align 4, !tbaa !5
  %1071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  %1073 = call ptr @s2n_strerror(i32 noundef %1072, ptr noundef @.str.4)
  %1074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1075 = load i32, ptr %1074, align 4, !tbaa !5
  %1076 = call ptr @s2n_strerror_debug(i32 noundef %1075, ptr noundef @.str.4)
  %1077 = call ptr @__errno_location() #11
  %1078 = load i32, ptr %1077, align 4, !tbaa !5
  %1079 = call ptr @strerror(i32 noundef %1078) #10
  %1080 = call ptr @__errno_location() #11
  %1081 = load i32, ptr %1080, align 4, !tbaa !5
  %1082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1069, ptr noundef @.str.2, i32 noundef %1070, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1073, ptr noundef %1076, ptr noundef %1079, i32 noundef %1081) #10
  br label %1100

1083:                                             ; preds = %1061, %1054
  %1084 = load i32, ptr %24, align 4, !tbaa !5
  %1085 = call ptr @__errno_location() #11
  store i32 %1084, ptr %1085, align 4, !tbaa !5
  %1086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1087 = load i32, ptr @test_count, align 4, !tbaa !5
  %1088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1089 = load i32, ptr %1088, align 4, !tbaa !5
  %1090 = call ptr @s2n_strerror(i32 noundef %1089, ptr noundef @.str.4)
  %1091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1092 = load i32, ptr %1091, align 4, !tbaa !5
  %1093 = call ptr @s2n_strerror_debug(i32 noundef %1092, ptr noundef @.str.4)
  %1094 = call ptr @__errno_location() #11
  %1095 = load i32, ptr %1094, align 4, !tbaa !5
  %1096 = call ptr @strerror(i32 noundef %1095) #10
  %1097 = call ptr @__errno_location() #11
  %1098 = load i32, ptr %1097, align 4, !tbaa !5
  %1099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1086, ptr noundef @.str.5, i32 noundef %1087, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1090, ptr noundef %1093, ptr noundef %1096, i32 noundef %1098) #10
  br label %1100

1100:                                             ; preds = %1083, %1066
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  br label %1101

1101:                                             ; preds = %1100
  br label %1102

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

1103:                                             ; No predecessors!
  br label %1104

1104:                                             ; preds = %1103
  br label %1105

1105:                                             ; preds = %1104, %1046
  br label %1106

1106:                                             ; preds = %1105
  br label %1107

1107:                                             ; preds = %1106
  br label %1108

1108:                                             ; preds = %1107
  %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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1112 = load i32, ptr %1111, align 4, !tbaa !5
  %1113 = call ptr @s2n_strerror_debug(i32 noundef %1112, ptr noundef @.str.4)
  %1114 = icmp eq ptr %1113, null
  br i1 %1114, label %1115, label %1168

1115:                                             ; preds = %1108
  br label %1116

1116:                                             ; preds = %1115
  br label %1117

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

1124:                                             ; preds = %1117
  %1125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1126 = call i32 @fileno(ptr noundef %1125) #10
  %1127 = call i32 @isatty(i32 noundef %1126) #10
  %1128 = icmp ne i32 %1127, 0
  br i1 %1128, label %1129, label %1146

1129:                                             ; preds = %1124
  %1130 = load i32, ptr %25, align 4, !tbaa !5
  %1131 = call ptr @__errno_location() #11
  store i32 %1130, ptr %1131, align 4, !tbaa !5
  %1132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1133 = load i32, ptr @test_count, align 4, !tbaa !5
  %1134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1135 = load i32, ptr %1134, align 4, !tbaa !5
  %1136 = call ptr @s2n_strerror(i32 noundef %1135, ptr noundef @.str.4)
  %1137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1138 = load i32, ptr %1137, align 4, !tbaa !5
  %1139 = call ptr @s2n_strerror_debug(i32 noundef %1138, ptr noundef @.str.4)
  %1140 = call ptr @__errno_location() #11
  %1141 = load i32, ptr %1140, align 4, !tbaa !5
  %1142 = call ptr @strerror(i32 noundef %1141) #10
  %1143 = call ptr @__errno_location() #11
  %1144 = load i32, ptr %1143, align 4, !tbaa !5
  %1145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1132, ptr noundef @.str.2, i32 noundef %1133, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1136, ptr noundef %1139, ptr noundef %1142, i32 noundef %1144) #10
  br label %1163

1146:                                             ; preds = %1124, %1117
  %1147 = load i32, ptr %25, align 4, !tbaa !5
  %1148 = call ptr @__errno_location() #11
  store i32 %1147, ptr %1148, align 4, !tbaa !5
  %1149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1150 = load i32, ptr @test_count, align 4, !tbaa !5
  %1151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1152 = load i32, ptr %1151, align 4, !tbaa !5
  %1153 = call ptr @s2n_strerror(i32 noundef %1152, ptr noundef @.str.4)
  %1154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1155 = load i32, ptr %1154, align 4, !tbaa !5
  %1156 = call ptr @s2n_strerror_debug(i32 noundef %1155, ptr noundef @.str.4)
  %1157 = call ptr @__errno_location() #11
  %1158 = load i32, ptr %1157, align 4, !tbaa !5
  %1159 = call ptr @strerror(i32 noundef %1158) #10
  %1160 = call ptr @__errno_location() #11
  %1161 = load i32, ptr %1160, align 4, !tbaa !5
  %1162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1149, ptr noundef @.str.5, i32 noundef %1150, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1153, ptr noundef %1156, ptr noundef %1159, i32 noundef %1161) #10
  br label %1163

1163:                                             ; preds = %1146, %1129
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  br label %1164

1164:                                             ; preds = %1163
  br label %1165

1165:                                             ; preds = %1164
  call void @exit(i32 noundef 1) #12
  unreachable

1166:                                             ; No predecessors!
  br label %1167

1167:                                             ; preds = %1166
  br label %1168

1168:                                             ; preds = %1167, %1108
  br label %1169

1169:                                             ; preds = %1168
  br label %1170

1170:                                             ; preds = %1169
  br label %1171

1171:                                             ; preds = %1170
  br label %1172

1172:                                             ; preds = %1171
  br label %1173

1173:                                             ; preds = %1172
  %1174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1174, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1175 = call ptr @__errno_location() #11
  store i32 0, ptr %1175, align 4, !tbaa !5
  br label %1176

1176:                                             ; preds = %1173
  br label %1177

1177:                                             ; preds = %1176
  br label %1178

1178:                                             ; preds = %1177
  br label %1179

1179:                                             ; preds = %1178
  br label %1180

1180:                                             ; preds = %1179
  %1181 = load i32, ptr @test_count, align 4, !tbaa !5
  %1182 = add nsw i32 %1181, 1
  store i32 %1182, ptr @test_count, align 4, !tbaa !5
  %1183 = load ptr, ptr %18, align 8, !tbaa !9
  %1184 = getelementptr inbounds %struct.s2n_config, ptr %1183, i32 0, i32 56
  %1185 = getelementptr inbounds %struct.s2n_blob, ptr %1184, i32 0, i32 1
  %1186 = load i32, ptr %1185, align 8, !tbaa !19
  %1187 = icmp eq i32 %1186, 0
  br i1 %1187, label %1241, label %1188

1188:                                             ; preds = %1180
  br label %1189

1189:                                             ; preds = %1188
  br label %1190

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

1197:                                             ; preds = %1190
  %1198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1199 = call i32 @fileno(ptr noundef %1198) #10
  %1200 = call i32 @isatty(i32 noundef %1199) #10
  %1201 = icmp ne i32 %1200, 0
  br i1 %1201, label %1202, label %1219

1202:                                             ; preds = %1197
  %1203 = load i32, ptr %26, align 4, !tbaa !5
  %1204 = call ptr @__errno_location() #11
  store i32 %1203, ptr %1204, align 4, !tbaa !5
  %1205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1206 = load i32, ptr @test_count, align 4, !tbaa !5
  %1207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1208 = load i32, ptr %1207, align 4, !tbaa !5
  %1209 = call ptr @s2n_strerror(i32 noundef %1208, ptr noundef @.str.4)
  %1210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1211 = load i32, ptr %1210, align 4, !tbaa !5
  %1212 = call ptr @s2n_strerror_debug(i32 noundef %1211, ptr noundef @.str.4)
  %1213 = call ptr @__errno_location() #11
  %1214 = load i32, ptr %1213, align 4, !tbaa !5
  %1215 = call ptr @strerror(i32 noundef %1214) #10
  %1216 = call ptr @__errno_location() #11
  %1217 = load i32, ptr %1216, align 4, !tbaa !5
  %1218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1205, ptr noundef @.str.2, i32 noundef %1206, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1209, ptr noundef %1212, ptr noundef %1215, i32 noundef %1217) #10
  br label %1236

1219:                                             ; preds = %1197, %1190
  %1220 = load i32, ptr %26, align 4, !tbaa !5
  %1221 = call ptr @__errno_location() #11
  store i32 %1220, ptr %1221, align 4, !tbaa !5
  %1222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1223 = load i32, ptr @test_count, align 4, !tbaa !5
  %1224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1225 = load i32, ptr %1224, align 4, !tbaa !5
  %1226 = call ptr @s2n_strerror(i32 noundef %1225, ptr noundef @.str.4)
  %1227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1228 = load i32, ptr %1227, align 4, !tbaa !5
  %1229 = call ptr @s2n_strerror_debug(i32 noundef %1228, ptr noundef @.str.4)
  %1230 = call ptr @__errno_location() #11
  %1231 = load i32, ptr %1230, align 4, !tbaa !5
  %1232 = call ptr @strerror(i32 noundef %1231) #10
  %1233 = call ptr @__errno_location() #11
  %1234 = load i32, ptr %1233, align 4, !tbaa !5
  %1235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1222, ptr noundef @.str.5, i32 noundef %1223, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1226, ptr noundef %1229, ptr noundef %1232, i32 noundef %1234) #10
  br label %1236

1236:                                             ; preds = %1219, %1202
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  br label %1237

1237:                                             ; preds = %1236
  br label %1238

1238:                                             ; preds = %1237
  call void @exit(i32 noundef 1) #12
  unreachable

1239:                                             ; No predecessors!
  br label %1240

1240:                                             ; preds = %1239
  br label %1241

1241:                                             ; preds = %1240, %1180
  br label %1242

1242:                                             ; preds = %1241
  br label %1243

1243:                                             ; preds = %1242
  br label %1244

1244:                                             ; preds = %1243, %980
  %1245 = call i32 @s2n_config_ptr_free(ptr noundef %18)
  %1246 = getelementptr inbounds %struct.s2n_result, ptr %27, i32 0, i32 0
  store i32 %1245, ptr %1246, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #10
  %1247 = call ptr @s2n_config_new()
  store ptr %1247, ptr %28, align 8, !tbaa !9
  br label %1248

1248:                                             ; preds = %1244
  %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 = load ptr, ptr %28, align 8, !tbaa !9
  %1252 = icmp eq ptr %1251, null
  br i1 %1252, label %1253, label %1306

1253:                                             ; preds = %1248
  br label %1254

1254:                                             ; preds = %1253
  br label %1255

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

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

1267:                                             ; preds = %1262
  %1268 = load i32, ptr %29, align 4, !tbaa !5
  %1269 = call ptr @__errno_location() #11
  store i32 %1268, ptr %1269, align 4, !tbaa !5
  %1270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1271 = load i32, ptr @test_count, align 4, !tbaa !5
  %1272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1273 = load i32, ptr %1272, align 4, !tbaa !5
  %1274 = call ptr @s2n_strerror(i32 noundef %1273, ptr noundef @.str.4)
  %1275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = call ptr @s2n_strerror_debug(i32 noundef %1276, ptr noundef @.str.4)
  %1278 = call ptr @__errno_location() #11
  %1279 = load i32, ptr %1278, align 4, !tbaa !5
  %1280 = call ptr @strerror(i32 noundef %1279) #10
  %1281 = call ptr @__errno_location() #11
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  %1283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1270, ptr noundef @.str.2, i32 noundef %1271, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 78, ptr noundef %1274, ptr noundef %1277, ptr noundef %1280, i32 noundef %1282) #10
  br label %1301

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

1301:                                             ; preds = %1284, %1267
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #10
  br label %1302

1302:                                             ; preds = %1301
  br label %1303

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

1304:                                             ; No predecessors!
  br label %1305

1305:                                             ; preds = %1304
  br label %1306

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

1307:                                             ; preds = %1306
  br label %1308

1308:                                             ; preds = %1307
  br label %1309

1309:                                             ; preds = %1308
  br label %1310

1310:                                             ; preds = %1309
  br label %1311

1311:                                             ; preds = %1310
  %1312 = load i32, ptr @test_count, align 4, !tbaa !5
  %1313 = add nsw i32 %1312, 1
  store i32 %1313, ptr @test_count, align 4, !tbaa !5
  %1314 = load ptr, ptr %28, align 8, !tbaa !9
  %1315 = call i32 @s2n_config_set_cert_authorities_from_trust_store(ptr noundef %1314)
  %1316 = icmp eq i32 %1315, -1
  br i1 %1316, label %1370, label %1317

1317:                                             ; preds = %1311
  br label %1318

1318:                                             ; preds = %1317
  br label %1319

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

1326:                                             ; preds = %1319
  %1327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1328 = call i32 @fileno(ptr noundef %1327) #10
  %1329 = call i32 @isatty(i32 noundef %1328) #10
  %1330 = icmp ne i32 %1329, 0
  br i1 %1330, label %1331, label %1348

1331:                                             ; preds = %1326
  %1332 = load i32, ptr %30, align 4, !tbaa !5
  %1333 = call ptr @__errno_location() #11
  store i32 %1332, ptr %1333, align 4, !tbaa !5
  %1334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1335 = load i32, ptr @test_count, align 4, !tbaa !5
  %1336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1337 = load i32, ptr %1336, align 4, !tbaa !5
  %1338 = call ptr @s2n_strerror(i32 noundef %1337, ptr noundef @.str.4)
  %1339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1340 = load i32, ptr %1339, align 4, !tbaa !5
  %1341 = call ptr @s2n_strerror_debug(i32 noundef %1340, ptr noundef @.str.4)
  %1342 = call ptr @__errno_location() #11
  %1343 = load i32, ptr %1342, align 4, !tbaa !5
  %1344 = call ptr @strerror(i32 noundef %1343) #10
  %1345 = call ptr @__errno_location() #11
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  %1347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1334, ptr noundef @.str.2, i32 noundef %1335, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1338, ptr noundef %1341, ptr noundef %1344, i32 noundef %1346) #10
  br label %1365

1348:                                             ; preds = %1326, %1319
  %1349 = load i32, ptr %30, align 4, !tbaa !5
  %1350 = call ptr @__errno_location() #11
  store i32 %1349, ptr %1350, align 4, !tbaa !5
  %1351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1352 = load i32, ptr @test_count, align 4, !tbaa !5
  %1353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1354 = load i32, ptr %1353, align 4, !tbaa !5
  %1355 = call ptr @s2n_strerror(i32 noundef %1354, ptr noundef @.str.4)
  %1356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1357 = load i32, ptr %1356, align 4, !tbaa !5
  %1358 = call ptr @s2n_strerror_debug(i32 noundef %1357, ptr noundef @.str.4)
  %1359 = call ptr @__errno_location() #11
  %1360 = load i32, ptr %1359, align 4, !tbaa !5
  %1361 = call ptr @strerror(i32 noundef %1360) #10
  %1362 = call ptr @__errno_location() #11
  %1363 = load i32, ptr %1362, align 4, !tbaa !5
  %1364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1351, ptr noundef @.str.5, i32 noundef %1352, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1355, ptr noundef %1358, ptr noundef %1361, i32 noundef %1363) #10
  br label %1365

1365:                                             ; preds = %1348, %1331
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  br label %1366

1366:                                             ; preds = %1365
  br label %1367

1367:                                             ; preds = %1366
  call void @exit(i32 noundef 1) #12
  unreachable

1368:                                             ; No predecessors!
  br label %1369

1369:                                             ; preds = %1368
  br label %1370

1370:                                             ; preds = %1369, %1311
  br label %1371

1371:                                             ; preds = %1370
  br label %1372

1372:                                             ; preds = %1371
  br label %1373

1373:                                             ; preds = %1372
  %1374 = load i32, ptr @test_count, align 4, !tbaa !5
  %1375 = add nsw i32 %1374, 1
  store i32 %1375, ptr @test_count, align 4, !tbaa !5
  %1376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1377 = load i32, ptr %1376, align 4, !tbaa !5
  %1378 = icmp eq i32 %1377, 469762112
  br i1 %1378, label %1432, label %1379

1379:                                             ; preds = %1373
  br label %1380

1380:                                             ; preds = %1379
  br label %1381

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

1388:                                             ; preds = %1381
  %1389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1390 = call i32 @fileno(ptr noundef %1389) #10
  %1391 = call i32 @isatty(i32 noundef %1390) #10
  %1392 = icmp ne i32 %1391, 0
  br i1 %1392, label %1393, label %1410

1393:                                             ; preds = %1388
  %1394 = load i32, ptr %31, align 4, !tbaa !5
  %1395 = call ptr @__errno_location() #11
  store i32 %1394, ptr %1395, align 4, !tbaa !5
  %1396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1397 = load i32, ptr @test_count, align 4, !tbaa !5
  %1398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1399 = load i32, ptr %1398, align 4, !tbaa !5
  %1400 = call ptr @s2n_strerror(i32 noundef %1399, ptr noundef @.str.4)
  %1401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1402 = load i32, ptr %1401, align 4, !tbaa !5
  %1403 = call ptr @s2n_strerror_debug(i32 noundef %1402, ptr noundef @.str.4)
  %1404 = call ptr @__errno_location() #11
  %1405 = load i32, ptr %1404, align 4, !tbaa !5
  %1406 = call ptr @strerror(i32 noundef %1405) #10
  %1407 = call ptr @__errno_location() #11
  %1408 = load i32, ptr %1407, align 4, !tbaa !5
  %1409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1396, ptr noundef @.str.2, i32 noundef %1397, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1400, ptr noundef %1403, ptr noundef %1406, i32 noundef %1408) #10
  br label %1427

1410:                                             ; preds = %1388, %1381
  %1411 = load i32, ptr %31, align 4, !tbaa !5
  %1412 = call ptr @__errno_location() #11
  store i32 %1411, ptr %1412, align 4, !tbaa !5
  %1413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1414 = load i32, ptr @test_count, align 4, !tbaa !5
  %1415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1416 = load i32, ptr %1415, align 4, !tbaa !5
  %1417 = call ptr @s2n_strerror(i32 noundef %1416, ptr noundef @.str.4)
  %1418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1419 = load i32, ptr %1418, align 4, !tbaa !5
  %1420 = call ptr @s2n_strerror_debug(i32 noundef %1419, ptr noundef @.str.4)
  %1421 = call ptr @__errno_location() #11
  %1422 = load i32, ptr %1421, align 4, !tbaa !5
  %1423 = call ptr @strerror(i32 noundef %1422) #10
  %1424 = call ptr @__errno_location() #11
  %1425 = load i32, ptr %1424, align 4, !tbaa !5
  %1426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1413, ptr noundef @.str.5, i32 noundef %1414, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1417, ptr noundef %1420, ptr noundef %1423, i32 noundef %1425) #10
  br label %1427

1427:                                             ; preds = %1410, %1393
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #10
  br label %1428

1428:                                             ; preds = %1427
  br label %1429

1429:                                             ; preds = %1428
  call void @exit(i32 noundef 1) #12
  unreachable

1430:                                             ; No predecessors!
  br label %1431

1431:                                             ; preds = %1430
  br label %1432

1432:                                             ; preds = %1431, %1373
  br label %1433

1433:                                             ; preds = %1432
  br label %1434

1434:                                             ; preds = %1433
  br label %1435

1435:                                             ; preds = %1434
  %1436 = load i32, ptr @test_count, align 4, !tbaa !5
  %1437 = add nsw i32 %1436, 1
  store i32 %1437, ptr @test_count, align 4, !tbaa !5
  %1438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1439 = load i32, ptr %1438, align 4, !tbaa !5
  %1440 = call ptr @s2n_strerror_debug(i32 noundef %1439, ptr noundef @.str.4)
  %1441 = icmp eq ptr %1440, null
  br i1 %1441, label %1442, label %1495

1442:                                             ; preds = %1435
  br label %1443

1443:                                             ; preds = %1442
  br label %1444

1444:                                             ; preds = %1443
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  %1445 = call ptr @__errno_location() #11
  %1446 = load i32, ptr %1445, align 4, !tbaa !5
  store i32 %1446, ptr %32, align 4, !tbaa !5
  %1447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1448 = call i32 @s2n_print_stacktrace(ptr noundef %1447)
  %1449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1450 = trunc i8 %1449 to i1
  br i1 %1450, label %1451, label %1473

1451:                                             ; preds = %1444
  %1452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1453 = call i32 @fileno(ptr noundef %1452) #10
  %1454 = call i32 @isatty(i32 noundef %1453) #10
  %1455 = icmp ne i32 %1454, 0
  br i1 %1455, label %1456, label %1473

1456:                                             ; preds = %1451
  %1457 = load i32, ptr %32, align 4, !tbaa !5
  %1458 = call ptr @__errno_location() #11
  store i32 %1457, ptr %1458, align 4, !tbaa !5
  %1459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1460 = load i32, ptr @test_count, align 4, !tbaa !5
  %1461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1462 = load i32, ptr %1461, align 4, !tbaa !5
  %1463 = call ptr @s2n_strerror(i32 noundef %1462, ptr noundef @.str.4)
  %1464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1465 = load i32, ptr %1464, align 4, !tbaa !5
  %1466 = call ptr @s2n_strerror_debug(i32 noundef %1465, ptr noundef @.str.4)
  %1467 = call ptr @__errno_location() #11
  %1468 = load i32, ptr %1467, align 4, !tbaa !5
  %1469 = call ptr @strerror(i32 noundef %1468) #10
  %1470 = call ptr @__errno_location() #11
  %1471 = load i32, ptr %1470, align 4, !tbaa !5
  %1472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1459, ptr noundef @.str.2, i32 noundef %1460, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1463, ptr noundef %1466, ptr noundef %1469, i32 noundef %1471) #10
  br label %1490

1473:                                             ; preds = %1451, %1444
  %1474 = load i32, ptr %32, align 4, !tbaa !5
  %1475 = call ptr @__errno_location() #11
  store i32 %1474, ptr %1475, align 4, !tbaa !5
  %1476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1477 = load i32, ptr @test_count, align 4, !tbaa !5
  %1478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1479 = load i32, ptr %1478, align 4, !tbaa !5
  %1480 = call ptr @s2n_strerror(i32 noundef %1479, ptr noundef @.str.4)
  %1481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1482 = load i32, ptr %1481, align 4, !tbaa !5
  %1483 = call ptr @s2n_strerror_debug(i32 noundef %1482, ptr noundef @.str.4)
  %1484 = call ptr @__errno_location() #11
  %1485 = load i32, ptr %1484, align 4, !tbaa !5
  %1486 = call ptr @strerror(i32 noundef %1485) #10
  %1487 = call ptr @__errno_location() #11
  %1488 = load i32, ptr %1487, align 4, !tbaa !5
  %1489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1476, ptr noundef @.str.5, i32 noundef %1477, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1480, ptr noundef %1483, ptr noundef %1486, i32 noundef %1488) #10
  br label %1490

1490:                                             ; preds = %1473, %1456
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %1491

1491:                                             ; preds = %1490
  br label %1492

1492:                                             ; preds = %1491
  call void @exit(i32 noundef 1) #12
  unreachable

1493:                                             ; No predecessors!
  br label %1494

1494:                                             ; preds = %1493
  br label %1495

1495:                                             ; preds = %1494, %1435
  br label %1496

1496:                                             ; preds = %1495
  br label %1497

1497:                                             ; preds = %1496
  br label %1498

1498:                                             ; preds = %1497
  br label %1499

1499:                                             ; preds = %1498
  br label %1500

1500:                                             ; preds = %1499
  %1501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1501, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1502 = call ptr @__errno_location() #11
  store i32 0, ptr %1502, align 4, !tbaa !5
  br label %1503

1503:                                             ; preds = %1500
  br label %1504

1504:                                             ; preds = %1503
  br label %1505

1505:                                             ; preds = %1504
  br label %1506

1506:                                             ; preds = %1505
  br label %1507

1507:                                             ; preds = %1506
  %1508 = load i32, ptr @test_count, align 4, !tbaa !5
  %1509 = add nsw i32 %1508, 1
  store i32 %1509, ptr @test_count, align 4, !tbaa !5
  %1510 = load ptr, ptr %28, align 8, !tbaa !9
  %1511 = getelementptr inbounds %struct.s2n_config, ptr %1510, i32 0, i32 56
  %1512 = getelementptr inbounds %struct.s2n_blob, ptr %1511, i32 0, i32 1
  %1513 = load i32, ptr %1512, align 8, !tbaa !19
  %1514 = icmp eq i32 %1513, 0
  br i1 %1514, label %1568, label %1515

1515:                                             ; preds = %1507
  br label %1516

1516:                                             ; preds = %1515
  br label %1517

1517:                                             ; preds = %1516
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  %1518 = call ptr @__errno_location() #11
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  store i32 %1519, ptr %33, align 4, !tbaa !5
  %1520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1521 = call i32 @s2n_print_stacktrace(ptr noundef %1520)
  %1522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1523 = trunc i8 %1522 to i1
  br i1 %1523, label %1524, label %1546

1524:                                             ; preds = %1517
  %1525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1526 = call i32 @fileno(ptr noundef %1525) #10
  %1527 = call i32 @isatty(i32 noundef %1526) #10
  %1528 = icmp ne i32 %1527, 0
  br i1 %1528, label %1529, label %1546

1529:                                             ; preds = %1524
  %1530 = load i32, ptr %33, align 4, !tbaa !5
  %1531 = call ptr @__errno_location() #11
  store i32 %1530, ptr %1531, align 4, !tbaa !5
  %1532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1533 = load i32, ptr @test_count, align 4, !tbaa !5
  %1534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1535 = load i32, ptr %1534, align 4, !tbaa !5
  %1536 = call ptr @s2n_strerror(i32 noundef %1535, ptr noundef @.str.4)
  %1537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1538 = load i32, ptr %1537, align 4, !tbaa !5
  %1539 = call ptr @s2n_strerror_debug(i32 noundef %1538, ptr noundef @.str.4)
  %1540 = call ptr @__errno_location() #11
  %1541 = load i32, ptr %1540, align 4, !tbaa !5
  %1542 = call ptr @strerror(i32 noundef %1541) #10
  %1543 = call ptr @__errno_location() #11
  %1544 = load i32, ptr %1543, align 4, !tbaa !5
  %1545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1532, ptr noundef @.str.2, i32 noundef %1533, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1536, ptr noundef %1539, ptr noundef %1542, i32 noundef %1544) #10
  br label %1563

1546:                                             ; preds = %1524, %1517
  %1547 = load i32, ptr %33, align 4, !tbaa !5
  %1548 = call ptr @__errno_location() #11
  store i32 %1547, ptr %1548, align 4, !tbaa !5
  %1549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1550 = load i32, ptr @test_count, align 4, !tbaa !5
  %1551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1552 = load i32, ptr %1551, align 4, !tbaa !5
  %1553 = call ptr @s2n_strerror(i32 noundef %1552, ptr noundef @.str.4)
  %1554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1555 = load i32, ptr %1554, align 4, !tbaa !5
  %1556 = call ptr @s2n_strerror_debug(i32 noundef %1555, ptr noundef @.str.4)
  %1557 = call ptr @__errno_location() #11
  %1558 = load i32, ptr %1557, align 4, !tbaa !5
  %1559 = call ptr @strerror(i32 noundef %1558) #10
  %1560 = call ptr @__errno_location() #11
  %1561 = load i32, ptr %1560, align 4, !tbaa !5
  %1562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1549, ptr noundef @.str.5, i32 noundef %1550, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1553, ptr noundef %1556, ptr noundef %1559, i32 noundef %1561) #10
  br label %1563

1563:                                             ; preds = %1546, %1529
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  br label %1564

1564:                                             ; preds = %1563
  br label %1565

1565:                                             ; preds = %1564
  call void @exit(i32 noundef 1) #12
  unreachable

1566:                                             ; No predecessors!
  br label %1567

1567:                                             ; preds = %1566
  br label %1568

1568:                                             ; preds = %1567, %1507
  br label %1569

1569:                                             ; preds = %1568
  br label %1570

1570:                                             ; preds = %1569
  br label %1571

1571:                                             ; preds = %1570
  %1572 = load i32, ptr @test_count, align 4, !tbaa !5
  %1573 = add nsw i32 %1572, 1
  store i32 %1573, ptr @test_count, align 4, !tbaa !5
  %1574 = load ptr, ptr %28, align 8, !tbaa !9
  %1575 = call i32 @s2n_config_wipe_trust_store(ptr noundef %1574)
  %1576 = icmp eq i32 %1575, -1
  br i1 %1576, label %1577, label %1630

1577:                                             ; preds = %1571
  br label %1578

1578:                                             ; preds = %1577
  br label %1579

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

1586:                                             ; preds = %1579
  %1587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1588 = call i32 @fileno(ptr noundef %1587) #10
  %1589 = call i32 @isatty(i32 noundef %1588) #10
  %1590 = icmp ne i32 %1589, 0
  br i1 %1590, label %1591, label %1608

1591:                                             ; preds = %1586
  %1592 = load i32, ptr %34, align 4, !tbaa !5
  %1593 = call ptr @__errno_location() #11
  store i32 %1592, ptr %1593, align 4, !tbaa !5
  %1594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1595 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1597, ptr noundef @.str.4)
  %1599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1600 = load i32, ptr %1599, align 4, !tbaa !5
  %1601 = call ptr @s2n_strerror_debug(i32 noundef %1600, ptr noundef @.str.4)
  %1602 = call ptr @__errno_location() #11
  %1603 = load i32, ptr %1602, align 4, !tbaa !5
  %1604 = call ptr @strerror(i32 noundef %1603) #10
  %1605 = call ptr @__errno_location() #11
  %1606 = load i32, ptr %1605, align 4, !tbaa !5
  %1607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1594, ptr noundef @.str.2, i32 noundef %1595, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1598, ptr noundef %1601, ptr noundef %1604, i32 noundef %1606) #10
  br label %1625

1608:                                             ; preds = %1586, %1579
  %1609 = load i32, ptr %34, align 4, !tbaa !5
  %1610 = call ptr @__errno_location() #11
  store i32 %1609, ptr %1610, align 4, !tbaa !5
  %1611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1612 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1614, ptr noundef @.str.4)
  %1616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1617 = load i32, ptr %1616, align 4, !tbaa !5
  %1618 = call ptr @s2n_strerror_debug(i32 noundef %1617, ptr noundef @.str.4)
  %1619 = call ptr @__errno_location() #11
  %1620 = load i32, ptr %1619, align 4, !tbaa !5
  %1621 = call ptr @strerror(i32 noundef %1620) #10
  %1622 = call ptr @__errno_location() #11
  %1623 = load i32, ptr %1622, align 4, !tbaa !5
  %1624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1611, ptr noundef @.str.5, i32 noundef %1612, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1615, ptr noundef %1618, ptr noundef %1621, i32 noundef %1623) #10
  br label %1625

1625:                                             ; preds = %1608, %1591
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #10
  br label %1626

1626:                                             ; preds = %1625
  br label %1627

1627:                                             ; preds = %1626
  call void @exit(i32 noundef 1) #12
  unreachable

1628:                                             ; No predecessors!
  br label %1629

1629:                                             ; preds = %1628
  br label %1630

1630:                                             ; preds = %1629, %1571
  br label %1631

1631:                                             ; preds = %1630
  br label %1632

1632:                                             ; preds = %1631
  br label %1633

1633:                                             ; preds = %1632
  %1634 = load i32, ptr @test_count, align 4, !tbaa !5
  %1635 = add nsw i32 %1634, 1
  store i32 %1635, ptr @test_count, align 4, !tbaa !5
  %1636 = load ptr, ptr %28, align 8, !tbaa !9
  %1637 = call i32 @s2n_config_set_cert_authorities_from_trust_store(ptr noundef %1636)
  %1638 = icmp eq i32 %1637, -1
  br i1 %1638, label %1639, label %1692

1639:                                             ; preds = %1633
  br label %1640

1640:                                             ; preds = %1639
  br label %1641

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

1648:                                             ; preds = %1641
  %1649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1650 = call i32 @fileno(ptr noundef %1649) #10
  %1651 = call i32 @isatty(i32 noundef %1650) #10
  %1652 = icmp ne i32 %1651, 0
  br i1 %1652, label %1653, label %1670

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

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

1687:                                             ; preds = %1670, %1653
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #10
  br label %1688

1688:                                             ; preds = %1687
  br label %1689

1689:                                             ; preds = %1688
  call void @exit(i32 noundef 1) #12
  unreachable

1690:                                             ; No predecessors!
  br label %1691

1691:                                             ; preds = %1690
  br label %1692

1692:                                             ; preds = %1691, %1633
  br label %1693

1693:                                             ; preds = %1692
  br label %1694

1694:                                             ; preds = %1693
  br label %1695

1695:                                             ; preds = %1694
  %1696 = load i32, ptr @test_count, align 4, !tbaa !5
  %1697 = add nsw i32 %1696, 1
  store i32 %1697, ptr @test_count, align 4, !tbaa !5
  %1698 = load ptr, ptr %28, align 8, !tbaa !9
  %1699 = getelementptr inbounds %struct.s2n_config, ptr %1698, i32 0, i32 56
  %1700 = getelementptr inbounds %struct.s2n_blob, ptr %1699, i32 0, i32 1
  %1701 = load i32, ptr %1700, align 8, !tbaa !19
  %1702 = icmp eq i32 %1701, 0
  br i1 %1702, label %1756, label %1703

1703:                                             ; preds = %1695
  br label %1704

1704:                                             ; preds = %1703
  br label %1705

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

1712:                                             ; preds = %1705
  %1713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1714 = call i32 @fileno(ptr noundef %1713) #10
  %1715 = call i32 @isatty(i32 noundef %1714) #10
  %1716 = icmp ne i32 %1715, 0
  br i1 %1716, label %1717, label %1734

1717:                                             ; preds = %1712
  %1718 = load i32, ptr %36, align 4, !tbaa !5
  %1719 = call ptr @__errno_location() #11
  store i32 %1718, ptr %1719, align 4, !tbaa !5
  %1720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1721 = load i32, ptr @test_count, align 4, !tbaa !5
  %1722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1723 = load i32, ptr %1722, align 4, !tbaa !5
  %1724 = call ptr @s2n_strerror(i32 noundef %1723, ptr noundef @.str.4)
  %1725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1726 = load i32, ptr %1725, align 4, !tbaa !5
  %1727 = call ptr @s2n_strerror_debug(i32 noundef %1726, ptr noundef @.str.4)
  %1728 = call ptr @__errno_location() #11
  %1729 = load i32, ptr %1728, align 4, !tbaa !5
  %1730 = call ptr @strerror(i32 noundef %1729) #10
  %1731 = call ptr @__errno_location() #11
  %1732 = load i32, ptr %1731, align 4, !tbaa !5
  %1733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1720, ptr noundef @.str.2, i32 noundef %1721, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1724, ptr noundef %1727, ptr noundef %1730, i32 noundef %1732) #10
  br label %1751

1734:                                             ; preds = %1712, %1705
  %1735 = load i32, ptr %36, align 4, !tbaa !5
  %1736 = call ptr @__errno_location() #11
  store i32 %1735, ptr %1736, align 4, !tbaa !5
  %1737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1738 = load i32, ptr @test_count, align 4, !tbaa !5
  %1739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1740 = load i32, ptr %1739, align 4, !tbaa !5
  %1741 = call ptr @s2n_strerror(i32 noundef %1740, ptr noundef @.str.4)
  %1742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  %1744 = call ptr @s2n_strerror_debug(i32 noundef %1743, ptr noundef @.str.4)
  %1745 = call ptr @__errno_location() #11
  %1746 = load i32, ptr %1745, align 4, !tbaa !5
  %1747 = call ptr @strerror(i32 noundef %1746) #10
  %1748 = call ptr @__errno_location() #11
  %1749 = load i32, ptr %1748, align 4, !tbaa !5
  %1750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1737, ptr noundef @.str.5, i32 noundef %1738, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1741, ptr noundef %1744, ptr noundef %1747, i32 noundef %1749) #10
  br label %1751

1751:                                             ; preds = %1734, %1717
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #10
  br label %1752

1752:                                             ; preds = %1751
  br label %1753

1753:                                             ; preds = %1752
  call void @exit(i32 noundef 1) #12
  unreachable

1754:                                             ; No predecessors!
  br label %1755

1755:                                             ; preds = %1754
  br label %1756

1756:                                             ; preds = %1755, %1695
  br label %1757

1757:                                             ; preds = %1756
  br label %1758

1758:                                             ; preds = %1757
  %1759 = call i32 @s2n_config_ptr_free(ptr noundef %28)
  %1760 = getelementptr inbounds %struct.s2n_result, ptr %37, i32 0, i32 0
  store i32 %1759, ptr %1760, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #10
  %1761 = call ptr @s2n_config_new_minimal()
  store ptr %1761, ptr %38, align 8, !tbaa !9
  br label %1762

1762:                                             ; preds = %1758
  %1763 = load i32, ptr @test_count, align 4, !tbaa !5
  %1764 = add nsw i32 %1763, 1
  store i32 %1764, ptr @test_count, align 4, !tbaa !5
  %1765 = load ptr, ptr %38, align 8, !tbaa !9
  %1766 = icmp eq ptr %1765, null
  br i1 %1766, label %1767, label %1820

1767:                                             ; preds = %1762
  br label %1768

1768:                                             ; preds = %1767
  br label %1769

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

1776:                                             ; preds = %1769
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = call i32 @fileno(ptr noundef %1777) #10
  %1779 = call i32 @isatty(i32 noundef %1778) #10
  %1780 = icmp ne i32 %1779, 0
  br i1 %1780, label %1781, label %1798

1781:                                             ; preds = %1776
  %1782 = load i32, ptr %39, align 4, !tbaa !5
  %1783 = call ptr @__errno_location() #11
  store i32 %1782, ptr %1783, align 4, !tbaa !5
  %1784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1785 = load i32, ptr @test_count, align 4, !tbaa !5
  %1786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1787 = load i32, ptr %1786, align 4, !tbaa !5
  %1788 = call ptr @s2n_strerror(i32 noundef %1787, ptr noundef @.str.4)
  %1789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1790 = load i32, ptr %1789, align 4, !tbaa !5
  %1791 = call ptr @s2n_strerror_debug(i32 noundef %1790, ptr noundef @.str.4)
  %1792 = call ptr @__errno_location() #11
  %1793 = load i32, ptr %1792, align 4, !tbaa !5
  %1794 = call ptr @strerror(i32 noundef %1793) #10
  %1795 = call ptr @__errno_location() #11
  %1796 = load i32, ptr %1795, align 4, !tbaa !5
  %1797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1784, ptr noundef @.str.2, i32 noundef %1785, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1788, ptr noundef %1791, ptr noundef %1794, i32 noundef %1796) #10
  br label %1815

1798:                                             ; preds = %1776, %1769
  %1799 = load i32, ptr %39, align 4, !tbaa !5
  %1800 = call ptr @__errno_location() #11
  store i32 %1799, ptr %1800, align 4, !tbaa !5
  %1801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1802 = load i32, ptr @test_count, align 4, !tbaa !5
  %1803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1804 = load i32, ptr %1803, align 4, !tbaa !5
  %1805 = call ptr @s2n_strerror(i32 noundef %1804, ptr noundef @.str.4)
  %1806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1807 = load i32, ptr %1806, align 4, !tbaa !5
  %1808 = call ptr @s2n_strerror_debug(i32 noundef %1807, ptr noundef @.str.4)
  %1809 = call ptr @__errno_location() #11
  %1810 = load i32, ptr %1809, align 4, !tbaa !5
  %1811 = call ptr @strerror(i32 noundef %1810) #10
  %1812 = call ptr @__errno_location() #11
  %1813 = load i32, ptr %1812, align 4, !tbaa !5
  %1814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1801, ptr noundef @.str.5, i32 noundef %1802, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1805, ptr noundef %1808, ptr noundef %1811, i32 noundef %1813) #10
  br label %1815

1815:                                             ; preds = %1798, %1781
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #10
  br label %1816

1816:                                             ; preds = %1815
  br label %1817

1817:                                             ; preds = %1816
  call void @exit(i32 noundef 1) #12
  unreachable

1818:                                             ; No predecessors!
  br label %1819

1819:                                             ; preds = %1818
  br label %1820

1820:                                             ; preds = %1819, %1762
  br label %1821

1821:                                             ; preds = %1820
  br label %1822

1822:                                             ; preds = %1821
  br label %1823

1823:                                             ; preds = %1822
  %1824 = load i32, ptr @test_count, align 4, !tbaa !5
  %1825 = add nsw i32 %1824, 1
  store i32 %1825, ptr @test_count, align 4, !tbaa !5
  %1826 = load ptr, ptr %38, align 8, !tbaa !9
  %1827 = call i32 @s2n_config_set_cert_authorities_from_trust_store(ptr noundef %1826)
  %1828 = icmp eq i32 %1827, -1
  br i1 %1828, label %1829, label %1882

1829:                                             ; preds = %1823
  br label %1830

1830:                                             ; preds = %1829
  br label %1831

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

1838:                                             ; preds = %1831
  %1839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1840 = call i32 @fileno(ptr noundef %1839) #10
  %1841 = call i32 @isatty(i32 noundef %1840) #10
  %1842 = icmp ne i32 %1841, 0
  br i1 %1842, label %1843, label %1860

1843:                                             ; preds = %1838
  %1844 = load i32, ptr %40, align 4, !tbaa !5
  %1845 = call ptr @__errno_location() #11
  store i32 %1844, ptr %1845, align 4, !tbaa !5
  %1846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1847 = load i32, ptr @test_count, align 4, !tbaa !5
  %1848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1849 = load i32, ptr %1848, align 4, !tbaa !5
  %1850 = call ptr @s2n_strerror(i32 noundef %1849, ptr noundef @.str.4)
  %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_debug(i32 noundef %1852, ptr noundef @.str.4)
  %1854 = call ptr @__errno_location() #11
  %1855 = load i32, ptr %1854, align 4, !tbaa !5
  %1856 = call ptr @strerror(i32 noundef %1855) #10
  %1857 = call ptr @__errno_location() #11
  %1858 = load i32, ptr %1857, align 4, !tbaa !5
  %1859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1846, ptr noundef @.str.2, i32 noundef %1847, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1850, ptr noundef %1853, ptr noundef %1856, i32 noundef %1858) #10
  br label %1877

1860:                                             ; preds = %1838, %1831
  %1861 = load i32, ptr %40, align 4, !tbaa !5
  %1862 = call ptr @__errno_location() #11
  store i32 %1861, ptr %1862, align 4, !tbaa !5
  %1863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1864 = load i32, ptr @test_count, align 4, !tbaa !5
  %1865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1866 = load i32, ptr %1865, align 4, !tbaa !5
  %1867 = call ptr @s2n_strerror(i32 noundef %1866, ptr noundef @.str.4)
  %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_debug(i32 noundef %1869, ptr noundef @.str.4)
  %1871 = call ptr @__errno_location() #11
  %1872 = load i32, ptr %1871, align 4, !tbaa !5
  %1873 = call ptr @strerror(i32 noundef %1872) #10
  %1874 = call ptr @__errno_location() #11
  %1875 = load i32, ptr %1874, align 4, !tbaa !5
  %1876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1863, ptr noundef @.str.5, i32 noundef %1864, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1867, ptr noundef %1870, ptr noundef %1873, i32 noundef %1875) #10
  br label %1877

1877:                                             ; preds = %1860, %1843
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  br label %1878

1878:                                             ; preds = %1877
  br label %1879

1879:                                             ; preds = %1878
  call void @exit(i32 noundef 1) #12
  unreachable

1880:                                             ; No predecessors!
  br label %1881

1881:                                             ; preds = %1880
  br label %1882

1882:                                             ; preds = %1881, %1823
  br label %1883

1883:                                             ; preds = %1882
  br label %1884

1884:                                             ; preds = %1883
  br label %1885

1885:                                             ; preds = %1884
  %1886 = load i32, ptr @test_count, align 4, !tbaa !5
  %1887 = add nsw i32 %1886, 1
  store i32 %1887, ptr @test_count, align 4, !tbaa !5
  %1888 = load ptr, ptr %38, align 8, !tbaa !9
  %1889 = getelementptr inbounds %struct.s2n_config, ptr %1888, i32 0, i32 56
  %1890 = getelementptr inbounds %struct.s2n_blob, ptr %1889, i32 0, i32 1
  %1891 = load i32, ptr %1890, align 8, !tbaa !19
  %1892 = icmp eq i32 %1891, 0
  br i1 %1892, label %1946, label %1893

1893:                                             ; preds = %1885
  br label %1894

1894:                                             ; preds = %1893
  br label %1895

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

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

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

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

1941:                                             ; preds = %1924, %1907
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  br label %1942

1942:                                             ; preds = %1941
  br label %1943

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

1944:                                             ; No predecessors!
  br label %1945

1945:                                             ; preds = %1944
  br label %1946

1946:                                             ; preds = %1945, %1885
  br label %1947

1947:                                             ; preds = %1946
  br label %1948

1948:                                             ; preds = %1947
  %1949 = call i32 @s2n_config_ptr_free(ptr noundef %38)
  %1950 = getelementptr inbounds %struct.s2n_result, ptr %42, i32 0, i32 0
  store i32 %1949, ptr %1950, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #10
  %1951 = call zeroext i1 (...) @s2n_cert_authorities_supported_from_trust_store()
  br i1 %1951, label %1952, label %2341

1952:                                             ; preds = %1948
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #10
  %1953 = call ptr @s2n_config_new_minimal()
  store ptr %1953, ptr %43, align 8, !tbaa !9
  br label %1954

1954:                                             ; preds = %1952
  %1955 = load i32, ptr @test_count, align 4, !tbaa !5
  %1956 = add nsw i32 %1955, 1
  store i32 %1956, ptr @test_count, align 4, !tbaa !5
  %1957 = load ptr, ptr %43, align 8, !tbaa !9
  %1958 = icmp eq ptr %1957, null
  br i1 %1958, label %1959, label %2012

1959:                                             ; preds = %1954
  br label %1960

1960:                                             ; preds = %1959
  br label %1961

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

1968:                                             ; preds = %1961
  %1969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1970 = call i32 @fileno(ptr noundef %1969) #10
  %1971 = call i32 @isatty(i32 noundef %1970) #10
  %1972 = icmp ne i32 %1971, 0
  br i1 %1972, label %1973, label %1990

1973:                                             ; preds = %1968
  %1974 = load i32, ptr %44, align 4, !tbaa !5
  %1975 = call ptr @__errno_location() #11
  store i32 %1974, ptr %1975, align 4, !tbaa !5
  %1976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1977 = load i32, ptr @test_count, align 4, !tbaa !5
  %1978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1979 = load i32, ptr %1978, align 4, !tbaa !5
  %1980 = call ptr @s2n_strerror(i32 noundef %1979, ptr noundef @.str.4)
  %1981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1982 = load i32, ptr %1981, align 4, !tbaa !5
  %1983 = call ptr @s2n_strerror_debug(i32 noundef %1982, ptr noundef @.str.4)
  %1984 = call ptr @__errno_location() #11
  %1985 = load i32, ptr %1984, align 4, !tbaa !5
  %1986 = call ptr @strerror(i32 noundef %1985) #10
  %1987 = call ptr @__errno_location() #11
  %1988 = load i32, ptr %1987, align 4, !tbaa !5
  %1989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1976, ptr noundef @.str.2, i32 noundef %1977, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1980, ptr noundef %1983, ptr noundef %1986, i32 noundef %1988) #10
  br label %2007

1990:                                             ; preds = %1968, %1961
  %1991 = load i32, ptr %44, align 4, !tbaa !5
  %1992 = call ptr @__errno_location() #11
  store i32 %1991, ptr %1992, align 4, !tbaa !5
  %1993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1994 = load i32, ptr @test_count, align 4, !tbaa !5
  %1995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1996 = load i32, ptr %1995, align 4, !tbaa !5
  %1997 = call ptr @s2n_strerror(i32 noundef %1996, ptr noundef @.str.4)
  %1998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1999 = load i32, ptr %1998, align 4, !tbaa !5
  %2000 = call ptr @s2n_strerror_debug(i32 noundef %1999, ptr noundef @.str.4)
  %2001 = call ptr @__errno_location() #11
  %2002 = load i32, ptr %2001, align 4, !tbaa !5
  %2003 = call ptr @strerror(i32 noundef %2002) #10
  %2004 = call ptr @__errno_location() #11
  %2005 = load i32, ptr %2004, align 4, !tbaa !5
  %2006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1993, ptr noundef @.str.5, i32 noundef %1994, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1997, ptr noundef %2000, ptr noundef %2003, i32 noundef %2005) #10
  br label %2007

2007:                                             ; preds = %1990, %1973
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #10
  br label %2008

2008:                                             ; preds = %2007
  br label %2009

2009:                                             ; preds = %2008
  call void @exit(i32 noundef 1) #12
  unreachable

2010:                                             ; No predecessors!
  br label %2011

2011:                                             ; preds = %2010
  br label %2012

2012:                                             ; preds = %2011, %1954
  br label %2013

2013:                                             ; preds = %2012
  br label %2014

2014:                                             ; preds = %2013
  br label %2015

2015:                                             ; preds = %2014
  %2016 = load i32, ptr @test_count, align 4, !tbaa !5
  %2017 = add nsw i32 %2016, 1
  store i32 %2017, ptr @test_count, align 4, !tbaa !5
  %2018 = load ptr, ptr %43, align 8, !tbaa !9
  %2019 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %2018, ptr noundef @.str.26, ptr noundef null)
  %2020 = icmp eq i32 %2019, -1
  br i1 %2020, label %2021, label %2074

2021:                                             ; preds = %2015
  br label %2022

2022:                                             ; preds = %2021
  br label %2023

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

2030:                                             ; preds = %2023
  %2031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2032 = call i32 @fileno(ptr noundef %2031) #10
  %2033 = call i32 @isatty(i32 noundef %2032) #10
  %2034 = icmp ne i32 %2033, 0
  br i1 %2034, label %2035, label %2052

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

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

2069:                                             ; preds = %2052, %2035
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #10
  br label %2070

2070:                                             ; preds = %2069
  br label %2071

2071:                                             ; preds = %2070
  call void @exit(i32 noundef 1) #12
  unreachable

2072:                                             ; No predecessors!
  br label %2073

2073:                                             ; preds = %2072
  br label %2074

2074:                                             ; preds = %2073, %2015
  br label %2075

2075:                                             ; preds = %2074
  br label %2076

2076:                                             ; preds = %2075
  br label %2077

2077:                                             ; preds = %2076
  br label %2078

2078:                                             ; preds = %2077
  br label %2079

2079:                                             ; preds = %2078
  %2080 = load i32, ptr @test_count, align 4, !tbaa !5
  %2081 = add nsw i32 %2080, 1
  store i32 %2081, ptr @test_count, align 4, !tbaa !5
  %2082 = load ptr, ptr %43, align 8, !tbaa !9
  %2083 = call i32 @s2n_config_set_cert_authorities_from_trust_store(ptr noundef %2082)
  %2084 = icmp eq i32 %2083, -1
  br i1 %2084, label %2138, label %2085

2085:                                             ; preds = %2079
  br label %2086

2086:                                             ; preds = %2085
  br label %2087

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

2094:                                             ; preds = %2087
  %2095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2096 = call i32 @fileno(ptr noundef %2095) #10
  %2097 = call i32 @isatty(i32 noundef %2096) #10
  %2098 = icmp ne i32 %2097, 0
  br i1 %2098, label %2099, label %2116

2099:                                             ; preds = %2094
  %2100 = load i32, ptr %46, align 4, !tbaa !5
  %2101 = call ptr @__errno_location() #11
  store i32 %2100, ptr %2101, align 4, !tbaa !5
  %2102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2103 = load i32, ptr @test_count, align 4, !tbaa !5
  %2104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2105 = load i32, ptr %2104, align 4, !tbaa !5
  %2106 = call ptr @s2n_strerror(i32 noundef %2105, ptr noundef @.str.4)
  %2107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2108 = load i32, ptr %2107, align 4, !tbaa !5
  %2109 = call ptr @s2n_strerror_debug(i32 noundef %2108, ptr noundef @.str.4)
  %2110 = call ptr @__errno_location() #11
  %2111 = load i32, ptr %2110, align 4, !tbaa !5
  %2112 = call ptr @strerror(i32 noundef %2111) #10
  %2113 = call ptr @__errno_location() #11
  %2114 = load i32, ptr %2113, align 4, !tbaa !5
  %2115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2102, ptr noundef @.str.2, i32 noundef %2103, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2106, ptr noundef %2109, ptr noundef %2112, i32 noundef %2114) #10
  br label %2133

2116:                                             ; preds = %2094, %2087
  %2117 = load i32, ptr %46, align 4, !tbaa !5
  %2118 = call ptr @__errno_location() #11
  store i32 %2117, ptr %2118, align 4, !tbaa !5
  %2119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2120 = load i32, ptr @test_count, align 4, !tbaa !5
  %2121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  %2123 = call ptr @s2n_strerror(i32 noundef %2122, ptr noundef @.str.4)
  %2124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2125 = load i32, ptr %2124, align 4, !tbaa !5
  %2126 = call ptr @s2n_strerror_debug(i32 noundef %2125, ptr noundef @.str.4)
  %2127 = call ptr @__errno_location() #11
  %2128 = load i32, ptr %2127, align 4, !tbaa !5
  %2129 = call ptr @strerror(i32 noundef %2128) #10
  %2130 = call ptr @__errno_location() #11
  %2131 = load i32, ptr %2130, align 4, !tbaa !5
  %2132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2119, ptr noundef @.str.5, i32 noundef %2120, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2123, ptr noundef %2126, ptr noundef %2129, i32 noundef %2131) #10
  br label %2133

2133:                                             ; preds = %2116, %2099
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #10
  br label %2134

2134:                                             ; preds = %2133
  br label %2135

2135:                                             ; preds = %2134
  call void @exit(i32 noundef 1) #12
  unreachable

2136:                                             ; No predecessors!
  br label %2137

2137:                                             ; preds = %2136
  br label %2138

2138:                                             ; preds = %2137, %2079
  br label %2139

2139:                                             ; preds = %2138
  br label %2140

2140:                                             ; preds = %2139
  br label %2141

2141:                                             ; preds = %2140
  %2142 = load i32, ptr @test_count, align 4, !tbaa !5
  %2143 = add nsw i32 %2142, 1
  store i32 %2143, ptr @test_count, align 4, !tbaa !5
  %2144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2145 = load i32, ptr %2144, align 4, !tbaa !5
  %2146 = icmp eq i32 %2145, 469762135
  br i1 %2146, label %2200, label %2147

2147:                                             ; preds = %2141
  br label %2148

2148:                                             ; preds = %2147
  br label %2149

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

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

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

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

2195:                                             ; preds = %2178, %2161
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #10
  br label %2196

2196:                                             ; preds = %2195
  br label %2197

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

2198:                                             ; No predecessors!
  br label %2199

2199:                                             ; preds = %2198
  br label %2200

2200:                                             ; preds = %2199, %2141
  br label %2201

2201:                                             ; preds = %2200
  br label %2202

2202:                                             ; preds = %2201
  br label %2203

2203:                                             ; preds = %2202
  %2204 = load i32, ptr @test_count, align 4, !tbaa !5
  %2205 = add nsw i32 %2204, 1
  store i32 %2205, ptr @test_count, align 4, !tbaa !5
  %2206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2207 = load i32, ptr %2206, align 4, !tbaa !5
  %2208 = call ptr @s2n_strerror_debug(i32 noundef %2207, ptr noundef @.str.4)
  %2209 = icmp eq ptr %2208, null
  br i1 %2209, label %2210, label %2263

2210:                                             ; preds = %2203
  br label %2211

2211:                                             ; preds = %2210
  br label %2212

2212:                                             ; preds = %2211
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #10
  %2213 = call ptr @__errno_location() #11
  %2214 = load i32, ptr %2213, align 4, !tbaa !5
  store i32 %2214, ptr %48, 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) #10
  %2222 = call i32 @isatty(i32 noundef %2221) #10
  %2223 = icmp ne i32 %2222, 0
  br i1 %2223, label %2224, label %2241

2224:                                             ; preds = %2219
  %2225 = load i32, ptr %48, align 4, !tbaa !5
  %2226 = call ptr @__errno_location() #11
  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() #11
  %2236 = load i32, ptr %2235, align 4, !tbaa !5
  %2237 = call ptr @strerror(i32 noundef %2236) #10
  %2238 = call ptr @__errno_location() #11
  %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.15, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2231, ptr noundef %2234, ptr noundef %2237, i32 noundef %2239) #10
  br label %2258

2241:                                             ; preds = %2219, %2212
  %2242 = load i32, ptr %48, align 4, !tbaa !5
  %2243 = call ptr @__errno_location() #11
  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() #11
  %2253 = load i32, ptr %2252, align 4, !tbaa !5
  %2254 = call ptr @strerror(i32 noundef %2253) #10
  %2255 = call ptr @__errno_location() #11
  %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.15, ptr noundef @.str.1, i32 noundef 109, ptr noundef %2248, ptr noundef %2251, ptr noundef %2254, i32 noundef %2256) #10
  br label %2258

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

2259:                                             ; preds = %2258
  br label %2260

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

2261:                                             ; No predecessors!
  br label %2262

2262:                                             ; preds = %2261
  br label %2263

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

2264:                                             ; preds = %2263
  br label %2265

2265:                                             ; preds = %2264
  br label %2266

2266:                                             ; preds = %2265
  br label %2267

2267:                                             ; preds = %2266
  br label %2268

2268:                                             ; preds = %2267
  %2269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2269, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2270 = call ptr @__errno_location() #11
  store i32 0, ptr %2270, align 4, !tbaa !5
  br label %2271

2271:                                             ; preds = %2268
  br label %2272

2272:                                             ; preds = %2271
  br label %2273

2273:                                             ; preds = %2272
  br label %2274

2274:                                             ; preds = %2273
  br label %2275

2275:                                             ; preds = %2274
  %2276 = load i32, ptr @test_count, align 4, !tbaa !5
  %2277 = add nsw i32 %2276, 1
  store i32 %2277, ptr @test_count, align 4, !tbaa !5
  %2278 = load ptr, ptr %43, align 8, !tbaa !9
  %2279 = getelementptr inbounds %struct.s2n_config, ptr %2278, i32 0, i32 56
  %2280 = getelementptr inbounds %struct.s2n_blob, ptr %2279, i32 0, i32 1
  %2281 = load i32, ptr %2280, align 8, !tbaa !19
  %2282 = icmp eq i32 %2281, 0
  br i1 %2282, label %2336, label %2283

2283:                                             ; preds = %2275
  br label %2284

2284:                                             ; preds = %2283
  br label %2285

2285:                                             ; preds = %2284
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #10
  %2286 = call ptr @__errno_location() #11
  %2287 = load i32, ptr %2286, align 4, !tbaa !5
  store i32 %2287, ptr %49, align 4, !tbaa !5
  %2288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2289 = call i32 @s2n_print_stacktrace(ptr noundef %2288)
  %2290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2291 = trunc i8 %2290 to i1
  br i1 %2291, label %2292, label %2314

2292:                                             ; preds = %2285
  %2293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2294 = call i32 @fileno(ptr noundef %2293) #10
  %2295 = call i32 @isatty(i32 noundef %2294) #10
  %2296 = icmp ne i32 %2295, 0
  br i1 %2296, label %2297, label %2314

2297:                                             ; preds = %2292
  %2298 = load i32, ptr %49, align 4, !tbaa !5
  %2299 = call ptr @__errno_location() #11
  store i32 %2298, ptr %2299, align 4, !tbaa !5
  %2300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2301 = load i32, ptr @test_count, align 4, !tbaa !5
  %2302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2303 = load i32, ptr %2302, align 4, !tbaa !5
  %2304 = call ptr @s2n_strerror(i32 noundef %2303, ptr noundef @.str.4)
  %2305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2306 = load i32, ptr %2305, align 4, !tbaa !5
  %2307 = call ptr @s2n_strerror_debug(i32 noundef %2306, ptr noundef @.str.4)
  %2308 = call ptr @__errno_location() #11
  %2309 = load i32, ptr %2308, align 4, !tbaa !5
  %2310 = call ptr @strerror(i32 noundef %2309) #10
  %2311 = call ptr @__errno_location() #11
  %2312 = load i32, ptr %2311, align 4, !tbaa !5
  %2313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2300, ptr noundef @.str.2, i32 noundef %2301, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 110, ptr noundef %2304, ptr noundef %2307, ptr noundef %2310, i32 noundef %2312) #10
  br label %2331

2314:                                             ; preds = %2292, %2285
  %2315 = load i32, ptr %49, align 4, !tbaa !5
  %2316 = call ptr @__errno_location() #11
  store i32 %2315, ptr %2316, align 4, !tbaa !5
  %2317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2318 = load i32, ptr @test_count, align 4, !tbaa !5
  %2319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2320 = load i32, ptr %2319, align 4, !tbaa !5
  %2321 = call ptr @s2n_strerror(i32 noundef %2320, ptr noundef @.str.4)
  %2322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2323 = load i32, ptr %2322, align 4, !tbaa !5
  %2324 = call ptr @s2n_strerror_debug(i32 noundef %2323, ptr noundef @.str.4)
  %2325 = call ptr @__errno_location() #11
  %2326 = load i32, ptr %2325, align 4, !tbaa !5
  %2327 = call ptr @strerror(i32 noundef %2326) #10
  %2328 = call ptr @__errno_location() #11
  %2329 = load i32, ptr %2328, align 4, !tbaa !5
  %2330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2317, ptr noundef @.str.5, i32 noundef %2318, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 110, ptr noundef %2321, ptr noundef %2324, ptr noundef %2327, i32 noundef %2329) #10
  br label %2331

2331:                                             ; preds = %2314, %2297
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #10
  br label %2332

2332:                                             ; preds = %2331
  br label %2333

2333:                                             ; preds = %2332
  call void @exit(i32 noundef 1) #12
  unreachable

2334:                                             ; No predecessors!
  br label %2335

2335:                                             ; preds = %2334
  br label %2336

2336:                                             ; preds = %2335, %2275
  br label %2337

2337:                                             ; preds = %2336
  br label %2338

2338:                                             ; preds = %2337
  %2339 = call i32 @s2n_config_ptr_free(ptr noundef %43)
  %2340 = getelementptr inbounds %struct.s2n_result, ptr %50, i32 0, i32 0
  store i32 %2339, ptr %2340, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #10
  br label %2341

2341:                                             ; preds = %2338, %1948
  call void @llvm.lifetime.start.p0(i64 17, ptr %51) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %51, ptr align 16 @__const.main.ca_data, i64 17, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #10
  %2342 = call ptr @s2n_config_new_minimal()
  store ptr %2342, ptr %52, align 8, !tbaa !9
  br label %2343

2343:                                             ; preds = %2341
  %2344 = load i32, ptr @test_count, align 4, !tbaa !5
  %2345 = add nsw i32 %2344, 1
  store i32 %2345, ptr @test_count, align 4, !tbaa !5
  %2346 = load ptr, ptr %52, align 8, !tbaa !9
  %2347 = getelementptr inbounds %struct.s2n_config, ptr %2346, i32 0, i32 56
  %2348 = call i32 @s2n_alloc(ptr noundef %2347, i32 noundef 17)
  %2349 = icmp eq i32 %2348, -1
  br i1 %2349, label %2350, label %2403

2350:                                             ; preds = %2343
  br label %2351

2351:                                             ; preds = %2350
  br label %2352

2352:                                             ; preds = %2351
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #10
  %2353 = call ptr @__errno_location() #11
  %2354 = load i32, ptr %2353, align 4, !tbaa !5
  store i32 %2354, ptr %53, align 4, !tbaa !5
  %2355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2356 = call i32 @s2n_print_stacktrace(ptr noundef %2355)
  %2357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2358 = trunc i8 %2357 to i1
  br i1 %2358, label %2359, label %2381

2359:                                             ; preds = %2352
  %2360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2361 = call i32 @fileno(ptr noundef %2360) #10
  %2362 = call i32 @isatty(i32 noundef %2361) #10
  %2363 = icmp ne i32 %2362, 0
  br i1 %2363, label %2364, label %2381

2364:                                             ; preds = %2359
  %2365 = load i32, ptr %53, align 4, !tbaa !5
  %2366 = call ptr @__errno_location() #11
  store i32 %2365, ptr %2366, align 4, !tbaa !5
  %2367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2368 = load i32, ptr @test_count, align 4, !tbaa !5
  %2369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2370 = load i32, ptr %2369, align 4, !tbaa !5
  %2371 = call ptr @s2n_strerror(i32 noundef %2370, ptr noundef @.str.4)
  %2372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2373 = load i32, ptr %2372, align 4, !tbaa !5
  %2374 = call ptr @s2n_strerror_debug(i32 noundef %2373, ptr noundef @.str.4)
  %2375 = call ptr @__errno_location() #11
  %2376 = load i32, ptr %2375, align 4, !tbaa !5
  %2377 = call ptr @strerror(i32 noundef %2376) #10
  %2378 = call ptr @__errno_location() #11
  %2379 = load i32, ptr %2378, align 4, !tbaa !5
  %2380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2367, ptr noundef @.str.2, i32 noundef %2368, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 121, ptr noundef %2371, ptr noundef %2374, ptr noundef %2377, i32 noundef %2379) #10
  br label %2398

2381:                                             ; preds = %2359, %2352
  %2382 = load i32, ptr %53, align 4, !tbaa !5
  %2383 = call ptr @__errno_location() #11
  store i32 %2382, ptr %2383, align 4, !tbaa !5
  %2384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2385 = load i32, ptr @test_count, align 4, !tbaa !5
  %2386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2387 = load i32, ptr %2386, align 4, !tbaa !5
  %2388 = call ptr @s2n_strerror(i32 noundef %2387, ptr noundef @.str.4)
  %2389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2390 = load i32, ptr %2389, align 4, !tbaa !5
  %2391 = call ptr @s2n_strerror_debug(i32 noundef %2390, ptr noundef @.str.4)
  %2392 = call ptr @__errno_location() #11
  %2393 = load i32, ptr %2392, align 4, !tbaa !5
  %2394 = call ptr @strerror(i32 noundef %2393) #10
  %2395 = call ptr @__errno_location() #11
  %2396 = load i32, ptr %2395, align 4, !tbaa !5
  %2397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2384, ptr noundef @.str.5, i32 noundef %2385, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 121, ptr noundef %2388, ptr noundef %2391, ptr noundef %2394, i32 noundef %2396) #10
  br label %2398

2398:                                             ; preds = %2381, %2364
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #10
  br label %2399

2399:                                             ; preds = %2398
  br label %2400

2400:                                             ; preds = %2399
  call void @exit(i32 noundef 1) #12
  unreachable

2401:                                             ; No predecessors!
  br label %2402

2402:                                             ; preds = %2401
  br label %2403

2403:                                             ; preds = %2402, %2343
  br label %2404

2404:                                             ; preds = %2403
  br label %2405

2405:                                             ; preds = %2404
  br label %2406

2406:                                             ; preds = %2405
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #10
  store i64 17, ptr %54, align 8, !tbaa !25
  %2407 = load i64, ptr %54, align 8, !tbaa !25
  %2408 = icmp ne i64 %2407, 0
  br i1 %2408, label %2409, label %2471

2409:                                             ; preds = %2406
  %2410 = load ptr, ptr %52, align 8, !tbaa !9
  %2411 = getelementptr inbounds %struct.s2n_config, ptr %2410, i32 0, i32 56
  %2412 = getelementptr inbounds %struct.s2n_blob, ptr %2411, i32 0, i32 0
  %2413 = load ptr, ptr %2412, align 8, !tbaa !26
  %2414 = getelementptr inbounds [17 x i8], ptr %51, i64 0, i64 0
  %2415 = load i64, ptr %54, align 8, !tbaa !25
  call void @llvm.memmove.p0.p0.i64(ptr align 1 %2413, ptr align 16 %2414, i64 %2415, i1 false)
  %2416 = icmp eq ptr %2413, null
  br i1 %2416, label %2417, label %2470

2417:                                             ; preds = %2409
  br label %2418

2418:                                             ; preds = %2417
  br label %2419

2419:                                             ; preds = %2418
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #10
  %2420 = call ptr @__errno_location() #11
  %2421 = load i32, ptr %2420, align 4, !tbaa !5
  store i32 %2421, ptr %55, align 4, !tbaa !5
  %2422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2423 = call i32 @s2n_print_stacktrace(ptr noundef %2422)
  %2424 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2425 = trunc i8 %2424 to i1
  br i1 %2425, label %2426, label %2448

2426:                                             ; preds = %2419
  %2427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2428 = call i32 @fileno(ptr noundef %2427) #10
  %2429 = call i32 @isatty(i32 noundef %2428) #10
  %2430 = icmp ne i32 %2429, 0
  br i1 %2430, label %2431, label %2448

2431:                                             ; preds = %2426
  %2432 = load i32, ptr %55, align 4, !tbaa !5
  %2433 = call ptr @__errno_location() #11
  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() #11
  %2443 = load i32, ptr %2442, align 4, !tbaa !5
  %2444 = call ptr @strerror(i32 noundef %2443) #10
  %2445 = call ptr @__errno_location() #11
  %2446 = load i32, ptr %2445, align 4, !tbaa !5
  %2447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2434, ptr noundef @.str.2, i32 noundef %2435, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 122, ptr noundef %2438, ptr noundef %2441, ptr noundef %2444, i32 noundef %2446) #10
  br label %2465

2448:                                             ; preds = %2426, %2419
  %2449 = load i32, ptr %55, align 4, !tbaa !5
  %2450 = call ptr @__errno_location() #11
  store i32 %2449, ptr %2450, align 4, !tbaa !5
  %2451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2452 = load i32, ptr @test_count, align 4, !tbaa !5
  %2453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2454 = load i32, ptr %2453, align 4, !tbaa !5
  %2455 = call ptr @s2n_strerror(i32 noundef %2454, ptr noundef @.str.4)
  %2456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2457 = load i32, ptr %2456, align 4, !tbaa !5
  %2458 = call ptr @s2n_strerror_debug(i32 noundef %2457, ptr noundef @.str.4)
  %2459 = call ptr @__errno_location() #11
  %2460 = load i32, ptr %2459, align 4, !tbaa !5
  %2461 = call ptr @strerror(i32 noundef %2460) #10
  %2462 = call ptr @__errno_location() #11
  %2463 = load i32, ptr %2462, align 4, !tbaa !5
  %2464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2451, ptr noundef @.str.5, i32 noundef %2452, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 122, ptr noundef %2455, ptr noundef %2458, ptr noundef %2461, i32 noundef %2463) #10
  br label %2465

2465:                                             ; preds = %2448, %2431
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #10
  br label %2466

2466:                                             ; preds = %2465
  br label %2467

2467:                                             ; preds = %2466
  call void @exit(i32 noundef 1) #12
  unreachable

2468:                                             ; No predecessors!
  br label %2469

2469:                                             ; preds = %2468
  br label %2470

2470:                                             ; preds = %2469, %2409
  br label %2471

2471:                                             ; preds = %2470, %2406
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #10
  br label %2472

2472:                                             ; preds = %2471
  br label %2473

2473:                                             ; preds = %2472
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #10
  %2474 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2474, ptr %56, align 8, !tbaa !9
  br label %2475

2475:                                             ; preds = %2473
  %2476 = load i32, ptr @test_count, align 4, !tbaa !5
  %2477 = add nsw i32 %2476, 1
  store i32 %2477, ptr @test_count, align 4, !tbaa !5
  %2478 = load ptr, ptr %56, align 8, !tbaa !9
  %2479 = load ptr, ptr %52, align 8, !tbaa !9
  %2480 = call i32 @s2n_connection_set_config(ptr noundef %2478, ptr noundef %2479)
  %2481 = icmp eq i32 %2480, -1
  br i1 %2481, label %2482, label %2535

2482:                                             ; preds = %2475
  br label %2483

2483:                                             ; preds = %2482
  br label %2484

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

2491:                                             ; preds = %2484
  %2492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2493 = call i32 @fileno(ptr noundef %2492) #10
  %2494 = call i32 @isatty(i32 noundef %2493) #10
  %2495 = icmp ne i32 %2494, 0
  br i1 %2495, label %2496, label %2513

2496:                                             ; preds = %2491
  %2497 = load i32, ptr %57, align 4, !tbaa !5
  %2498 = call ptr @__errno_location() #11
  store i32 %2497, ptr %2498, align 4, !tbaa !5
  %2499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2500 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2502, ptr noundef @.str.4)
  %2504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2505 = load i32, ptr %2504, align 4, !tbaa !5
  %2506 = call ptr @s2n_strerror_debug(i32 noundef %2505, ptr noundef @.str.4)
  %2507 = call ptr @__errno_location() #11
  %2508 = load i32, ptr %2507, align 4, !tbaa !5
  %2509 = call ptr @strerror(i32 noundef %2508) #10
  %2510 = call ptr @__errno_location() #11
  %2511 = load i32, ptr %2510, align 4, !tbaa !5
  %2512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2499, ptr noundef @.str.2, i32 noundef %2500, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2503, ptr noundef %2506, ptr noundef %2509, i32 noundef %2511) #10
  br label %2530

2513:                                             ; preds = %2491, %2484
  %2514 = load i32, ptr %57, align 4, !tbaa !5
  %2515 = call ptr @__errno_location() #11
  store i32 %2514, ptr %2515, align 4, !tbaa !5
  %2516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2517 = load i32, ptr @test_count, align 4, !tbaa !5
  %2518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2519 = load i32, ptr %2518, align 4, !tbaa !5
  %2520 = call ptr @s2n_strerror(i32 noundef %2519, ptr noundef @.str.4)
  %2521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2522 = load i32, ptr %2521, align 4, !tbaa !5
  %2523 = call ptr @s2n_strerror_debug(i32 noundef %2522, ptr noundef @.str.4)
  %2524 = call ptr @__errno_location() #11
  %2525 = load i32, ptr %2524, align 4, !tbaa !5
  %2526 = call ptr @strerror(i32 noundef %2525) #10
  %2527 = call ptr @__errno_location() #11
  %2528 = load i32, ptr %2527, align 4, !tbaa !5
  %2529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2516, ptr noundef @.str.5, i32 noundef %2517, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2520, ptr noundef %2523, ptr noundef %2526, i32 noundef %2528) #10
  br label %2530

2530:                                             ; preds = %2513, %2496
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  br label %2531

2531:                                             ; preds = %2530
  br label %2532

2532:                                             ; preds = %2531
  call void @exit(i32 noundef 1) #12
  unreachable

2533:                                             ; No predecessors!
  br label %2534

2534:                                             ; preds = %2533
  br label %2535

2535:                                             ; preds = %2534, %2475
  br label %2536

2536:                                             ; preds = %2535
  br label %2537

2537:                                             ; preds = %2536
  %2538 = load ptr, ptr %56, align 8, !tbaa !9
  %2539 = getelementptr inbounds %struct.s2n_connection, ptr %2538, i32 0, i32 23
  store i8 34, ptr %2539, align 4, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 40, ptr %58) #10
  call void @llvm.memset.p0.i64(ptr align 8 %58, i8 0, i64 40, i1 false)
  br label %2540

2540:                                             ; preds = %2537
  %2541 = load i32, ptr @test_count, align 4, !tbaa !5
  %2542 = add nsw i32 %2541, 1
  store i32 %2542, ptr @test_count, align 4, !tbaa !5
  %2543 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %58, i32 noundef 0)
  %2544 = icmp eq i32 %2543, -1
  br i1 %2544, label %2545, label %2598

2545:                                             ; preds = %2540
  br label %2546

2546:                                             ; preds = %2545
  br label %2547

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

2554:                                             ; preds = %2547
  %2555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2556 = call i32 @fileno(ptr noundef %2555) #10
  %2557 = call i32 @isatty(i32 noundef %2556) #10
  %2558 = icmp ne i32 %2557, 0
  br i1 %2558, label %2559, label %2576

2559:                                             ; preds = %2554
  %2560 = load i32, ptr %59, align 4, !tbaa !5
  %2561 = call ptr @__errno_location() #11
  store i32 %2560, ptr %2561, align 4, !tbaa !5
  %2562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2563 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2565, ptr noundef @.str.4)
  %2567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2568 = load i32, ptr %2567, align 4, !tbaa !5
  %2569 = call ptr @s2n_strerror_debug(i32 noundef %2568, ptr noundef @.str.4)
  %2570 = call ptr @__errno_location() #11
  %2571 = load i32, ptr %2570, align 4, !tbaa !5
  %2572 = call ptr @strerror(i32 noundef %2571) #10
  %2573 = call ptr @__errno_location() #11
  %2574 = load i32, ptr %2573, align 4, !tbaa !5
  %2575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2562, ptr noundef @.str.2, i32 noundef %2563, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2566, ptr noundef %2569, ptr noundef %2572, i32 noundef %2574) #10
  br label %2593

2576:                                             ; preds = %2554, %2547
  %2577 = load i32, ptr %59, align 4, !tbaa !5
  %2578 = call ptr @__errno_location() #11
  store i32 %2577, ptr %2578, align 4, !tbaa !5
  %2579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2580 = load i32, ptr @test_count, align 4, !tbaa !5
  %2581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2582 = load i32, ptr %2581, align 4, !tbaa !5
  %2583 = call ptr @s2n_strerror(i32 noundef %2582, ptr noundef @.str.4)
  %2584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2585 = load i32, ptr %2584, align 4, !tbaa !5
  %2586 = call ptr @s2n_strerror_debug(i32 noundef %2585, ptr noundef @.str.4)
  %2587 = call ptr @__errno_location() #11
  %2588 = load i32, ptr %2587, align 4, !tbaa !5
  %2589 = call ptr @strerror(i32 noundef %2588) #10
  %2590 = call ptr @__errno_location() #11
  %2591 = load i32, ptr %2590, align 4, !tbaa !5
  %2592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2579, ptr noundef @.str.5, i32 noundef %2580, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2583, ptr noundef %2586, ptr noundef %2589, i32 noundef %2591) #10
  br label %2593

2593:                                             ; preds = %2576, %2559
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  br label %2594

2594:                                             ; preds = %2593
  br label %2595

2595:                                             ; preds = %2594
  call void @exit(i32 noundef 1) #12
  unreachable

2596:                                             ; No predecessors!
  br label %2597

2597:                                             ; preds = %2596
  br label %2598

2598:                                             ; preds = %2597, %2540
  br label %2599

2599:                                             ; preds = %2598
  br label %2600

2600:                                             ; preds = %2599
  br label %2601

2601:                                             ; preds = %2600
  %2602 = load i32, ptr @test_count, align 4, !tbaa !5
  %2603 = add nsw i32 %2602, 1
  store i32 %2603, ptr @test_count, align 4, !tbaa !5
  %2604 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_cert_authorities_extension, i32 0, i32 3), align 8, !tbaa !51
  %2605 = load ptr, ptr %56, align 8, !tbaa !9
  %2606 = call i32 %2604(ptr noundef %2605, ptr noundef %58)
  %2607 = icmp eq i32 %2606, -1
  br i1 %2607, label %2608, label %2661

2608:                                             ; preds = %2601
  br label %2609

2609:                                             ; preds = %2608
  br label %2610

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

2617:                                             ; preds = %2610
  %2618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2619 = call i32 @fileno(ptr noundef %2618) #10
  %2620 = call i32 @isatty(i32 noundef %2619) #10
  %2621 = icmp ne i32 %2620, 0
  br i1 %2621, label %2622, label %2639

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

2639:                                             ; preds = %2617, %2610
  %2640 = load i32, ptr %60, align 4, !tbaa !5
  %2641 = call ptr @__errno_location() #11
  store i32 %2640, ptr %2641, align 4, !tbaa !5
  %2642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2643 = load i32, ptr @test_count, align 4, !tbaa !5
  %2644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2645 = load i32, ptr %2644, align 4, !tbaa !5
  %2646 = call ptr @s2n_strerror(i32 noundef %2645, ptr noundef @.str.4)
  %2647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2648 = load i32, ptr %2647, align 4, !tbaa !5
  %2649 = call ptr @s2n_strerror_debug(i32 noundef %2648, ptr noundef @.str.4)
  %2650 = call ptr @__errno_location() #11
  %2651 = load i32, ptr %2650, align 4, !tbaa !5
  %2652 = call ptr @strerror(i32 noundef %2651) #10
  %2653 = call ptr @__errno_location() #11
  %2654 = load i32, ptr %2653, align 4, !tbaa !5
  %2655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2642, ptr noundef @.str.5, i32 noundef %2643, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 132, ptr noundef %2646, ptr noundef %2649, ptr noundef %2652, i32 noundef %2654) #10
  br label %2656

2656:                                             ; preds = %2639, %2622
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #10
  br label %2657

2657:                                             ; preds = %2656
  br label %2658

2658:                                             ; preds = %2657
  call void @exit(i32 noundef 1) #12
  unreachable

2659:                                             ; No predecessors!
  br label %2660

2660:                                             ; preds = %2659
  br label %2661

2661:                                             ; preds = %2660, %2601
  br label %2662

2662:                                             ; preds = %2661
  br label %2663

2663:                                             ; preds = %2662
  call void @llvm.lifetime.start.p0(i64 2, ptr %61) #10
  store i16 0, ptr %61, align 2, !tbaa !52
  br label %2664

2664:                                             ; preds = %2663
  %2665 = load i32, ptr @test_count, align 4, !tbaa !5
  %2666 = add nsw i32 %2665, 1
  store i32 %2666, ptr @test_count, align 4, !tbaa !5
  %2667 = call i32 @s2n_stuffer_read_uint16(ptr noundef %58, ptr noundef %61)
  %2668 = icmp eq i32 %2667, -1
  br i1 %2668, label %2669, label %2722

2669:                                             ; preds = %2664
  br label %2670

2670:                                             ; preds = %2669
  br label %2671

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

2678:                                             ; preds = %2671
  %2679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2680 = call i32 @fileno(ptr noundef %2679) #10
  %2681 = call i32 @isatty(i32 noundef %2680) #10
  %2682 = icmp ne i32 %2681, 0
  br i1 %2682, label %2683, label %2700

2683:                                             ; preds = %2678
  %2684 = load i32, ptr %62, align 4, !tbaa !5
  %2685 = call ptr @__errno_location() #11
  store i32 %2684, ptr %2685, align 4, !tbaa !5
  %2686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2687 = load i32, ptr @test_count, align 4, !tbaa !5
  %2688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  %2690 = call ptr @s2n_strerror(i32 noundef %2689, ptr noundef @.str.4)
  %2691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2692 = load i32, ptr %2691, align 4, !tbaa !5
  %2693 = call ptr @s2n_strerror_debug(i32 noundef %2692, ptr noundef @.str.4)
  %2694 = call ptr @__errno_location() #11
  %2695 = load i32, ptr %2694, align 4, !tbaa !5
  %2696 = call ptr @strerror(i32 noundef %2695) #10
  %2697 = call ptr @__errno_location() #11
  %2698 = load i32, ptr %2697, align 4, !tbaa !5
  %2699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2686, ptr noundef @.str.2, i32 noundef %2687, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 135, ptr noundef %2690, ptr noundef %2693, ptr noundef %2696, i32 noundef %2698) #10
  br label %2717

2700:                                             ; preds = %2678, %2671
  %2701 = load i32, ptr %62, align 4, !tbaa !5
  %2702 = call ptr @__errno_location() #11
  store i32 %2701, ptr %2702, align 4, !tbaa !5
  %2703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2704 = load i32, ptr @test_count, align 4, !tbaa !5
  %2705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2706 = load i32, ptr %2705, align 4, !tbaa !5
  %2707 = call ptr @s2n_strerror(i32 noundef %2706, ptr noundef @.str.4)
  %2708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2709 = load i32, ptr %2708, align 4, !tbaa !5
  %2710 = call ptr @s2n_strerror_debug(i32 noundef %2709, ptr noundef @.str.4)
  %2711 = call ptr @__errno_location() #11
  %2712 = load i32, ptr %2711, align 4, !tbaa !5
  %2713 = call ptr @strerror(i32 noundef %2712) #10
  %2714 = call ptr @__errno_location() #11
  %2715 = load i32, ptr %2714, align 4, !tbaa !5
  %2716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2703, ptr noundef @.str.5, i32 noundef %2704, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 135, ptr noundef %2707, ptr noundef %2710, ptr noundef %2713, i32 noundef %2715) #10
  br label %2717

2717:                                             ; preds = %2700, %2683
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #10
  br label %2718

2718:                                             ; preds = %2717
  br label %2719

2719:                                             ; preds = %2718
  call void @exit(i32 noundef 1) #12
  unreachable

2720:                                             ; No predecessors!
  br label %2721

2721:                                             ; preds = %2720
  br label %2722

2722:                                             ; preds = %2721, %2664
  br label %2723

2723:                                             ; preds = %2722
  br label %2724

2724:                                             ; preds = %2723
  br label %2725

2725:                                             ; preds = %2724
  %2726 = load i32, ptr @test_count, align 4, !tbaa !5
  %2727 = add nsw i32 %2726, 1
  store i32 %2727, ptr @test_count, align 4, !tbaa !5
  %2728 = load i16, ptr %61, align 2, !tbaa !52
  %2729 = zext i16 %2728 to i64
  %2730 = icmp eq i64 %2729, 17
  br i1 %2730, label %2784, label %2731

2731:                                             ; preds = %2725
  br label %2732

2732:                                             ; preds = %2731
  br label %2733

2733:                                             ; preds = %2732
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #10
  %2734 = call ptr @__errno_location() #11
  %2735 = load i32, ptr %2734, align 4, !tbaa !5
  store i32 %2735, ptr %63, align 4, !tbaa !5
  %2736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2737 = call i32 @s2n_print_stacktrace(ptr noundef %2736)
  %2738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2739 = trunc i8 %2738 to i1
  br i1 %2739, label %2740, label %2762

2740:                                             ; preds = %2733
  %2741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2742 = call i32 @fileno(ptr noundef %2741) #10
  %2743 = call i32 @isatty(i32 noundef %2742) #10
  %2744 = icmp ne i32 %2743, 0
  br i1 %2744, label %2745, label %2762

2745:                                             ; preds = %2740
  %2746 = load i32, ptr %63, align 4, !tbaa !5
  %2747 = call ptr @__errno_location() #11
  store i32 %2746, ptr %2747, align 4, !tbaa !5
  %2748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2749 = load i32, ptr @test_count, align 4, !tbaa !5
  %2750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2751 = load i32, ptr %2750, align 4, !tbaa !5
  %2752 = call ptr @s2n_strerror(i32 noundef %2751, ptr noundef @.str.4)
  %2753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2754 = load i32, ptr %2753, align 4, !tbaa !5
  %2755 = call ptr @s2n_strerror_debug(i32 noundef %2754, ptr noundef @.str.4)
  %2756 = call ptr @__errno_location() #11
  %2757 = load i32, ptr %2756, align 4, !tbaa !5
  %2758 = call ptr @strerror(i32 noundef %2757) #10
  %2759 = call ptr @__errno_location() #11
  %2760 = load i32, ptr %2759, align 4, !tbaa !5
  %2761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2748, ptr noundef @.str.2, i32 noundef %2749, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 136, ptr noundef %2752, ptr noundef %2755, ptr noundef %2758, i32 noundef %2760) #10
  br label %2779

2762:                                             ; preds = %2740, %2733
  %2763 = load i32, ptr %63, align 4, !tbaa !5
  %2764 = call ptr @__errno_location() #11
  store i32 %2763, ptr %2764, align 4, !tbaa !5
  %2765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2766 = load i32, ptr @test_count, align 4, !tbaa !5
  %2767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2768 = load i32, ptr %2767, align 4, !tbaa !5
  %2769 = call ptr @s2n_strerror(i32 noundef %2768, ptr noundef @.str.4)
  %2770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2771 = load i32, ptr %2770, align 4, !tbaa !5
  %2772 = call ptr @s2n_strerror_debug(i32 noundef %2771, ptr noundef @.str.4)
  %2773 = call ptr @__errno_location() #11
  %2774 = load i32, ptr %2773, align 4, !tbaa !5
  %2775 = call ptr @strerror(i32 noundef %2774) #10
  %2776 = call ptr @__errno_location() #11
  %2777 = load i32, ptr %2776, align 4, !tbaa !5
  %2778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2765, ptr noundef @.str.5, i32 noundef %2766, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 136, ptr noundef %2769, ptr noundef %2772, ptr noundef %2775, i32 noundef %2777) #10
  br label %2779

2779:                                             ; preds = %2762, %2745
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #10
  br label %2780

2780:                                             ; preds = %2779
  br label %2781

2781:                                             ; preds = %2780
  call void @exit(i32 noundef 1) #12
  unreachable

2782:                                             ; No predecessors!
  br label %2783

2783:                                             ; preds = %2782
  br label %2784

2784:                                             ; preds = %2783, %2725
  br label %2785

2785:                                             ; preds = %2784
  br label %2786

2786:                                             ; preds = %2785
  br label %2787

2787:                                             ; preds = %2786
  %2788 = load i32, ptr @test_count, align 4, !tbaa !5
  %2789 = add nsw i32 %2788, 1
  store i32 %2789, ptr @test_count, align 4, !tbaa !5
  %2790 = load i16, ptr %61, align 2, !tbaa !52
  %2791 = zext i16 %2790 to i32
  %2792 = getelementptr inbounds %struct.s2n_stuffer, ptr %58, i32 0, i32 2
  %2793 = load i32, ptr %2792, align 4, !tbaa !53
  %2794 = getelementptr inbounds %struct.s2n_stuffer, ptr %58, i32 0, i32 1
  %2795 = load i32, ptr %2794, align 8, !tbaa !54
  %2796 = sub i32 %2793, %2795
  %2797 = icmp eq i32 %2791, %2796
  br i1 %2797, label %2851, label %2798

2798:                                             ; preds = %2787
  br label %2799

2799:                                             ; preds = %2798
  br label %2800

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

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

2812:                                             ; preds = %2807
  %2813 = load i32, ptr %64, align 4, !tbaa !5
  %2814 = call ptr @__errno_location() #11
  store i32 %2813, ptr %2814, align 4, !tbaa !5
  %2815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2816 = load i32, ptr @test_count, align 4, !tbaa !5
  %2817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2818 = load i32, ptr %2817, align 4, !tbaa !5
  %2819 = call ptr @s2n_strerror(i32 noundef %2818, ptr noundef @.str.4)
  %2820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2821 = load i32, ptr %2820, align 4, !tbaa !5
  %2822 = call ptr @s2n_strerror_debug(i32 noundef %2821, ptr noundef @.str.4)
  %2823 = call ptr @__errno_location() #11
  %2824 = load i32, ptr %2823, align 4, !tbaa !5
  %2825 = call ptr @strerror(i32 noundef %2824) #10
  %2826 = call ptr @__errno_location() #11
  %2827 = load i32, ptr %2826, align 4, !tbaa !5
  %2828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2815, ptr noundef @.str.2, i32 noundef %2816, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 137, ptr noundef %2819, ptr noundef %2822, ptr noundef %2825, i32 noundef %2827) #10
  br label %2846

2829:                                             ; preds = %2807, %2800
  %2830 = load i32, ptr %64, align 4, !tbaa !5
  %2831 = call ptr @__errno_location() #11
  store i32 %2830, ptr %2831, align 4, !tbaa !5
  %2832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2833 = load i32, ptr @test_count, align 4, !tbaa !5
  %2834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2835 = load i32, ptr %2834, align 4, !tbaa !5
  %2836 = call ptr @s2n_strerror(i32 noundef %2835, ptr noundef @.str.4)
  %2837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2838 = load i32, ptr %2837, align 4, !tbaa !5
  %2839 = call ptr @s2n_strerror_debug(i32 noundef %2838, ptr noundef @.str.4)
  %2840 = call ptr @__errno_location() #11
  %2841 = load i32, ptr %2840, align 4, !tbaa !5
  %2842 = call ptr @strerror(i32 noundef %2841) #10
  %2843 = call ptr @__errno_location() #11
  %2844 = load i32, ptr %2843, align 4, !tbaa !5
  %2845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2832, ptr noundef @.str.5, i32 noundef %2833, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 137, ptr noundef %2836, ptr noundef %2839, ptr noundef %2842, i32 noundef %2844) #10
  br label %2846

2846:                                             ; preds = %2829, %2812
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #10
  br label %2847

2847:                                             ; preds = %2846
  br label %2848

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

2849:                                             ; No predecessors!
  br label %2850

2850:                                             ; preds = %2849
  br label %2851

2851:                                             ; preds = %2850, %2787
  br label %2852

2852:                                             ; preds = %2851
  br label %2853

2853:                                             ; preds = %2852
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #10
  %2854 = load i16, ptr %61, align 2, !tbaa !52
  %2855 = zext i16 %2854 to i32
  %2856 = call ptr @s2n_stuffer_raw_read(ptr noundef %58, i32 noundef %2855)
  store ptr %2856, ptr %65, align 8, !tbaa !9
  br label %2857

2857:                                             ; preds = %2853
  %2858 = load i32, ptr @test_count, align 4, !tbaa !5
  %2859 = add nsw i32 %2858, 1
  store i32 %2859, ptr @test_count, align 4, !tbaa !5
  %2860 = load ptr, ptr %65, align 8, !tbaa !9
  %2861 = icmp eq ptr %2860, null
  br i1 %2861, label %2862, label %2915

2862:                                             ; preds = %2857
  br label %2863

2863:                                             ; preds = %2862
  br label %2864

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

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

2876:                                             ; preds = %2871
  %2877 = load i32, ptr %66, align 4, !tbaa !5
  %2878 = call ptr @__errno_location() #11
  store i32 %2877, ptr %2878, align 4, !tbaa !5
  %2879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2880 = load i32, ptr @test_count, align 4, !tbaa !5
  %2881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2882 = load i32, ptr %2881, align 4, !tbaa !5
  %2883 = call ptr @s2n_strerror(i32 noundef %2882, ptr noundef @.str.4)
  %2884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2885 = load i32, ptr %2884, align 4, !tbaa !5
  %2886 = call ptr @s2n_strerror_debug(i32 noundef %2885, ptr noundef @.str.4)
  %2887 = call ptr @__errno_location() #11
  %2888 = load i32, ptr %2887, align 4, !tbaa !5
  %2889 = call ptr @strerror(i32 noundef %2888) #10
  %2890 = call ptr @__errno_location() #11
  %2891 = load i32, ptr %2890, align 4, !tbaa !5
  %2892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2879, ptr noundef @.str.2, i32 noundef %2880, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 140, ptr noundef %2883, ptr noundef %2886, ptr noundef %2889, i32 noundef %2891) #10
  br label %2910

2893:                                             ; preds = %2871, %2864
  %2894 = load i32, ptr %66, align 4, !tbaa !5
  %2895 = call ptr @__errno_location() #11
  store i32 %2894, ptr %2895, align 4, !tbaa !5
  %2896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2897 = load i32, ptr @test_count, align 4, !tbaa !5
  %2898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2899 = load i32, ptr %2898, align 4, !tbaa !5
  %2900 = call ptr @s2n_strerror(i32 noundef %2899, ptr noundef @.str.4)
  %2901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2902 = load i32, ptr %2901, align 4, !tbaa !5
  %2903 = call ptr @s2n_strerror_debug(i32 noundef %2902, ptr noundef @.str.4)
  %2904 = call ptr @__errno_location() #11
  %2905 = load i32, ptr %2904, align 4, !tbaa !5
  %2906 = call ptr @strerror(i32 noundef %2905) #10
  %2907 = call ptr @__errno_location() #11
  %2908 = load i32, ptr %2907, align 4, !tbaa !5
  %2909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2896, ptr noundef @.str.5, i32 noundef %2897, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 140, ptr noundef %2900, ptr noundef %2903, ptr noundef %2906, i32 noundef %2908) #10
  br label %2910

2910:                                             ; preds = %2893, %2876
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #10
  br label %2911

2911:                                             ; preds = %2910
  br label %2912

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

2913:                                             ; No predecessors!
  br label %2914

2914:                                             ; preds = %2913
  br label %2915

2915:                                             ; preds = %2914, %2857
  br label %2916

2916:                                             ; preds = %2915
  br label %2917

2917:                                             ; preds = %2916
  br label %2918

2918:                                             ; preds = %2917
  br label %2919

2919:                                             ; preds = %2918
  %2920 = load i32, ptr @test_count, align 4, !tbaa !5
  %2921 = add nsw i32 %2920, 1
  store i32 %2921, ptr @test_count, align 4, !tbaa !5
  %2922 = load ptr, ptr %65, align 8, !tbaa !9
  %2923 = getelementptr inbounds [17 x i8], ptr %51, i64 0, i64 0
  %2924 = call i32 @memcmp(ptr noundef %2922, ptr noundef %2923, i64 noundef 17) #13
  %2925 = icmp eq i32 %2924, 0
  br i1 %2925, label %2979, label %2926

2926:                                             ; preds = %2919
  br label %2927

2927:                                             ; preds = %2926
  br label %2928

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

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

2940:                                             ; preds = %2935
  %2941 = load i32, ptr %67, align 4, !tbaa !5
  %2942 = call ptr @__errno_location() #11
  store i32 %2941, ptr %2942, align 4, !tbaa !5
  %2943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2944 = load i32, ptr @test_count, align 4, !tbaa !5
  %2945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2946 = load i32, ptr %2945, align 4, !tbaa !5
  %2947 = call ptr @s2n_strerror(i32 noundef %2946, ptr noundef @.str.4)
  %2948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2949 = load i32, ptr %2948, align 4, !tbaa !5
  %2950 = call ptr @s2n_strerror_debug(i32 noundef %2949, ptr noundef @.str.4)
  %2951 = call ptr @__errno_location() #11
  %2952 = load i32, ptr %2951, align 4, !tbaa !5
  %2953 = call ptr @strerror(i32 noundef %2952) #10
  %2954 = call ptr @__errno_location() #11
  %2955 = load i32, ptr %2954, align 4, !tbaa !5
  %2956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2943, ptr noundef @.str.2, i32 noundef %2944, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 141, ptr noundef %2947, ptr noundef %2950, ptr noundef %2953, i32 noundef %2955) #10
  br label %2974

2957:                                             ; preds = %2935, %2928
  %2958 = load i32, ptr %67, align 4, !tbaa !5
  %2959 = call ptr @__errno_location() #11
  store i32 %2958, ptr %2959, align 4, !tbaa !5
  %2960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2961 = load i32, ptr @test_count, align 4, !tbaa !5
  %2962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2963 = load i32, ptr %2962, align 4, !tbaa !5
  %2964 = call ptr @s2n_strerror(i32 noundef %2963, ptr noundef @.str.4)
  %2965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2966 = load i32, ptr %2965, align 4, !tbaa !5
  %2967 = call ptr @s2n_strerror_debug(i32 noundef %2966, ptr noundef @.str.4)
  %2968 = call ptr @__errno_location() #11
  %2969 = load i32, ptr %2968, align 4, !tbaa !5
  %2970 = call ptr @strerror(i32 noundef %2969) #10
  %2971 = call ptr @__errno_location() #11
  %2972 = load i32, ptr %2971, align 4, !tbaa !5
  %2973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2960, ptr noundef @.str.5, i32 noundef %2961, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 141, ptr noundef %2964, ptr noundef %2967, ptr noundef %2970, i32 noundef %2972) #10
  br label %2974

2974:                                             ; preds = %2957, %2940
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #10
  br label %2975

2975:                                             ; preds = %2974
  br label %2976

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

2977:                                             ; No predecessors!
  br label %2978

2978:                                             ; preds = %2977
  br label %2979

2979:                                             ; preds = %2978, %2919
  br label %2980

2980:                                             ; preds = %2979
  br label %2981

2981:                                             ; preds = %2980
  br label %2982

2982:                                             ; preds = %2981
  br label %2983

2983:                                             ; preds = %2982
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #10
  call void @llvm.lifetime.end.p0(i64 2, ptr %61) #10
  %2984 = call i32 @s2n_stuffer_free(ptr noundef %58)
  call void @llvm.lifetime.end.p0(i64 40, ptr %58) #10
  %2985 = call i32 @s2n_connection_ptr_free(ptr noundef %56)
  %2986 = getelementptr inbounds %struct.s2n_result, ptr %68, i32 0, i32 0
  store i32 %2985, ptr %2986, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #10
  %2987 = call i32 @s2n_config_ptr_free(ptr noundef %52)
  %2988 = getelementptr inbounds %struct.s2n_result, ptr %69, i32 0, i32 0
  store i32 %2987, ptr %2988, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #10
  call void @llvm.lifetime.end.p0(i64 17, ptr %51) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #10
  %2989 = call ptr @s2n_config_new_minimal()
  store ptr %2989, ptr %70, align 8, !tbaa !9
  br label %2990

2990:                                             ; preds = %2983
  %2991 = load i32, ptr @test_count, align 4, !tbaa !5
  %2992 = add nsw i32 %2991, 1
  store i32 %2992, ptr @test_count, align 4, !tbaa !5
  %2993 = load ptr, ptr %70, align 8, !tbaa !9
  %2994 = getelementptr inbounds %struct.s2n_config, ptr %2993, i32 0, i32 56
  %2995 = call i32 @s2n_alloc(ptr noundef %2994, i32 noundef 10)
  %2996 = icmp eq i32 %2995, -1
  br i1 %2996, label %2997, label %3050

2997:                                             ; preds = %2990
  br label %2998

2998:                                             ; preds = %2997
  br label %2999

2999:                                             ; preds = %2998
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #10
  %3000 = call ptr @__errno_location() #11
  %3001 = load i32, ptr %3000, align 4, !tbaa !5
  store i32 %3001, ptr %71, align 4, !tbaa !5
  %3002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3003 = call i32 @s2n_print_stacktrace(ptr noundef %3002)
  %3004 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3005 = trunc i8 %3004 to i1
  br i1 %3005, label %3006, label %3028

3006:                                             ; preds = %2999
  %3007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3008 = call i32 @fileno(ptr noundef %3007) #10
  %3009 = call i32 @isatty(i32 noundef %3008) #10
  %3010 = icmp ne i32 %3009, 0
  br i1 %3010, label %3011, label %3028

3011:                                             ; preds = %3006
  %3012 = load i32, ptr %71, align 4, !tbaa !5
  %3013 = call ptr @__errno_location() #11
  store i32 %3012, ptr %3013, align 4, !tbaa !5
  %3014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3015 = load i32, ptr @test_count, align 4, !tbaa !5
  %3016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3017 = load i32, ptr %3016, align 4, !tbaa !5
  %3018 = call ptr @s2n_strerror(i32 noundef %3017, ptr noundef @.str.4)
  %3019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3020 = load i32, ptr %3019, align 4, !tbaa !5
  %3021 = call ptr @s2n_strerror_debug(i32 noundef %3020, ptr noundef @.str.4)
  %3022 = call ptr @__errno_location() #11
  %3023 = load i32, ptr %3022, align 4, !tbaa !5
  %3024 = call ptr @strerror(i32 noundef %3023) #10
  %3025 = call ptr @__errno_location() #11
  %3026 = load i32, ptr %3025, align 4, !tbaa !5
  %3027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3014, ptr noundef @.str.2, i32 noundef %3015, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 150, ptr noundef %3018, ptr noundef %3021, ptr noundef %3024, i32 noundef %3026) #10
  br label %3045

3028:                                             ; preds = %3006, %2999
  %3029 = load i32, ptr %71, align 4, !tbaa !5
  %3030 = call ptr @__errno_location() #11
  store i32 %3029, ptr %3030, align 4, !tbaa !5
  %3031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3032 = load i32, ptr @test_count, align 4, !tbaa !5
  %3033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3034 = load i32, ptr %3033, align 4, !tbaa !5
  %3035 = call ptr @s2n_strerror(i32 noundef %3034, ptr noundef @.str.4)
  %3036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3037 = load i32, ptr %3036, align 4, !tbaa !5
  %3038 = call ptr @s2n_strerror_debug(i32 noundef %3037, ptr noundef @.str.4)
  %3039 = call ptr @__errno_location() #11
  %3040 = load i32, ptr %3039, align 4, !tbaa !5
  %3041 = call ptr @strerror(i32 noundef %3040) #10
  %3042 = call ptr @__errno_location() #11
  %3043 = load i32, ptr %3042, align 4, !tbaa !5
  %3044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3031, ptr noundef @.str.5, i32 noundef %3032, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 150, ptr noundef %3035, ptr noundef %3038, ptr noundef %3041, i32 noundef %3043) #10
  br label %3045

3045:                                             ; preds = %3028, %3011
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #10
  br label %3046

3046:                                             ; preds = %3045
  br label %3047

3047:                                             ; preds = %3046
  call void @exit(i32 noundef 1) #12
  unreachable

3048:                                             ; No predecessors!
  br label %3049

3049:                                             ; preds = %3048
  br label %3050

3050:                                             ; preds = %3049, %2990
  br label %3051

3051:                                             ; preds = %3050
  br label %3052

3052:                                             ; preds = %3051
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #10
  %3053 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3053, ptr %72, align 8, !tbaa !9
  br label %3054

3054:                                             ; preds = %3052
  %3055 = load i32, ptr @test_count, align 4, !tbaa !5
  %3056 = add nsw i32 %3055, 1
  store i32 %3056, ptr @test_count, align 4, !tbaa !5
  %3057 = load ptr, ptr %72, align 8, !tbaa !9
  %3058 = load ptr, ptr %70, align 8, !tbaa !9
  %3059 = call i32 @s2n_connection_set_config(ptr noundef %3057, ptr noundef %3058)
  %3060 = icmp eq i32 %3059, -1
  br i1 %3060, label %3061, label %3114

3061:                                             ; preds = %3054
  br label %3062

3062:                                             ; preds = %3061
  br label %3063

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

3070:                                             ; preds = %3063
  %3071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3072 = call i32 @fileno(ptr noundef %3071) #10
  %3073 = call i32 @isatty(i32 noundef %3072) #10
  %3074 = icmp ne i32 %3073, 0
  br i1 %3074, label %3075, label %3092

3075:                                             ; preds = %3070
  %3076 = load i32, ptr %73, align 4, !tbaa !5
  %3077 = call ptr @__errno_location() #11
  store i32 %3076, ptr %3077, align 4, !tbaa !5
  %3078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3079 = load i32, ptr @test_count, align 4, !tbaa !5
  %3080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3081 = load i32, ptr %3080, align 4, !tbaa !5
  %3082 = call ptr @s2n_strerror(i32 noundef %3081, ptr noundef @.str.4)
  %3083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3084 = load i32, ptr %3083, align 4, !tbaa !5
  %3085 = call ptr @s2n_strerror_debug(i32 noundef %3084, ptr noundef @.str.4)
  %3086 = call ptr @__errno_location() #11
  %3087 = load i32, ptr %3086, align 4, !tbaa !5
  %3088 = call ptr @strerror(i32 noundef %3087) #10
  %3089 = call ptr @__errno_location() #11
  %3090 = load i32, ptr %3089, align 4, !tbaa !5
  %3091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3078, ptr noundef @.str.2, i32 noundef %3079, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 154, ptr noundef %3082, ptr noundef %3085, ptr noundef %3088, i32 noundef %3090) #10
  br label %3109

3092:                                             ; preds = %3070, %3063
  %3093 = load i32, ptr %73, align 4, !tbaa !5
  %3094 = call ptr @__errno_location() #11
  store i32 %3093, ptr %3094, align 4, !tbaa !5
  %3095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3096 = load i32, ptr @test_count, align 4, !tbaa !5
  %3097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3098 = load i32, ptr %3097, align 4, !tbaa !5
  %3099 = call ptr @s2n_strerror(i32 noundef %3098, ptr noundef @.str.4)
  %3100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3101 = load i32, ptr %3100, align 4, !tbaa !5
  %3102 = call ptr @s2n_strerror_debug(i32 noundef %3101, ptr noundef @.str.4)
  %3103 = call ptr @__errno_location() #11
  %3104 = load i32, ptr %3103, align 4, !tbaa !5
  %3105 = call ptr @strerror(i32 noundef %3104) #10
  %3106 = call ptr @__errno_location() #11
  %3107 = load i32, ptr %3106, align 4, !tbaa !5
  %3108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3095, ptr noundef @.str.5, i32 noundef %3096, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 154, ptr noundef %3099, ptr noundef %3102, ptr noundef %3105, i32 noundef %3107) #10
  br label %3109

3109:                                             ; preds = %3092, %3075
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #10
  br label %3110

3110:                                             ; preds = %3109
  br label %3111

3111:                                             ; preds = %3110
  call void @exit(i32 noundef 1) #12
  unreachable

3112:                                             ; No predecessors!
  br label %3113

3113:                                             ; preds = %3112
  br label %3114

3114:                                             ; preds = %3113, %3054
  br label %3115

3115:                                             ; preds = %3114
  br label %3116

3116:                                             ; preds = %3115
  call void @llvm.lifetime.start.p0(i64 40, ptr %74) #10
  call void @llvm.memset.p0.i64(ptr align 8 %74, i8 0, i64 40, i1 false)
  br label %3117

3117:                                             ; preds = %3116
  %3118 = load i32, ptr @test_count, align 4, !tbaa !5
  %3119 = add nsw i32 %3118, 1
  store i32 %3119, ptr @test_count, align 4, !tbaa !5
  %3120 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %74, i32 noundef 0)
  %3121 = icmp eq i32 %3120, -1
  br i1 %3121, label %3122, label %3175

3122:                                             ; preds = %3117
  br label %3123

3123:                                             ; preds = %3122
  br label %3124

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

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

3136:                                             ; preds = %3131
  %3137 = load i32, ptr %75, align 4, !tbaa !5
  %3138 = call ptr @__errno_location() #11
  store i32 %3137, ptr %3138, align 4, !tbaa !5
  %3139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3140 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3142, ptr noundef @.str.4)
  %3144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3145 = load i32, ptr %3144, align 4, !tbaa !5
  %3146 = call ptr @s2n_strerror_debug(i32 noundef %3145, ptr noundef @.str.4)
  %3147 = call ptr @__errno_location() #11
  %3148 = load i32, ptr %3147, align 4, !tbaa !5
  %3149 = call ptr @strerror(i32 noundef %3148) #10
  %3150 = call ptr @__errno_location() #11
  %3151 = load i32, ptr %3150, align 4, !tbaa !5
  %3152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3139, ptr noundef @.str.2, i32 noundef %3140, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3143, ptr noundef %3146, ptr noundef %3149, i32 noundef %3151) #10
  br label %3170

3153:                                             ; preds = %3131, %3124
  %3154 = load i32, ptr %75, align 4, !tbaa !5
  %3155 = call ptr @__errno_location() #11
  store i32 %3154, ptr %3155, align 4, !tbaa !5
  %3156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3157 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3159, ptr noundef @.str.4)
  %3161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3162 = load i32, ptr %3161, align 4, !tbaa !5
  %3163 = call ptr @s2n_strerror_debug(i32 noundef %3162, ptr noundef @.str.4)
  %3164 = call ptr @__errno_location() #11
  %3165 = load i32, ptr %3164, align 4, !tbaa !5
  %3166 = call ptr @strerror(i32 noundef %3165) #10
  %3167 = call ptr @__errno_location() #11
  %3168 = load i32, ptr %3167, align 4, !tbaa !5
  %3169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3156, ptr noundef @.str.5, i32 noundef %3157, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 157, ptr noundef %3160, ptr noundef %3163, ptr noundef %3166, i32 noundef %3168) #10
  br label %3170

3170:                                             ; preds = %3153, %3136
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #10
  br label %3171

3171:                                             ; preds = %3170
  br label %3172

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

3173:                                             ; No predecessors!
  br label %3174

3174:                                             ; preds = %3173
  br label %3175

3175:                                             ; preds = %3174, %3117
  br label %3176

3176:                                             ; preds = %3175
  br label %3177

3177:                                             ; preds = %3176
  %3178 = load ptr, ptr %72, align 8, !tbaa !9
  %3179 = getelementptr inbounds %struct.s2n_connection, ptr %3178, i32 0, i32 23
  store i8 33, ptr %3179, align 4, !tbaa !27
  br label %3180

3180:                                             ; preds = %3177
  %3181 = load i32, ptr @test_count, align 4, !tbaa !5
  %3182 = add nsw i32 %3181, 1
  store i32 %3182, ptr @test_count, align 4, !tbaa !5
  %3183 = load ptr, ptr %72, align 8, !tbaa !9
  %3184 = call i32 @s2n_extension_send(ptr noundef @s2n_cert_authorities_extension, ptr noundef %3183, ptr noundef %74)
  %3185 = icmp eq i32 %3184, -1
  br i1 %3185, label %3186, label %3239

3186:                                             ; preds = %3180
  br label %3187

3187:                                             ; preds = %3186
  br label %3188

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

3195:                                             ; preds = %3188
  %3196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3197 = call i32 @fileno(ptr noundef %3196) #10
  %3198 = call i32 @isatty(i32 noundef %3197) #10
  %3199 = icmp ne i32 %3198, 0
  br i1 %3199, label %3200, label %3217

3200:                                             ; preds = %3195
  %3201 = load i32, ptr %76, align 4, !tbaa !5
  %3202 = call ptr @__errno_location() #11
  store i32 %3201, ptr %3202, align 4, !tbaa !5
  %3203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3204 = load i32, ptr @test_count, align 4, !tbaa !5
  %3205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3206 = load i32, ptr %3205, align 4, !tbaa !5
  %3207 = call ptr @s2n_strerror(i32 noundef %3206, ptr noundef @.str.4)
  %3208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3209 = load i32, ptr %3208, align 4, !tbaa !5
  %3210 = call ptr @s2n_strerror_debug(i32 noundef %3209, ptr noundef @.str.4)
  %3211 = call ptr @__errno_location() #11
  %3212 = load i32, ptr %3211, align 4, !tbaa !5
  %3213 = call ptr @strerror(i32 noundef %3212) #10
  %3214 = call ptr @__errno_location() #11
  %3215 = load i32, ptr %3214, align 4, !tbaa !5
  %3216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3203, ptr noundef @.str.2, i32 noundef %3204, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 161, ptr noundef %3207, ptr noundef %3210, ptr noundef %3213, i32 noundef %3215) #10
  br label %3234

3217:                                             ; preds = %3195, %3188
  %3218 = load i32, ptr %76, align 4, !tbaa !5
  %3219 = call ptr @__errno_location() #11
  store i32 %3218, ptr %3219, align 4, !tbaa !5
  %3220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3221 = load i32, ptr @test_count, align 4, !tbaa !5
  %3222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3223 = load i32, ptr %3222, align 4, !tbaa !5
  %3224 = call ptr @s2n_strerror(i32 noundef %3223, ptr noundef @.str.4)
  %3225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3226 = load i32, ptr %3225, align 4, !tbaa !5
  %3227 = call ptr @s2n_strerror_debug(i32 noundef %3226, ptr noundef @.str.4)
  %3228 = call ptr @__errno_location() #11
  %3229 = load i32, ptr %3228, align 4, !tbaa !5
  %3230 = call ptr @strerror(i32 noundef %3229) #10
  %3231 = call ptr @__errno_location() #11
  %3232 = load i32, ptr %3231, align 4, !tbaa !5
  %3233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3220, ptr noundef @.str.5, i32 noundef %3221, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 161, ptr noundef %3224, ptr noundef %3227, ptr noundef %3230, i32 noundef %3232) #10
  br label %3234

3234:                                             ; preds = %3217, %3200
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #10
  br label %3235

3235:                                             ; preds = %3234
  br label %3236

3236:                                             ; preds = %3235
  call void @exit(i32 noundef 1) #12
  unreachable

3237:                                             ; No predecessors!
  br label %3238

3238:                                             ; preds = %3237
  br label %3239

3239:                                             ; preds = %3238, %3180
  br label %3240

3240:                                             ; preds = %3239
  br label %3241

3241:                                             ; preds = %3240
  br label %3242

3242:                                             ; preds = %3241
  %3243 = load i32, ptr @test_count, align 4, !tbaa !5
  %3244 = add nsw i32 %3243, 1
  store i32 %3244, ptr @test_count, align 4, !tbaa !5
  %3245 = getelementptr inbounds %struct.s2n_stuffer, ptr %74, i32 0, i32 2
  %3246 = load i32, ptr %3245, align 4, !tbaa !53
  %3247 = getelementptr inbounds %struct.s2n_stuffer, ptr %74, i32 0, i32 1
  %3248 = load i32, ptr %3247, align 8, !tbaa !54
  %3249 = sub i32 %3246, %3248
  %3250 = icmp eq i32 %3249, 0
  br i1 %3250, label %3304, label %3251

3251:                                             ; preds = %3242
  br label %3252

3252:                                             ; preds = %3251
  br label %3253

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

3260:                                             ; preds = %3253
  %3261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3262 = call i32 @fileno(ptr noundef %3261) #10
  %3263 = call i32 @isatty(i32 noundef %3262) #10
  %3264 = icmp ne i32 %3263, 0
  br i1 %3264, label %3265, label %3282

3265:                                             ; preds = %3260
  %3266 = load i32, ptr %77, align 4, !tbaa !5
  %3267 = call ptr @__errno_location() #11
  store i32 %3266, ptr %3267, align 4, !tbaa !5
  %3268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3269 = load i32, ptr @test_count, align 4, !tbaa !5
  %3270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3271 = load i32, ptr %3270, align 4, !tbaa !5
  %3272 = call ptr @s2n_strerror(i32 noundef %3271, ptr noundef @.str.4)
  %3273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3274 = load i32, ptr %3273, align 4, !tbaa !5
  %3275 = call ptr @s2n_strerror_debug(i32 noundef %3274, ptr noundef @.str.4)
  %3276 = call ptr @__errno_location() #11
  %3277 = load i32, ptr %3276, align 4, !tbaa !5
  %3278 = call ptr @strerror(i32 noundef %3277) #10
  %3279 = call ptr @__errno_location() #11
  %3280 = load i32, ptr %3279, align 4, !tbaa !5
  %3281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3268, ptr noundef @.str.2, i32 noundef %3269, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 162, ptr noundef %3272, ptr noundef %3275, ptr noundef %3278, i32 noundef %3280) #10
  br label %3299

3282:                                             ; preds = %3260, %3253
  %3283 = load i32, ptr %77, align 4, !tbaa !5
  %3284 = call ptr @__errno_location() #11
  store i32 %3283, ptr %3284, align 4, !tbaa !5
  %3285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3286 = load i32, ptr @test_count, align 4, !tbaa !5
  %3287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3288 = load i32, ptr %3287, align 4, !tbaa !5
  %3289 = call ptr @s2n_strerror(i32 noundef %3288, ptr noundef @.str.4)
  %3290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3291 = load i32, ptr %3290, align 4, !tbaa !5
  %3292 = call ptr @s2n_strerror_debug(i32 noundef %3291, ptr noundef @.str.4)
  %3293 = call ptr @__errno_location() #11
  %3294 = load i32, ptr %3293, align 4, !tbaa !5
  %3295 = call ptr @strerror(i32 noundef %3294) #10
  %3296 = call ptr @__errno_location() #11
  %3297 = load i32, ptr %3296, align 4, !tbaa !5
  %3298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3285, ptr noundef @.str.5, i32 noundef %3286, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 162, ptr noundef %3289, ptr noundef %3292, ptr noundef %3295, i32 noundef %3297) #10
  br label %3299

3299:                                             ; preds = %3282, %3265
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #10
  br label %3300

3300:                                             ; preds = %3299
  br label %3301

3301:                                             ; preds = %3300
  call void @exit(i32 noundef 1) #12
  unreachable

3302:                                             ; No predecessors!
  br label %3303

3303:                                             ; preds = %3302
  br label %3304

3304:                                             ; preds = %3303, %3242
  br label %3305

3305:                                             ; preds = %3304
  br label %3306

3306:                                             ; preds = %3305
  %3307 = load ptr, ptr %72, align 8, !tbaa !9
  %3308 = getelementptr inbounds %struct.s2n_connection, ptr %3307, i32 0, i32 23
  store i8 34, ptr %3308, align 4, !tbaa !27
  br label %3309

3309:                                             ; preds = %3306
  %3310 = load i32, ptr @test_count, align 4, !tbaa !5
  %3311 = add nsw i32 %3310, 1
  store i32 %3311, ptr @test_count, align 4, !tbaa !5
  %3312 = load ptr, ptr %72, align 8, !tbaa !9
  %3313 = call i32 @s2n_extension_send(ptr noundef @s2n_cert_authorities_extension, ptr noundef %3312, ptr noundef %74)
  %3314 = icmp eq i32 %3313, -1
  br i1 %3314, label %3315, label %3368

3315:                                             ; preds = %3309
  br label %3316

3316:                                             ; preds = %3315
  br label %3317

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

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

3329:                                             ; preds = %3324
  %3330 = load i32, ptr %78, align 4, !tbaa !5
  %3331 = call ptr @__errno_location() #11
  store i32 %3330, ptr %3331, align 4, !tbaa !5
  %3332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3333 = load i32, ptr @test_count, align 4, !tbaa !5
  %3334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3335 = load i32, ptr %3334, align 4, !tbaa !5
  %3336 = call ptr @s2n_strerror(i32 noundef %3335, ptr noundef @.str.4)
  %3337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3338 = load i32, ptr %3337, align 4, !tbaa !5
  %3339 = call ptr @s2n_strerror_debug(i32 noundef %3338, ptr noundef @.str.4)
  %3340 = call ptr @__errno_location() #11
  %3341 = load i32, ptr %3340, align 4, !tbaa !5
  %3342 = call ptr @strerror(i32 noundef %3341) #10
  %3343 = call ptr @__errno_location() #11
  %3344 = load i32, ptr %3343, align 4, !tbaa !5
  %3345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3332, ptr noundef @.str.2, i32 noundef %3333, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 166, ptr noundef %3336, ptr noundef %3339, ptr noundef %3342, i32 noundef %3344) #10
  br label %3363

3346:                                             ; preds = %3324, %3317
  %3347 = load i32, ptr %78, align 4, !tbaa !5
  %3348 = call ptr @__errno_location() #11
  store i32 %3347, ptr %3348, align 4, !tbaa !5
  %3349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3350 = load i32, ptr @test_count, align 4, !tbaa !5
  %3351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3352 = load i32, ptr %3351, align 4, !tbaa !5
  %3353 = call ptr @s2n_strerror(i32 noundef %3352, ptr noundef @.str.4)
  %3354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3355 = load i32, ptr %3354, align 4, !tbaa !5
  %3356 = call ptr @s2n_strerror_debug(i32 noundef %3355, ptr noundef @.str.4)
  %3357 = call ptr @__errno_location() #11
  %3358 = load i32, ptr %3357, align 4, !tbaa !5
  %3359 = call ptr @strerror(i32 noundef %3358) #10
  %3360 = call ptr @__errno_location() #11
  %3361 = load i32, ptr %3360, align 4, !tbaa !5
  %3362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3349, ptr noundef @.str.5, i32 noundef %3350, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 166, ptr noundef %3353, ptr noundef %3356, ptr noundef %3359, i32 noundef %3361) #10
  br label %3363

3363:                                             ; preds = %3346, %3329
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #10
  br label %3364

3364:                                             ; preds = %3363
  br label %3365

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

3366:                                             ; No predecessors!
  br label %3367

3367:                                             ; preds = %3366
  br label %3368

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

3369:                                             ; preds = %3368
  br label %3370

3370:                                             ; preds = %3369
  br label %3371

3371:                                             ; preds = %3370
  %3372 = load i32, ptr @test_count, align 4, !tbaa !5
  %3373 = add nsw i32 %3372, 1
  store i32 %3373, ptr @test_count, align 4, !tbaa !5
  %3374 = getelementptr inbounds %struct.s2n_stuffer, ptr %74, i32 0, i32 2
  %3375 = load i32, ptr %3374, align 4, !tbaa !53
  %3376 = getelementptr inbounds %struct.s2n_stuffer, ptr %74, i32 0, i32 1
  %3377 = load i32, ptr %3376, align 8, !tbaa !54
  %3378 = sub i32 %3375, %3377
  %3379 = icmp eq i32 %3378, 0
  br i1 %3379, label %3380, label %3433

3380:                                             ; preds = %3371
  br label %3381

3381:                                             ; preds = %3380
  br label %3382

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

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

3394:                                             ; preds = %3389
  %3395 = load i32, ptr %79, align 4, !tbaa !5
  %3396 = call ptr @__errno_location() #11
  store i32 %3395, ptr %3396, align 4, !tbaa !5
  %3397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3398 = load i32, ptr @test_count, align 4, !tbaa !5
  %3399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3400 = load i32, ptr %3399, align 4, !tbaa !5
  %3401 = call ptr @s2n_strerror(i32 noundef %3400, ptr noundef @.str.4)
  %3402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3403 = load i32, ptr %3402, align 4, !tbaa !5
  %3404 = call ptr @s2n_strerror_debug(i32 noundef %3403, ptr noundef @.str.4)
  %3405 = call ptr @__errno_location() #11
  %3406 = load i32, ptr %3405, align 4, !tbaa !5
  %3407 = call ptr @strerror(i32 noundef %3406) #10
  %3408 = call ptr @__errno_location() #11
  %3409 = load i32, ptr %3408, align 4, !tbaa !5
  %3410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3397, ptr noundef @.str.2, i32 noundef %3398, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 167, ptr noundef %3401, ptr noundef %3404, ptr noundef %3407, i32 noundef %3409) #10
  br label %3428

3411:                                             ; preds = %3389, %3382
  %3412 = load i32, ptr %79, align 4, !tbaa !5
  %3413 = call ptr @__errno_location() #11
  store i32 %3412, ptr %3413, align 4, !tbaa !5
  %3414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3415 = load i32, ptr @test_count, align 4, !tbaa !5
  %3416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3417 = load i32, ptr %3416, align 4, !tbaa !5
  %3418 = call ptr @s2n_strerror(i32 noundef %3417, ptr noundef @.str.4)
  %3419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3420 = load i32, ptr %3419, align 4, !tbaa !5
  %3421 = call ptr @s2n_strerror_debug(i32 noundef %3420, ptr noundef @.str.4)
  %3422 = call ptr @__errno_location() #11
  %3423 = load i32, ptr %3422, align 4, !tbaa !5
  %3424 = call ptr @strerror(i32 noundef %3423) #10
  %3425 = call ptr @__errno_location() #11
  %3426 = load i32, ptr %3425, align 4, !tbaa !5
  %3427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3414, ptr noundef @.str.5, i32 noundef %3415, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 167, ptr noundef %3418, ptr noundef %3421, ptr noundef %3424, i32 noundef %3426) #10
  br label %3428

3428:                                             ; preds = %3411, %3394
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #10
  br label %3429

3429:                                             ; preds = %3428
  br label %3430

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

3431:                                             ; No predecessors!
  br label %3432

3432:                                             ; preds = %3431
  br label %3433

3433:                                             ; preds = %3432, %3371
  br label %3434

3434:                                             ; preds = %3433
  br label %3435

3435:                                             ; preds = %3434
  %3436 = call i32 @s2n_stuffer_free(ptr noundef %74)
  call void @llvm.lifetime.end.p0(i64 40, ptr %74) #10
  %3437 = call i32 @s2n_connection_ptr_free(ptr noundef %72)
  %3438 = getelementptr inbounds %struct.s2n_result, ptr %80, i32 0, i32 0
  store i32 %3437, ptr %3438, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #10
  %3439 = call i32 @s2n_config_ptr_free(ptr noundef %70)
  %3440 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  store i32 %3439, ptr %3440, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #10
  %3441 = call ptr @s2n_config_new_minimal()
  store ptr %3441, ptr %82, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #10
  %3442 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3442, ptr %83, align 8, !tbaa !9
  br label %3443

3443:                                             ; preds = %3435
  %3444 = load i32, ptr @test_count, align 4, !tbaa !5
  %3445 = add nsw i32 %3444, 1
  store i32 %3445, ptr @test_count, align 4, !tbaa !5
  %3446 = load ptr, ptr %83, align 8, !tbaa !9
  %3447 = load ptr, ptr %82, align 8, !tbaa !9
  %3448 = call i32 @s2n_connection_set_config(ptr noundef %3446, ptr noundef %3447)
  %3449 = icmp eq i32 %3448, -1
  br i1 %3449, label %3450, label %3503

3450:                                             ; preds = %3443
  br label %3451

3451:                                             ; preds = %3450
  br label %3452

3452:                                             ; preds = %3451
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #10
  %3453 = call ptr @__errno_location() #11
  %3454 = load i32, ptr %3453, align 4, !tbaa !5
  store i32 %3454, ptr %84, align 4, !tbaa !5
  %3455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3456 = call i32 @s2n_print_stacktrace(ptr noundef %3455)
  %3457 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3458 = trunc i8 %3457 to i1
  br i1 %3458, label %3459, label %3481

3459:                                             ; preds = %3452
  %3460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3461 = call i32 @fileno(ptr noundef %3460) #10
  %3462 = call i32 @isatty(i32 noundef %3461) #10
  %3463 = icmp ne i32 %3462, 0
  br i1 %3463, label %3464, label %3481

3464:                                             ; preds = %3459
  %3465 = load i32, ptr %84, align 4, !tbaa !5
  %3466 = call ptr @__errno_location() #11
  store i32 %3465, ptr %3466, align 4, !tbaa !5
  %3467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3468 = load i32, ptr @test_count, align 4, !tbaa !5
  %3469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3470 = load i32, ptr %3469, align 4, !tbaa !5
  %3471 = call ptr @s2n_strerror(i32 noundef %3470, ptr noundef @.str.4)
  %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_debug(i32 noundef %3473, ptr noundef @.str.4)
  %3475 = call ptr @__errno_location() #11
  %3476 = load i32, ptr %3475, align 4, !tbaa !5
  %3477 = call ptr @strerror(i32 noundef %3476) #10
  %3478 = call ptr @__errno_location() #11
  %3479 = load i32, ptr %3478, align 4, !tbaa !5
  %3480 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3467, ptr noundef @.str.2, i32 noundef %3468, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 176, ptr noundef %3471, ptr noundef %3474, ptr noundef %3477, i32 noundef %3479) #10
  br label %3498

3481:                                             ; preds = %3459, %3452
  %3482 = load i32, ptr %84, align 4, !tbaa !5
  %3483 = call ptr @__errno_location() #11
  store i32 %3482, ptr %3483, align 4, !tbaa !5
  %3484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3485 = load i32, ptr @test_count, align 4, !tbaa !5
  %3486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3487 = load i32, ptr %3486, align 4, !tbaa !5
  %3488 = call ptr @s2n_strerror(i32 noundef %3487, ptr noundef @.str.4)
  %3489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3490 = load i32, ptr %3489, align 4, !tbaa !5
  %3491 = call ptr @s2n_strerror_debug(i32 noundef %3490, ptr noundef @.str.4)
  %3492 = call ptr @__errno_location() #11
  %3493 = load i32, ptr %3492, align 4, !tbaa !5
  %3494 = call ptr @strerror(i32 noundef %3493) #10
  %3495 = call ptr @__errno_location() #11
  %3496 = load i32, ptr %3495, align 4, !tbaa !5
  %3497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3484, ptr noundef @.str.5, i32 noundef %3485, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 176, ptr noundef %3488, ptr noundef %3491, ptr noundef %3494, i32 noundef %3496) #10
  br label %3498

3498:                                             ; preds = %3481, %3464
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #10
  br label %3499

3499:                                             ; preds = %3498
  br label %3500

3500:                                             ; preds = %3499
  call void @exit(i32 noundef 1) #12
  unreachable

3501:                                             ; No predecessors!
  br label %3502

3502:                                             ; preds = %3501
  br label %3503

3503:                                             ; preds = %3502, %3443
  br label %3504

3504:                                             ; preds = %3503
  br label %3505

3505:                                             ; preds = %3504
  br label %3506

3506:                                             ; preds = %3505
  %3507 = load i32, ptr @test_count, align 4, !tbaa !5
  %3508 = add nsw i32 %3507, 1
  store i32 %3508, ptr @test_count, align 4, !tbaa !5
  %3509 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_cert_authorities_extension, i32 0, i32 5), align 8, !tbaa !55
  %3510 = load ptr, ptr %83, align 8, !tbaa !9
  %3511 = call zeroext i1 %3509(ptr noundef %3510)
  br i1 %3511, label %3512, label %3565

3512:                                             ; preds = %3506
  br label %3513

3513:                                             ; preds = %3512
  br label %3514

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

3521:                                             ; preds = %3514
  %3522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3523 = call i32 @fileno(ptr noundef %3522) #10
  %3524 = call i32 @isatty(i32 noundef %3523) #10
  %3525 = icmp ne i32 %3524, 0
  br i1 %3525, label %3526, label %3543

3526:                                             ; preds = %3521
  %3527 = load i32, ptr %85, align 4, !tbaa !5
  %3528 = call ptr @__errno_location() #11
  store i32 %3527, ptr %3528, align 4, !tbaa !5
  %3529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3530 = load i32, ptr @test_count, align 4, !tbaa !5
  %3531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3532 = load i32, ptr %3531, align 4, !tbaa !5
  %3533 = call ptr @s2n_strerror(i32 noundef %3532, ptr noundef @.str.4)
  %3534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3535 = load i32, ptr %3534, align 4, !tbaa !5
  %3536 = call ptr @s2n_strerror_debug(i32 noundef %3535, ptr noundef @.str.4)
  %3537 = call ptr @__errno_location() #11
  %3538 = load i32, ptr %3537, align 4, !tbaa !5
  %3539 = call ptr @strerror(i32 noundef %3538) #10
  %3540 = call ptr @__errno_location() #11
  %3541 = load i32, ptr %3540, align 4, !tbaa !5
  %3542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3529, ptr noundef @.str.2, i32 noundef %3530, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3533, ptr noundef %3536, ptr noundef %3539, i32 noundef %3541) #10
  br label %3560

3543:                                             ; preds = %3521, %3514
  %3544 = load i32, ptr %85, align 4, !tbaa !5
  %3545 = call ptr @__errno_location() #11
  store i32 %3544, ptr %3545, align 4, !tbaa !5
  %3546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3547 = load i32, ptr @test_count, align 4, !tbaa !5
  %3548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3549 = load i32, ptr %3548, align 4, !tbaa !5
  %3550 = call ptr @s2n_strerror(i32 noundef %3549, ptr noundef @.str.4)
  %3551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3552 = load i32, ptr %3551, align 4, !tbaa !5
  %3553 = call ptr @s2n_strerror_debug(i32 noundef %3552, ptr noundef @.str.4)
  %3554 = call ptr @__errno_location() #11
  %3555 = load i32, ptr %3554, align 4, !tbaa !5
  %3556 = call ptr @strerror(i32 noundef %3555) #10
  %3557 = call ptr @__errno_location() #11
  %3558 = load i32, ptr %3557, align 4, !tbaa !5
  %3559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3546, ptr noundef @.str.5, i32 noundef %3547, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 178, ptr noundef %3550, ptr noundef %3553, ptr noundef %3556, i32 noundef %3558) #10
  br label %3560

3560:                                             ; preds = %3543, %3526
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #10
  br label %3561

3561:                                             ; preds = %3560
  br label %3562

3562:                                             ; preds = %3561
  call void @exit(i32 noundef 1) #12
  unreachable

3563:                                             ; No predecessors!
  br label %3564

3564:                                             ; preds = %3563
  br label %3565

3565:                                             ; preds = %3564, %3506
  br label %3566

3566:                                             ; preds = %3565
  br label %3567

3567:                                             ; preds = %3566
  br label %3568

3568:                                             ; preds = %3567
  %3569 = load i32, ptr @test_count, align 4, !tbaa !5
  %3570 = add nsw i32 %3569, 1
  store i32 %3570, ptr @test_count, align 4, !tbaa !5
  %3571 = load ptr, ptr %82, align 8, !tbaa !9
  %3572 = getelementptr inbounds %struct.s2n_config, ptr %3571, i32 0, i32 56
  %3573 = call i32 @s2n_alloc(ptr noundef %3572, i32 noundef 10)
  %3574 = icmp eq i32 %3573, -1
  br i1 %3574, label %3575, label %3628

3575:                                             ; preds = %3568
  br label %3576

3576:                                             ; preds = %3575
  br label %3577

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

3584:                                             ; preds = %3577
  %3585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3586 = call i32 @fileno(ptr noundef %3585) #10
  %3587 = call i32 @isatty(i32 noundef %3586) #10
  %3588 = icmp ne i32 %3587, 0
  br i1 %3588, label %3589, label %3606

3589:                                             ; preds = %3584
  %3590 = load i32, ptr %86, align 4, !tbaa !5
  %3591 = call ptr @__errno_location() #11
  store i32 %3590, ptr %3591, align 4, !tbaa !5
  %3592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3593 = load i32, ptr @test_count, align 4, !tbaa !5
  %3594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3595 = load i32, ptr %3594, align 4, !tbaa !5
  %3596 = call ptr @s2n_strerror(i32 noundef %3595, ptr noundef @.str.4)
  %3597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3598 = load i32, ptr %3597, align 4, !tbaa !5
  %3599 = call ptr @s2n_strerror_debug(i32 noundef %3598, ptr noundef @.str.4)
  %3600 = call ptr @__errno_location() #11
  %3601 = load i32, ptr %3600, align 4, !tbaa !5
  %3602 = call ptr @strerror(i32 noundef %3601) #10
  %3603 = call ptr @__errno_location() #11
  %3604 = load i32, ptr %3603, align 4, !tbaa !5
  %3605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3592, ptr noundef @.str.2, i32 noundef %3593, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 180, ptr noundef %3596, ptr noundef %3599, ptr noundef %3602, i32 noundef %3604) #10
  br label %3623

3606:                                             ; preds = %3584, %3577
  %3607 = load i32, ptr %86, align 4, !tbaa !5
  %3608 = call ptr @__errno_location() #11
  store i32 %3607, ptr %3608, align 4, !tbaa !5
  %3609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3610 = load i32, ptr @test_count, align 4, !tbaa !5
  %3611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3612 = load i32, ptr %3611, align 4, !tbaa !5
  %3613 = call ptr @s2n_strerror(i32 noundef %3612, ptr noundef @.str.4)
  %3614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3615 = load i32, ptr %3614, align 4, !tbaa !5
  %3616 = call ptr @s2n_strerror_debug(i32 noundef %3615, ptr noundef @.str.4)
  %3617 = call ptr @__errno_location() #11
  %3618 = load i32, ptr %3617, align 4, !tbaa !5
  %3619 = call ptr @strerror(i32 noundef %3618) #10
  %3620 = call ptr @__errno_location() #11
  %3621 = load i32, ptr %3620, align 4, !tbaa !5
  %3622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3609, ptr noundef @.str.5, i32 noundef %3610, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 180, ptr noundef %3613, ptr noundef %3616, ptr noundef %3619, i32 noundef %3621) #10
  br label %3623

3623:                                             ; preds = %3606, %3589
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #10
  br label %3624

3624:                                             ; preds = %3623
  br label %3625

3625:                                             ; preds = %3624
  call void @exit(i32 noundef 1) #12
  unreachable

3626:                                             ; No predecessors!
  br label %3627

3627:                                             ; preds = %3626
  br label %3628

3628:                                             ; preds = %3627, %3568
  br label %3629

3629:                                             ; preds = %3628
  br label %3630

3630:                                             ; preds = %3629
  br label %3631

3631:                                             ; preds = %3630
  %3632 = load i32, ptr @test_count, align 4, !tbaa !5
  %3633 = add nsw i32 %3632, 1
  store i32 %3633, ptr @test_count, align 4, !tbaa !5
  %3634 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_cert_authorities_extension, i32 0, i32 5), align 8, !tbaa !55
  %3635 = load ptr, ptr %83, align 8, !tbaa !9
  %3636 = call zeroext i1 %3634(ptr noundef %3635)
  br i1 %3636, label %3690, label %3637

3637:                                             ; preds = %3631
  br label %3638

3638:                                             ; preds = %3637
  br label %3639

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

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

3651:                                             ; preds = %3646
  %3652 = load i32, ptr %87, align 4, !tbaa !5
  %3653 = call ptr @__errno_location() #11
  store i32 %3652, ptr %3653, align 4, !tbaa !5
  %3654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3655 = load i32, ptr @test_count, align 4, !tbaa !5
  %3656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3657 = load i32, ptr %3656, align 4, !tbaa !5
  %3658 = call ptr @s2n_strerror(i32 noundef %3657, ptr noundef @.str.4)
  %3659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3660 = load i32, ptr %3659, align 4, !tbaa !5
  %3661 = call ptr @s2n_strerror_debug(i32 noundef %3660, ptr noundef @.str.4)
  %3662 = call ptr @__errno_location() #11
  %3663 = load i32, ptr %3662, align 4, !tbaa !5
  %3664 = call ptr @strerror(i32 noundef %3663) #10
  %3665 = call ptr @__errno_location() #11
  %3666 = load i32, ptr %3665, align 4, !tbaa !5
  %3667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3654, ptr noundef @.str.2, i32 noundef %3655, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3658, ptr noundef %3661, ptr noundef %3664, i32 noundef %3666) #10
  br label %3685

3668:                                             ; preds = %3646, %3639
  %3669 = load i32, ptr %87, align 4, !tbaa !5
  %3670 = call ptr @__errno_location() #11
  store i32 %3669, ptr %3670, align 4, !tbaa !5
  %3671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3672 = load i32, ptr @test_count, align 4, !tbaa !5
  %3673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3674 = load i32, ptr %3673, align 4, !tbaa !5
  %3675 = call ptr @s2n_strerror(i32 noundef %3674, ptr noundef @.str.4)
  %3676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3677 = load i32, ptr %3676, align 4, !tbaa !5
  %3678 = call ptr @s2n_strerror_debug(i32 noundef %3677, ptr noundef @.str.4)
  %3679 = call ptr @__errno_location() #11
  %3680 = load i32, ptr %3679, align 4, !tbaa !5
  %3681 = call ptr @strerror(i32 noundef %3680) #10
  %3682 = call ptr @__errno_location() #11
  %3683 = load i32, ptr %3682, align 4, !tbaa !5
  %3684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3671, ptr noundef @.str.5, i32 noundef %3672, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3675, ptr noundef %3678, ptr noundef %3681, i32 noundef %3683) #10
  br label %3685

3685:                                             ; preds = %3668, %3651
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #10
  br label %3686

3686:                                             ; preds = %3685
  br label %3687

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

3688:                                             ; No predecessors!
  br label %3689

3689:                                             ; preds = %3688
  br label %3690

3690:                                             ; preds = %3689, %3631
  br label %3691

3691:                                             ; preds = %3690
  br label %3692

3692:                                             ; preds = %3691
  br label %3693

3693:                                             ; preds = %3692
  %3694 = load i32, ptr @test_count, align 4, !tbaa !5
  %3695 = add nsw i32 %3694, 1
  store i32 %3695, ptr @test_count, align 4, !tbaa !5
  %3696 = load ptr, ptr %82, align 8, !tbaa !9
  %3697 = getelementptr inbounds %struct.s2n_config, ptr %3696, i32 0, i32 56
  %3698 = call i32 @s2n_free(ptr noundef %3697)
  %3699 = icmp eq i32 %3698, -1
  br i1 %3699, label %3700, label %3753

3700:                                             ; preds = %3693
  br label %3701

3701:                                             ; preds = %3700
  br label %3702

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

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

3714:                                             ; preds = %3709
  %3715 = load i32, ptr %88, align 4, !tbaa !5
  %3716 = call ptr @__errno_location() #11
  store i32 %3715, ptr %3716, align 4, !tbaa !5
  %3717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3718 = load i32, ptr @test_count, align 4, !tbaa !5
  %3719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3720 = load i32, ptr %3719, align 4, !tbaa !5
  %3721 = call ptr @s2n_strerror(i32 noundef %3720, ptr noundef @.str.4)
  %3722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3723 = load i32, ptr %3722, align 4, !tbaa !5
  %3724 = call ptr @s2n_strerror_debug(i32 noundef %3723, ptr noundef @.str.4)
  %3725 = call ptr @__errno_location() #11
  %3726 = load i32, ptr %3725, align 4, !tbaa !5
  %3727 = call ptr @strerror(i32 noundef %3726) #10
  %3728 = call ptr @__errno_location() #11
  %3729 = load i32, ptr %3728, align 4, !tbaa !5
  %3730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3717, ptr noundef @.str.2, i32 noundef %3718, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 183, ptr noundef %3721, ptr noundef %3724, ptr noundef %3727, i32 noundef %3729) #10
  br label %3748

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

3748:                                             ; preds = %3731, %3714
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #10
  br label %3749

3749:                                             ; preds = %3748
  br label %3750

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

3751:                                             ; No predecessors!
  br label %3752

3752:                                             ; preds = %3751
  br label %3753

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

3754:                                             ; preds = %3753
  br label %3755

3755:                                             ; preds = %3754
  br label %3756

3756:                                             ; preds = %3755
  %3757 = load i32, ptr @test_count, align 4, !tbaa !5
  %3758 = add nsw i32 %3757, 1
  store i32 %3758, ptr @test_count, align 4, !tbaa !5
  %3759 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_cert_authorities_extension, i32 0, i32 5), align 8, !tbaa !55
  %3760 = load ptr, ptr %83, align 8, !tbaa !9
  %3761 = call zeroext i1 %3759(ptr noundef %3760)
  br i1 %3761, label %3762, label %3815

3762:                                             ; preds = %3756
  br label %3763

3763:                                             ; preds = %3762
  br label %3764

3764:                                             ; preds = %3763
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #10
  %3765 = call ptr @__errno_location() #11
  %3766 = load i32, ptr %3765, align 4, !tbaa !5
  store i32 %3766, ptr %89, align 4, !tbaa !5
  %3767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3768 = call i32 @s2n_print_stacktrace(ptr noundef %3767)
  %3769 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3770 = trunc i8 %3769 to i1
  br i1 %3770, label %3771, label %3793

3771:                                             ; preds = %3764
  %3772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3773 = call i32 @fileno(ptr noundef %3772) #10
  %3774 = call i32 @isatty(i32 noundef %3773) #10
  %3775 = icmp ne i32 %3774, 0
  br i1 %3775, label %3776, label %3793

3776:                                             ; preds = %3771
  %3777 = load i32, ptr %89, align 4, !tbaa !5
  %3778 = call ptr @__errno_location() #11
  store i32 %3777, ptr %3778, align 4, !tbaa !5
  %3779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3780 = load i32, ptr @test_count, align 4, !tbaa !5
  %3781 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3782 = load i32, ptr %3781, align 4, !tbaa !5
  %3783 = call ptr @s2n_strerror(i32 noundef %3782, ptr noundef @.str.4)
  %3784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3785 = load i32, ptr %3784, align 4, !tbaa !5
  %3786 = call ptr @s2n_strerror_debug(i32 noundef %3785, ptr noundef @.str.4)
  %3787 = call ptr @__errno_location() #11
  %3788 = load i32, ptr %3787, align 4, !tbaa !5
  %3789 = call ptr @strerror(i32 noundef %3788) #10
  %3790 = call ptr @__errno_location() #11
  %3791 = load i32, ptr %3790, align 4, !tbaa !5
  %3792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3779, ptr noundef @.str.2, i32 noundef %3780, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 184, ptr noundef %3783, ptr noundef %3786, ptr noundef %3789, i32 noundef %3791) #10
  br label %3810

3793:                                             ; preds = %3771, %3764
  %3794 = load i32, ptr %89, align 4, !tbaa !5
  %3795 = call ptr @__errno_location() #11
  store i32 %3794, ptr %3795, align 4, !tbaa !5
  %3796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3797 = load i32, ptr @test_count, align 4, !tbaa !5
  %3798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3799 = load i32, ptr %3798, align 4, !tbaa !5
  %3800 = call ptr @s2n_strerror(i32 noundef %3799, ptr noundef @.str.4)
  %3801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3802 = load i32, ptr %3801, align 4, !tbaa !5
  %3803 = call ptr @s2n_strerror_debug(i32 noundef %3802, ptr noundef @.str.4)
  %3804 = call ptr @__errno_location() #11
  %3805 = load i32, ptr %3804, align 4, !tbaa !5
  %3806 = call ptr @strerror(i32 noundef %3805) #10
  %3807 = call ptr @__errno_location() #11
  %3808 = load i32, ptr %3807, align 4, !tbaa !5
  %3809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3796, ptr noundef @.str.5, i32 noundef %3797, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 184, ptr noundef %3800, ptr noundef %3803, ptr noundef %3806, i32 noundef %3808) #10
  br label %3810

3810:                                             ; preds = %3793, %3776
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #10
  br label %3811

3811:                                             ; preds = %3810
  br label %3812

3812:                                             ; preds = %3811
  call void @exit(i32 noundef 1) #12
  unreachable

3813:                                             ; No predecessors!
  br label %3814

3814:                                             ; preds = %3813
  br label %3815

3815:                                             ; preds = %3814, %3756
  br label %3816

3816:                                             ; preds = %3815
  br label %3817

3817:                                             ; preds = %3816
  %3818 = call i32 @s2n_connection_ptr_free(ptr noundef %83)
  %3819 = getelementptr inbounds %struct.s2n_result, ptr %90, i32 0, i32 0
  store i32 %3818, ptr %3819, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #10
  %3820 = call i32 @s2n_config_ptr_free(ptr noundef %82)
  %3821 = getelementptr inbounds %struct.s2n_result, ptr %91, i32 0, i32 0
  store i32 %3820, ptr %3821, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #10
  %3822 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %3822, label %3823, label %5066

3823:                                             ; preds = %3817
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #10
  %3824 = call ptr @s2n_config_new_minimal()
  store ptr %3824, ptr %92, align 8, !tbaa !9
  br label %3825

3825:                                             ; preds = %3823
  %3826 = load i32, ptr @test_count, align 4, !tbaa !5
  %3827 = add nsw i32 %3826, 1
  store i32 %3827, ptr @test_count, align 4, !tbaa !5
  %3828 = load ptr, ptr %92, align 8, !tbaa !9
  %3829 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %3828)
  %3830 = icmp eq i32 %3829, -1
  br i1 %3830, label %3831, label %3884

3831:                                             ; preds = %3825
  br label %3832

3832:                                             ; preds = %3831
  br label %3833

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

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

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

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

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

3880:                                             ; preds = %3879
  br label %3881

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

3882:                                             ; No predecessors!
  br label %3883

3883:                                             ; preds = %3882
  br label %3884

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

3885:                                             ; preds = %3884
  br label %3886

3886:                                             ; preds = %3885
  br label %3887

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

3894:                                             ; preds = %3887
  br label %3895

3895:                                             ; preds = %3894
  br label %3896

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

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

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

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

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

3943:                                             ; preds = %3942
  br label %3944

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

3945:                                             ; No predecessors!
  br label %3946

3946:                                             ; preds = %3945
  br label %3947

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

3948:                                             ; preds = %3947
  br label %3949

3949:                                             ; preds = %3948
  br label %3950

3950:                                             ; preds = %3949
  %3951 = load i32, ptr @test_count, align 4, !tbaa !5
  %3952 = add nsw i32 %3951, 1
  store i32 %3952, ptr @test_count, align 4, !tbaa !5
  %3953 = load ptr, ptr %92, align 8, !tbaa !9
  %3954 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %3953, ptr noundef @.str.48)
  %3955 = icmp eq i32 %3954, -1
  br i1 %3955, label %3956, label %4009

3956:                                             ; preds = %3950
  br label %3957

3957:                                             ; preds = %3956
  br label %3958

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

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

3970:                                             ; preds = %3965
  %3971 = load i32, ptr %95, align 4, !tbaa !5
  %3972 = call ptr @__errno_location() #11
  store i32 %3971, ptr %3972, align 4, !tbaa !5
  %3973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3974 = load i32, ptr @test_count, align 4, !tbaa !5
  %3975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3976 = load i32, ptr %3975, align 4, !tbaa !5
  %3977 = call ptr @s2n_strerror(i32 noundef %3976, ptr noundef @.str.4)
  %3978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3979 = load i32, ptr %3978, align 4, !tbaa !5
  %3980 = call ptr @s2n_strerror_debug(i32 noundef %3979, ptr noundef @.str.4)
  %3981 = call ptr @__errno_location() #11
  %3982 = load i32, ptr %3981, align 4, !tbaa !5
  %3983 = call ptr @strerror(i32 noundef %3982) #10
  %3984 = call ptr @__errno_location() #11
  %3985 = load i32, ptr %3984, align 4, !tbaa !5
  %3986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3973, ptr noundef @.str.2, i32 noundef %3974, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 199, ptr noundef %3977, ptr noundef %3980, ptr noundef %3983, i32 noundef %3985) #10
  br label %4004

3987:                                             ; preds = %3965, %3958
  %3988 = load i32, ptr %95, align 4, !tbaa !5
  %3989 = call ptr @__errno_location() #11
  store i32 %3988, ptr %3989, align 4, !tbaa !5
  %3990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3991 = load i32, ptr @test_count, align 4, !tbaa !5
  %3992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3993 = load i32, ptr %3992, align 4, !tbaa !5
  %3994 = call ptr @s2n_strerror(i32 noundef %3993, ptr noundef @.str.4)
  %3995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3996 = load i32, ptr %3995, align 4, !tbaa !5
  %3997 = call ptr @s2n_strerror_debug(i32 noundef %3996, ptr noundef @.str.4)
  %3998 = call ptr @__errno_location() #11
  %3999 = load i32, ptr %3998, align 4, !tbaa !5
  %4000 = call ptr @strerror(i32 noundef %3999) #10
  %4001 = call ptr @__errno_location() #11
  %4002 = load i32, ptr %4001, align 4, !tbaa !5
  %4003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3990, ptr noundef @.str.5, i32 noundef %3991, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 199, ptr noundef %3994, ptr noundef %3997, ptr noundef %4000, i32 noundef %4002) #10
  br label %4004

4004:                                             ; preds = %3987, %3970
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #10
  br label %4005

4005:                                             ; preds = %4004
  br label %4006

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

4007:                                             ; No predecessors!
  br label %4008

4008:                                             ; preds = %4007
  br label %4009

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

4010:                                             ; preds = %4009
  br label %4011

4011:                                             ; preds = %4010
  br label %4012

4012:                                             ; preds = %4011
  %4013 = load i32, ptr @test_count, align 4, !tbaa !5
  %4014 = add nsw i32 %4013, 1
  store i32 %4014, ptr @test_count, align 4, !tbaa !5
  %4015 = load ptr, ptr %92, align 8, !tbaa !9
  %4016 = getelementptr inbounds %struct.s2n_config, ptr %4015, i32 0, i32 56
  %4017 = call i32 @s2n_alloc(ptr noundef %4016, i32 noundef 10)
  %4018 = icmp eq i32 %4017, -1
  br i1 %4018, label %4019, label %4072

4019:                                             ; preds = %4012
  br label %4020

4020:                                             ; preds = %4019
  br label %4021

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

4028:                                             ; preds = %4021
  %4029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4030 = call i32 @fileno(ptr noundef %4029) #10
  %4031 = call i32 @isatty(i32 noundef %4030) #10
  %4032 = icmp ne i32 %4031, 0
  br i1 %4032, label %4033, label %4050

4033:                                             ; preds = %4028
  %4034 = load i32, ptr %96, align 4, !tbaa !5
  %4035 = call ptr @__errno_location() #11
  store i32 %4034, ptr %4035, align 4, !tbaa !5
  %4036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4037 = load i32, ptr @test_count, align 4, !tbaa !5
  %4038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4039 = load i32, ptr %4038, align 4, !tbaa !5
  %4040 = call ptr @s2n_strerror(i32 noundef %4039, ptr noundef @.str.4)
  %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_debug(i32 noundef %4042, ptr noundef @.str.4)
  %4044 = call ptr @__errno_location() #11
  %4045 = load i32, ptr %4044, align 4, !tbaa !5
  %4046 = call ptr @strerror(i32 noundef %4045) #10
  %4047 = call ptr @__errno_location() #11
  %4048 = load i32, ptr %4047, align 4, !tbaa !5
  %4049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4036, ptr noundef @.str.2, i32 noundef %4037, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 200, ptr noundef %4040, ptr noundef %4043, ptr noundef %4046, i32 noundef %4048) #10
  br label %4067

4050:                                             ; preds = %4028, %4021
  %4051 = load i32, ptr %96, align 4, !tbaa !5
  %4052 = call ptr @__errno_location() #11
  store i32 %4051, ptr %4052, align 4, !tbaa !5
  %4053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4054 = load i32, ptr @test_count, align 4, !tbaa !5
  %4055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4056 = load i32, ptr %4055, align 4, !tbaa !5
  %4057 = call ptr @s2n_strerror(i32 noundef %4056, ptr noundef @.str.4)
  %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_debug(i32 noundef %4059, ptr noundef @.str.4)
  %4061 = call ptr @__errno_location() #11
  %4062 = load i32, ptr %4061, align 4, !tbaa !5
  %4063 = call ptr @strerror(i32 noundef %4062) #10
  %4064 = call ptr @__errno_location() #11
  %4065 = load i32, ptr %4064, align 4, !tbaa !5
  %4066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4053, ptr noundef @.str.5, i32 noundef %4054, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 200, ptr noundef %4057, ptr noundef %4060, ptr noundef %4063, i32 noundef %4065) #10
  br label %4067

4067:                                             ; preds = %4050, %4033
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #10
  br label %4068

4068:                                             ; preds = %4067
  br label %4069

4069:                                             ; preds = %4068
  call void @exit(i32 noundef 1) #12
  unreachable

4070:                                             ; No predecessors!
  br label %4071

4071:                                             ; preds = %4070
  br label %4072

4072:                                             ; preds = %4071, %4012
  br label %4073

4073:                                             ; preds = %4072
  br label %4074

4074:                                             ; preds = %4073
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #10
  %4075 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4075, ptr %97, align 8, !tbaa !9
  br label %4076

4076:                                             ; preds = %4074
  %4077 = load i32, ptr @test_count, align 4, !tbaa !5
  %4078 = add nsw i32 %4077, 1
  store i32 %4078, ptr @test_count, align 4, !tbaa !5
  %4079 = load ptr, ptr %97, align 8, !tbaa !9
  %4080 = load ptr, ptr %92, align 8, !tbaa !9
  %4081 = call i32 @s2n_connection_set_config(ptr noundef %4079, ptr noundef %4080)
  %4082 = icmp eq i32 %4081, -1
  br i1 %4082, label %4083, label %4136

4083:                                             ; preds = %4076
  br label %4084

4084:                                             ; preds = %4083
  br label %4085

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

4092:                                             ; preds = %4085
  %4093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4094 = call i32 @fileno(ptr noundef %4093) #10
  %4095 = call i32 @isatty(i32 noundef %4094) #10
  %4096 = icmp ne i32 %4095, 0
  br i1 %4096, label %4097, label %4114

4097:                                             ; preds = %4092
  %4098 = load i32, ptr %98, align 4, !tbaa !5
  %4099 = call ptr @__errno_location() #11
  store i32 %4098, ptr %4099, align 4, !tbaa !5
  %4100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4101 = load i32, ptr @test_count, align 4, !tbaa !5
  %4102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4103 = load i32, ptr %4102, align 4, !tbaa !5
  %4104 = call ptr @s2n_strerror(i32 noundef %4103, ptr noundef @.str.4)
  %4105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4106 = load i32, ptr %4105, align 4, !tbaa !5
  %4107 = call ptr @s2n_strerror_debug(i32 noundef %4106, ptr noundef @.str.4)
  %4108 = call ptr @__errno_location() #11
  %4109 = load i32, ptr %4108, align 4, !tbaa !5
  %4110 = call ptr @strerror(i32 noundef %4109) #10
  %4111 = call ptr @__errno_location() #11
  %4112 = load i32, ptr %4111, align 4, !tbaa !5
  %4113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4100, ptr noundef @.str.2, i32 noundef %4101, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 204, ptr noundef %4104, ptr noundef %4107, ptr noundef %4110, i32 noundef %4112) #10
  br label %4131

4114:                                             ; preds = %4092, %4085
  %4115 = load i32, ptr %98, align 4, !tbaa !5
  %4116 = call ptr @__errno_location() #11
  store i32 %4115, ptr %4116, align 4, !tbaa !5
  %4117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4118 = load i32, ptr @test_count, align 4, !tbaa !5
  %4119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4120 = load i32, ptr %4119, align 4, !tbaa !5
  %4121 = call ptr @s2n_strerror(i32 noundef %4120, ptr noundef @.str.4)
  %4122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4123 = load i32, ptr %4122, align 4, !tbaa !5
  %4124 = call ptr @s2n_strerror_debug(i32 noundef %4123, ptr noundef @.str.4)
  %4125 = call ptr @__errno_location() #11
  %4126 = load i32, ptr %4125, align 4, !tbaa !5
  %4127 = call ptr @strerror(i32 noundef %4126) #10
  %4128 = call ptr @__errno_location() #11
  %4129 = load i32, ptr %4128, align 4, !tbaa !5
  %4130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4117, ptr noundef @.str.5, i32 noundef %4118, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 204, ptr noundef %4121, ptr noundef %4124, ptr noundef %4127, i32 noundef %4129) #10
  br label %4131

4131:                                             ; preds = %4114, %4097
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #10
  br label %4132

4132:                                             ; preds = %4131
  br label %4133

4133:                                             ; preds = %4132
  call void @exit(i32 noundef 1) #12
  unreachable

4134:                                             ; No predecessors!
  br label %4135

4135:                                             ; preds = %4134
  br label %4136

4136:                                             ; preds = %4135, %4076
  br label %4137

4137:                                             ; preds = %4136
  br label %4138

4138:                                             ; preds = %4137
  br label %4139

4139:                                             ; preds = %4138
  %4140 = load i32, ptr @test_count, align 4, !tbaa !5
  %4141 = add nsw i32 %4140, 1
  store i32 %4141, ptr @test_count, align 4, !tbaa !5
  %4142 = load ptr, ptr %97, align 8, !tbaa !9
  %4143 = call i32 @s2n_client_hello_send(ptr noundef %4142)
  %4144 = icmp eq i32 %4143, -1
  br i1 %4144, label %4145, label %4198

4145:                                             ; preds = %4139
  br label %4146

4146:                                             ; preds = %4145
  br label %4147

4147:                                             ; preds = %4146
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #10
  %4148 = call ptr @__errno_location() #11
  %4149 = load i32, ptr %4148, align 4, !tbaa !5
  store i32 %4149, ptr %99, align 4, !tbaa !5
  %4150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4151 = call i32 @s2n_print_stacktrace(ptr noundef %4150)
  %4152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4153 = trunc i8 %4152 to i1
  br i1 %4153, label %4154, label %4176

4154:                                             ; preds = %4147
  %4155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4156 = call i32 @fileno(ptr noundef %4155) #10
  %4157 = call i32 @isatty(i32 noundef %4156) #10
  %4158 = icmp ne i32 %4157, 0
  br i1 %4158, label %4159, label %4176

4159:                                             ; preds = %4154
  %4160 = load i32, ptr %99, align 4, !tbaa !5
  %4161 = call ptr @__errno_location() #11
  store i32 %4160, ptr %4161, align 4, !tbaa !5
  %4162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4163 = load i32, ptr @test_count, align 4, !tbaa !5
  %4164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4165 = load i32, ptr %4164, align 4, !tbaa !5
  %4166 = call ptr @s2n_strerror(i32 noundef %4165, ptr noundef @.str.4)
  %4167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4168 = load i32, ptr %4167, align 4, !tbaa !5
  %4169 = call ptr @s2n_strerror_debug(i32 noundef %4168, ptr noundef @.str.4)
  %4170 = call ptr @__errno_location() #11
  %4171 = load i32, ptr %4170, align 4, !tbaa !5
  %4172 = call ptr @strerror(i32 noundef %4171) #10
  %4173 = call ptr @__errno_location() #11
  %4174 = load i32, ptr %4173, align 4, !tbaa !5
  %4175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4162, ptr noundef @.str.2, i32 noundef %4163, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 205, ptr noundef %4166, ptr noundef %4169, ptr noundef %4172, i32 noundef %4174) #10
  br label %4193

4176:                                             ; preds = %4154, %4147
  %4177 = load i32, ptr %99, align 4, !tbaa !5
  %4178 = call ptr @__errno_location() #11
  store i32 %4177, ptr %4178, align 4, !tbaa !5
  %4179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4180 = load i32, ptr @test_count, align 4, !tbaa !5
  %4181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4182 = load i32, ptr %4181, align 4, !tbaa !5
  %4183 = call ptr @s2n_strerror(i32 noundef %4182, ptr noundef @.str.4)
  %4184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4185 = load i32, ptr %4184, align 4, !tbaa !5
  %4186 = call ptr @s2n_strerror_debug(i32 noundef %4185, ptr noundef @.str.4)
  %4187 = call ptr @__errno_location() #11
  %4188 = load i32, ptr %4187, align 4, !tbaa !5
  %4189 = call ptr @strerror(i32 noundef %4188) #10
  %4190 = call ptr @__errno_location() #11
  %4191 = load i32, ptr %4190, align 4, !tbaa !5
  %4192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4179, ptr noundef @.str.5, i32 noundef %4180, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 205, ptr noundef %4183, ptr noundef %4186, ptr noundef %4189, i32 noundef %4191) #10
  br label %4193

4193:                                             ; preds = %4176, %4159
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #10
  br label %4194

4194:                                             ; preds = %4193
  br label %4195

4195:                                             ; preds = %4194
  call void @exit(i32 noundef 1) #12
  unreachable

4196:                                             ; No predecessors!
  br label %4197

4197:                                             ; preds = %4196
  br label %4198

4198:                                             ; preds = %4197, %4139
  br label %4199

4199:                                             ; preds = %4198
  br label %4200

4200:                                             ; preds = %4199
  br label %4201

4201:                                             ; preds = %4200
  %4202 = load i32, ptr @test_count, align 4, !tbaa !5
  %4203 = add nsw i32 %4202, 1
  store i32 %4203, ptr @test_count, align 4, !tbaa !5
  %4204 = load ptr, ptr %97, align 8, !tbaa !9
  %4205 = call i32 @s2n_parse_client_hello(ptr noundef %4204)
  %4206 = icmp eq i32 %4205, -1
  br i1 %4206, label %4207, label %4260

4207:                                             ; preds = %4201
  br label %4208

4208:                                             ; preds = %4207
  br label %4209

4209:                                             ; preds = %4208
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #10
  %4210 = call ptr @__errno_location() #11
  %4211 = load i32, ptr %4210, align 4, !tbaa !5
  store i32 %4211, ptr %100, align 4, !tbaa !5
  %4212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4213 = call i32 @s2n_print_stacktrace(ptr noundef %4212)
  %4214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4215 = trunc i8 %4214 to i1
  br i1 %4215, label %4216, label %4238

4216:                                             ; preds = %4209
  %4217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4218 = call i32 @fileno(ptr noundef %4217) #10
  %4219 = call i32 @isatty(i32 noundef %4218) #10
  %4220 = icmp ne i32 %4219, 0
  br i1 %4220, label %4221, label %4238

4221:                                             ; preds = %4216
  %4222 = load i32, ptr %100, align 4, !tbaa !5
  %4223 = call ptr @__errno_location() #11
  store i32 %4222, ptr %4223, align 4, !tbaa !5
  %4224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4225 = load i32, ptr @test_count, align 4, !tbaa !5
  %4226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4227 = load i32, ptr %4226, align 4, !tbaa !5
  %4228 = call ptr @s2n_strerror(i32 noundef %4227, ptr noundef @.str.4)
  %4229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4230 = load i32, ptr %4229, align 4, !tbaa !5
  %4231 = call ptr @s2n_strerror_debug(i32 noundef %4230, ptr noundef @.str.4)
  %4232 = call ptr @__errno_location() #11
  %4233 = load i32, ptr %4232, align 4, !tbaa !5
  %4234 = call ptr @strerror(i32 noundef %4233) #10
  %4235 = call ptr @__errno_location() #11
  %4236 = load i32, ptr %4235, align 4, !tbaa !5
  %4237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4224, ptr noundef @.str.2, i32 noundef %4225, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 206, ptr noundef %4228, ptr noundef %4231, ptr noundef %4234, i32 noundef %4236) #10
  br label %4255

4238:                                             ; preds = %4216, %4209
  %4239 = load i32, ptr %100, align 4, !tbaa !5
  %4240 = call ptr @__errno_location() #11
  store i32 %4239, ptr %4240, align 4, !tbaa !5
  %4241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4242 = load i32, ptr @test_count, align 4, !tbaa !5
  %4243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4244 = load i32, ptr %4243, align 4, !tbaa !5
  %4245 = call ptr @s2n_strerror(i32 noundef %4244, ptr noundef @.str.4)
  %4246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4247 = load i32, ptr %4246, align 4, !tbaa !5
  %4248 = call ptr @s2n_strerror_debug(i32 noundef %4247, ptr noundef @.str.4)
  %4249 = call ptr @__errno_location() #11
  %4250 = load i32, ptr %4249, align 4, !tbaa !5
  %4251 = call ptr @strerror(i32 noundef %4250) #10
  %4252 = call ptr @__errno_location() #11
  %4253 = load i32, ptr %4252, align 4, !tbaa !5
  %4254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4241, ptr noundef @.str.5, i32 noundef %4242, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 206, ptr noundef %4245, ptr noundef %4248, ptr noundef %4251, i32 noundef %4253) #10
  br label %4255

4255:                                             ; preds = %4238, %4221
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #10
  br label %4256

4256:                                             ; preds = %4255
  br label %4257

4257:                                             ; preds = %4256
  call void @exit(i32 noundef 1) #12
  unreachable

4258:                                             ; No predecessors!
  br label %4259

4259:                                             ; preds = %4258
  br label %4260

4260:                                             ; preds = %4259, %4201
  br label %4261

4261:                                             ; preds = %4260
  br label %4262

4262:                                             ; preds = %4261
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #10
  %4263 = load ptr, ptr %97, align 8, !tbaa !9
  %4264 = getelementptr inbounds %struct.s2n_connection, ptr %4263, i32 0, i32 71
  store ptr %4264, ptr %101, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #10
  %4265 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4265, ptr %102, align 8, !tbaa !9
  br label %4266

4266:                                             ; preds = %4262
  %4267 = load i32, ptr @test_count, align 4, !tbaa !5
  %4268 = add nsw i32 %4267, 1
  store i32 %4268, ptr @test_count, align 4, !tbaa !5
  %4269 = load ptr, ptr %102, align 8, !tbaa !9
  %4270 = load ptr, ptr %92, align 8, !tbaa !9
  %4271 = call i32 @s2n_connection_set_config(ptr noundef %4269, ptr noundef %4270)
  %4272 = icmp eq i32 %4271, -1
  br i1 %4272, label %4273, label %4326

4273:                                             ; preds = %4266
  br label %4274

4274:                                             ; preds = %4273
  br label %4275

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

4282:                                             ; preds = %4275
  %4283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4284 = call i32 @fileno(ptr noundef %4283) #10
  %4285 = call i32 @isatty(i32 noundef %4284) #10
  %4286 = icmp ne i32 %4285, 0
  br i1 %4286, label %4287, label %4304

4287:                                             ; preds = %4282
  %4288 = load i32, ptr %103, align 4, !tbaa !5
  %4289 = call ptr @__errno_location() #11
  store i32 %4288, ptr %4289, align 4, !tbaa !5
  %4290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4291 = load i32, ptr @test_count, align 4, !tbaa !5
  %4292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4293 = load i32, ptr %4292, align 4, !tbaa !5
  %4294 = call ptr @s2n_strerror(i32 noundef %4293, ptr noundef @.str.4)
  %4295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4296 = load i32, ptr %4295, align 4, !tbaa !5
  %4297 = call ptr @s2n_strerror_debug(i32 noundef %4296, ptr noundef @.str.4)
  %4298 = call ptr @__errno_location() #11
  %4299 = load i32, ptr %4298, align 4, !tbaa !5
  %4300 = call ptr @strerror(i32 noundef %4299) #10
  %4301 = call ptr @__errno_location() #11
  %4302 = load i32, ptr %4301, align 4, !tbaa !5
  %4303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4290, ptr noundef @.str.2, i32 noundef %4291, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 211, ptr noundef %4294, ptr noundef %4297, ptr noundef %4300, i32 noundef %4302) #10
  br label %4321

4304:                                             ; preds = %4282, %4275
  %4305 = load i32, ptr %103, align 4, !tbaa !5
  %4306 = call ptr @__errno_location() #11
  store i32 %4305, ptr %4306, align 4, !tbaa !5
  %4307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4308 = load i32, ptr @test_count, align 4, !tbaa !5
  %4309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4310 = load i32, ptr %4309, align 4, !tbaa !5
  %4311 = call ptr @s2n_strerror(i32 noundef %4310, ptr noundef @.str.4)
  %4312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4313 = load i32, ptr %4312, align 4, !tbaa !5
  %4314 = call ptr @s2n_strerror_debug(i32 noundef %4313, ptr noundef @.str.4)
  %4315 = call ptr @__errno_location() #11
  %4316 = load i32, ptr %4315, align 4, !tbaa !5
  %4317 = call ptr @strerror(i32 noundef %4316) #10
  %4318 = call ptr @__errno_location() #11
  %4319 = load i32, ptr %4318, align 4, !tbaa !5
  %4320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4307, ptr noundef @.str.5, i32 noundef %4308, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 211, ptr noundef %4311, ptr noundef %4314, ptr noundef %4317, i32 noundef %4319) #10
  br label %4321

4321:                                             ; preds = %4304, %4287
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #10
  br label %4322

4322:                                             ; preds = %4321
  br label %4323

4323:                                             ; preds = %4322
  call void @exit(i32 noundef 1) #12
  unreachable

4324:                                             ; No predecessors!
  br label %4325

4325:                                             ; preds = %4324
  br label %4326

4326:                                             ; preds = %4325, %4266
  br label %4327

4327:                                             ; preds = %4326
  br label %4328

4328:                                             ; preds = %4327
  call void @llvm.lifetime.start.p0(i64 8, ptr %104) #10
  %4329 = load ptr, ptr %102, align 8, !tbaa !9
  %4330 = getelementptr inbounds %struct.s2n_connection, ptr %4329, i32 0, i32 52
  %4331 = getelementptr inbounds %struct.s2n_handshake, ptr %4330, i32 0, i32 0
  store ptr %4331, ptr %104, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #10
  %4332 = load ptr, ptr %101, align 8, !tbaa !9
  %4333 = getelementptr inbounds %struct.s2n_client_hello, ptr %4332, i32 0, i32 0
  %4334 = getelementptr inbounds %struct.s2n_blob, ptr %4333, i32 0, i32 1
  %4335 = load i32, ptr %4334, align 8, !tbaa !56
  %4336 = load ptr, ptr %101, align 8, !tbaa !9
  %4337 = getelementptr inbounds %struct.s2n_client_hello, ptr %4336, i32 0, i32 1
  %4338 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %4337, i32 0, i32 1
  %4339 = getelementptr inbounds %struct.s2n_blob, ptr %4338, i32 0, i32 1
  %4340 = load i32, ptr %4339, align 8, !tbaa !57
  %4341 = sub i32 %4335, %4340
  %4342 = zext i32 %4341 to i64
  %4343 = sub i64 %4342, 2
  store i64 %4343, ptr %105, align 8, !tbaa !25
  br label %4344

4344:                                             ; preds = %4328
  %4345 = load i32, ptr @test_count, align 4, !tbaa !5
  %4346 = add nsw i32 %4345, 1
  store i32 %4346, ptr @test_count, align 4, !tbaa !5
  %4347 = load ptr, ptr %104, align 8, !tbaa !9
  %4348 = load ptr, ptr %101, align 8, !tbaa !9
  %4349 = getelementptr inbounds %struct.s2n_client_hello, ptr %4348, i32 0, i32 0
  %4350 = getelementptr inbounds %struct.s2n_blob, ptr %4349, i32 0, i32 0
  %4351 = load ptr, ptr %4350, align 8, !tbaa !58
  %4352 = load i64, ptr %105, align 8, !tbaa !25
  %4353 = trunc i64 %4352 to i32
  %4354 = call i32 @s2n_stuffer_write_bytes(ptr noundef %4347, ptr noundef %4351, i32 noundef %4353)
  %4355 = icmp eq i32 %4354, -1
  br i1 %4355, label %4356, label %4409

4356:                                             ; preds = %4344
  br label %4357

4357:                                             ; preds = %4356
  br label %4358

4358:                                             ; preds = %4357
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #10
  %4359 = call ptr @__errno_location() #11
  %4360 = load i32, ptr %4359, align 4, !tbaa !5
  store i32 %4360, ptr %106, align 4, !tbaa !5
  %4361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4362 = call i32 @s2n_print_stacktrace(ptr noundef %4361)
  %4363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4364 = trunc i8 %4363 to i1
  br i1 %4364, label %4365, label %4387

4365:                                             ; preds = %4358
  %4366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4367 = call i32 @fileno(ptr noundef %4366) #10
  %4368 = call i32 @isatty(i32 noundef %4367) #10
  %4369 = icmp ne i32 %4368, 0
  br i1 %4369, label %4370, label %4387

4370:                                             ; preds = %4365
  %4371 = load i32, ptr %106, align 4, !tbaa !5
  %4372 = call ptr @__errno_location() #11
  store i32 %4371, ptr %4372, align 4, !tbaa !5
  %4373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4374 = load i32, ptr @test_count, align 4, !tbaa !5
  %4375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4376 = load i32, ptr %4375, align 4, !tbaa !5
  %4377 = call ptr @s2n_strerror(i32 noundef %4376, ptr noundef @.str.4)
  %4378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4379 = load i32, ptr %4378, align 4, !tbaa !5
  %4380 = call ptr @s2n_strerror_debug(i32 noundef %4379, ptr noundef @.str.4)
  %4381 = call ptr @__errno_location() #11
  %4382 = load i32, ptr %4381, align 4, !tbaa !5
  %4383 = call ptr @strerror(i32 noundef %4382) #10
  %4384 = call ptr @__errno_location() #11
  %4385 = load i32, ptr %4384, align 4, !tbaa !5
  %4386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4373, ptr noundef @.str.2, i32 noundef %4374, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 219, ptr noundef %4377, ptr noundef %4380, ptr noundef %4383, i32 noundef %4385) #10
  br label %4404

4387:                                             ; preds = %4365, %4358
  %4388 = load i32, ptr %106, align 4, !tbaa !5
  %4389 = call ptr @__errno_location() #11
  store i32 %4388, ptr %4389, align 4, !tbaa !5
  %4390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4391 = load i32, ptr @test_count, align 4, !tbaa !5
  %4392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4393 = load i32, ptr %4392, align 4, !tbaa !5
  %4394 = call ptr @s2n_strerror(i32 noundef %4393, ptr noundef @.str.4)
  %4395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4396 = load i32, ptr %4395, align 4, !tbaa !5
  %4397 = call ptr @s2n_strerror_debug(i32 noundef %4396, ptr noundef @.str.4)
  %4398 = call ptr @__errno_location() #11
  %4399 = load i32, ptr %4398, align 4, !tbaa !5
  %4400 = call ptr @strerror(i32 noundef %4399) #10
  %4401 = call ptr @__errno_location() #11
  %4402 = load i32, ptr %4401, align 4, !tbaa !5
  %4403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4390, ptr noundef @.str.5, i32 noundef %4391, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 219, ptr noundef %4394, ptr noundef %4397, ptr noundef %4400, i32 noundef %4402) #10
  br label %4404

4404:                                             ; preds = %4387, %4370
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #10
  br label %4405

4405:                                             ; preds = %4404
  br label %4406

4406:                                             ; preds = %4405
  call void @exit(i32 noundef 1) #12
  unreachable

4407:                                             ; No predecessors!
  br label %4408

4408:                                             ; preds = %4407
  br label %4409

4409:                                             ; preds = %4408, %4344
  br label %4410

4410:                                             ; preds = %4409
  br label %4411

4411:                                             ; preds = %4410
  call void @llvm.lifetime.start.p0(i64 16, ptr %107) #10
  call void @llvm.memset.p0.i64(ptr align 8 %107, i8 0, i64 16, i1 false)
  br label %4412

4412:                                             ; preds = %4411
  %4413 = load i32, ptr @test_count, align 4, !tbaa !5
  %4414 = add nsw i32 %4413, 1
  store i32 %4414, ptr @test_count, align 4, !tbaa !5
  %4415 = load ptr, ptr %104, align 8, !tbaa !9
  %4416 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef %4415, ptr noundef %107)
  %4417 = icmp eq i32 %4416, -1
  br i1 %4417, label %4418, label %4471

4418:                                             ; preds = %4412
  br label %4419

4419:                                             ; preds = %4418
  br label %4420

4420:                                             ; preds = %4419
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #10
  %4421 = call ptr @__errno_location() #11
  %4422 = load i32, ptr %4421, align 4, !tbaa !5
  store i32 %4422, ptr %108, align 4, !tbaa !5
  %4423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4424 = call i32 @s2n_print_stacktrace(ptr noundef %4423)
  %4425 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4426 = trunc i8 %4425 to i1
  br i1 %4426, label %4427, label %4449

4427:                                             ; preds = %4420
  %4428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4429 = call i32 @fileno(ptr noundef %4428) #10
  %4430 = call i32 @isatty(i32 noundef %4429) #10
  %4431 = icmp ne i32 %4430, 0
  br i1 %4431, label %4432, label %4449

4432:                                             ; preds = %4427
  %4433 = load i32, ptr %108, align 4, !tbaa !5
  %4434 = call ptr @__errno_location() #11
  store i32 %4433, ptr %4434, align 4, !tbaa !5
  %4435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4436 = load i32, ptr @test_count, align 4, !tbaa !5
  %4437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4438 = load i32, ptr %4437, align 4, !tbaa !5
  %4439 = call ptr @s2n_strerror(i32 noundef %4438, ptr noundef @.str.4)
  %4440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4441 = load i32, ptr %4440, align 4, !tbaa !5
  %4442 = call ptr @s2n_strerror_debug(i32 noundef %4441, ptr noundef @.str.4)
  %4443 = call ptr @__errno_location() #11
  %4444 = load i32, ptr %4443, align 4, !tbaa !5
  %4445 = call ptr @strerror(i32 noundef %4444) #10
  %4446 = call ptr @__errno_location() #11
  %4447 = load i32, ptr %4446, align 4, !tbaa !5
  %4448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4435, ptr noundef @.str.2, i32 noundef %4436, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 223, ptr noundef %4439, ptr noundef %4442, ptr noundef %4445, i32 noundef %4447) #10
  br label %4466

4449:                                             ; preds = %4427, %4420
  %4450 = load i32, ptr %108, align 4, !tbaa !5
  %4451 = call ptr @__errno_location() #11
  store i32 %4450, ptr %4451, align 4, !tbaa !5
  %4452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4453 = load i32, ptr @test_count, align 4, !tbaa !5
  %4454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4455 = load i32, ptr %4454, align 4, !tbaa !5
  %4456 = call ptr @s2n_strerror(i32 noundef %4455, ptr noundef @.str.4)
  %4457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4458 = load i32, ptr %4457, align 4, !tbaa !5
  %4459 = call ptr @s2n_strerror_debug(i32 noundef %4458, ptr noundef @.str.4)
  %4460 = call ptr @__errno_location() #11
  %4461 = load i32, ptr %4460, align 4, !tbaa !5
  %4462 = call ptr @strerror(i32 noundef %4461) #10
  %4463 = call ptr @__errno_location() #11
  %4464 = load i32, ptr %4463, align 4, !tbaa !5
  %4465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4452, ptr noundef @.str.5, i32 noundef %4453, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 223, ptr noundef %4456, ptr noundef %4459, ptr noundef %4462, i32 noundef %4464) #10
  br label %4466

4466:                                             ; preds = %4449, %4432
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #10
  br label %4467

4467:                                             ; preds = %4466
  br label %4468

4468:                                             ; preds = %4467
  call void @exit(i32 noundef 1) #12
  unreachable

4469:                                             ; No predecessors!
  br label %4470

4470:                                             ; preds = %4469
  br label %4471

4471:                                             ; preds = %4470, %4412
  br label %4472

4472:                                             ; preds = %4471
  br label %4473

4473:                                             ; preds = %4472
  %4474 = load ptr, ptr %102, align 8, !tbaa !9
  %4475 = getelementptr inbounds %struct.s2n_connection, ptr %4474, i32 0, i32 23
  store i8 34, ptr %4475, align 4, !tbaa !27
  br label %4476

4476:                                             ; preds = %4473
  %4477 = load i32, ptr @test_count, align 4, !tbaa !5
  %4478 = add nsw i32 %4477, 1
  store i32 %4478, ptr @test_count, align 4, !tbaa !5
  %4479 = load ptr, ptr %102, align 8, !tbaa !9
  %4480 = load ptr, ptr %104, align 8, !tbaa !9
  %4481 = call i32 @s2n_extension_send(ptr noundef @s2n_cert_authorities_extension, ptr noundef %4479, ptr noundef %4480)
  %4482 = icmp eq i32 %4481, -1
  br i1 %4482, label %4483, label %4536

4483:                                             ; preds = %4476
  br label %4484

4484:                                             ; preds = %4483
  br label %4485

4485:                                             ; preds = %4484
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #10
  %4486 = call ptr @__errno_location() #11
  %4487 = load i32, ptr %4486, align 4, !tbaa !5
  store i32 %4487, ptr %109, align 4, !tbaa !5
  %4488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4489 = call i32 @s2n_print_stacktrace(ptr noundef %4488)
  %4490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4491 = trunc i8 %4490 to i1
  br i1 %4491, label %4492, label %4514

4492:                                             ; preds = %4485
  %4493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4494 = call i32 @fileno(ptr noundef %4493) #10
  %4495 = call i32 @isatty(i32 noundef %4494) #10
  %4496 = icmp ne i32 %4495, 0
  br i1 %4496, label %4497, label %4514

4497:                                             ; preds = %4492
  %4498 = load i32, ptr %109, align 4, !tbaa !5
  %4499 = call ptr @__errno_location() #11
  store i32 %4498, ptr %4499, align 4, !tbaa !5
  %4500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4501 = load i32, ptr @test_count, align 4, !tbaa !5
  %4502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4503 = load i32, ptr %4502, align 4, !tbaa !5
  %4504 = call ptr @s2n_strerror(i32 noundef %4503, ptr noundef @.str.4)
  %4505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4506 = load i32, ptr %4505, align 4, !tbaa !5
  %4507 = call ptr @s2n_strerror_debug(i32 noundef %4506, ptr noundef @.str.4)
  %4508 = call ptr @__errno_location() #11
  %4509 = load i32, ptr %4508, align 4, !tbaa !5
  %4510 = call ptr @strerror(i32 noundef %4509) #10
  %4511 = call ptr @__errno_location() #11
  %4512 = load i32, ptr %4511, align 4, !tbaa !5
  %4513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4500, ptr noundef @.str.2, i32 noundef %4501, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 230, ptr noundef %4504, ptr noundef %4507, ptr noundef %4510, i32 noundef %4512) #10
  br label %4531

4514:                                             ; preds = %4492, %4485
  %4515 = load i32, ptr %109, align 4, !tbaa !5
  %4516 = call ptr @__errno_location() #11
  store i32 %4515, ptr %4516, align 4, !tbaa !5
  %4517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4518 = load i32, ptr @test_count, align 4, !tbaa !5
  %4519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4520 = load i32, ptr %4519, align 4, !tbaa !5
  %4521 = call ptr @s2n_strerror(i32 noundef %4520, ptr noundef @.str.4)
  %4522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4523 = load i32, ptr %4522, align 4, !tbaa !5
  %4524 = call ptr @s2n_strerror_debug(i32 noundef %4523, ptr noundef @.str.4)
  %4525 = call ptr @__errno_location() #11
  %4526 = load i32, ptr %4525, align 4, !tbaa !5
  %4527 = call ptr @strerror(i32 noundef %4526) #10
  %4528 = call ptr @__errno_location() #11
  %4529 = load i32, ptr %4528, align 4, !tbaa !5
  %4530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4517, ptr noundef @.str.5, i32 noundef %4518, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 230, ptr noundef %4521, ptr noundef %4524, ptr noundef %4527, i32 noundef %4529) #10
  br label %4531

4531:                                             ; preds = %4514, %4497
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #10
  br label %4532

4532:                                             ; preds = %4531
  br label %4533

4533:                                             ; preds = %4532
  call void @exit(i32 noundef 1) #12
  unreachable

4534:                                             ; No predecessors!
  br label %4535

4535:                                             ; preds = %4534
  br label %4536

4536:                                             ; preds = %4535, %4476
  br label %4537

4537:                                             ; preds = %4536
  br label %4538

4538:                                             ; preds = %4537
  br label %4539

4539:                                             ; preds = %4538
  %4540 = load i32, ptr @test_count, align 4, !tbaa !5
  %4541 = add nsw i32 %4540, 1
  store i32 %4541, ptr @test_count, align 4, !tbaa !5
  %4542 = load ptr, ptr %104, align 8, !tbaa !9
  %4543 = load ptr, ptr %101, align 8, !tbaa !9
  %4544 = getelementptr inbounds %struct.s2n_client_hello, ptr %4543, i32 0, i32 1
  %4545 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %4544, i32 0, i32 1
  %4546 = call i32 @s2n_stuffer_write(ptr noundef %4542, ptr noundef %4545)
  %4547 = icmp eq i32 %4546, -1
  br i1 %4547, label %4548, label %4601

4548:                                             ; preds = %4539
  br label %4549

4549:                                             ; preds = %4548
  br label %4550

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

4557:                                             ; preds = %4550
  %4558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4559 = call i32 @fileno(ptr noundef %4558) #10
  %4560 = call i32 @isatty(i32 noundef %4559) #10
  %4561 = icmp ne i32 %4560, 0
  br i1 %4561, label %4562, label %4579

4562:                                             ; preds = %4557
  %4563 = load i32, ptr %110, align 4, !tbaa !5
  %4564 = call ptr @__errno_location() #11
  store i32 %4563, ptr %4564, align 4, !tbaa !5
  %4565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4566 = load i32, ptr @test_count, align 4, !tbaa !5
  %4567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4568 = load i32, ptr %4567, align 4, !tbaa !5
  %4569 = call ptr @s2n_strerror(i32 noundef %4568, ptr noundef @.str.4)
  %4570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4571 = load i32, ptr %4570, align 4, !tbaa !5
  %4572 = call ptr @s2n_strerror_debug(i32 noundef %4571, ptr noundef @.str.4)
  %4573 = call ptr @__errno_location() #11
  %4574 = load i32, ptr %4573, align 4, !tbaa !5
  %4575 = call ptr @strerror(i32 noundef %4574) #10
  %4576 = call ptr @__errno_location() #11
  %4577 = load i32, ptr %4576, align 4, !tbaa !5
  %4578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4565, ptr noundef @.str.2, i32 noundef %4566, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 233, ptr noundef %4569, ptr noundef %4572, ptr noundef %4575, i32 noundef %4577) #10
  br label %4596

4579:                                             ; preds = %4557, %4550
  %4580 = load i32, ptr %110, align 4, !tbaa !5
  %4581 = call ptr @__errno_location() #11
  store i32 %4580, ptr %4581, align 4, !tbaa !5
  %4582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4583 = load i32, ptr @test_count, align 4, !tbaa !5
  %4584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4585 = load i32, ptr %4584, align 4, !tbaa !5
  %4586 = call ptr @s2n_strerror(i32 noundef %4585, ptr noundef @.str.4)
  %4587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4588 = load i32, ptr %4587, align 4, !tbaa !5
  %4589 = call ptr @s2n_strerror_debug(i32 noundef %4588, ptr noundef @.str.4)
  %4590 = call ptr @__errno_location() #11
  %4591 = load i32, ptr %4590, align 4, !tbaa !5
  %4592 = call ptr @strerror(i32 noundef %4591) #10
  %4593 = call ptr @__errno_location() #11
  %4594 = load i32, ptr %4593, align 4, !tbaa !5
  %4595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4582, ptr noundef @.str.5, i32 noundef %4583, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 233, ptr noundef %4586, ptr noundef %4589, ptr noundef %4592, i32 noundef %4594) #10
  br label %4596

4596:                                             ; preds = %4579, %4562
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #10
  br label %4597

4597:                                             ; preds = %4596
  br label %4598

4598:                                             ; preds = %4597
  call void @exit(i32 noundef 1) #12
  unreachable

4599:                                             ; No predecessors!
  br label %4600

4600:                                             ; preds = %4599
  br label %4601

4601:                                             ; preds = %4600, %4539
  br label %4602

4602:                                             ; preds = %4601
  br label %4603

4603:                                             ; preds = %4602
  br label %4604

4604:                                             ; preds = %4603
  %4605 = load i32, ptr @test_count, align 4, !tbaa !5
  %4606 = add nsw i32 %4605, 1
  store i32 %4606, ptr @test_count, align 4, !tbaa !5
  %4607 = call i32 @s2n_stuffer_write_vector_size(ptr noundef %107)
  %4608 = icmp eq i32 %4607, -1
  br i1 %4608, label %4609, label %4662

4609:                                             ; preds = %4604
  br label %4610

4610:                                             ; preds = %4609
  br label %4611

4611:                                             ; preds = %4610
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #10
  %4612 = call ptr @__errno_location() #11
  %4613 = load i32, ptr %4612, align 4, !tbaa !5
  store i32 %4613, ptr %111, align 4, !tbaa !5
  %4614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4615 = call i32 @s2n_print_stacktrace(ptr noundef %4614)
  %4616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4617 = trunc i8 %4616 to i1
  br i1 %4617, label %4618, label %4640

4618:                                             ; preds = %4611
  %4619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4620 = call i32 @fileno(ptr noundef %4619) #10
  %4621 = call i32 @isatty(i32 noundef %4620) #10
  %4622 = icmp ne i32 %4621, 0
  br i1 %4622, label %4623, label %4640

4623:                                             ; preds = %4618
  %4624 = load i32, ptr %111, align 4, !tbaa !5
  %4625 = call ptr @__errno_location() #11
  store i32 %4624, ptr %4625, align 4, !tbaa !5
  %4626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4627 = load i32, ptr @test_count, align 4, !tbaa !5
  %4628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4629 = load i32, ptr %4628, align 4, !tbaa !5
  %4630 = call ptr @s2n_strerror(i32 noundef %4629, ptr noundef @.str.4)
  %4631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4632 = load i32, ptr %4631, align 4, !tbaa !5
  %4633 = call ptr @s2n_strerror_debug(i32 noundef %4632, ptr noundef @.str.4)
  %4634 = call ptr @__errno_location() #11
  %4635 = load i32, ptr %4634, align 4, !tbaa !5
  %4636 = call ptr @strerror(i32 noundef %4635) #10
  %4637 = call ptr @__errno_location() #11
  %4638 = load i32, ptr %4637, align 4, !tbaa !5
  %4639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4626, ptr noundef @.str.2, i32 noundef %4627, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 236, ptr noundef %4630, ptr noundef %4633, ptr noundef %4636, i32 noundef %4638) #10
  br label %4657

4640:                                             ; preds = %4618, %4611
  %4641 = load i32, ptr %111, align 4, !tbaa !5
  %4642 = call ptr @__errno_location() #11
  store i32 %4641, ptr %4642, align 4, !tbaa !5
  %4643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4644 = load i32, ptr @test_count, align 4, !tbaa !5
  %4645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4646 = load i32, ptr %4645, align 4, !tbaa !5
  %4647 = call ptr @s2n_strerror(i32 noundef %4646, ptr noundef @.str.4)
  %4648 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4649 = load i32, ptr %4648, align 4, !tbaa !5
  %4650 = call ptr @s2n_strerror_debug(i32 noundef %4649, ptr noundef @.str.4)
  %4651 = call ptr @__errno_location() #11
  %4652 = load i32, ptr %4651, align 4, !tbaa !5
  %4653 = call ptr @strerror(i32 noundef %4652) #10
  %4654 = call ptr @__errno_location() #11
  %4655 = load i32, ptr %4654, align 4, !tbaa !5
  %4656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4643, ptr noundef @.str.5, i32 noundef %4644, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 236, ptr noundef %4647, ptr noundef %4650, ptr noundef %4653, i32 noundef %4655) #10
  br label %4657

4657:                                             ; preds = %4640, %4623
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #10
  br label %4658

4658:                                             ; preds = %4657
  br label %4659

4659:                                             ; preds = %4658
  call void @exit(i32 noundef 1) #12
  unreachable

4660:                                             ; No predecessors!
  br label %4661

4661:                                             ; preds = %4660
  br label %4662

4662:                                             ; preds = %4661, %4604
  br label %4663

4663:                                             ; preds = %4662
  br label %4664

4664:                                             ; preds = %4663
  br label %4665

4665:                                             ; preds = %4664
  %4666 = load i32, ptr @test_count, align 4, !tbaa !5
  %4667 = add nsw i32 %4666, 1
  store i32 %4667, ptr @test_count, align 4, !tbaa !5
  %4668 = load ptr, ptr %102, align 8, !tbaa !9
  %4669 = call i32 @s2n_client_hello_recv(ptr noundef %4668)
  %4670 = icmp eq i32 %4669, -1
  br i1 %4670, label %4671, label %4724

4671:                                             ; preds = %4665
  br label %4672

4672:                                             ; preds = %4671
  br label %4673

4673:                                             ; preds = %4672
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #10
  %4674 = call ptr @__errno_location() #11
  %4675 = load i32, ptr %4674, align 4, !tbaa !5
  store i32 %4675, ptr %112, align 4, !tbaa !5
  %4676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4677 = call i32 @s2n_print_stacktrace(ptr noundef %4676)
  %4678 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4679 = trunc i8 %4678 to i1
  br i1 %4679, label %4680, label %4702

4680:                                             ; preds = %4673
  %4681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4682 = call i32 @fileno(ptr noundef %4681) #10
  %4683 = call i32 @isatty(i32 noundef %4682) #10
  %4684 = icmp ne i32 %4683, 0
  br i1 %4684, label %4685, label %4702

4685:                                             ; preds = %4680
  %4686 = load i32, ptr %112, align 4, !tbaa !5
  %4687 = call ptr @__errno_location() #11
  store i32 %4686, ptr %4687, align 4, !tbaa !5
  %4688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4689 = load i32, ptr @test_count, align 4, !tbaa !5
  %4690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4691 = load i32, ptr %4690, align 4, !tbaa !5
  %4692 = call ptr @s2n_strerror(i32 noundef %4691, ptr noundef @.str.4)
  %4693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4694 = load i32, ptr %4693, align 4, !tbaa !5
  %4695 = call ptr @s2n_strerror_debug(i32 noundef %4694, ptr noundef @.str.4)
  %4696 = call ptr @__errno_location() #11
  %4697 = load i32, ptr %4696, align 4, !tbaa !5
  %4698 = call ptr @strerror(i32 noundef %4697) #10
  %4699 = call ptr @__errno_location() #11
  %4700 = load i32, ptr %4699, align 4, !tbaa !5
  %4701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4688, ptr noundef @.str.2, i32 noundef %4689, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 239, ptr noundef %4692, ptr noundef %4695, ptr noundef %4698, i32 noundef %4700) #10
  br label %4719

4702:                                             ; preds = %4680, %4673
  %4703 = load i32, ptr %112, align 4, !tbaa !5
  %4704 = call ptr @__errno_location() #11
  store i32 %4703, ptr %4704, align 4, !tbaa !5
  %4705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4706 = load i32, ptr @test_count, align 4, !tbaa !5
  %4707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4708 = load i32, ptr %4707, align 4, !tbaa !5
  %4709 = call ptr @s2n_strerror(i32 noundef %4708, ptr noundef @.str.4)
  %4710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4711 = load i32, ptr %4710, align 4, !tbaa !5
  %4712 = call ptr @s2n_strerror_debug(i32 noundef %4711, ptr noundef @.str.4)
  %4713 = call ptr @__errno_location() #11
  %4714 = load i32, ptr %4713, align 4, !tbaa !5
  %4715 = call ptr @strerror(i32 noundef %4714) #10
  %4716 = call ptr @__errno_location() #11
  %4717 = load i32, ptr %4716, align 4, !tbaa !5
  %4718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4705, ptr noundef @.str.5, i32 noundef %4706, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 239, ptr noundef %4709, ptr noundef %4712, ptr noundef %4715, i32 noundef %4717) #10
  br label %4719

4719:                                             ; preds = %4702, %4685
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #10
  br label %4720

4720:                                             ; preds = %4719
  br label %4721

4721:                                             ; preds = %4720
  call void @exit(i32 noundef 1) #12
  unreachable

4722:                                             ; No predecessors!
  br label %4723

4723:                                             ; preds = %4722
  br label %4724

4724:                                             ; preds = %4723, %4665
  br label %4725

4725:                                             ; preds = %4724
  br label %4726

4726:                                             ; preds = %4725
  br label %4727

4727:                                             ; preds = %4726
  %4728 = load i32, ptr @test_count, align 4, !tbaa !5
  %4729 = add nsw i32 %4728, 1
  store i32 %4729, ptr @test_count, align 4, !tbaa !5
  %4730 = load ptr, ptr %102, align 8, !tbaa !9
  %4731 = getelementptr inbounds %struct.s2n_connection, ptr %4730, i32 0, i32 71
  %4732 = getelementptr inbounds %struct.s2n_client_hello, ptr %4731, i32 0, i32 7
  %4733 = load i8, ptr %4732, align 2
  %4734 = lshr i8 %4733, 4
  %4735 = and i8 %4734, 1
  %4736 = zext i8 %4735 to i32
  %4737 = icmp ne i32 %4736, 0
  br i1 %4737, label %4791, label %4738

4738:                                             ; preds = %4727
  br label %4739

4739:                                             ; preds = %4738
  br label %4740

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

4747:                                             ; preds = %4740
  %4748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4749 = call i32 @fileno(ptr noundef %4748) #10
  %4750 = call i32 @isatty(i32 noundef %4749) #10
  %4751 = icmp ne i32 %4750, 0
  br i1 %4751, label %4752, label %4769

4752:                                             ; preds = %4747
  %4753 = load i32, ptr %113, align 4, !tbaa !5
  %4754 = call ptr @__errno_location() #11
  store i32 %4753, ptr %4754, align 4, !tbaa !5
  %4755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4756 = load i32, ptr @test_count, align 4, !tbaa !5
  %4757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4758 = load i32, ptr %4757, align 4, !tbaa !5
  %4759 = call ptr @s2n_strerror(i32 noundef %4758, ptr noundef @.str.4)
  %4760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4761 = load i32, ptr %4760, align 4, !tbaa !5
  %4762 = call ptr @s2n_strerror_debug(i32 noundef %4761, ptr noundef @.str.4)
  %4763 = call ptr @__errno_location() #11
  %4764 = load i32, ptr %4763, align 4, !tbaa !5
  %4765 = call ptr @strerror(i32 noundef %4764) #10
  %4766 = call ptr @__errno_location() #11
  %4767 = load i32, ptr %4766, align 4, !tbaa !5
  %4768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4755, ptr noundef @.str.2, i32 noundef %4756, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 240, ptr noundef %4759, ptr noundef %4762, ptr noundef %4765, i32 noundef %4767) #10
  br label %4786

4769:                                             ; preds = %4747, %4740
  %4770 = load i32, ptr %113, align 4, !tbaa !5
  %4771 = call ptr @__errno_location() #11
  store i32 %4770, ptr %4771, align 4, !tbaa !5
  %4772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4773 = load i32, ptr @test_count, align 4, !tbaa !5
  %4774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4775 = load i32, ptr %4774, align 4, !tbaa !5
  %4776 = call ptr @s2n_strerror(i32 noundef %4775, ptr noundef @.str.4)
  %4777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4778 = load i32, ptr %4777, align 4, !tbaa !5
  %4779 = call ptr @s2n_strerror_debug(i32 noundef %4778, ptr noundef @.str.4)
  %4780 = call ptr @__errno_location() #11
  %4781 = load i32, ptr %4780, align 4, !tbaa !5
  %4782 = call ptr @strerror(i32 noundef %4781) #10
  %4783 = call ptr @__errno_location() #11
  %4784 = load i32, ptr %4783, align 4, !tbaa !5
  %4785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4772, ptr noundef @.str.5, i32 noundef %4773, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 240, ptr noundef %4776, ptr noundef %4779, ptr noundef %4782, i32 noundef %4784) #10
  br label %4786

4786:                                             ; preds = %4769, %4752
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #10
  br label %4787

4787:                                             ; preds = %4786
  br label %4788

4788:                                             ; preds = %4787
  call void @exit(i32 noundef 1) #12
  unreachable

4789:                                             ; No predecessors!
  br label %4790

4790:                                             ; preds = %4789
  br label %4791

4791:                                             ; preds = %4790, %4727
  br label %4792

4792:                                             ; preds = %4791
  br label %4793

4793:                                             ; preds = %4792
  br label %4794

4794:                                             ; preds = %4793
  %4795 = load i32, ptr @test_count, align 4, !tbaa !5
  %4796 = add nsw i32 %4795, 1
  store i32 %4796, ptr @test_count, align 4, !tbaa !5
  %4797 = load ptr, ptr %102, align 8, !tbaa !9
  %4798 = getelementptr inbounds %struct.s2n_connection, ptr %4797, i32 0, i32 23
  %4799 = load i8, ptr %4798, align 4, !tbaa !27
  %4800 = zext i8 %4799 to i32
  %4801 = icmp eq i32 %4800, 34
  br i1 %4801, label %4855, label %4802

4802:                                             ; preds = %4794
  br label %4803

4803:                                             ; preds = %4802
  br label %4804

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

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

4816:                                             ; preds = %4811
  %4817 = load i32, ptr %114, align 4, !tbaa !5
  %4818 = call ptr @__errno_location() #11
  store i32 %4817, ptr %4818, align 4, !tbaa !5
  %4819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4820 = load i32, ptr @test_count, align 4, !tbaa !5
  %4821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4822 = load i32, ptr %4821, align 4, !tbaa !5
  %4823 = call ptr @s2n_strerror(i32 noundef %4822, ptr noundef @.str.4)
  %4824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4825 = load i32, ptr %4824, align 4, !tbaa !5
  %4826 = call ptr @s2n_strerror_debug(i32 noundef %4825, ptr noundef @.str.4)
  %4827 = call ptr @__errno_location() #11
  %4828 = load i32, ptr %4827, align 4, !tbaa !5
  %4829 = call ptr @strerror(i32 noundef %4828) #10
  %4830 = call ptr @__errno_location() #11
  %4831 = load i32, ptr %4830, align 4, !tbaa !5
  %4832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4819, ptr noundef @.str.2, i32 noundef %4820, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 241, ptr noundef %4823, ptr noundef %4826, ptr noundef %4829, i32 noundef %4831) #10
  br label %4850

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

4850:                                             ; preds = %4833, %4816
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #10
  br label %4851

4851:                                             ; preds = %4850
  br label %4852

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

4853:                                             ; No predecessors!
  br label %4854

4854:                                             ; preds = %4853
  br label %4855

4855:                                             ; preds = %4854, %4794
  br label %4856

4856:                                             ; preds = %4855
  br label %4857

4857:                                             ; preds = %4856
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #10
  %4858 = load ptr, ptr %102, align 8, !tbaa !9
  %4859 = getelementptr inbounds %struct.s2n_connection, ptr %4858, i32 0, i32 71
  %4860 = getelementptr inbounds %struct.s2n_client_hello, ptr %4859, i32 0, i32 1
  %4861 = getelementptr inbounds %struct.s2n_parsed_extensions_list, ptr %4860, i32 0, i32 0
  %4862 = load i8, ptr %13, align 1, !tbaa !15
  %4863 = zext i8 %4862 to i64
  %4864 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %4861, i64 0, i64 %4863
  store ptr %4864, ptr %115, align 8, !tbaa !9
  br label %4865

4865:                                             ; preds = %4857
  %4866 = load i32, ptr @test_count, align 4, !tbaa !5
  %4867 = add nsw i32 %4866, 1
  store i32 %4867, ptr @test_count, align 4, !tbaa !5
  %4868 = load ptr, ptr %115, align 8, !tbaa !9
  %4869 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %4868, i32 0, i32 0
  %4870 = getelementptr inbounds %struct.s2n_blob, ptr %4869, i32 0, i32 1
  %4871 = load i32, ptr %4870, align 8, !tbaa !59
  %4872 = icmp ugt i32 %4871, 0
  br i1 %4872, label %4926, label %4873

4873:                                             ; preds = %4865
  br label %4874

4874:                                             ; preds = %4873
  br label %4875

4875:                                             ; preds = %4874
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #10
  %4876 = call ptr @__errno_location() #11
  %4877 = load i32, ptr %4876, align 4, !tbaa !5
  store i32 %4877, ptr %116, align 4, !tbaa !5
  %4878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4879 = call i32 @s2n_print_stacktrace(ptr noundef %4878)
  %4880 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4881 = trunc i8 %4880 to i1
  br i1 %4881, label %4882, label %4904

4882:                                             ; preds = %4875
  %4883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4884 = call i32 @fileno(ptr noundef %4883) #10
  %4885 = call i32 @isatty(i32 noundef %4884) #10
  %4886 = icmp ne i32 %4885, 0
  br i1 %4886, label %4887, label %4904

4887:                                             ; preds = %4882
  %4888 = load i32, ptr %116, align 4, !tbaa !5
  %4889 = call ptr @__errno_location() #11
  store i32 %4888, ptr %4889, align 4, !tbaa !5
  %4890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4891 = load i32, ptr @test_count, align 4, !tbaa !5
  %4892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4893 = load i32, ptr %4892, align 4, !tbaa !5
  %4894 = call ptr @s2n_strerror(i32 noundef %4893, ptr noundef @.str.4)
  %4895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4896 = load i32, ptr %4895, align 4, !tbaa !5
  %4897 = call ptr @s2n_strerror_debug(i32 noundef %4896, ptr noundef @.str.4)
  %4898 = call ptr @__errno_location() #11
  %4899 = load i32, ptr %4898, align 4, !tbaa !5
  %4900 = call ptr @strerror(i32 noundef %4899) #10
  %4901 = call ptr @__errno_location() #11
  %4902 = load i32, ptr %4901, align 4, !tbaa !5
  %4903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4890, ptr noundef @.str.2, i32 noundef %4891, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 244, ptr noundef %4894, ptr noundef %4897, ptr noundef %4900, i32 noundef %4902) #10
  br label %4921

4904:                                             ; preds = %4882, %4875
  %4905 = load i32, ptr %116, align 4, !tbaa !5
  %4906 = call ptr @__errno_location() #11
  store i32 %4905, ptr %4906, align 4, !tbaa !5
  %4907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4908 = load i32, ptr @test_count, align 4, !tbaa !5
  %4909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4910 = load i32, ptr %4909, align 4, !tbaa !5
  %4911 = call ptr @s2n_strerror(i32 noundef %4910, ptr noundef @.str.4)
  %4912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4913 = load i32, ptr %4912, align 4, !tbaa !5
  %4914 = call ptr @s2n_strerror_debug(i32 noundef %4913, ptr noundef @.str.4)
  %4915 = call ptr @__errno_location() #11
  %4916 = load i32, ptr %4915, align 4, !tbaa !5
  %4917 = call ptr @strerror(i32 noundef %4916) #10
  %4918 = call ptr @__errno_location() #11
  %4919 = load i32, ptr %4918, align 4, !tbaa !5
  %4920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4907, ptr noundef @.str.5, i32 noundef %4908, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 244, ptr noundef %4911, ptr noundef %4914, ptr noundef %4917, i32 noundef %4919) #10
  br label %4921

4921:                                             ; preds = %4904, %4887
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #10
  br label %4922

4922:                                             ; preds = %4921
  br label %4923

4923:                                             ; preds = %4922
  call void @exit(i32 noundef 1) #12
  unreachable

4924:                                             ; No predecessors!
  br label %4925

4925:                                             ; preds = %4924
  br label %4926

4926:                                             ; preds = %4925, %4865
  br label %4927

4927:                                             ; preds = %4926
  br label %4928

4928:                                             ; preds = %4927
  br label %4929

4929:                                             ; preds = %4928
  %4930 = load i32, ptr @test_count, align 4, !tbaa !5
  %4931 = add nsw i32 %4930, 1
  store i32 %4931, ptr @test_count, align 4, !tbaa !5
  %4932 = load ptr, ptr %115, align 8, !tbaa !9
  %4933 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %4932, i32 0, i32 3
  %4934 = load i8, ptr %4933, align 4
  %4935 = and i8 %4934, 1
  %4936 = zext i8 %4935 to i32
  %4937 = icmp ne i32 %4936, 0
  br i1 %4937, label %4938, label %4991

4938:                                             ; preds = %4929
  br label %4939

4939:                                             ; preds = %4938
  br label %4940

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

4947:                                             ; preds = %4940
  %4948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4949 = call i32 @fileno(ptr noundef %4948) #10
  %4950 = call i32 @isatty(i32 noundef %4949) #10
  %4951 = icmp ne i32 %4950, 0
  br i1 %4951, label %4952, label %4969

4952:                                             ; preds = %4947
  %4953 = load i32, ptr %117, align 4, !tbaa !5
  %4954 = call ptr @__errno_location() #11
  store i32 %4953, ptr %4954, align 4, !tbaa !5
  %4955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4956 = load i32, ptr @test_count, align 4, !tbaa !5
  %4957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4958 = load i32, ptr %4957, align 4, !tbaa !5
  %4959 = call ptr @s2n_strerror(i32 noundef %4958, ptr noundef @.str.4)
  %4960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4961 = load i32, ptr %4960, align 4, !tbaa !5
  %4962 = call ptr @s2n_strerror_debug(i32 noundef %4961, ptr noundef @.str.4)
  %4963 = call ptr @__errno_location() #11
  %4964 = load i32, ptr %4963, align 4, !tbaa !5
  %4965 = call ptr @strerror(i32 noundef %4964) #10
  %4966 = call ptr @__errno_location() #11
  %4967 = load i32, ptr %4966, align 4, !tbaa !5
  %4968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4955, ptr noundef @.str.2, i32 noundef %4956, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 245, ptr noundef %4959, ptr noundef %4962, ptr noundef %4965, i32 noundef %4967) #10
  br label %4986

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

4986:                                             ; preds = %4969, %4952
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #10
  br label %4987

4987:                                             ; preds = %4986
  br label %4988

4988:                                             ; preds = %4987
  call void @exit(i32 noundef 1) #12
  unreachable

4989:                                             ; No predecessors!
  br label %4990

4990:                                             ; preds = %4989
  br label %4991

4991:                                             ; preds = %4990, %4929
  br label %4992

4992:                                             ; preds = %4991
  br label %4993

4993:                                             ; preds = %4992
  br label %4994

4994:                                             ; preds = %4993
  %4995 = load i32, ptr @test_count, align 4, !tbaa !5
  %4996 = add nsw i32 %4995, 1
  store i32 %4996, ptr @test_count, align 4, !tbaa !5
  %4997 = load ptr, ptr %115, align 8, !tbaa !9
  %4998 = getelementptr inbounds %struct.s2n_parsed_extension, ptr %4997, i32 0, i32 1
  %4999 = load i16, ptr %4998, align 8, !tbaa !61
  %5000 = zext i16 %4999 to i32
  %5001 = load i16, ptr @s2n_cert_authorities_extension, align 8, !tbaa !16
  %5002 = zext i16 %5001 to i32
  %5003 = icmp eq i32 %5000, %5002
  br i1 %5003, label %5057, label %5004

5004:                                             ; preds = %4994
  br label %5005

5005:                                             ; preds = %5004
  br label %5006

5006:                                             ; preds = %5005
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #10
  %5007 = call ptr @__errno_location() #11
  %5008 = load i32, ptr %5007, align 4, !tbaa !5
  store i32 %5008, ptr %118, align 4, !tbaa !5
  %5009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5010 = call i32 @s2n_print_stacktrace(ptr noundef %5009)
  %5011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5012 = trunc i8 %5011 to i1
  br i1 %5012, label %5013, label %5035

5013:                                             ; preds = %5006
  %5014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5015 = call i32 @fileno(ptr noundef %5014) #10
  %5016 = call i32 @isatty(i32 noundef %5015) #10
  %5017 = icmp ne i32 %5016, 0
  br i1 %5017, label %5018, label %5035

5018:                                             ; preds = %5013
  %5019 = load i32, ptr %118, align 4, !tbaa !5
  %5020 = call ptr @__errno_location() #11
  store i32 %5019, ptr %5020, align 4, !tbaa !5
  %5021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5022 = load i32, ptr @test_count, align 4, !tbaa !5
  %5023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5024 = load i32, ptr %5023, align 4, !tbaa !5
  %5025 = call ptr @s2n_strerror(i32 noundef %5024, ptr noundef @.str.4)
  %5026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5027 = load i32, ptr %5026, align 4, !tbaa !5
  %5028 = call ptr @s2n_strerror_debug(i32 noundef %5027, ptr noundef @.str.4)
  %5029 = call ptr @__errno_location() #11
  %5030 = load i32, ptr %5029, align 4, !tbaa !5
  %5031 = call ptr @strerror(i32 noundef %5030) #10
  %5032 = call ptr @__errno_location() #11
  %5033 = load i32, ptr %5032, align 4, !tbaa !5
  %5034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5021, ptr noundef @.str.2, i32 noundef %5022, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 246, ptr noundef %5025, ptr noundef %5028, ptr noundef %5031, i32 noundef %5033) #10
  br label %5052

5035:                                             ; preds = %5013, %5006
  %5036 = load i32, ptr %118, align 4, !tbaa !5
  %5037 = call ptr @__errno_location() #11
  store i32 %5036, ptr %5037, align 4, !tbaa !5
  %5038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5039 = load i32, ptr @test_count, align 4, !tbaa !5
  %5040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5041 = load i32, ptr %5040, align 4, !tbaa !5
  %5042 = call ptr @s2n_strerror(i32 noundef %5041, ptr noundef @.str.4)
  %5043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5044 = load i32, ptr %5043, align 4, !tbaa !5
  %5045 = call ptr @s2n_strerror_debug(i32 noundef %5044, ptr noundef @.str.4)
  %5046 = call ptr @__errno_location() #11
  %5047 = load i32, ptr %5046, align 4, !tbaa !5
  %5048 = call ptr @strerror(i32 noundef %5047) #10
  %5049 = call ptr @__errno_location() #11
  %5050 = load i32, ptr %5049, align 4, !tbaa !5
  %5051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5038, ptr noundef @.str.5, i32 noundef %5039, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 246, ptr noundef %5042, ptr noundef %5045, ptr noundef %5048, i32 noundef %5050) #10
  br label %5052

5052:                                             ; preds = %5035, %5018
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #10
  br label %5053

5053:                                             ; preds = %5052
  br label %5054

5054:                                             ; preds = %5053
  call void @exit(i32 noundef 1) #12
  unreachable

5055:                                             ; No predecessors!
  br label %5056

5056:                                             ; preds = %5055
  br label %5057

5057:                                             ; preds = %5056, %4994
  br label %5058

5058:                                             ; preds = %5057
  br label %5059

5059:                                             ; preds = %5058
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #10
  call void @llvm.lifetime.end.p0(i64 16, ptr %107) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %104) #10
  %5060 = call i32 @s2n_connection_ptr_free(ptr noundef %102)
  %5061 = getelementptr inbounds %struct.s2n_result, ptr %119, i32 0, i32 0
  store i32 %5060, ptr %5061, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #10
  %5062 = call i32 @s2n_connection_ptr_free(ptr noundef %97)
  %5063 = getelementptr inbounds %struct.s2n_result, ptr %120, i32 0, i32 0
  store i32 %5062, ptr %5063, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #10
  %5064 = call i32 @s2n_config_ptr_free(ptr noundef %92)
  %5065 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  store i32 %5064, ptr %5065, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #10
  br label %5066

5066:                                             ; preds = %5059, %3817
  %5067 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %5067, label %5068, label %6125

5068:                                             ; preds = %5066
  call void @llvm.lifetime.start.p0(i64 8, ptr %122) #10
  %5069 = call ptr @s2n_config_new_minimal()
  store ptr %5069, ptr %122, align 8, !tbaa !9
  br label %5070

5070:                                             ; preds = %5068
  %5071 = load i32, ptr @test_count, align 4, !tbaa !5
  %5072 = add nsw i32 %5071, 1
  store i32 %5072, ptr @test_count, align 4, !tbaa !5
  %5073 = load ptr, ptr %122, align 8, !tbaa !9
  %5074 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %5073)
  %5075 = icmp eq i32 %5074, -1
  br i1 %5075, label %5076, label %5129

5076:                                             ; preds = %5070
  br label %5077

5077:                                             ; preds = %5076
  br label %5078

5078:                                             ; preds = %5077
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #10
  %5079 = call ptr @__errno_location() #11
  %5080 = load i32, ptr %5079, align 4, !tbaa !5
  store i32 %5080, ptr %123, align 4, !tbaa !5
  %5081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5082 = call i32 @s2n_print_stacktrace(ptr noundef %5081)
  %5083 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5084 = trunc i8 %5083 to i1
  br i1 %5084, label %5085, label %5107

5085:                                             ; preds = %5078
  %5086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5087 = call i32 @fileno(ptr noundef %5086) #10
  %5088 = call i32 @isatty(i32 noundef %5087) #10
  %5089 = icmp ne i32 %5088, 0
  br i1 %5089, label %5090, label %5107

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

5107:                                             ; preds = %5085, %5078
  %5108 = load i32, ptr %123, align 4, !tbaa !5
  %5109 = call ptr @__errno_location() #11
  store i32 %5108, ptr %5109, align 4, !tbaa !5
  %5110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5111 = load i32, ptr @test_count, align 4, !tbaa !5
  %5112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5113 = load i32, ptr %5112, align 4, !tbaa !5
  %5114 = call ptr @s2n_strerror(i32 noundef %5113, ptr noundef @.str.4)
  %5115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5116 = load i32, ptr %5115, align 4, !tbaa !5
  %5117 = call ptr @s2n_strerror_debug(i32 noundef %5116, ptr noundef @.str.4)
  %5118 = call ptr @__errno_location() #11
  %5119 = load i32, ptr %5118, align 4, !tbaa !5
  %5120 = call ptr @strerror(i32 noundef %5119) #10
  %5121 = call ptr @__errno_location() #11
  %5122 = load i32, ptr %5121, align 4, !tbaa !5
  %5123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5110, ptr noundef @.str.5, i32 noundef %5111, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 257, ptr noundef %5114, ptr noundef %5117, ptr noundef %5120, i32 noundef %5122) #10
  br label %5124

5124:                                             ; preds = %5107, %5090
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #10
  br label %5125

5125:                                             ; preds = %5124
  br label %5126

5126:                                             ; preds = %5125
  call void @exit(i32 noundef 1) #12
  unreachable

5127:                                             ; No predecessors!
  br label %5128

5128:                                             ; preds = %5127
  br label %5129

5129:                                             ; preds = %5128, %5070
  br label %5130

5130:                                             ; preds = %5129
  br label %5131

5131:                                             ; preds = %5130
  br label %5132

5132:                                             ; preds = %5131
  %5133 = load i32, ptr @test_count, align 4, !tbaa !5
  %5134 = add nsw i32 %5133, 1
  store i32 %5134, ptr @test_count, align 4, !tbaa !5
  %5135 = load ptr, ptr %122, align 8, !tbaa !9
  %5136 = load ptr, ptr %9, align 8, !tbaa !9
  %5137 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %5135, ptr noundef %5136)
  %5138 = icmp eq i32 %5137, -1
  br i1 %5138, label %5139, label %5192

5139:                                             ; preds = %5132
  br label %5140

5140:                                             ; preds = %5139
  br label %5141

5141:                                             ; preds = %5140
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #10
  %5142 = call ptr @__errno_location() #11
  %5143 = load i32, ptr %5142, align 4, !tbaa !5
  store i32 %5143, ptr %124, align 4, !tbaa !5
  %5144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5145 = call i32 @s2n_print_stacktrace(ptr noundef %5144)
  %5146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5147 = trunc i8 %5146 to i1
  br i1 %5147, label %5148, label %5170

5148:                                             ; preds = %5141
  %5149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5150 = call i32 @fileno(ptr noundef %5149) #10
  %5151 = call i32 @isatty(i32 noundef %5150) #10
  %5152 = icmp ne i32 %5151, 0
  br i1 %5152, label %5153, label %5170

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

5170:                                             ; preds = %5148, %5141
  %5171 = load i32, ptr %124, align 4, !tbaa !5
  %5172 = call ptr @__errno_location() #11
  store i32 %5171, ptr %5172, align 4, !tbaa !5
  %5173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5174 = load i32, ptr @test_count, align 4, !tbaa !5
  %5175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5176 = load i32, ptr %5175, align 4, !tbaa !5
  %5177 = call ptr @s2n_strerror(i32 noundef %5176, ptr noundef @.str.4)
  %5178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5179 = load i32, ptr %5178, align 4, !tbaa !5
  %5180 = call ptr @s2n_strerror_debug(i32 noundef %5179, ptr noundef @.str.4)
  %5181 = call ptr @__errno_location() #11
  %5182 = load i32, ptr %5181, align 4, !tbaa !5
  %5183 = call ptr @strerror(i32 noundef %5182) #10
  %5184 = call ptr @__errno_location() #11
  %5185 = load i32, ptr %5184, align 4, !tbaa !5
  %5186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5173, ptr noundef @.str.5, i32 noundef %5174, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 258, ptr noundef %5177, ptr noundef %5180, ptr noundef %5183, i32 noundef %5185) #10
  br label %5187

5187:                                             ; preds = %5170, %5153
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #10
  br label %5188

5188:                                             ; preds = %5187
  br label %5189

5189:                                             ; preds = %5188
  call void @exit(i32 noundef 1) #12
  unreachable

5190:                                             ; No predecessors!
  br label %5191

5191:                                             ; preds = %5190
  br label %5192

5192:                                             ; preds = %5191, %5132
  br label %5193

5193:                                             ; preds = %5192
  br label %5194

5194:                                             ; preds = %5193
  br label %5195

5195:                                             ; preds = %5194
  %5196 = load i32, ptr @test_count, align 4, !tbaa !5
  %5197 = add nsw i32 %5196, 1
  store i32 %5197, ptr @test_count, align 4, !tbaa !5
  %5198 = load ptr, ptr %122, align 8, !tbaa !9
  %5199 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %5198, ptr noundef @.str.48)
  %5200 = icmp eq i32 %5199, -1
  br i1 %5200, label %5201, label %5254

5201:                                             ; preds = %5195
  br label %5202

5202:                                             ; preds = %5201
  br label %5203

5203:                                             ; preds = %5202
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #10
  %5204 = call ptr @__errno_location() #11
  %5205 = load i32, ptr %5204, align 4, !tbaa !5
  store i32 %5205, ptr %125, align 4, !tbaa !5
  %5206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5207 = call i32 @s2n_print_stacktrace(ptr noundef %5206)
  %5208 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5209 = trunc i8 %5208 to i1
  br i1 %5209, label %5210, label %5232

5210:                                             ; preds = %5203
  %5211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5212 = call i32 @fileno(ptr noundef %5211) #10
  %5213 = call i32 @isatty(i32 noundef %5212) #10
  %5214 = icmp ne i32 %5213, 0
  br i1 %5214, label %5215, label %5232

5215:                                             ; preds = %5210
  %5216 = load i32, ptr %125, align 4, !tbaa !5
  %5217 = call ptr @__errno_location() #11
  store i32 %5216, ptr %5217, align 4, !tbaa !5
  %5218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5219 = load i32, ptr @test_count, align 4, !tbaa !5
  %5220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5221 = load i32, ptr %5220, align 4, !tbaa !5
  %5222 = call ptr @s2n_strerror(i32 noundef %5221, ptr noundef @.str.4)
  %5223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5224 = load i32, ptr %5223, align 4, !tbaa !5
  %5225 = call ptr @s2n_strerror_debug(i32 noundef %5224, ptr noundef @.str.4)
  %5226 = call ptr @__errno_location() #11
  %5227 = load i32, ptr %5226, align 4, !tbaa !5
  %5228 = call ptr @strerror(i32 noundef %5227) #10
  %5229 = call ptr @__errno_location() #11
  %5230 = load i32, ptr %5229, align 4, !tbaa !5
  %5231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5218, ptr noundef @.str.2, i32 noundef %5219, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 259, ptr noundef %5222, ptr noundef %5225, ptr noundef %5228, i32 noundef %5230) #10
  br label %5249

5232:                                             ; preds = %5210, %5203
  %5233 = load i32, ptr %125, align 4, !tbaa !5
  %5234 = call ptr @__errno_location() #11
  store i32 %5233, ptr %5234, align 4, !tbaa !5
  %5235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5236 = load i32, ptr @test_count, align 4, !tbaa !5
  %5237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5238 = load i32, ptr %5237, align 4, !tbaa !5
  %5239 = call ptr @s2n_strerror(i32 noundef %5238, ptr noundef @.str.4)
  %5240 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5241 = load i32, ptr %5240, align 4, !tbaa !5
  %5242 = call ptr @s2n_strerror_debug(i32 noundef %5241, ptr noundef @.str.4)
  %5243 = call ptr @__errno_location() #11
  %5244 = load i32, ptr %5243, align 4, !tbaa !5
  %5245 = call ptr @strerror(i32 noundef %5244) #10
  %5246 = call ptr @__errno_location() #11
  %5247 = load i32, ptr %5246, align 4, !tbaa !5
  %5248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5235, ptr noundef @.str.5, i32 noundef %5236, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 259, ptr noundef %5239, ptr noundef %5242, ptr noundef %5245, i32 noundef %5247) #10
  br label %5249

5249:                                             ; preds = %5232, %5215
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #10
  br label %5250

5250:                                             ; preds = %5249
  br label %5251

5251:                                             ; preds = %5250
  call void @exit(i32 noundef 1) #12
  unreachable

5252:                                             ; No predecessors!
  br label %5253

5253:                                             ; preds = %5252
  br label %5254

5254:                                             ; preds = %5253, %5195
  br label %5255

5255:                                             ; preds = %5254
  br label %5256

5256:                                             ; preds = %5255
  br label %5257

5257:                                             ; preds = %5256
  %5258 = load i32, ptr @test_count, align 4, !tbaa !5
  %5259 = add nsw i32 %5258, 1
  store i32 %5259, ptr @test_count, align 4, !tbaa !5
  %5260 = load ptr, ptr %122, align 8, !tbaa !9
  %5261 = call i32 @s2n_config_set_client_auth_type(ptr noundef %5260, i32 noundef 2)
  %5262 = icmp eq i32 %5261, -1
  br i1 %5262, label %5263, label %5316

5263:                                             ; preds = %5257
  br label %5264

5264:                                             ; preds = %5263
  br label %5265

5265:                                             ; preds = %5264
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #10
  %5266 = call ptr @__errno_location() #11
  %5267 = load i32, ptr %5266, align 4, !tbaa !5
  store i32 %5267, ptr %126, align 4, !tbaa !5
  %5268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5269 = call i32 @s2n_print_stacktrace(ptr noundef %5268)
  %5270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5271 = trunc i8 %5270 to i1
  br i1 %5271, label %5272, label %5294

5272:                                             ; preds = %5265
  %5273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5274 = call i32 @fileno(ptr noundef %5273) #10
  %5275 = call i32 @isatty(i32 noundef %5274) #10
  %5276 = icmp ne i32 %5275, 0
  br i1 %5276, label %5277, label %5294

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

5294:                                             ; preds = %5272, %5265
  %5295 = load i32, ptr %126, align 4, !tbaa !5
  %5296 = call ptr @__errno_location() #11
  store i32 %5295, ptr %5296, align 4, !tbaa !5
  %5297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5298 = load i32, ptr @test_count, align 4, !tbaa !5
  %5299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5300 = load i32, ptr %5299, align 4, !tbaa !5
  %5301 = call ptr @s2n_strerror(i32 noundef %5300, ptr noundef @.str.4)
  %5302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5303 = load i32, ptr %5302, align 4, !tbaa !5
  %5304 = call ptr @s2n_strerror_debug(i32 noundef %5303, ptr noundef @.str.4)
  %5305 = call ptr @__errno_location() #11
  %5306 = load i32, ptr %5305, align 4, !tbaa !5
  %5307 = call ptr @strerror(i32 noundef %5306) #10
  %5308 = call ptr @__errno_location() #11
  %5309 = load i32, ptr %5308, align 4, !tbaa !5
  %5310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5297, ptr noundef @.str.5, i32 noundef %5298, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 260, ptr noundef %5301, ptr noundef %5304, ptr noundef %5307, i32 noundef %5309) #10
  br label %5311

5311:                                             ; preds = %5294, %5277
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #10
  br label %5312

5312:                                             ; preds = %5311
  br label %5313

5313:                                             ; preds = %5312
  call void @exit(i32 noundef 1) #12
  unreachable

5314:                                             ; No predecessors!
  br label %5315

5315:                                             ; preds = %5314
  br label %5316

5316:                                             ; preds = %5315, %5257
  br label %5317

5317:                                             ; preds = %5316
  br label %5318

5318:                                             ; preds = %5317
  br label %5319

5319:                                             ; preds = %5318
  %5320 = load i32, ptr @test_count, align 4, !tbaa !5
  %5321 = add nsw i32 %5320, 1
  store i32 %5321, ptr @test_count, align 4, !tbaa !5
  %5322 = load ptr, ptr %122, align 8, !tbaa !9
  %5323 = getelementptr inbounds %struct.s2n_config, ptr %5322, i32 0, i32 56
  %5324 = call i32 @s2n_alloc(ptr noundef %5323, i32 noundef 10)
  %5325 = icmp eq i32 %5324, -1
  br i1 %5325, label %5326, label %5379

5326:                                             ; preds = %5319
  br label %5327

5327:                                             ; preds = %5326
  br label %5328

5328:                                             ; preds = %5327
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #10
  %5329 = call ptr @__errno_location() #11
  %5330 = load i32, ptr %5329, align 4, !tbaa !5
  store i32 %5330, ptr %127, align 4, !tbaa !5
  %5331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5332 = call i32 @s2n_print_stacktrace(ptr noundef %5331)
  %5333 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5334 = trunc i8 %5333 to i1
  br i1 %5334, label %5335, label %5357

5335:                                             ; preds = %5328
  %5336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5337 = call i32 @fileno(ptr noundef %5336) #10
  %5338 = call i32 @isatty(i32 noundef %5337) #10
  %5339 = icmp ne i32 %5338, 0
  br i1 %5339, label %5340, label %5357

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

5357:                                             ; preds = %5335, %5328
  %5358 = load i32, ptr %127, align 4, !tbaa !5
  %5359 = call ptr @__errno_location() #11
  store i32 %5358, ptr %5359, align 4, !tbaa !5
  %5360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5361 = load i32, ptr @test_count, align 4, !tbaa !5
  %5362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5363 = load i32, ptr %5362, align 4, !tbaa !5
  %5364 = call ptr @s2n_strerror(i32 noundef %5363, ptr noundef @.str.4)
  %5365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5366 = load i32, ptr %5365, align 4, !tbaa !5
  %5367 = call ptr @s2n_strerror_debug(i32 noundef %5366, ptr noundef @.str.4)
  %5368 = call ptr @__errno_location() #11
  %5369 = load i32, ptr %5368, align 4, !tbaa !5
  %5370 = call ptr @strerror(i32 noundef %5369) #10
  %5371 = call ptr @__errno_location() #11
  %5372 = load i32, ptr %5371, align 4, !tbaa !5
  %5373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5360, ptr noundef @.str.5, i32 noundef %5361, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 261, ptr noundef %5364, ptr noundef %5367, ptr noundef %5370, i32 noundef %5372) #10
  br label %5374

5374:                                             ; preds = %5357, %5340
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #10
  br label %5375

5375:                                             ; preds = %5374
  br label %5376

5376:                                             ; preds = %5375
  call void @exit(i32 noundef 1) #12
  unreachable

5377:                                             ; No predecessors!
  br label %5378

5378:                                             ; preds = %5377
  br label %5379

5379:                                             ; preds = %5378, %5319
  br label %5380

5380:                                             ; preds = %5379
  br label %5381

5381:                                             ; preds = %5380
  call void @llvm.lifetime.start.p0(i64 8, ptr %128) #10
  %5382 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5382, ptr %128, align 8, !tbaa !9
  br label %5383

5383:                                             ; preds = %5381
  %5384 = load i32, ptr @test_count, align 4, !tbaa !5
  %5385 = add nsw i32 %5384, 1
  store i32 %5385, ptr @test_count, align 4, !tbaa !5
  %5386 = load ptr, ptr %128, align 8, !tbaa !9
  %5387 = load ptr, ptr %122, align 8, !tbaa !9
  %5388 = call i32 @s2n_connection_set_config(ptr noundef %5386, ptr noundef %5387)
  %5389 = icmp eq i32 %5388, -1
  br i1 %5389, label %5390, label %5443

5390:                                             ; preds = %5383
  br label %5391

5391:                                             ; preds = %5390
  br label %5392

5392:                                             ; preds = %5391
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #10
  %5393 = call ptr @__errno_location() #11
  %5394 = load i32, ptr %5393, align 4, !tbaa !5
  store i32 %5394, ptr %129, align 4, !tbaa !5
  %5395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5396 = call i32 @s2n_print_stacktrace(ptr noundef %5395)
  %5397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5398 = trunc i8 %5397 to i1
  br i1 %5398, label %5399, label %5421

5399:                                             ; preds = %5392
  %5400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5401 = call i32 @fileno(ptr noundef %5400) #10
  %5402 = call i32 @isatty(i32 noundef %5401) #10
  %5403 = icmp ne i32 %5402, 0
  br i1 %5403, label %5404, label %5421

5404:                                             ; preds = %5399
  %5405 = load i32, ptr %129, align 4, !tbaa !5
  %5406 = call ptr @__errno_location() #11
  store i32 %5405, ptr %5406, align 4, !tbaa !5
  %5407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5408 = load i32, ptr @test_count, align 4, !tbaa !5
  %5409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5410 = load i32, ptr %5409, align 4, !tbaa !5
  %5411 = call ptr @s2n_strerror(i32 noundef %5410, ptr noundef @.str.4)
  %5412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5413 = load i32, ptr %5412, align 4, !tbaa !5
  %5414 = call ptr @s2n_strerror_debug(i32 noundef %5413, ptr noundef @.str.4)
  %5415 = call ptr @__errno_location() #11
  %5416 = load i32, ptr %5415, align 4, !tbaa !5
  %5417 = call ptr @strerror(i32 noundef %5416) #10
  %5418 = call ptr @__errno_location() #11
  %5419 = load i32, ptr %5418, align 4, !tbaa !5
  %5420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5407, ptr noundef @.str.2, i32 noundef %5408, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 265, ptr noundef %5411, ptr noundef %5414, ptr noundef %5417, i32 noundef %5419) #10
  br label %5438

5421:                                             ; preds = %5399, %5392
  %5422 = load i32, ptr %129, align 4, !tbaa !5
  %5423 = call ptr @__errno_location() #11
  store i32 %5422, ptr %5423, align 4, !tbaa !5
  %5424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5425 = load i32, ptr @test_count, align 4, !tbaa !5
  %5426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5427 = load i32, ptr %5426, align 4, !tbaa !5
  %5428 = call ptr @s2n_strerror(i32 noundef %5427, ptr noundef @.str.4)
  %5429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5430 = load i32, ptr %5429, align 4, !tbaa !5
  %5431 = call ptr @s2n_strerror_debug(i32 noundef %5430, ptr noundef @.str.4)
  %5432 = call ptr @__errno_location() #11
  %5433 = load i32, ptr %5432, align 4, !tbaa !5
  %5434 = call ptr @strerror(i32 noundef %5433) #10
  %5435 = call ptr @__errno_location() #11
  %5436 = load i32, ptr %5435, align 4, !tbaa !5
  %5437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5424, ptr noundef @.str.5, i32 noundef %5425, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 265, ptr noundef %5428, ptr noundef %5431, ptr noundef %5434, i32 noundef %5436) #10
  br label %5438

5438:                                             ; preds = %5421, %5404
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #10
  br label %5439

5439:                                             ; preds = %5438
  br label %5440

5440:                                             ; preds = %5439
  call void @exit(i32 noundef 1) #12
  unreachable

5441:                                             ; No predecessors!
  br label %5442

5442:                                             ; preds = %5441
  br label %5443

5443:                                             ; preds = %5442, %5383
  br label %5444

5444:                                             ; preds = %5443
  br label %5445

5445:                                             ; preds = %5444
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #10
  %5446 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5446, ptr %130, align 8, !tbaa !9
  br label %5447

5447:                                             ; preds = %5445
  %5448 = load i32, ptr @test_count, align 4, !tbaa !5
  %5449 = add nsw i32 %5448, 1
  store i32 %5449, ptr @test_count, align 4, !tbaa !5
  %5450 = load ptr, ptr %130, align 8, !tbaa !9
  %5451 = load ptr, ptr %122, align 8, !tbaa !9
  %5452 = call i32 @s2n_connection_set_config(ptr noundef %5450, ptr noundef %5451)
  %5453 = icmp eq i32 %5452, -1
  br i1 %5453, label %5454, label %5507

5454:                                             ; preds = %5447
  br label %5455

5455:                                             ; preds = %5454
  br label %5456

5456:                                             ; preds = %5455
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #10
  %5457 = call ptr @__errno_location() #11
  %5458 = load i32, ptr %5457, align 4, !tbaa !5
  store i32 %5458, ptr %131, align 4, !tbaa !5
  %5459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5460 = call i32 @s2n_print_stacktrace(ptr noundef %5459)
  %5461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5462 = trunc i8 %5461 to i1
  br i1 %5462, label %5463, label %5485

5463:                                             ; preds = %5456
  %5464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5465 = call i32 @fileno(ptr noundef %5464) #10
  %5466 = call i32 @isatty(i32 noundef %5465) #10
  %5467 = icmp ne i32 %5466, 0
  br i1 %5467, label %5468, label %5485

5468:                                             ; preds = %5463
  %5469 = load i32, ptr %131, align 4, !tbaa !5
  %5470 = call ptr @__errno_location() #11
  store i32 %5469, ptr %5470, align 4, !tbaa !5
  %5471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5472 = load i32, ptr @test_count, align 4, !tbaa !5
  %5473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5474 = load i32, ptr %5473, align 4, !tbaa !5
  %5475 = call ptr @s2n_strerror(i32 noundef %5474, ptr noundef @.str.4)
  %5476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5477 = load i32, ptr %5476, align 4, !tbaa !5
  %5478 = call ptr @s2n_strerror_debug(i32 noundef %5477, ptr noundef @.str.4)
  %5479 = call ptr @__errno_location() #11
  %5480 = load i32, ptr %5479, align 4, !tbaa !5
  %5481 = call ptr @strerror(i32 noundef %5480) #10
  %5482 = call ptr @__errno_location() #11
  %5483 = load i32, ptr %5482, align 4, !tbaa !5
  %5484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5471, ptr noundef @.str.2, i32 noundef %5472, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 269, ptr noundef %5475, ptr noundef %5478, ptr noundef %5481, i32 noundef %5483) #10
  br label %5502

5485:                                             ; preds = %5463, %5456
  %5486 = load i32, ptr %131, align 4, !tbaa !5
  %5487 = call ptr @__errno_location() #11
  store i32 %5486, ptr %5487, align 4, !tbaa !5
  %5488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5489 = load i32, ptr @test_count, align 4, !tbaa !5
  %5490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5491 = load i32, ptr %5490, align 4, !tbaa !5
  %5492 = call ptr @s2n_strerror(i32 noundef %5491, ptr noundef @.str.4)
  %5493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5494 = load i32, ptr %5493, align 4, !tbaa !5
  %5495 = call ptr @s2n_strerror_debug(i32 noundef %5494, ptr noundef @.str.4)
  %5496 = call ptr @__errno_location() #11
  %5497 = load i32, ptr %5496, align 4, !tbaa !5
  %5498 = call ptr @strerror(i32 noundef %5497) #10
  %5499 = call ptr @__errno_location() #11
  %5500 = load i32, ptr %5499, align 4, !tbaa !5
  %5501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5488, ptr noundef @.str.5, i32 noundef %5489, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 269, ptr noundef %5492, ptr noundef %5495, ptr noundef %5498, i32 noundef %5500) #10
  br label %5502

5502:                                             ; preds = %5485, %5468
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #10
  br label %5503

5503:                                             ; preds = %5502
  br label %5504

5504:                                             ; preds = %5503
  call void @exit(i32 noundef 1) #12
  unreachable

5505:                                             ; No predecessors!
  br label %5506

5506:                                             ; preds = %5505
  br label %5507

5507:                                             ; preds = %5506, %5447
  br label %5508

5508:                                             ; preds = %5507
  br label %5509

5509:                                             ; preds = %5508
  call void @llvm.lifetime.start.p0(i64 8, ptr %132) #10
  call void @llvm.memset.p0.i64(ptr align 4 %132, i8 0, i64 8, i1 false)
  br label %5510

5510:                                             ; preds = %5509
  %5511 = load i32, ptr @test_count, align 4, !tbaa !5
  %5512 = add nsw i32 %5511, 1
  store i32 %5512, ptr @test_count, align 4, !tbaa !5
  %5513 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %132)
  %5514 = icmp eq i32 %5513, -1
  br i1 %5514, label %5515, label %5568

5515:                                             ; preds = %5510
  br label %5516

5516:                                             ; preds = %5515
  br label %5517

5517:                                             ; preds = %5516
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #10
  %5518 = call ptr @__errno_location() #11
  %5519 = load i32, ptr %5518, align 4, !tbaa !5
  store i32 %5519, ptr %133, align 4, !tbaa !5
  %5520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5521 = call i32 @s2n_print_stacktrace(ptr noundef %5520)
  %5522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5523 = trunc i8 %5522 to i1
  br i1 %5523, label %5524, label %5546

5524:                                             ; preds = %5517
  %5525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5526 = call i32 @fileno(ptr noundef %5525) #10
  %5527 = call i32 @isatty(i32 noundef %5526) #10
  %5528 = icmp ne i32 %5527, 0
  br i1 %5528, label %5529, label %5546

5529:                                             ; preds = %5524
  %5530 = load i32, ptr %133, align 4, !tbaa !5
  %5531 = call ptr @__errno_location() #11
  store i32 %5530, ptr %5531, align 4, !tbaa !5
  %5532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5533 = load i32, ptr @test_count, align 4, !tbaa !5
  %5534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5535 = load i32, ptr %5534, align 4, !tbaa !5
  %5536 = call ptr @s2n_strerror(i32 noundef %5535, ptr noundef @.str.4)
  %5537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5538 = load i32, ptr %5537, align 4, !tbaa !5
  %5539 = call ptr @s2n_strerror_debug(i32 noundef %5538, ptr noundef @.str.4)
  %5540 = call ptr @__errno_location() #11
  %5541 = load i32, ptr %5540, align 4, !tbaa !5
  %5542 = call ptr @strerror(i32 noundef %5541) #10
  %5543 = call ptr @__errno_location() #11
  %5544 = load i32, ptr %5543, align 4, !tbaa !5
  %5545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5532, ptr noundef @.str.2, i32 noundef %5533, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 272, ptr noundef %5536, ptr noundef %5539, ptr noundef %5542, i32 noundef %5544) #10
  br label %5563

5546:                                             ; preds = %5524, %5517
  %5547 = load i32, ptr %133, align 4, !tbaa !5
  %5548 = call ptr @__errno_location() #11
  store i32 %5547, ptr %5548, align 4, !tbaa !5
  %5549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5550 = load i32, ptr @test_count, align 4, !tbaa !5
  %5551 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5552 = load i32, ptr %5551, align 4, !tbaa !5
  %5553 = call ptr @s2n_strerror(i32 noundef %5552, ptr noundef @.str.4)
  %5554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5555 = load i32, ptr %5554, align 4, !tbaa !5
  %5556 = call ptr @s2n_strerror_debug(i32 noundef %5555, ptr noundef @.str.4)
  %5557 = call ptr @__errno_location() #11
  %5558 = load i32, ptr %5557, align 4, !tbaa !5
  %5559 = call ptr @strerror(i32 noundef %5558) #10
  %5560 = call ptr @__errno_location() #11
  %5561 = load i32, ptr %5560, align 4, !tbaa !5
  %5562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5549, ptr noundef @.str.5, i32 noundef %5550, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 272, ptr noundef %5553, ptr noundef %5556, ptr noundef %5559, i32 noundef %5561) #10
  br label %5563

5563:                                             ; preds = %5546, %5529
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #10
  br label %5564

5564:                                             ; preds = %5563
  br label %5565

5565:                                             ; preds = %5564
  call void @exit(i32 noundef 1) #12
  unreachable

5566:                                             ; No predecessors!
  br label %5567

5567:                                             ; preds = %5566
  br label %5568

5568:                                             ; preds = %5567, %5510
  br label %5569

5569:                                             ; preds = %5568
  br label %5570

5570:                                             ; preds = %5569
  br label %5571

5571:                                             ; preds = %5570
  %5572 = load i32, ptr @test_count, align 4, !tbaa !5
  %5573 = add nsw i32 %5572, 1
  store i32 %5573, ptr @test_count, align 4, !tbaa !5
  %5574 = load ptr, ptr %128, align 8, !tbaa !9
  %5575 = load ptr, ptr %130, align 8, !tbaa !9
  %5576 = call i32 @s2n_connections_set_io_pair(ptr noundef %5574, ptr noundef %5575, ptr noundef %132)
  %5577 = icmp eq i32 %5576, -1
  br i1 %5577, label %5578, label %5631

5578:                                             ; preds = %5571
  br label %5579

5579:                                             ; preds = %5578
  br label %5580

5580:                                             ; preds = %5579
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #10
  %5581 = call ptr @__errno_location() #11
  %5582 = load i32, ptr %5581, align 4, !tbaa !5
  store i32 %5582, ptr %134, align 4, !tbaa !5
  %5583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5584 = call i32 @s2n_print_stacktrace(ptr noundef %5583)
  %5585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5586 = trunc i8 %5585 to i1
  br i1 %5586, label %5587, label %5609

5587:                                             ; preds = %5580
  %5588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5589 = call i32 @fileno(ptr noundef %5588) #10
  %5590 = call i32 @isatty(i32 noundef %5589) #10
  %5591 = icmp ne i32 %5590, 0
  br i1 %5591, label %5592, label %5609

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

5609:                                             ; preds = %5587, %5580
  %5610 = load i32, ptr %134, align 4, !tbaa !5
  %5611 = call ptr @__errno_location() #11
  store i32 %5610, ptr %5611, align 4, !tbaa !5
  %5612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5613 = load i32, ptr @test_count, align 4, !tbaa !5
  %5614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5615 = load i32, ptr %5614, align 4, !tbaa !5
  %5616 = call ptr @s2n_strerror(i32 noundef %5615, ptr noundef @.str.4)
  %5617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5618 = load i32, ptr %5617, align 4, !tbaa !5
  %5619 = call ptr @s2n_strerror_debug(i32 noundef %5618, ptr noundef @.str.4)
  %5620 = call ptr @__errno_location() #11
  %5621 = load i32, ptr %5620, align 4, !tbaa !5
  %5622 = call ptr @strerror(i32 noundef %5621) #10
  %5623 = call ptr @__errno_location() #11
  %5624 = load i32, ptr %5623, align 4, !tbaa !5
  %5625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5612, ptr noundef @.str.5, i32 noundef %5613, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 273, ptr noundef %5616, ptr noundef %5619, ptr noundef %5622, i32 noundef %5624) #10
  br label %5626

5626:                                             ; preds = %5609, %5592
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #10
  br label %5627

5627:                                             ; preds = %5626
  br label %5628

5628:                                             ; preds = %5627
  call void @exit(i32 noundef 1) #12
  unreachable

5629:                                             ; No predecessors!
  br label %5630

5630:                                             ; preds = %5629
  br label %5631

5631:                                             ; preds = %5630, %5571
  br label %5632

5632:                                             ; preds = %5631
  br label %5633

5633:                                             ; preds = %5632
  br label %5634

5634:                                             ; preds = %5633
  %5635 = load i32, ptr @test_count, align 4, !tbaa !5
  %5636 = add nsw i32 %5635, 1
  store i32 %5636, ptr @test_count, align 4, !tbaa !5
  %5637 = load ptr, ptr %130, align 8, !tbaa !9
  %5638 = load ptr, ptr %128, align 8, !tbaa !9
  %5639 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %5637, ptr noundef %5638)
  %5640 = icmp eq i32 %5639, -1
  br i1 %5640, label %5641, label %5694

5641:                                             ; preds = %5634
  br label %5642

5642:                                             ; preds = %5641
  br label %5643

5643:                                             ; preds = %5642
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #10
  %5644 = call ptr @__errno_location() #11
  %5645 = load i32, ptr %5644, align 4, !tbaa !5
  store i32 %5645, ptr %135, align 4, !tbaa !5
  %5646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5647 = call i32 @s2n_print_stacktrace(ptr noundef %5646)
  %5648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5649 = trunc i8 %5648 to i1
  br i1 %5649, label %5650, label %5672

5650:                                             ; preds = %5643
  %5651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5652 = call i32 @fileno(ptr noundef %5651) #10
  %5653 = call i32 @isatty(i32 noundef %5652) #10
  %5654 = icmp ne i32 %5653, 0
  br i1 %5654, label %5655, label %5672

5655:                                             ; preds = %5650
  %5656 = load i32, ptr %135, align 4, !tbaa !5
  %5657 = call ptr @__errno_location() #11
  store i32 %5656, ptr %5657, align 4, !tbaa !5
  %5658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5659 = load i32, ptr @test_count, align 4, !tbaa !5
  %5660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5661 = load i32, ptr %5660, align 4, !tbaa !5
  %5662 = call ptr @s2n_strerror(i32 noundef %5661, ptr noundef @.str.4)
  %5663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5664 = load i32, ptr %5663, align 4, !tbaa !5
  %5665 = call ptr @s2n_strerror_debug(i32 noundef %5664, ptr noundef @.str.4)
  %5666 = call ptr @__errno_location() #11
  %5667 = load i32, ptr %5666, align 4, !tbaa !5
  %5668 = call ptr @strerror(i32 noundef %5667) #10
  %5669 = call ptr @__errno_location() #11
  %5670 = load i32, ptr %5669, align 4, !tbaa !5
  %5671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5658, ptr noundef @.str.2, i32 noundef %5659, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 275, ptr noundef %5662, ptr noundef %5665, ptr noundef %5668, i32 noundef %5670) #10
  br label %5689

5672:                                             ; preds = %5650, %5643
  %5673 = load i32, ptr %135, align 4, !tbaa !5
  %5674 = call ptr @__errno_location() #11
  store i32 %5673, ptr %5674, align 4, !tbaa !5
  %5675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5676 = load i32, ptr @test_count, align 4, !tbaa !5
  %5677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5678 = load i32, ptr %5677, align 4, !tbaa !5
  %5679 = call ptr @s2n_strerror(i32 noundef %5678, ptr noundef @.str.4)
  %5680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5681 = load i32, ptr %5680, align 4, !tbaa !5
  %5682 = call ptr @s2n_strerror_debug(i32 noundef %5681, ptr noundef @.str.4)
  %5683 = call ptr @__errno_location() #11
  %5684 = load i32, ptr %5683, align 4, !tbaa !5
  %5685 = call ptr @strerror(i32 noundef %5684) #10
  %5686 = call ptr @__errno_location() #11
  %5687 = load i32, ptr %5686, align 4, !tbaa !5
  %5688 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5675, ptr noundef @.str.5, i32 noundef %5676, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 275, ptr noundef %5679, ptr noundef %5682, ptr noundef %5685, i32 noundef %5687) #10
  br label %5689

5689:                                             ; preds = %5672, %5655
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #10
  br label %5690

5690:                                             ; preds = %5689
  br label %5691

5691:                                             ; preds = %5690
  call void @exit(i32 noundef 1) #12
  unreachable

5692:                                             ; No predecessors!
  br label %5693

5693:                                             ; preds = %5692
  br label %5694

5694:                                             ; preds = %5693, %5634
  br label %5695

5695:                                             ; preds = %5694
  br label %5696

5696:                                             ; preds = %5695
  br label %5697

5697:                                             ; preds = %5696
  %5698 = load i32, ptr @test_count, align 4, !tbaa !5
  %5699 = add nsw i32 %5698, 1
  store i32 %5699, ptr @test_count, align 4, !tbaa !5
  %5700 = load ptr, ptr %130, align 8, !tbaa !9
  %5701 = getelementptr inbounds %struct.s2n_connection, ptr %5700, i32 0, i32 23
  %5702 = load i8, ptr %5701, align 4, !tbaa !27
  %5703 = zext i8 %5702 to i32
  %5704 = icmp eq i32 %5703, 34
  br i1 %5704, label %5758, label %5705

5705:                                             ; preds = %5697
  br label %5706

5706:                                             ; preds = %5705
  br label %5707

5707:                                             ; preds = %5706
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #10
  %5708 = call ptr @__errno_location() #11
  %5709 = load i32, ptr %5708, align 4, !tbaa !5
  store i32 %5709, ptr %136, align 4, !tbaa !5
  %5710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5711 = call i32 @s2n_print_stacktrace(ptr noundef %5710)
  %5712 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5713 = trunc i8 %5712 to i1
  br i1 %5713, label %5714, label %5736

5714:                                             ; preds = %5707
  %5715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5716 = call i32 @fileno(ptr noundef %5715) #10
  %5717 = call i32 @isatty(i32 noundef %5716) #10
  %5718 = icmp ne i32 %5717, 0
  br i1 %5718, label %5719, label %5736

5719:                                             ; preds = %5714
  %5720 = load i32, ptr %136, align 4, !tbaa !5
  %5721 = call ptr @__errno_location() #11
  store i32 %5720, ptr %5721, align 4, !tbaa !5
  %5722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5723 = load i32, ptr @test_count, align 4, !tbaa !5
  %5724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5725 = load i32, ptr %5724, align 4, !tbaa !5
  %5726 = call ptr @s2n_strerror(i32 noundef %5725, ptr noundef @.str.4)
  %5727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5728 = load i32, ptr %5727, align 4, !tbaa !5
  %5729 = call ptr @s2n_strerror_debug(i32 noundef %5728, ptr noundef @.str.4)
  %5730 = call ptr @__errno_location() #11
  %5731 = load i32, ptr %5730, align 4, !tbaa !5
  %5732 = call ptr @strerror(i32 noundef %5731) #10
  %5733 = call ptr @__errno_location() #11
  %5734 = load i32, ptr %5733, align 4, !tbaa !5
  %5735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5722, ptr noundef @.str.2, i32 noundef %5723, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 276, ptr noundef %5726, ptr noundef %5729, ptr noundef %5732, i32 noundef %5734) #10
  br label %5753

5736:                                             ; preds = %5714, %5707
  %5737 = load i32, ptr %136, align 4, !tbaa !5
  %5738 = call ptr @__errno_location() #11
  store i32 %5737, ptr %5738, align 4, !tbaa !5
  %5739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5740 = load i32, ptr @test_count, align 4, !tbaa !5
  %5741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5742 = load i32, ptr %5741, align 4, !tbaa !5
  %5743 = call ptr @s2n_strerror(i32 noundef %5742, ptr noundef @.str.4)
  %5744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5745 = load i32, ptr %5744, align 4, !tbaa !5
  %5746 = call ptr @s2n_strerror_debug(i32 noundef %5745, ptr noundef @.str.4)
  %5747 = call ptr @__errno_location() #11
  %5748 = load i32, ptr %5747, align 4, !tbaa !5
  %5749 = call ptr @strerror(i32 noundef %5748) #10
  %5750 = call ptr @__errno_location() #11
  %5751 = load i32, ptr %5750, align 4, !tbaa !5
  %5752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5739, ptr noundef @.str.5, i32 noundef %5740, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 276, ptr noundef %5743, ptr noundef %5746, ptr noundef %5749, i32 noundef %5751) #10
  br label %5753

5753:                                             ; preds = %5736, %5719
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #10
  br label %5754

5754:                                             ; preds = %5753
  br label %5755

5755:                                             ; preds = %5754
  call void @exit(i32 noundef 1) #12
  unreachable

5756:                                             ; No predecessors!
  br label %5757

5757:                                             ; preds = %5756
  br label %5758

5758:                                             ; preds = %5757, %5697
  br label %5759

5759:                                             ; preds = %5758
  br label %5760

5760:                                             ; preds = %5759
  br label %5761

5761:                                             ; preds = %5760
  %5762 = load i32, ptr @test_count, align 4, !tbaa !5
  %5763 = add nsw i32 %5762, 1
  store i32 %5763, ptr @test_count, align 4, !tbaa !5
  %5764 = load ptr, ptr %130, align 8, !tbaa !9
  %5765 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %5764, i32 noundef 4)
  br i1 %5765, label %5819, label %5766

5766:                                             ; preds = %5761
  br label %5767

5767:                                             ; preds = %5766
  br label %5768

5768:                                             ; preds = %5767
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #10
  %5769 = call ptr @__errno_location() #11
  %5770 = load i32, ptr %5769, align 4, !tbaa !5
  store i32 %5770, ptr %137, align 4, !tbaa !5
  %5771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5772 = call i32 @s2n_print_stacktrace(ptr noundef %5771)
  %5773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5774 = trunc i8 %5773 to i1
  br i1 %5774, label %5775, label %5797

5775:                                             ; preds = %5768
  %5776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5777 = call i32 @fileno(ptr noundef %5776) #10
  %5778 = call i32 @isatty(i32 noundef %5777) #10
  %5779 = icmp ne i32 %5778, 0
  br i1 %5779, label %5780, label %5797

5780:                                             ; preds = %5775
  %5781 = load i32, ptr %137, align 4, !tbaa !5
  %5782 = call ptr @__errno_location() #11
  store i32 %5781, ptr %5782, align 4, !tbaa !5
  %5783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5784 = load i32, ptr @test_count, align 4, !tbaa !5
  %5785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5786 = load i32, ptr %5785, align 4, !tbaa !5
  %5787 = call ptr @s2n_strerror(i32 noundef %5786, ptr noundef @.str.4)
  %5788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5789 = load i32, ptr %5788, align 4, !tbaa !5
  %5790 = call ptr @s2n_strerror_debug(i32 noundef %5789, ptr noundef @.str.4)
  %5791 = call ptr @__errno_location() #11
  %5792 = load i32, ptr %5791, align 4, !tbaa !5
  %5793 = call ptr @strerror(i32 noundef %5792) #10
  %5794 = call ptr @__errno_location() #11
  %5795 = load i32, ptr %5794, align 4, !tbaa !5
  %5796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5783, ptr noundef @.str.2, i32 noundef %5784, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 277, ptr noundef %5787, ptr noundef %5790, ptr noundef %5793, i32 noundef %5795) #10
  br label %5814

5797:                                             ; preds = %5775, %5768
  %5798 = load i32, ptr %137, align 4, !tbaa !5
  %5799 = call ptr @__errno_location() #11
  store i32 %5798, ptr %5799, align 4, !tbaa !5
  %5800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5801 = load i32, ptr @test_count, align 4, !tbaa !5
  %5802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5803 = load i32, ptr %5802, align 4, !tbaa !5
  %5804 = call ptr @s2n_strerror(i32 noundef %5803, ptr noundef @.str.4)
  %5805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5806 = load i32, ptr %5805, align 4, !tbaa !5
  %5807 = call ptr @s2n_strerror_debug(i32 noundef %5806, ptr noundef @.str.4)
  %5808 = call ptr @__errno_location() #11
  %5809 = load i32, ptr %5808, align 4, !tbaa !5
  %5810 = call ptr @strerror(i32 noundef %5809) #10
  %5811 = call ptr @__errno_location() #11
  %5812 = load i32, ptr %5811, align 4, !tbaa !5
  %5813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5800, ptr noundef @.str.5, i32 noundef %5801, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 277, ptr noundef %5804, ptr noundef %5807, ptr noundef %5810, i32 noundef %5812) #10
  br label %5814

5814:                                             ; preds = %5797, %5780
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #10
  br label %5815

5815:                                             ; preds = %5814
  br label %5816

5816:                                             ; preds = %5815
  call void @exit(i32 noundef 1) #12
  unreachable

5817:                                             ; No predecessors!
  br label %5818

5818:                                             ; preds = %5817
  br label %5819

5819:                                             ; preds = %5818, %5761
  br label %5820

5820:                                             ; preds = %5819
  br label %5821

5821:                                             ; preds = %5820
  br label %5822

5822:                                             ; preds = %5821
  %5823 = load i32, ptr @test_count, align 4, !tbaa !5
  %5824 = add nsw i32 %5823, 1
  store i32 %5824, ptr @test_count, align 4, !tbaa !5
  %5825 = load ptr, ptr %130, align 8, !tbaa !9
  %5826 = getelementptr inbounds %struct.s2n_connection, ptr %5825, i32 0, i32 10
  %5827 = load i8, ptr %13, align 1, !tbaa !15
  %5828 = zext i8 %5827 to i32
  %5829 = ashr i32 %5828, 3
  %5830 = sext i32 %5829 to i64
  %5831 = getelementptr inbounds [22 x i8], ptr %5826, i64 0, i64 %5830
  %5832 = load i8, ptr %5831, align 1, !tbaa !15
  %5833 = sext i8 %5832 to i32
  %5834 = load i8, ptr %13, align 1, !tbaa !15
  %5835 = zext i8 %5834 to i32
  %5836 = srem i32 %5835, 8
  %5837 = shl i32 1, %5836
  %5838 = and i32 %5833, %5837
  %5839 = icmp ne i32 %5838, 0
  br i1 %5839, label %5893, label %5840

5840:                                             ; preds = %5822
  br label %5841

5841:                                             ; preds = %5840
  br label %5842

5842:                                             ; preds = %5841
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #10
  %5843 = call ptr @__errno_location() #11
  %5844 = load i32, ptr %5843, align 4, !tbaa !5
  store i32 %5844, ptr %138, align 4, !tbaa !5
  %5845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5846 = call i32 @s2n_print_stacktrace(ptr noundef %5845)
  %5847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5848 = trunc i8 %5847 to i1
  br i1 %5848, label %5849, label %5871

5849:                                             ; preds = %5842
  %5850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5851 = call i32 @fileno(ptr noundef %5850) #10
  %5852 = call i32 @isatty(i32 noundef %5851) #10
  %5853 = icmp ne i32 %5852, 0
  br i1 %5853, label %5854, label %5871

5854:                                             ; preds = %5849
  %5855 = load i32, ptr %138, align 4, !tbaa !5
  %5856 = call ptr @__errno_location() #11
  store i32 %5855, ptr %5856, align 4, !tbaa !5
  %5857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5858 = load i32, ptr @test_count, align 4, !tbaa !5
  %5859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5860 = load i32, ptr %5859, align 4, !tbaa !5
  %5861 = call ptr @s2n_strerror(i32 noundef %5860, ptr noundef @.str.4)
  %5862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5863 = load i32, ptr %5862, align 4, !tbaa !5
  %5864 = call ptr @s2n_strerror_debug(i32 noundef %5863, ptr noundef @.str.4)
  %5865 = call ptr @__errno_location() #11
  %5866 = load i32, ptr %5865, align 4, !tbaa !5
  %5867 = call ptr @strerror(i32 noundef %5866) #10
  %5868 = call ptr @__errno_location() #11
  %5869 = load i32, ptr %5868, align 4, !tbaa !5
  %5870 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5857, ptr noundef @.str.2, i32 noundef %5858, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 280, ptr noundef %5861, ptr noundef %5864, ptr noundef %5867, i32 noundef %5869) #10
  br label %5888

5871:                                             ; preds = %5849, %5842
  %5872 = load i32, ptr %138, align 4, !tbaa !5
  %5873 = call ptr @__errno_location() #11
  store i32 %5872, ptr %5873, align 4, !tbaa !5
  %5874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5875 = load i32, ptr @test_count, align 4, !tbaa !5
  %5876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5877 = load i32, ptr %5876, align 4, !tbaa !5
  %5878 = call ptr @s2n_strerror(i32 noundef %5877, ptr noundef @.str.4)
  %5879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5880 = load i32, ptr %5879, align 4, !tbaa !5
  %5881 = call ptr @s2n_strerror_debug(i32 noundef %5880, ptr noundef @.str.4)
  %5882 = call ptr @__errno_location() #11
  %5883 = load i32, ptr %5882, align 4, !tbaa !5
  %5884 = call ptr @strerror(i32 noundef %5883) #10
  %5885 = call ptr @__errno_location() #11
  %5886 = load i32, ptr %5885, align 4, !tbaa !5
  %5887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5874, ptr noundef @.str.5, i32 noundef %5875, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 280, ptr noundef %5878, ptr noundef %5881, ptr noundef %5884, i32 noundef %5886) #10
  br label %5888

5888:                                             ; preds = %5871, %5854
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #10
  br label %5889

5889:                                             ; preds = %5888
  br label %5890

5890:                                             ; preds = %5889
  call void @exit(i32 noundef 1) #12
  unreachable

5891:                                             ; No predecessors!
  br label %5892

5892:                                             ; preds = %5891
  br label %5893

5893:                                             ; preds = %5892, %5822
  br label %5894

5894:                                             ; preds = %5893
  br label %5895

5895:                                             ; preds = %5894
  br label %5896

5896:                                             ; preds = %5895
  %5897 = load i32, ptr @test_count, align 4, !tbaa !5
  %5898 = add nsw i32 %5897, 1
  store i32 %5898, ptr @test_count, align 4, !tbaa !5
  %5899 = load ptr, ptr %130, align 8, !tbaa !9
  %5900 = getelementptr inbounds %struct.s2n_connection, ptr %5899, i32 0, i32 11
  %5901 = load i8, ptr %13, align 1, !tbaa !15
  %5902 = zext i8 %5901 to i32
  %5903 = ashr i32 %5902, 3
  %5904 = sext i32 %5903 to i64
  %5905 = getelementptr inbounds [22 x i8], ptr %5900, i64 0, i64 %5904
  %5906 = load i8, ptr %5905, align 1, !tbaa !15
  %5907 = sext i8 %5906 to i32
  %5908 = load i8, ptr %13, align 1, !tbaa !15
  %5909 = zext i8 %5908 to i32
  %5910 = srem i32 %5909, 8
  %5911 = shl i32 1, %5910
  %5912 = and i32 %5907, %5911
  %5913 = icmp ne i32 %5912, 0
  br i1 %5913, label %5914, label %5967

5914:                                             ; preds = %5896
  br label %5915

5915:                                             ; preds = %5914
  br label %5916

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

5923:                                             ; preds = %5916
  %5924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5925 = call i32 @fileno(ptr noundef %5924) #10
  %5926 = call i32 @isatty(i32 noundef %5925) #10
  %5927 = icmp ne i32 %5926, 0
  br i1 %5927, label %5928, label %5945

5928:                                             ; preds = %5923
  %5929 = load i32, ptr %139, align 4, !tbaa !5
  %5930 = call ptr @__errno_location() #11
  store i32 %5929, ptr %5930, align 4, !tbaa !5
  %5931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5932 = load i32, ptr @test_count, align 4, !tbaa !5
  %5933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5934 = load i32, ptr %5933, align 4, !tbaa !5
  %5935 = call ptr @s2n_strerror(i32 noundef %5934, ptr noundef @.str.4)
  %5936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5937 = load i32, ptr %5936, align 4, !tbaa !5
  %5938 = call ptr @s2n_strerror_debug(i32 noundef %5937, ptr noundef @.str.4)
  %5939 = call ptr @__errno_location() #11
  %5940 = load i32, ptr %5939, align 4, !tbaa !5
  %5941 = call ptr @strerror(i32 noundef %5940) #10
  %5942 = call ptr @__errno_location() #11
  %5943 = load i32, ptr %5942, align 4, !tbaa !5
  %5944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5931, ptr noundef @.str.2, i32 noundef %5932, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 281, ptr noundef %5935, ptr noundef %5938, ptr noundef %5941, i32 noundef %5943) #10
  br label %5962

5945:                                             ; preds = %5923, %5916
  %5946 = load i32, ptr %139, align 4, !tbaa !5
  %5947 = call ptr @__errno_location() #11
  store i32 %5946, ptr %5947, align 4, !tbaa !5
  %5948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5949 = load i32, ptr @test_count, align 4, !tbaa !5
  %5950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5951 = load i32, ptr %5950, align 4, !tbaa !5
  %5952 = call ptr @s2n_strerror(i32 noundef %5951, ptr noundef @.str.4)
  %5953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5954 = load i32, ptr %5953, align 4, !tbaa !5
  %5955 = call ptr @s2n_strerror_debug(i32 noundef %5954, ptr noundef @.str.4)
  %5956 = call ptr @__errno_location() #11
  %5957 = load i32, ptr %5956, align 4, !tbaa !5
  %5958 = call ptr @strerror(i32 noundef %5957) #10
  %5959 = call ptr @__errno_location() #11
  %5960 = load i32, ptr %5959, align 4, !tbaa !5
  %5961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5948, ptr noundef @.str.5, i32 noundef %5949, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 281, ptr noundef %5952, ptr noundef %5955, ptr noundef %5958, i32 noundef %5960) #10
  br label %5962

5962:                                             ; preds = %5945, %5928
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #10
  br label %5963

5963:                                             ; preds = %5962
  br label %5964

5964:                                             ; preds = %5963
  call void @exit(i32 noundef 1) #12
  unreachable

5965:                                             ; No predecessors!
  br label %5966

5966:                                             ; preds = %5965
  br label %5967

5967:                                             ; preds = %5966, %5896
  br label %5968

5968:                                             ; preds = %5967
  br label %5969

5969:                                             ; preds = %5968
  br label %5970

5970:                                             ; preds = %5969
  %5971 = load i32, ptr @test_count, align 4, !tbaa !5
  %5972 = add nsw i32 %5971, 1
  store i32 %5972, ptr @test_count, align 4, !tbaa !5
  %5973 = load ptr, ptr %128, align 8, !tbaa !9
  %5974 = getelementptr inbounds %struct.s2n_connection, ptr %5973, i32 0, i32 10
  %5975 = load i8, ptr %13, align 1, !tbaa !15
  %5976 = zext i8 %5975 to i32
  %5977 = ashr i32 %5976, 3
  %5978 = sext i32 %5977 to i64
  %5979 = getelementptr inbounds [22 x i8], ptr %5974, i64 0, i64 %5978
  %5980 = load i8, ptr %5979, align 1, !tbaa !15
  %5981 = sext i8 %5980 to i32
  %5982 = load i8, ptr %13, align 1, !tbaa !15
  %5983 = zext i8 %5982 to i32
  %5984 = srem i32 %5983, 8
  %5985 = shl i32 1, %5984
  %5986 = and i32 %5981, %5985
  %5987 = icmp ne i32 %5986, 0
  br i1 %5987, label %5988, label %6041

5988:                                             ; preds = %5970
  br label %5989

5989:                                             ; preds = %5988
  br label %5990

5990:                                             ; preds = %5989
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #10
  %5991 = call ptr @__errno_location() #11
  %5992 = load i32, ptr %5991, align 4, !tbaa !5
  store i32 %5992, ptr %140, align 4, !tbaa !5
  %5993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5994 = call i32 @s2n_print_stacktrace(ptr noundef %5993)
  %5995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5996 = trunc i8 %5995 to i1
  br i1 %5996, label %5997, label %6019

5997:                                             ; preds = %5990
  %5998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5999 = call i32 @fileno(ptr noundef %5998) #10
  %6000 = call i32 @isatty(i32 noundef %5999) #10
  %6001 = icmp ne i32 %6000, 0
  br i1 %6001, label %6002, label %6019

6002:                                             ; preds = %5997
  %6003 = load i32, ptr %140, align 4, !tbaa !5
  %6004 = call ptr @__errno_location() #11
  store i32 %6003, ptr %6004, align 4, !tbaa !5
  %6005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6006 = load i32, ptr @test_count, align 4, !tbaa !5
  %6007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6008 = load i32, ptr %6007, align 4, !tbaa !5
  %6009 = call ptr @s2n_strerror(i32 noundef %6008, ptr noundef @.str.4)
  %6010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6011 = load i32, ptr %6010, align 4, !tbaa !5
  %6012 = call ptr @s2n_strerror_debug(i32 noundef %6011, ptr noundef @.str.4)
  %6013 = call ptr @__errno_location() #11
  %6014 = load i32, ptr %6013, align 4, !tbaa !5
  %6015 = call ptr @strerror(i32 noundef %6014) #10
  %6016 = call ptr @__errno_location() #11
  %6017 = load i32, ptr %6016, align 4, !tbaa !5
  %6018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6005, ptr noundef @.str.2, i32 noundef %6006, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 284, ptr noundef %6009, ptr noundef %6012, ptr noundef %6015, i32 noundef %6017) #10
  br label %6036

6019:                                             ; preds = %5997, %5990
  %6020 = load i32, ptr %140, align 4, !tbaa !5
  %6021 = call ptr @__errno_location() #11
  store i32 %6020, ptr %6021, align 4, !tbaa !5
  %6022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6023 = load i32, ptr @test_count, align 4, !tbaa !5
  %6024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6025 = load i32, ptr %6024, align 4, !tbaa !5
  %6026 = call ptr @s2n_strerror(i32 noundef %6025, ptr noundef @.str.4)
  %6027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6028 = load i32, ptr %6027, align 4, !tbaa !5
  %6029 = call ptr @s2n_strerror_debug(i32 noundef %6028, ptr noundef @.str.4)
  %6030 = call ptr @__errno_location() #11
  %6031 = load i32, ptr %6030, align 4, !tbaa !5
  %6032 = call ptr @strerror(i32 noundef %6031) #10
  %6033 = call ptr @__errno_location() #11
  %6034 = load i32, ptr %6033, align 4, !tbaa !5
  %6035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6022, ptr noundef @.str.5, i32 noundef %6023, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 284, ptr noundef %6026, ptr noundef %6029, ptr noundef %6032, i32 noundef %6034) #10
  br label %6036

6036:                                             ; preds = %6019, %6002
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #10
  br label %6037

6037:                                             ; preds = %6036
  br label %6038

6038:                                             ; preds = %6037
  call void @exit(i32 noundef 1) #12
  unreachable

6039:                                             ; No predecessors!
  br label %6040

6040:                                             ; preds = %6039
  br label %6041

6041:                                             ; preds = %6040, %5970
  br label %6042

6042:                                             ; preds = %6041
  br label %6043

6043:                                             ; preds = %6042
  br label %6044

6044:                                             ; preds = %6043
  %6045 = load i32, ptr @test_count, align 4, !tbaa !5
  %6046 = add nsw i32 %6045, 1
  store i32 %6046, ptr @test_count, align 4, !tbaa !5
  %6047 = load ptr, ptr %128, align 8, !tbaa !9
  %6048 = getelementptr inbounds %struct.s2n_connection, ptr %6047, i32 0, i32 11
  %6049 = load i8, ptr %13, align 1, !tbaa !15
  %6050 = zext i8 %6049 to i32
  %6051 = ashr i32 %6050, 3
  %6052 = sext i32 %6051 to i64
  %6053 = getelementptr inbounds [22 x i8], ptr %6048, i64 0, i64 %6052
  %6054 = load i8, ptr %6053, align 1, !tbaa !15
  %6055 = sext i8 %6054 to i32
  %6056 = load i8, ptr %13, align 1, !tbaa !15
  %6057 = zext i8 %6056 to i32
  %6058 = srem i32 %6057, 8
  %6059 = shl i32 1, %6058
  %6060 = and i32 %6055, %6059
  %6061 = icmp ne i32 %6060, 0
  br i1 %6061, label %6115, label %6062

6062:                                             ; preds = %6044
  br label %6063

6063:                                             ; preds = %6062
  br label %6064

6064:                                             ; preds = %6063
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #10
  %6065 = call ptr @__errno_location() #11
  %6066 = load i32, ptr %6065, align 4, !tbaa !5
  store i32 %6066, ptr %141, align 4, !tbaa !5
  %6067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6068 = call i32 @s2n_print_stacktrace(ptr noundef %6067)
  %6069 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6070 = trunc i8 %6069 to i1
  br i1 %6070, label %6071, label %6093

6071:                                             ; preds = %6064
  %6072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6073 = call i32 @fileno(ptr noundef %6072) #10
  %6074 = call i32 @isatty(i32 noundef %6073) #10
  %6075 = icmp ne i32 %6074, 0
  br i1 %6075, label %6076, label %6093

6076:                                             ; preds = %6071
  %6077 = load i32, ptr %141, align 4, !tbaa !5
  %6078 = call ptr @__errno_location() #11
  store i32 %6077, ptr %6078, align 4, !tbaa !5
  %6079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6080 = load i32, ptr @test_count, align 4, !tbaa !5
  %6081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6082 = load i32, ptr %6081, align 4, !tbaa !5
  %6083 = call ptr @s2n_strerror(i32 noundef %6082, ptr noundef @.str.4)
  %6084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6085 = load i32, ptr %6084, align 4, !tbaa !5
  %6086 = call ptr @s2n_strerror_debug(i32 noundef %6085, ptr noundef @.str.4)
  %6087 = call ptr @__errno_location() #11
  %6088 = load i32, ptr %6087, align 4, !tbaa !5
  %6089 = call ptr @strerror(i32 noundef %6088) #10
  %6090 = call ptr @__errno_location() #11
  %6091 = load i32, ptr %6090, align 4, !tbaa !5
  %6092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6079, ptr noundef @.str.2, i32 noundef %6080, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 285, ptr noundef %6083, ptr noundef %6086, ptr noundef %6089, i32 noundef %6091) #10
  br label %6110

6093:                                             ; preds = %6071, %6064
  %6094 = load i32, ptr %141, align 4, !tbaa !5
  %6095 = call ptr @__errno_location() #11
  store i32 %6094, ptr %6095, align 4, !tbaa !5
  %6096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6097 = load i32, ptr @test_count, align 4, !tbaa !5
  %6098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6099 = load i32, ptr %6098, align 4, !tbaa !5
  %6100 = call ptr @s2n_strerror(i32 noundef %6099, ptr noundef @.str.4)
  %6101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6102 = load i32, ptr %6101, align 4, !tbaa !5
  %6103 = call ptr @s2n_strerror_debug(i32 noundef %6102, ptr noundef @.str.4)
  %6104 = call ptr @__errno_location() #11
  %6105 = load i32, ptr %6104, align 4, !tbaa !5
  %6106 = call ptr @strerror(i32 noundef %6105) #10
  %6107 = call ptr @__errno_location() #11
  %6108 = load i32, ptr %6107, align 4, !tbaa !5
  %6109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6096, ptr noundef @.str.5, i32 noundef %6097, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 285, ptr noundef %6100, ptr noundef %6103, ptr noundef %6106, i32 noundef %6108) #10
  br label %6110

6110:                                             ; preds = %6093, %6076
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #10
  br label %6111

6111:                                             ; preds = %6110
  br label %6112

6112:                                             ; preds = %6111
  call void @exit(i32 noundef 1) #12
  unreachable

6113:                                             ; No predecessors!
  br label %6114

6114:                                             ; preds = %6113
  br label %6115

6115:                                             ; preds = %6114, %6044
  br label %6116

6116:                                             ; preds = %6115
  br label %6117

6117:                                             ; preds = %6116
  %6118 = call i32 @s2n_io_pair_close(ptr noundef %132)
  call void @llvm.lifetime.end.p0(i64 8, ptr %132) #10
  %6119 = call i32 @s2n_connection_ptr_free(ptr noundef %130)
  %6120 = getelementptr inbounds %struct.s2n_result, ptr %142, i32 0, i32 0
  store i32 %6119, ptr %6120, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #10
  %6121 = call i32 @s2n_connection_ptr_free(ptr noundef %128)
  %6122 = getelementptr inbounds %struct.s2n_result, ptr %143, i32 0, i32 0
  store i32 %6121, ptr %6122, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %128) #10
  %6123 = call i32 @s2n_config_ptr_free(ptr noundef %122)
  %6124 = getelementptr inbounds %struct.s2n_result, ptr %144, i32 0, i32 0
  store i32 %6123, ptr %6124, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %122) #10
  br label %6125

6125:                                             ; preds = %6117, %5066
  %6126 = call zeroext i1 (...) @s2n_is_rsa_pss_certs_supported()
  br i1 %6126, label %6127, label %6672

6127:                                             ; preds = %6125
  %6128 = call zeroext i1 (...) @s2n_cert_authorities_supported_from_trust_store()
  br i1 %6128, label %6129, label %6672

6129:                                             ; preds = %6127
  call void @llvm.lifetime.start.p0(i64 4064, ptr %145) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %145, ptr align 16 @__const.main.test_cases, i64 4064, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %146) #10
  store i64 0, ptr %146, align 8, !tbaa !25
  br label %6130

6130:                                             ; preds = %6668, %6129
  %6131 = load i64, ptr %146, align 8, !tbaa !25
  %6132 = icmp ult i64 %6131, 4
  br i1 %6132, label %6134, label %6133

6133:                                             ; preds = %6130
  call void @llvm.lifetime.end.p0(i64 8, ptr %146) #10
  br label %6671

6134:                                             ; preds = %6130
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #10
  %6135 = call ptr @s2n_config_new_minimal()
  store ptr %6135, ptr %147, align 8, !tbaa !9
  br label %6136

6136:                                             ; preds = %6134
  %6137 = load i32, ptr @test_count, align 4, !tbaa !5
  %6138 = add nsw i32 %6137, 1
  store i32 %6138, ptr @test_count, align 4, !tbaa !5
  %6139 = load ptr, ptr %147, align 8, !tbaa !9
  %6140 = load i64, ptr %146, align 8, !tbaa !25
  %6141 = getelementptr inbounds [4 x %struct.anon], ptr %145, i64 0, i64 %6140
  %6142 = getelementptr inbounds %struct.anon, ptr %6141, i32 0, i32 0
  %6143 = load ptr, ptr %6142, align 8, !tbaa !62
  %6144 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %6139, ptr noundef %6143, ptr noundef null)
  %6145 = icmp eq i32 %6144, -1
  br i1 %6145, label %6146, label %6199

6146:                                             ; preds = %6136
  br label %6147

6147:                                             ; preds = %6146
  br label %6148

6148:                                             ; preds = %6147
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #10
  %6149 = call ptr @__errno_location() #11
  %6150 = load i32, ptr %6149, align 4, !tbaa !5
  store i32 %6150, ptr %148, align 4, !tbaa !5
  %6151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6152 = call i32 @s2n_print_stacktrace(ptr noundef %6151)
  %6153 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6154 = trunc i8 %6153 to i1
  br i1 %6154, label %6155, label %6177

6155:                                             ; preds = %6148
  %6156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6157 = call i32 @fileno(ptr noundef %6156) #10
  %6158 = call i32 @isatty(i32 noundef %6157) #10
  %6159 = icmp ne i32 %6158, 0
  br i1 %6159, label %6160, label %6177

6160:                                             ; preds = %6155
  %6161 = load i32, ptr %148, align 4, !tbaa !5
  %6162 = call ptr @__errno_location() #11
  store i32 %6161, ptr %6162, align 4, !tbaa !5
  %6163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6164 = load i32, ptr @test_count, align 4, !tbaa !5
  %6165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6166 = load i32, ptr %6165, align 4, !tbaa !5
  %6167 = call ptr @s2n_strerror(i32 noundef %6166, ptr noundef @.str.4)
  %6168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6169 = load i32, ptr %6168, align 4, !tbaa !5
  %6170 = call ptr @s2n_strerror_debug(i32 noundef %6169, ptr noundef @.str.4)
  %6171 = call ptr @__errno_location() #11
  %6172 = load i32, ptr %6171, align 4, !tbaa !5
  %6173 = call ptr @strerror(i32 noundef %6172) #10
  %6174 = call ptr @__errno_location() #11
  %6175 = load i32, ptr %6174, align 4, !tbaa !5
  %6176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6163, ptr noundef @.str.2, i32 noundef %6164, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 381, ptr noundef %6167, ptr noundef %6170, ptr noundef %6173, i32 noundef %6175) #10
  br label %6194

6177:                                             ; preds = %6155, %6148
  %6178 = load i32, ptr %148, align 4, !tbaa !5
  %6179 = call ptr @__errno_location() #11
  store i32 %6178, ptr %6179, align 4, !tbaa !5
  %6180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6181 = load i32, ptr @test_count, align 4, !tbaa !5
  %6182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6183 = load i32, ptr %6182, align 4, !tbaa !5
  %6184 = call ptr @s2n_strerror(i32 noundef %6183, ptr noundef @.str.4)
  %6185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6186 = load i32, ptr %6185, align 4, !tbaa !5
  %6187 = call ptr @s2n_strerror_debug(i32 noundef %6186, ptr noundef @.str.4)
  %6188 = call ptr @__errno_location() #11
  %6189 = load i32, ptr %6188, align 4, !tbaa !5
  %6190 = call ptr @strerror(i32 noundef %6189) #10
  %6191 = call ptr @__errno_location() #11
  %6192 = load i32, ptr %6191, align 4, !tbaa !5
  %6193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6180, ptr noundef @.str.5, i32 noundef %6181, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 381, ptr noundef %6184, ptr noundef %6187, ptr noundef %6190, i32 noundef %6192) #10
  br label %6194

6194:                                             ; preds = %6177, %6160
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #10
  br label %6195

6195:                                             ; preds = %6194
  br label %6196

6196:                                             ; preds = %6195
  call void @exit(i32 noundef 1) #12
  unreachable

6197:                                             ; No predecessors!
  br label %6198

6198:                                             ; preds = %6197
  br label %6199

6199:                                             ; preds = %6198, %6136
  br label %6200

6200:                                             ; preds = %6199
  br label %6201

6201:                                             ; preds = %6200
  br label %6202

6202:                                             ; preds = %6201
  %6203 = load i32, ptr @test_count, align 4, !tbaa !5
  %6204 = add nsw i32 %6203, 1
  store i32 %6204, ptr @test_count, align 4, !tbaa !5
  %6205 = load ptr, ptr %147, align 8, !tbaa !9
  %6206 = call i32 @s2n_config_set_cert_authorities_from_trust_store(ptr noundef %6205)
  %6207 = icmp eq i32 %6206, -1
  br i1 %6207, label %6208, label %6261

6208:                                             ; preds = %6202
  br label %6209

6209:                                             ; preds = %6208
  br label %6210

6210:                                             ; preds = %6209
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #10
  %6211 = call ptr @__errno_location() #11
  %6212 = load i32, ptr %6211, align 4, !tbaa !5
  store i32 %6212, ptr %149, align 4, !tbaa !5
  %6213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6214 = call i32 @s2n_print_stacktrace(ptr noundef %6213)
  %6215 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6216 = trunc i8 %6215 to i1
  br i1 %6216, label %6217, label %6239

6217:                                             ; preds = %6210
  %6218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6219 = call i32 @fileno(ptr noundef %6218) #10
  %6220 = call i32 @isatty(i32 noundef %6219) #10
  %6221 = icmp ne i32 %6220, 0
  br i1 %6221, label %6222, label %6239

6222:                                             ; preds = %6217
  %6223 = load i32, ptr %149, align 4, !tbaa !5
  %6224 = call ptr @__errno_location() #11
  store i32 %6223, ptr %6224, align 4, !tbaa !5
  %6225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6226 = load i32, ptr @test_count, align 4, !tbaa !5
  %6227 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6228 = load i32, ptr %6227, align 4, !tbaa !5
  %6229 = call ptr @s2n_strerror(i32 noundef %6228, ptr noundef @.str.4)
  %6230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6231 = load i32, ptr %6230, align 4, !tbaa !5
  %6232 = call ptr @s2n_strerror_debug(i32 noundef %6231, ptr noundef @.str.4)
  %6233 = call ptr @__errno_location() #11
  %6234 = load i32, ptr %6233, align 4, !tbaa !5
  %6235 = call ptr @strerror(i32 noundef %6234) #10
  %6236 = call ptr @__errno_location() #11
  %6237 = load i32, ptr %6236, align 4, !tbaa !5
  %6238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6225, ptr noundef @.str.2, i32 noundef %6226, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 383, ptr noundef %6229, ptr noundef %6232, ptr noundef %6235, i32 noundef %6237) #10
  br label %6256

6239:                                             ; preds = %6217, %6210
  %6240 = load i32, ptr %149, align 4, !tbaa !5
  %6241 = call ptr @__errno_location() #11
  store i32 %6240, ptr %6241, align 4, !tbaa !5
  %6242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6243 = load i32, ptr @test_count, align 4, !tbaa !5
  %6244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6245 = load i32, ptr %6244, align 4, !tbaa !5
  %6246 = call ptr @s2n_strerror(i32 noundef %6245, ptr noundef @.str.4)
  %6247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6248 = load i32, ptr %6247, align 4, !tbaa !5
  %6249 = call ptr @s2n_strerror_debug(i32 noundef %6248, ptr noundef @.str.4)
  %6250 = call ptr @__errno_location() #11
  %6251 = load i32, ptr %6250, align 4, !tbaa !5
  %6252 = call ptr @strerror(i32 noundef %6251) #10
  %6253 = call ptr @__errno_location() #11
  %6254 = load i32, ptr %6253, align 4, !tbaa !5
  %6255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6242, ptr noundef @.str.5, i32 noundef %6243, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 383, ptr noundef %6246, ptr noundef %6249, ptr noundef %6252, i32 noundef %6254) #10
  br label %6256

6256:                                             ; preds = %6239, %6222
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #10
  br label %6257

6257:                                             ; preds = %6256
  br label %6258

6258:                                             ; preds = %6257
  call void @exit(i32 noundef 1) #12
  unreachable

6259:                                             ; No predecessors!
  br label %6260

6260:                                             ; preds = %6259
  br label %6261

6261:                                             ; preds = %6260, %6202
  br label %6262

6262:                                             ; preds = %6261
  br label %6263

6263:                                             ; preds = %6262
  call void @llvm.lifetime.start.p0(i64 8, ptr %150) #10
  %6264 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6264, ptr %150, align 8, !tbaa !9
  br label %6265

6265:                                             ; preds = %6263
  %6266 = load i32, ptr @test_count, align 4, !tbaa !5
  %6267 = add nsw i32 %6266, 1
  store i32 %6267, ptr @test_count, align 4, !tbaa !5
  %6268 = load ptr, ptr %150, align 8, !tbaa !9
  %6269 = load ptr, ptr %147, align 8, !tbaa !9
  %6270 = call i32 @s2n_connection_set_config(ptr noundef %6268, ptr noundef %6269)
  %6271 = icmp eq i32 %6270, -1
  br i1 %6271, label %6272, label %6325

6272:                                             ; preds = %6265
  br label %6273

6273:                                             ; preds = %6272
  br label %6274

6274:                                             ; preds = %6273
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #10
  %6275 = call ptr @__errno_location() #11
  %6276 = load i32, ptr %6275, align 4, !tbaa !5
  store i32 %6276, ptr %151, align 4, !tbaa !5
  %6277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6278 = call i32 @s2n_print_stacktrace(ptr noundef %6277)
  %6279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6280 = trunc i8 %6279 to i1
  br i1 %6280, label %6281, label %6303

6281:                                             ; preds = %6274
  %6282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6283 = call i32 @fileno(ptr noundef %6282) #10
  %6284 = call i32 @isatty(i32 noundef %6283) #10
  %6285 = icmp ne i32 %6284, 0
  br i1 %6285, label %6286, label %6303

6286:                                             ; preds = %6281
  %6287 = load i32, ptr %151, align 4, !tbaa !5
  %6288 = call ptr @__errno_location() #11
  store i32 %6287, ptr %6288, align 4, !tbaa !5
  %6289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6290 = load i32, ptr @test_count, align 4, !tbaa !5
  %6291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6292 = load i32, ptr %6291, align 4, !tbaa !5
  %6293 = call ptr @s2n_strerror(i32 noundef %6292, ptr noundef @.str.4)
  %6294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6295 = load i32, ptr %6294, align 4, !tbaa !5
  %6296 = call ptr @s2n_strerror_debug(i32 noundef %6295, ptr noundef @.str.4)
  %6297 = call ptr @__errno_location() #11
  %6298 = load i32, ptr %6297, align 4, !tbaa !5
  %6299 = call ptr @strerror(i32 noundef %6298) #10
  %6300 = call ptr @__errno_location() #11
  %6301 = load i32, ptr %6300, align 4, !tbaa !5
  %6302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6289, ptr noundef @.str.2, i32 noundef %6290, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 387, ptr noundef %6293, ptr noundef %6296, ptr noundef %6299, i32 noundef %6301) #10
  br label %6320

6303:                                             ; preds = %6281, %6274
  %6304 = load i32, ptr %151, align 4, !tbaa !5
  %6305 = call ptr @__errno_location() #11
  store i32 %6304, ptr %6305, align 4, !tbaa !5
  %6306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6307 = load i32, ptr @test_count, align 4, !tbaa !5
  %6308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6309 = load i32, ptr %6308, align 4, !tbaa !5
  %6310 = call ptr @s2n_strerror(i32 noundef %6309, ptr noundef @.str.4)
  %6311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6312 = load i32, ptr %6311, align 4, !tbaa !5
  %6313 = call ptr @s2n_strerror_debug(i32 noundef %6312, ptr noundef @.str.4)
  %6314 = call ptr @__errno_location() #11
  %6315 = load i32, ptr %6314, align 4, !tbaa !5
  %6316 = call ptr @strerror(i32 noundef %6315) #10
  %6317 = call ptr @__errno_location() #11
  %6318 = load i32, ptr %6317, align 4, !tbaa !5
  %6319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6306, ptr noundef @.str.5, i32 noundef %6307, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 387, ptr noundef %6310, ptr noundef %6313, ptr noundef %6316, i32 noundef %6318) #10
  br label %6320

6320:                                             ; preds = %6303, %6286
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #10
  br label %6321

6321:                                             ; preds = %6320
  br label %6322

6322:                                             ; preds = %6321
  call void @exit(i32 noundef 1) #12
  unreachable

6323:                                             ; No predecessors!
  br label %6324

6324:                                             ; preds = %6323
  br label %6325

6325:                                             ; preds = %6324, %6265
  br label %6326

6326:                                             ; preds = %6325
  br label %6327

6327:                                             ; preds = %6326
  %6328 = load ptr, ptr %150, align 8, !tbaa !9
  %6329 = getelementptr inbounds %struct.s2n_connection, ptr %6328, i32 0, i32 23
  store i8 34, ptr %6329, align 4, !tbaa !27
  call void @llvm.lifetime.start.p0(i64 40, ptr %152) #10
  call void @llvm.memset.p0.i64(ptr align 8 %152, i8 0, i64 40, i1 false)
  br label %6330

6330:                                             ; preds = %6327
  %6331 = load i32, ptr @test_count, align 4, !tbaa !5
  %6332 = add nsw i32 %6331, 1
  store i32 %6332, ptr @test_count, align 4, !tbaa !5
  %6333 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %152, i32 noundef 0)
  %6334 = icmp eq i32 %6333, -1
  br i1 %6334, label %6335, label %6388

6335:                                             ; preds = %6330
  br label %6336

6336:                                             ; preds = %6335
  br label %6337

6337:                                             ; preds = %6336
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #10
  %6338 = call ptr @__errno_location() #11
  %6339 = load i32, ptr %6338, align 4, !tbaa !5
  store i32 %6339, ptr %153, align 4, !tbaa !5
  %6340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6341 = call i32 @s2n_print_stacktrace(ptr noundef %6340)
  %6342 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6343 = trunc i8 %6342 to i1
  br i1 %6343, label %6344, label %6366

6344:                                             ; preds = %6337
  %6345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6346 = call i32 @fileno(ptr noundef %6345) #10
  %6347 = call i32 @isatty(i32 noundef %6346) #10
  %6348 = icmp ne i32 %6347, 0
  br i1 %6348, label %6349, label %6366

6349:                                             ; preds = %6344
  %6350 = load i32, ptr %153, align 4, !tbaa !5
  %6351 = call ptr @__errno_location() #11
  store i32 %6350, ptr %6351, align 4, !tbaa !5
  %6352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6353 = load i32, ptr @test_count, align 4, !tbaa !5
  %6354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6355 = load i32, ptr %6354, align 4, !tbaa !5
  %6356 = call ptr @s2n_strerror(i32 noundef %6355, ptr noundef @.str.4)
  %6357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6358 = load i32, ptr %6357, align 4, !tbaa !5
  %6359 = call ptr @s2n_strerror_debug(i32 noundef %6358, ptr noundef @.str.4)
  %6360 = call ptr @__errno_location() #11
  %6361 = load i32, ptr %6360, align 4, !tbaa !5
  %6362 = call ptr @strerror(i32 noundef %6361) #10
  %6363 = call ptr @__errno_location() #11
  %6364 = load i32, ptr %6363, align 4, !tbaa !5
  %6365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6352, ptr noundef @.str.2, i32 noundef %6353, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 391, ptr noundef %6356, ptr noundef %6359, ptr noundef %6362, i32 noundef %6364) #10
  br label %6383

6366:                                             ; preds = %6344, %6337
  %6367 = load i32, ptr %153, align 4, !tbaa !5
  %6368 = call ptr @__errno_location() #11
  store i32 %6367, ptr %6368, align 4, !tbaa !5
  %6369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6370 = load i32, ptr @test_count, align 4, !tbaa !5
  %6371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6372 = load i32, ptr %6371, align 4, !tbaa !5
  %6373 = call ptr @s2n_strerror(i32 noundef %6372, ptr noundef @.str.4)
  %6374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6375 = load i32, ptr %6374, align 4, !tbaa !5
  %6376 = call ptr @s2n_strerror_debug(i32 noundef %6375, ptr noundef @.str.4)
  %6377 = call ptr @__errno_location() #11
  %6378 = load i32, ptr %6377, align 4, !tbaa !5
  %6379 = call ptr @strerror(i32 noundef %6378) #10
  %6380 = call ptr @__errno_location() #11
  %6381 = load i32, ptr %6380, align 4, !tbaa !5
  %6382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6369, ptr noundef @.str.5, i32 noundef %6370, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 391, ptr noundef %6373, ptr noundef %6376, ptr noundef %6379, i32 noundef %6381) #10
  br label %6383

6383:                                             ; preds = %6366, %6349
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #10
  br label %6384

6384:                                             ; preds = %6383
  br label %6385

6385:                                             ; preds = %6384
  call void @exit(i32 noundef 1) #12
  unreachable

6386:                                             ; No predecessors!
  br label %6387

6387:                                             ; preds = %6386
  br label %6388

6388:                                             ; preds = %6387, %6330
  br label %6389

6389:                                             ; preds = %6388
  br label %6390

6390:                                             ; preds = %6389
  br label %6391

6391:                                             ; preds = %6390
  %6392 = load i32, ptr @test_count, align 4, !tbaa !5
  %6393 = add nsw i32 %6392, 1
  store i32 %6393, ptr @test_count, align 4, !tbaa !5
  %6394 = load ptr, ptr %150, align 8, !tbaa !9
  %6395 = call i32 @s2n_extension_send(ptr noundef @s2n_cert_authorities_extension, ptr noundef %6394, ptr noundef %152)
  %6396 = icmp eq i32 %6395, -1
  br i1 %6396, label %6397, label %6450

6397:                                             ; preds = %6391
  br label %6398

6398:                                             ; preds = %6397
  br label %6399

6399:                                             ; preds = %6398
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #10
  %6400 = call ptr @__errno_location() #11
  %6401 = load i32, ptr %6400, align 4, !tbaa !5
  store i32 %6401, ptr %154, align 4, !tbaa !5
  %6402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6403 = call i32 @s2n_print_stacktrace(ptr noundef %6402)
  %6404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6405 = trunc i8 %6404 to i1
  br i1 %6405, label %6406, label %6428

6406:                                             ; preds = %6399
  %6407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6408 = call i32 @fileno(ptr noundef %6407) #10
  %6409 = call i32 @isatty(i32 noundef %6408) #10
  %6410 = icmp ne i32 %6409, 0
  br i1 %6410, label %6411, label %6428

6411:                                             ; preds = %6406
  %6412 = load i32, ptr %154, align 4, !tbaa !5
  %6413 = call ptr @__errno_location() #11
  store i32 %6412, ptr %6413, align 4, !tbaa !5
  %6414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6415 = load i32, ptr @test_count, align 4, !tbaa !5
  %6416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6417 = load i32, ptr %6416, align 4, !tbaa !5
  %6418 = call ptr @s2n_strerror(i32 noundef %6417, ptr noundef @.str.4)
  %6419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6420 = load i32, ptr %6419, align 4, !tbaa !5
  %6421 = call ptr @s2n_strerror_debug(i32 noundef %6420, ptr noundef @.str.4)
  %6422 = call ptr @__errno_location() #11
  %6423 = load i32, ptr %6422, align 4, !tbaa !5
  %6424 = call ptr @strerror(i32 noundef %6423) #10
  %6425 = call ptr @__errno_location() #11
  %6426 = load i32, ptr %6425, align 4, !tbaa !5
  %6427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6414, ptr noundef @.str.2, i32 noundef %6415, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 394, ptr noundef %6418, ptr noundef %6421, ptr noundef %6424, i32 noundef %6426) #10
  br label %6445

6428:                                             ; preds = %6406, %6399
  %6429 = load i32, ptr %154, align 4, !tbaa !5
  %6430 = call ptr @__errno_location() #11
  store i32 %6429, ptr %6430, align 4, !tbaa !5
  %6431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6432 = load i32, ptr @test_count, align 4, !tbaa !5
  %6433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6434 = load i32, ptr %6433, align 4, !tbaa !5
  %6435 = call ptr @s2n_strerror(i32 noundef %6434, ptr noundef @.str.4)
  %6436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6437 = load i32, ptr %6436, align 4, !tbaa !5
  %6438 = call ptr @s2n_strerror_debug(i32 noundef %6437, ptr noundef @.str.4)
  %6439 = call ptr @__errno_location() #11
  %6440 = load i32, ptr %6439, align 4, !tbaa !5
  %6441 = call ptr @strerror(i32 noundef %6440) #10
  %6442 = call ptr @__errno_location() #11
  %6443 = load i32, ptr %6442, align 4, !tbaa !5
  %6444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6431, ptr noundef @.str.5, i32 noundef %6432, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 394, ptr noundef %6435, ptr noundef %6438, ptr noundef %6441, i32 noundef %6443) #10
  br label %6445

6445:                                             ; preds = %6428, %6411
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #10
  br label %6446

6446:                                             ; preds = %6445
  br label %6447

6447:                                             ; preds = %6446
  call void @exit(i32 noundef 1) #12
  unreachable

6448:                                             ; No predecessors!
  br label %6449

6449:                                             ; preds = %6448
  br label %6450

6450:                                             ; preds = %6449, %6391
  br label %6451

6451:                                             ; preds = %6450
  br label %6452

6452:                                             ; preds = %6451
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #10
  %6453 = getelementptr inbounds %struct.s2n_stuffer, ptr %152, i32 0, i32 2
  %6454 = load i32, ptr %6453, align 4, !tbaa !53
  %6455 = getelementptr inbounds %struct.s2n_stuffer, ptr %152, i32 0, i32 1
  %6456 = load i32, ptr %6455, align 8, !tbaa !54
  %6457 = sub i32 %6454, %6456
  %6458 = zext i32 %6457 to i64
  store i64 %6458, ptr %155, align 8, !tbaa !25
  br label %6459

6459:                                             ; preds = %6452
  %6460 = load i32, ptr @test_count, align 4, !tbaa !5
  %6461 = add nsw i32 %6460, 1
  store i32 %6461, ptr @test_count, align 4, !tbaa !5
  %6462 = load i64, ptr %146, align 8, !tbaa !25
  %6463 = getelementptr inbounds [4 x %struct.anon], ptr %145, i64 0, i64 %6462
  %6464 = getelementptr inbounds %struct.anon, ptr %6463, i32 0, i32 1
  %6465 = load i8, ptr %6464, align 8, !tbaa !64
  %6466 = zext i8 %6465 to i64
  %6467 = load i64, ptr %155, align 8, !tbaa !25
  %6468 = icmp eq i64 %6466, %6467
  br i1 %6468, label %6522, label %6469

6469:                                             ; preds = %6459
  br label %6470

6470:                                             ; preds = %6469
  br label %6471

6471:                                             ; preds = %6470
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #10
  %6472 = call ptr @__errno_location() #11
  %6473 = load i32, ptr %6472, align 4, !tbaa !5
  store i32 %6473, ptr %156, align 4, !tbaa !5
  %6474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6475 = call i32 @s2n_print_stacktrace(ptr noundef %6474)
  %6476 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6477 = trunc i8 %6476 to i1
  br i1 %6477, label %6478, label %6500

6478:                                             ; preds = %6471
  %6479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6480 = call i32 @fileno(ptr noundef %6479) #10
  %6481 = call i32 @isatty(i32 noundef %6480) #10
  %6482 = icmp ne i32 %6481, 0
  br i1 %6482, label %6483, label %6500

6483:                                             ; preds = %6478
  %6484 = load i32, ptr %156, align 4, !tbaa !5
  %6485 = call ptr @__errno_location() #11
  store i32 %6484, ptr %6485, align 4, !tbaa !5
  %6486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6487 = load i32, ptr @test_count, align 4, !tbaa !5
  %6488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6489 = load i32, ptr %6488, align 4, !tbaa !5
  %6490 = call ptr @s2n_strerror(i32 noundef %6489, ptr noundef @.str.4)
  %6491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6492 = load i32, ptr %6491, align 4, !tbaa !5
  %6493 = call ptr @s2n_strerror_debug(i32 noundef %6492, ptr noundef @.str.4)
  %6494 = call ptr @__errno_location() #11
  %6495 = load i32, ptr %6494, align 4, !tbaa !5
  %6496 = call ptr @strerror(i32 noundef %6495) #10
  %6497 = call ptr @__errno_location() #11
  %6498 = load i32, ptr %6497, align 4, !tbaa !5
  %6499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6486, ptr noundef @.str.2, i32 noundef %6487, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 397, ptr noundef %6490, ptr noundef %6493, ptr noundef %6496, i32 noundef %6498) #10
  br label %6517

6500:                                             ; preds = %6478, %6471
  %6501 = load i32, ptr %156, align 4, !tbaa !5
  %6502 = call ptr @__errno_location() #11
  store i32 %6501, ptr %6502, align 4, !tbaa !5
  %6503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6504 = load i32, ptr @test_count, align 4, !tbaa !5
  %6505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6506 = load i32, ptr %6505, align 4, !tbaa !5
  %6507 = call ptr @s2n_strerror(i32 noundef %6506, ptr noundef @.str.4)
  %6508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6509 = load i32, ptr %6508, align 4, !tbaa !5
  %6510 = call ptr @s2n_strerror_debug(i32 noundef %6509, ptr noundef @.str.4)
  %6511 = call ptr @__errno_location() #11
  %6512 = load i32, ptr %6511, align 4, !tbaa !5
  %6513 = call ptr @strerror(i32 noundef %6512) #10
  %6514 = call ptr @__errno_location() #11
  %6515 = load i32, ptr %6514, align 4, !tbaa !5
  %6516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6503, ptr noundef @.str.5, i32 noundef %6504, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 397, ptr noundef %6507, ptr noundef %6510, ptr noundef %6513, i32 noundef %6515) #10
  br label %6517

6517:                                             ; preds = %6500, %6483
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #10
  br label %6518

6518:                                             ; preds = %6517
  br label %6519

6519:                                             ; preds = %6518
  call void @exit(i32 noundef 1) #12
  unreachable

6520:                                             ; No predecessors!
  br label %6521

6521:                                             ; preds = %6520
  br label %6522

6522:                                             ; preds = %6521, %6459
  br label %6523

6523:                                             ; preds = %6522
  br label %6524

6524:                                             ; preds = %6523
  call void @llvm.lifetime.start.p0(i64 8, ptr %157) #10
  %6525 = load i64, ptr %155, align 8, !tbaa !25
  %6526 = trunc i64 %6525 to i32
  %6527 = call ptr @s2n_stuffer_raw_read(ptr noundef %152, i32 noundef %6526)
  store ptr %6527, ptr %157, align 8, !tbaa !9
  br label %6528

6528:                                             ; preds = %6524
  %6529 = load i32, ptr @test_count, align 4, !tbaa !5
  %6530 = add nsw i32 %6529, 1
  store i32 %6530, ptr @test_count, align 4, !tbaa !5
  %6531 = load ptr, ptr %157, align 8, !tbaa !9
  %6532 = icmp eq ptr %6531, null
  br i1 %6532, label %6533, label %6586

6533:                                             ; preds = %6528
  br label %6534

6534:                                             ; preds = %6533
  br label %6535

6535:                                             ; preds = %6534
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #10
  %6536 = call ptr @__errno_location() #11
  %6537 = load i32, ptr %6536, align 4, !tbaa !5
  store i32 %6537, ptr %158, align 4, !tbaa !5
  %6538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6539 = call i32 @s2n_print_stacktrace(ptr noundef %6538)
  %6540 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6541 = trunc i8 %6540 to i1
  br i1 %6541, label %6542, label %6564

6542:                                             ; preds = %6535
  %6543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6544 = call i32 @fileno(ptr noundef %6543) #10
  %6545 = call i32 @isatty(i32 noundef %6544) #10
  %6546 = icmp ne i32 %6545, 0
  br i1 %6546, label %6547, label %6564

6547:                                             ; preds = %6542
  %6548 = load i32, ptr %158, align 4, !tbaa !5
  %6549 = call ptr @__errno_location() #11
  store i32 %6548, ptr %6549, align 4, !tbaa !5
  %6550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6551 = load i32, ptr @test_count, align 4, !tbaa !5
  %6552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6553 = load i32, ptr %6552, align 4, !tbaa !5
  %6554 = call ptr @s2n_strerror(i32 noundef %6553, ptr noundef @.str.4)
  %6555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6556 = load i32, ptr %6555, align 4, !tbaa !5
  %6557 = call ptr @s2n_strerror_debug(i32 noundef %6556, ptr noundef @.str.4)
  %6558 = call ptr @__errno_location() #11
  %6559 = load i32, ptr %6558, align 4, !tbaa !5
  %6560 = call ptr @strerror(i32 noundef %6559) #10
  %6561 = call ptr @__errno_location() #11
  %6562 = load i32, ptr %6561, align 4, !tbaa !5
  %6563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6550, ptr noundef @.str.2, i32 noundef %6551, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 400, ptr noundef %6554, ptr noundef %6557, ptr noundef %6560, i32 noundef %6562) #10
  br label %6581

6564:                                             ; preds = %6542, %6535
  %6565 = load i32, ptr %158, align 4, !tbaa !5
  %6566 = call ptr @__errno_location() #11
  store i32 %6565, ptr %6566, align 4, !tbaa !5
  %6567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6568 = load i32, ptr @test_count, align 4, !tbaa !5
  %6569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6570 = load i32, ptr %6569, align 4, !tbaa !5
  %6571 = call ptr @s2n_strerror(i32 noundef %6570, ptr noundef @.str.4)
  %6572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6573 = load i32, ptr %6572, align 4, !tbaa !5
  %6574 = call ptr @s2n_strerror_debug(i32 noundef %6573, ptr noundef @.str.4)
  %6575 = call ptr @__errno_location() #11
  %6576 = load i32, ptr %6575, align 4, !tbaa !5
  %6577 = call ptr @strerror(i32 noundef %6576) #10
  %6578 = call ptr @__errno_location() #11
  %6579 = load i32, ptr %6578, align 4, !tbaa !5
  %6580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6567, ptr noundef @.str.5, i32 noundef %6568, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 400, ptr noundef %6571, ptr noundef %6574, ptr noundef %6577, i32 noundef %6579) #10
  br label %6581

6581:                                             ; preds = %6564, %6547
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #10
  br label %6582

6582:                                             ; preds = %6581
  br label %6583

6583:                                             ; preds = %6582
  call void @exit(i32 noundef 1) #12
  unreachable

6584:                                             ; No predecessors!
  br label %6585

6585:                                             ; preds = %6584
  br label %6586

6586:                                             ; preds = %6585, %6528
  br label %6587

6587:                                             ; preds = %6586
  br label %6588

6588:                                             ; preds = %6587
  br label %6589

6589:                                             ; preds = %6588
  %6590 = load i64, ptr %155, align 8, !tbaa !25
  %6591 = icmp ne i64 %6590, 0
  br i1 %6591, label %6592, label %6660

6592:                                             ; preds = %6589
  br label %6593

6593:                                             ; preds = %6592
  %6594 = load i32, ptr @test_count, align 4, !tbaa !5
  %6595 = add nsw i32 %6594, 1
  store i32 %6595, ptr @test_count, align 4, !tbaa !5
  %6596 = load i64, ptr %146, align 8, !tbaa !25
  %6597 = getelementptr inbounds [4 x %struct.anon], ptr %145, i64 0, i64 %6596
  %6598 = getelementptr inbounds %struct.anon, ptr %6597, i32 0, i32 2
  %6599 = getelementptr inbounds [1000 x i8], ptr %6598, i64 0, i64 0
  %6600 = load ptr, ptr %157, align 8, !tbaa !9
  %6601 = load i64, ptr %155, align 8, !tbaa !25
  %6602 = call i32 @memcmp(ptr noundef %6599, ptr noundef %6600, i64 noundef %6601) #13
  %6603 = icmp eq i32 %6602, 0
  br i1 %6603, label %6657, label %6604

6604:                                             ; preds = %6593
  br label %6605

6605:                                             ; preds = %6604
  br label %6606

6606:                                             ; preds = %6605
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #10
  %6607 = call ptr @__errno_location() #11
  %6608 = load i32, ptr %6607, align 4, !tbaa !5
  store i32 %6608, ptr %159, align 4, !tbaa !5
  %6609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6610 = call i32 @s2n_print_stacktrace(ptr noundef %6609)
  %6611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6612 = trunc i8 %6611 to i1
  br i1 %6612, label %6613, label %6635

6613:                                             ; preds = %6606
  %6614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6615 = call i32 @fileno(ptr noundef %6614) #10
  %6616 = call i32 @isatty(i32 noundef %6615) #10
  %6617 = icmp ne i32 %6616, 0
  br i1 %6617, label %6618, label %6635

6618:                                             ; preds = %6613
  %6619 = load i32, ptr %159, align 4, !tbaa !5
  %6620 = call ptr @__errno_location() #11
  store i32 %6619, ptr %6620, align 4, !tbaa !5
  %6621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6622 = load i32, ptr @test_count, align 4, !tbaa !5
  %6623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6624 = load i32, ptr %6623, align 4, !tbaa !5
  %6625 = call ptr @s2n_strerror(i32 noundef %6624, ptr noundef @.str.4)
  %6626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6627 = load i32, ptr %6626, align 4, !tbaa !5
  %6628 = call ptr @s2n_strerror_debug(i32 noundef %6627, ptr noundef @.str.4)
  %6629 = call ptr @__errno_location() #11
  %6630 = load i32, ptr %6629, align 4, !tbaa !5
  %6631 = call ptr @strerror(i32 noundef %6630) #10
  %6632 = call ptr @__errno_location() #11
  %6633 = load i32, ptr %6632, align 4, !tbaa !5
  %6634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6621, ptr noundef @.str.2, i32 noundef %6622, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 401, ptr noundef %6625, ptr noundef %6628, ptr noundef %6631, i32 noundef %6633) #10
  br label %6652

6635:                                             ; preds = %6613, %6606
  %6636 = load i32, ptr %159, align 4, !tbaa !5
  %6637 = call ptr @__errno_location() #11
  store i32 %6636, ptr %6637, align 4, !tbaa !5
  %6638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6639 = load i32, ptr @test_count, align 4, !tbaa !5
  %6640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6641 = load i32, ptr %6640, align 4, !tbaa !5
  %6642 = call ptr @s2n_strerror(i32 noundef %6641, ptr noundef @.str.4)
  %6643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6644 = load i32, ptr %6643, align 4, !tbaa !5
  %6645 = call ptr @s2n_strerror_debug(i32 noundef %6644, ptr noundef @.str.4)
  %6646 = call ptr @__errno_location() #11
  %6647 = load i32, ptr %6646, align 4, !tbaa !5
  %6648 = call ptr @strerror(i32 noundef %6647) #10
  %6649 = call ptr @__errno_location() #11
  %6650 = load i32, ptr %6649, align 4, !tbaa !5
  %6651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6638, ptr noundef @.str.5, i32 noundef %6639, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 401, ptr noundef %6642, ptr noundef %6645, ptr noundef %6648, i32 noundef %6650) #10
  br label %6652

6652:                                             ; preds = %6635, %6618
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #10
  br label %6653

6653:                                             ; preds = %6652
  br label %6654

6654:                                             ; preds = %6653
  call void @exit(i32 noundef 1) #12
  unreachable

6655:                                             ; No predecessors!
  br label %6656

6656:                                             ; preds = %6655
  br label %6657

6657:                                             ; preds = %6656, %6593
  br label %6658

6658:                                             ; preds = %6657
  br label %6659

6659:                                             ; preds = %6658
  br label %6660

6660:                                             ; preds = %6659, %6589
  br label %6661

6661:                                             ; preds = %6660
  br label %6662

6662:                                             ; preds = %6661
  call void @llvm.lifetime.end.p0(i64 8, ptr %157) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #10
  %6663 = call i32 @s2n_stuffer_free(ptr noundef %152)
  call void @llvm.lifetime.end.p0(i64 40, ptr %152) #10
  %6664 = call i32 @s2n_connection_ptr_free(ptr noundef %150)
  %6665 = getelementptr inbounds %struct.s2n_result, ptr %160, i32 0, i32 0
  store i32 %6664, ptr %6665, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %150) #10
  %6666 = call i32 @s2n_config_ptr_free(ptr noundef %147)
  %6667 = getelementptr inbounds %struct.s2n_result, ptr %161, i32 0, i32 0
  store i32 %6666, ptr %6667, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #10
  br label %6668

6668:                                             ; preds = %6662
  %6669 = load i64, ptr %146, align 8, !tbaa !25
  %6670 = add i64 %6669, 1
  store i64 %6670, ptr %146, align 8, !tbaa !25
  br label %6130, !llvm.loop !65

6671:                                             ; preds = %6133
  call void @llvm.lifetime.end.p0(i64 4064, ptr %145) #10
  br label %6672

6672:                                             ; preds = %6671, %6127, %6125
  br label %6673

6673:                                             ; preds = %6672
  br label %6674

6674:                                             ; preds = %6673
  %6675 = call i32 @s2n_cleanup()
  %6676 = icmp eq i32 %6675, -1
  br i1 %6676, label %6677, label %6730

6677:                                             ; preds = %6674
  br label %6678

6678:                                             ; preds = %6677
  br label %6679

6679:                                             ; preds = %6678
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #10
  %6680 = call ptr @__errno_location() #11
  %6681 = load i32, ptr %6680, align 4, !tbaa !5
  store i32 %6681, ptr %162, align 4, !tbaa !5
  %6682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6683 = call i32 @s2n_print_stacktrace(ptr noundef %6682)
  %6684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6685 = trunc i8 %6684 to i1
  br i1 %6685, label %6686, label %6708

6686:                                             ; preds = %6679
  %6687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6688 = call i32 @fileno(ptr noundef %6687) #10
  %6689 = call i32 @isatty(i32 noundef %6688) #10
  %6690 = icmp ne i32 %6689, 0
  br i1 %6690, label %6691, label %6708

6691:                                             ; preds = %6686
  %6692 = load i32, ptr %162, align 4, !tbaa !5
  %6693 = call ptr @__errno_location() #11
  store i32 %6692, ptr %6693, align 4, !tbaa !5
  %6694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6695 = load i32, ptr @test_count, align 4, !tbaa !5
  %6696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6697 = load i32, ptr %6696, align 4, !tbaa !5
  %6698 = call ptr @s2n_strerror(i32 noundef %6697, ptr noundef @.str.4)
  %6699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6700 = load i32, ptr %6699, align 4, !tbaa !5
  %6701 = call ptr @s2n_strerror_debug(i32 noundef %6700, ptr noundef @.str.4)
  %6702 = call ptr @__errno_location() #11
  %6703 = load i32, ptr %6702, align 4, !tbaa !5
  %6704 = call ptr @strerror(i32 noundef %6703) #10
  %6705 = call ptr @__errno_location() #11
  %6706 = load i32, ptr %6705, align 4, !tbaa !5
  %6707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6694, ptr noundef @.str.2, i32 noundef %6695, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 405, ptr noundef %6698, ptr noundef %6701, ptr noundef %6704, i32 noundef %6706) #10
  br label %6725

6708:                                             ; preds = %6686, %6679
  %6709 = load i32, ptr %162, align 4, !tbaa !5
  %6710 = call ptr @__errno_location() #11
  store i32 %6709, ptr %6710, align 4, !tbaa !5
  %6711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6712 = load i32, ptr @test_count, align 4, !tbaa !5
  %6713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6714 = load i32, ptr %6713, align 4, !tbaa !5
  %6715 = call ptr @s2n_strerror(i32 noundef %6714, ptr noundef @.str.4)
  %6716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6717 = load i32, ptr %6716, align 4, !tbaa !5
  %6718 = call ptr @s2n_strerror_debug(i32 noundef %6717, ptr noundef @.str.4)
  %6719 = call ptr @__errno_location() #11
  %6720 = load i32, ptr %6719, align 4, !tbaa !5
  %6721 = call ptr @strerror(i32 noundef %6720) #10
  %6722 = call ptr @__errno_location() #11
  %6723 = load i32, ptr %6722, align 4, !tbaa !5
  %6724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6711, ptr noundef @.str.5, i32 noundef %6712, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 405, ptr noundef %6715, ptr noundef %6718, ptr noundef %6721, i32 noundef %6723) #10
  br label %6725

6725:                                             ; preds = %6708, %6691
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #10
  br label %6726

6726:                                             ; preds = %6725
  br label %6727

6727:                                             ; preds = %6726
  call void @exit(i32 noundef 1) #12
  unreachable

6728:                                             ; No predecessors!
  br label %6729

6729:                                             ; preds = %6728
  br label %6730

6730:                                             ; preds = %6729, %6674
  br label %6731

6731:                                             ; preds = %6730
  br label %6732

6732:                                             ; preds = %6731
  br label %6733

6733:                                             ; preds = %6732
  br label %6734

6734:                                             ; preds = %6733
  %6735 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %6736 = icmp eq i32 %6735, -1
  br i1 %6736, label %6737, label %6790

6737:                                             ; preds = %6734
  br label %6738

6738:                                             ; preds = %6737
  br label %6739

6739:                                             ; preds = %6738
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #10
  %6740 = call ptr @__errno_location() #11
  %6741 = load i32, ptr %6740, align 4, !tbaa !5
  store i32 %6741, ptr %163, align 4, !tbaa !5
  %6742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6743 = call i32 @s2n_print_stacktrace(ptr noundef %6742)
  %6744 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6745 = trunc i8 %6744 to i1
  br i1 %6745, label %6746, label %6768

6746:                                             ; preds = %6739
  %6747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6748 = call i32 @fileno(ptr noundef %6747) #10
  %6749 = call i32 @isatty(i32 noundef %6748) #10
  %6750 = icmp ne i32 %6749, 0
  br i1 %6750, label %6751, label %6768

6751:                                             ; preds = %6746
  %6752 = load i32, ptr %163, align 4, !tbaa !5
  %6753 = call ptr @__errno_location() #11
  store i32 %6752, ptr %6753, align 4, !tbaa !5
  %6754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6755 = load i32, ptr @test_count, align 4, !tbaa !5
  %6756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6757 = load i32, ptr %6756, align 4, !tbaa !5
  %6758 = call ptr @s2n_strerror(i32 noundef %6757, ptr noundef @.str.4)
  %6759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6760 = load i32, ptr %6759, align 4, !tbaa !5
  %6761 = call ptr @s2n_strerror_debug(i32 noundef %6760, ptr noundef @.str.4)
  %6762 = call ptr @__errno_location() #11
  %6763 = load i32, ptr %6762, align 4, !tbaa !5
  %6764 = call ptr @strerror(i32 noundef %6763) #10
  %6765 = call ptr @__errno_location() #11
  %6766 = load i32, ptr %6765, align 4, !tbaa !5
  %6767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6754, ptr noundef @.str.2, i32 noundef %6755, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 405, ptr noundef %6758, ptr noundef %6761, ptr noundef %6764, i32 noundef %6766) #10
  br label %6785

6768:                                             ; preds = %6746, %6739
  %6769 = load i32, ptr %163, align 4, !tbaa !5
  %6770 = call ptr @__errno_location() #11
  store i32 %6769, ptr %6770, align 4, !tbaa !5
  %6771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6772 = load i32, ptr @test_count, align 4, !tbaa !5
  %6773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6774 = load i32, ptr %6773, align 4, !tbaa !5
  %6775 = call ptr @s2n_strerror(i32 noundef %6774, ptr noundef @.str.4)
  %6776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6777 = load i32, ptr %6776, align 4, !tbaa !5
  %6778 = call ptr @s2n_strerror_debug(i32 noundef %6777, ptr noundef @.str.4)
  %6779 = call ptr @__errno_location() #11
  %6780 = load i32, ptr %6779, align 4, !tbaa !5
  %6781 = call ptr @strerror(i32 noundef %6780) #10
  %6782 = call ptr @__errno_location() #11
  %6783 = load i32, ptr %6782, align 4, !tbaa !5
  %6784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6771, ptr noundef @.str.5, i32 noundef %6772, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 405, ptr noundef %6775, ptr noundef %6778, ptr noundef %6781, i32 noundef %6783) #10
  br label %6785

6785:                                             ; preds = %6768, %6751
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #10
  br label %6786

6786:                                             ; preds = %6785
  br label %6787

6787:                                             ; preds = %6786
  call void @exit(i32 noundef 1) #12
  unreachable

6788:                                             ; No predecessors!
  br label %6789

6789:                                             ; preds = %6788
  br label %6790

6790:                                             ; preds = %6789, %6734
  br label %6791

6791:                                             ; preds = %6790
  br label %6792

6792:                                             ; preds = %6791
  %6793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6794 = trunc i8 %6793 to i1
  br i1 %6794, label %6795, label %6811

6795:                                             ; preds = %6792
  %6796 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6797 = call i32 @fileno(ptr noundef %6796) #10
  %6798 = call i32 @isatty(i32 noundef %6797) #10
  %6799 = icmp ne i32 %6798, 0
  br i1 %6799, label %6800, label %6811

6800:                                             ; preds = %6795
  %6801 = load i32, ptr @test_count, align 4, !tbaa !5
  %6802 = icmp ne i32 %6801, 0
  br i1 %6802, label %6803, label %6807

6803:                                             ; preds = %6800
  %6804 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6805 = load i32, ptr @test_count, align 4, !tbaa !5
  %6806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6804, ptr noundef @.str.83, i32 noundef %6805) #10
  br label %6810

6807:                                             ; preds = %6800
  %6808 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6808, ptr noundef @.str.84) #10
  br label %6810

6810:                                             ; preds = %6807, %6803
  br label %6822

6811:                                             ; preds = %6795, %6792
  %6812 = load i32, ptr @test_count, align 4, !tbaa !5
  %6813 = icmp ne i32 %6812, 0
  br i1 %6813, label %6814, label %6818

6814:                                             ; preds = %6811
  %6815 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6816 = load i32, ptr @test_count, align 4, !tbaa !5
  %6817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6815, ptr noundef @.str.85, i32 noundef %6816) #10
  br label %6821

6818:                                             ; preds = %6811
  %6819 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6819, ptr noundef @.str.86) #10
  br label %6821

6821:                                             ; preds = %6818, %6814
  br label %6822

6822:                                             ; preds = %6821, %6810
  store i32 0, ptr %3, align 4
  store i32 1, ptr %164, align 4
  br label %6827

6823:                                             ; No predecessors!
  br label %6824

6824:                                             ; preds = %6823
  br label %6825

6825:                                             ; preds = %6824
  br label %6826

6826:                                             ; preds = %6825
  store i32 0, ptr %164, align 4
  br label %6827

6827:                                             ; preds = %6826, %6822
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #10
  %6828 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %9)
  %6829 = getelementptr inbounds %struct.s2n_result, ptr %165, i32 0, i32 0
  store i32 %6828, ptr %6829, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #10
  %6830 = load i32, ptr %164, align 4
  switch i32 %6830, label %6833 [
    i32 0, label %6831
    i32 1, label %6831
  ]

6831:                                             ; preds = %6827, %6827
  %6832 = load i32, ptr %3, align 4
  ret i32 %6832

6833:                                             ; preds = %6827
  unreachable
}

; 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

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #2

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

declare i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext, ptr noundef) #2

declare zeroext i1 @s2n_libcrypto_is_awslc() #2

declare zeroext i1 @s2n_cert_authorities_supported_from_trust_store(...) #2

declare i32 @s2n_config_set_cert_authorities_from_trust_store(ptr noundef) #2

declare void @s2n_debug_info_reset() #2

declare ptr @s2n_config_new_minimal() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

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

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_wipe_trust_store(ptr noundef) #2

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

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

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

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

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

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

declare i32 @s2n_stuffer_free(ptr noundef) #2

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

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

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

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

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

declare i32 @s2n_free(ptr noundef) #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) #2

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) #2

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

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

declare i32 @s2n_client_hello_send(ptr noundef) #2

declare i32 @s2n_parse_client_hello(ptr noundef) #2

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

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

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

declare i32 @s2n_stuffer_write_vector_size(ptr noundef) #2

declare i32 @s2n_client_hello_recv(ptr noundef) #2

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

declare i32 @s2n_io_pair_close(ptr noundef) #2

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #2

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

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

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

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

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: readwrite) }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
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 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { noreturn nounwind }
attributes #13 = { 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 = !{!7, !7, i64 0}
!16 = !{!17, !18, i64 0}
!17 = !{!"", !18, i64 0, !6, i64 2, !18, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!18 = !{!"short", !7, i64 0}
!19 = !{!20, !6, i64 456}
!20 = !{!"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, !21, i64 24, !22, 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, !23, i64 144, !10, i64 152, !23, i64 160, !23, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !24, i64 304, !18, 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, !22, i64 448}
!21 = !{!"certs_by_type", !7, i64 0}
!22 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!23 = !{!"long", !7, i64 0}
!24 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!25 = !{!23, !23, i64 0}
!26 = !{!20, !10, i64 448}
!27 = !{!28, !7, i64 220}
!28 = !{!"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, !29, i64 160, !23, i64 168, !23, 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, !30, i64 240, !10, i64 632, !10, i64 640, !31, i64 648, !36, i64 1144, !39, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !41, i64 1776, !41, i64 1816, !41, i64 1856, !41, i64 1896, !6, i64 1936, !23, i64 1944, !7, i64 1952, !41, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !42, i64 2004, !42, i64 2008, !43, i64 2016, !18, i64 2208, !6, i64 2212, !18, i64 2216, !23, i64 2224, !7, i64 2232, !23, i64 2240, !23, i64 2248, !23, i64 2256, !42, i64 2264, !42, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !22, i64 2792, !6, i64 2816, !22, i64 2824, !22, i64 2848, !22, i64 2872, !45, i64 2896, !47, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !22, i64 3784, !6, i64 3808, !49, i64 3816, !7, i64 3848, !41, i64 3992, !22, i64 4032, !22, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !18, i64 4084, !18, i64 4086, !6, i64 4088, !6, i64 4092, !22, i64 4096, !6, i64 4120, !50, i64 4128, !42, i64 4176, !7, i64 4180, !7, i64 4181}
!29 = !{!"s2n_timer", !23, i64 0}
!30 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!31 = !{!"s2n_kex_parameters", !32, i64 0, !33, i64 8, !7, i64 24, !33, i64 56, !34, i64 72, !34, i64 184, !7, i64 296, !35, i64 360, !22, i64 448, !22, i64 472}
!32 = !{!"s2n_dh_params", !10, i64 0}
!33 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!34 = !{!"s2n_kem_group_params", !10, i64 0, !35, i64 8, !33, i64 96}
!35 = !{!"s2n_kem_params", !10, i64 0, !22, i64 8, !22, i64 32, !22, i64 56, !12, i64 80}
!36 = !{!"s2n_handshake_parameters", !37, i64 0, !37, i64 48, !22, i64 96, !6, i64 120, !38, 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}
!37 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!38 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!39 = !{!"s2n_psk_parameters", !6, i64 0, !40, i64 8, !18, i64 40, !18, i64 42, !10, i64 48, !6, i64 56}
!40 = !{!"s2n_array", !22, i64 0, !6, i64 24, !6, i64 28}
!41 = !{!"s2n_stuffer", !22, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!42 = !{!"", !6, i64 0}
!43 = !{!"s2n_handshake", !41, 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, !44, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!44 = !{!"s2n_offered_early_data", !10, i64 0}
!45 = !{!"s2n_client_hello", !22, i64 0, !46, i64 24, !22, i64 728, !22, i64 752, !22, 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}
!46 = !{!"", !7, i64 0, !22, i64 672, !18, i64 696}
!47 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !18, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !48, i64 48, !12, i64 52}
!48 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!49 = !{!"s2n_ticket_fields", !22, i64 0, !6, i64 24}
!50 = !{!"s2n_post_handshake", !41, i64 0, !7, i64 40}
!51 = !{!17, !10, i64 8}
!52 = !{!18, !18, i64 0}
!53 = !{!41, !6, i64 28}
!54 = !{!41, !6, i64 24}
!55 = !{!17, !10, i64 24}
!56 = !{!45, !6, i64 8}
!57 = !{!45, !6, i64 704}
!58 = !{!45, !10, i64 0}
!59 = !{!60, !6, i64 8}
!60 = !{!"", !22, i64 0, !18, i64 24, !18, i64 26, !6, i64 28}
!61 = !{!60, !18, i64 24}
!62 = !{!63, !10, i64 0}
!63 = !{!"", !10, i64 0, !7, i64 8, !7, i64 9}
!64 = !{!63, !7, i64 8}
!65 = distinct !{!65, !66}
!66 = !{!"llvm.loop.mustprogress"}


; 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_extension_type = type { i16, i8, i16, ptr, ptr, ptr, ptr }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_stuffer_reservation = type { ptr, i32, i8 }
%struct.s2n_test_io_pair = type { i32, i32 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.anon = type { ptr, i8, [1000 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 [84 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [146 x i8], align 1
@s2n_unsupported_extension = external local_unnamed_addr constant i8, align 1
@s2n_cert_authorities_extension = external constant %struct.s2n_extension_type, align 8
@.str.11 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [125 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [51 x i8], align 1
@__const.main.ca_data = external hidden unnamed_addr constant [17 x i8], align 16
@.str.29 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [75 x i8], align 1
@__const.main.test_cases = external hidden unnamed_addr constant <{ { ptr, i8, <{ [32 x i8], [968 x i8] }> }, { ptr, i8, <{ [107 x i8], [893 x i8] }> }, { ptr, i8, <{ [192 x i8], [808 x i8] }> }, { ptr, i8, <{ [94 x i8], [906 x i8] }> } }>, align 16
@.str.77 = external hidden unnamed_addr constant [113 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.86 = 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 ptr, align 8
  %4 = alloca i8, align 1
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca %struct.s2n_stuffer, align 8
  %12 = alloca i16, align 2
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca %struct.s2n_stuffer, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca %struct.s2n_stuffer_reservation, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  %25 = alloca %struct.s2n_test_io_pair, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca %struct.s2n_stuffer, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %29 = load ptr, ptr @stdout, align 8, !tbaa !9
  %30 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %29, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #11
  %31 = load ptr, ptr @stdout, align 8, !tbaa !9
  %32 = tail call i32 @fflush(ptr noundef %31)
  %33 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #11
  %34 = icmp eq i32 %33, -1
  br i1 %34, label %35, label %59

35:                                               ; preds = %2
  %36 = tail call ptr @__errno_location() #12
  %37 = load i32, ptr %36, align 4, !tbaa !5
  %38 = load ptr, ptr @stderr, align 8, !tbaa !9
  %39 = tail call i32 @s2n_print_stacktrace(ptr noundef %38) #11
  %40 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %41 = trunc nuw i8 %40 to i1
  br i1 %41, label %42, label %46

42:                                               ; preds = %35
  %43 = load ptr, ptr @stderr, align 8, !tbaa !9
  %44 = tail call i32 @fileno(ptr noundef %43) #11
  %45 = tail call i32 @isatty(i32 noundef %44) #11
  %.not376 = icmp eq i32 %45, 0
  br i1 %.not376, label %46, label %47

46:                                               ; preds = %42, %35
  br label %47

47:                                               ; preds = %42, %46
  %.str.5.sink = phi ptr [ @.str.5, %46 ], [ @.str.2, %42 ]
  store i32 %37, ptr %36, align 4, !tbaa !5
  %48 = load ptr, ptr @stderr, align 8, !tbaa !9
  %49 = load i32, ptr @test_count, align 4, !tbaa !5
  %50 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %51 = load i32, ptr %50, align 4, !tbaa !5
  %52 = tail call ptr @s2n_strerror(i32 noundef %51, ptr noundef nonnull @.str.4) #11
  %53 = load i32, ptr %50, align 4, !tbaa !5
  %54 = tail call ptr @s2n_strerror_debug(i32 noundef %53, ptr noundef nonnull @.str.4) #11
  %55 = load i32, ptr %36, align 4, !tbaa !5
  %56 = tail call ptr @strerror(i32 noundef %55) #11
  %57 = load i32, ptr %36, align 4, !tbaa !5
  %58 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %48, ptr noundef nonnull %.str.5.sink, i32 noundef %49, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 29, ptr noundef %52, ptr noundef %54, ptr noundef %56, i32 noundef %57) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

59:                                               ; preds = %2
  %60 = load i32, ptr @test_count, align 4, !tbaa !5
  %61 = add nsw i32 %60, 1
  store i32 %61, ptr @test_count, align 4, !tbaa !5
  %62 = tail call i32 @s2n_enable_atexit() #11
  %63 = icmp eq i32 %62, -1
  br i1 %63, label %64, label %88

64:                                               ; preds = %59
  %65 = tail call ptr @__errno_location() #12
  %66 = load i32, ptr %65, align 4, !tbaa !5
  %67 = load ptr, ptr @stderr, align 8, !tbaa !9
  %68 = tail call i32 @s2n_print_stacktrace(ptr noundef %67) #11
  %69 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %70 = trunc nuw i8 %69 to i1
  br i1 %70, label %71, label %75

71:                                               ; preds = %64
  %72 = load ptr, ptr @stderr, align 8, !tbaa !9
  %73 = tail call i32 @fileno(ptr noundef %72) #11
  %74 = tail call i32 @isatty(i32 noundef %73) #11
  %.not375 = icmp eq i32 %74, 0
  br i1 %.not375, label %75, label %76

75:                                               ; preds = %71, %64
  br label %76

76:                                               ; preds = %71, %75
  %.str.5.sink388 = phi ptr [ @.str.5, %75 ], [ @.str.2, %71 ]
  store i32 %66, ptr %65, align 4, !tbaa !5
  %77 = load ptr, ptr @stderr, align 8, !tbaa !9
  %78 = load i32, ptr @test_count, align 4, !tbaa !5
  %79 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %80 = load i32, ptr %79, align 4, !tbaa !5
  %81 = tail call ptr @s2n_strerror(i32 noundef %80, ptr noundef nonnull @.str.4) #11
  %82 = load i32, ptr %79, align 4, !tbaa !5
  %83 = tail call ptr @s2n_strerror_debug(i32 noundef %82, ptr noundef nonnull @.str.4) #11
  %84 = load i32, ptr %65, align 4, !tbaa !5
  %85 = tail call ptr @strerror(i32 noundef %84) #11
  %86 = load i32, ptr %65, align 4, !tbaa !5
  %87 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %77, ptr noundef nonnull %.str.5.sink388, i32 noundef %78, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 29, ptr noundef %81, ptr noundef %83, ptr noundef %85, i32 noundef %86) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

88:                                               ; preds = %59
  %89 = tail call i32 @s2n_init() #11
  %90 = icmp eq i32 %89, -1
  br i1 %90, label %91, label %115

91:                                               ; preds = %88
  %92 = tail call ptr @__errno_location() #12
  %93 = load i32, ptr %92, align 4, !tbaa !5
  %94 = load ptr, ptr @stderr, align 8, !tbaa !9
  %95 = tail call i32 @s2n_print_stacktrace(ptr noundef %94) #11
  %96 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %97 = trunc nuw i8 %96 to i1
  br i1 %97, label %98, label %102

98:                                               ; preds = %91
  %99 = load ptr, ptr @stderr, align 8, !tbaa !9
  %100 = tail call i32 @fileno(ptr noundef %99) #11
  %101 = tail call i32 @isatty(i32 noundef %100) #11
  %.not374 = icmp eq i32 %101, 0
  br i1 %.not374, label %102, label %103

102:                                              ; preds = %98, %91
  br label %103

103:                                              ; preds = %98, %102
  %.str.5.sink399 = phi ptr [ @.str.5, %102 ], [ @.str.2, %98 ]
  store i32 %93, ptr %92, align 4, !tbaa !5
  %104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %105 = load i32, ptr @test_count, align 4, !tbaa !5
  %106 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %107 = load i32, ptr %106, align 4, !tbaa !5
  %108 = tail call ptr @s2n_strerror(i32 noundef %107, ptr noundef nonnull @.str.4) #11
  %109 = load i32, ptr %106, align 4, !tbaa !5
  %110 = tail call ptr @s2n_strerror_debug(i32 noundef %109, ptr noundef nonnull @.str.4) #11
  %111 = load i32, ptr %92, align 4, !tbaa !5
  %112 = tail call ptr @strerror(i32 noundef %111) #11
  %113 = load i32, ptr %92, align 4, !tbaa !5
  %114 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %104, ptr noundef nonnull %.str.5.sink399, i32 noundef %105, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 29, ptr noundef %108, ptr noundef %110, ptr noundef %112, i32 noundef %113) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

115:                                              ; preds = %88
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #11
  store ptr null, ptr %3, align 8, !tbaa !9
  %116 = load i32, ptr @test_count, align 4, !tbaa !5
  %117 = add nsw i32 %116, 1
  store i32 %117, ptr @test_count, align 4, !tbaa !5
  %118 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %3, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.9) #11
  %119 = icmp eq i32 %118, -1
  br i1 %119, label %120, label %144

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

127:                                              ; preds = %120
  %128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %129 = call i32 @fileno(ptr noundef %128) #11
  %130 = call i32 @isatty(i32 noundef %129) #11
  %.not373 = icmp eq i32 %130, 0
  br i1 %.not373, label %131, label %132

131:                                              ; preds = %127, %120
  br label %132

132:                                              ; preds = %127, %131
  %.str.5.sink410 = phi ptr [ @.str.5, %131 ], [ @.str.2, %127 ]
  store i32 %122, ptr %121, align 4, !tbaa !5
  %133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %134 = load i32, ptr @test_count, align 4, !tbaa !5
  %135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %136 = load i32, ptr %135, align 4, !tbaa !5
  %137 = call ptr @s2n_strerror(i32 noundef %136, ptr noundef nonnull @.str.4) #11
  %138 = load i32, ptr %135, align 4, !tbaa !5
  %139 = call ptr @s2n_strerror_debug(i32 noundef %138, ptr noundef nonnull @.str.4) #11
  %140 = load i32, ptr %121, align 4, !tbaa !5
  %141 = call ptr @strerror(i32 noundef %140) #11
  %142 = load i32, ptr %121, align 4, !tbaa !5
  %143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %133, ptr noundef nonnull %.str.5.sink410, i32 noundef %134, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 34, ptr noundef %137, ptr noundef %139, ptr noundef %141, i32 noundef %142) #13
  call void @exit(i32 noundef 1) #14
  unreachable

144:                                              ; preds = %115
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #11
  %145 = load i8, ptr @s2n_unsupported_extension, align 1, !tbaa !15
  store i8 %145, ptr %4, align 1, !tbaa !15
  %146 = load i32, ptr @test_count, align 4, !tbaa !5
  %147 = add nsw i32 %146, 1
  store i32 %147, ptr @test_count, align 4, !tbaa !5
  %148 = load i16, ptr @s2n_cert_authorities_extension, align 8, !tbaa !16
  %149 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %148, ptr noundef nonnull %4) #11
  %150 = icmp eq i32 %149, -1
  br i1 %150, label %151, label %175

151:                                              ; preds = %144
  %152 = tail call ptr @__errno_location() #12
  %153 = load i32, ptr %152, align 4, !tbaa !5
  %154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %155 = call i32 @s2n_print_stacktrace(ptr noundef %154) #11
  %156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %157 = trunc nuw i8 %156 to i1
  br i1 %157, label %158, label %162

158:                                              ; preds = %151
  %159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %160 = call i32 @fileno(ptr noundef %159) #11
  %161 = call i32 @isatty(i32 noundef %160) #11
  %.not372 = icmp eq i32 %161, 0
  br i1 %.not372, label %162, label %163

162:                                              ; preds = %158, %151
  br label %163

163:                                              ; preds = %158, %162
  %.str.5.sink421 = phi ptr [ @.str.5, %162 ], [ @.str.2, %158 ]
  store i32 %153, ptr %152, align 4, !tbaa !5
  %164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %165 = load i32, ptr @test_count, align 4, !tbaa !5
  %166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %167 = load i32, ptr %166, align 4, !tbaa !5
  %168 = call ptr @s2n_strerror(i32 noundef %167, ptr noundef nonnull @.str.4) #11
  %169 = load i32, ptr %166, align 4, !tbaa !5
  %170 = call ptr @s2n_strerror_debug(i32 noundef %169, ptr noundef nonnull @.str.4) #11
  %171 = load i32, ptr %152, align 4, !tbaa !5
  %172 = call ptr @strerror(i32 noundef %171) #11
  %173 = load i32, ptr %152, align 4, !tbaa !5
  %174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %164, ptr noundef nonnull %.str.5.sink421, i32 noundef %165, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 38, ptr noundef %168, ptr noundef %170, ptr noundef %172, i32 noundef %173) #13
  call void @exit(i32 noundef 1) #14
  unreachable

175:                                              ; preds = %144
  %176 = load i8, ptr %4, align 1, !tbaa !15
  %177 = call zeroext i1 @s2n_libcrypto_is_awslc() #11
  br i1 %177, label %178, label %206

178:                                              ; preds = %175
  %179 = load i32, ptr @test_count, align 4, !tbaa !5
  %180 = add nsw i32 %179, 1
  store i32 %180, ptr @test_count, align 4, !tbaa !5
  %181 = call zeroext i1 (...) @s2n_cert_authorities_supported_from_trust_store() #11
  br i1 %181, label %206, label %182

182:                                              ; preds = %178
  %183 = tail call ptr @__errno_location() #12
  %184 = load i32, ptr %183, align 4, !tbaa !5
  %185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %186 = call i32 @s2n_print_stacktrace(ptr noundef %185) #11
  %187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %188 = trunc nuw i8 %187 to i1
  br i1 %188, label %189, label %193

189:                                              ; preds = %182
  %190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %191 = call i32 @fileno(ptr noundef %190) #11
  %192 = call i32 @isatty(i32 noundef %191) #11
  %.not = icmp eq i32 %192, 0
  br i1 %.not, label %193, label %194

193:                                              ; preds = %189, %182
  br label %194

194:                                              ; preds = %189, %193
  %.str.5.sink432 = phi ptr [ @.str.5, %193 ], [ @.str.2, %189 ]
  store i32 %184, ptr %183, align 4, !tbaa !5
  %195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %196 = load i32, ptr @test_count, align 4, !tbaa !5
  %197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %198 = load i32, ptr %197, align 4, !tbaa !5
  %199 = call ptr @s2n_strerror(i32 noundef %198, ptr noundef nonnull @.str.4) #11
  %200 = load i32, ptr %197, align 4, !tbaa !5
  %201 = call ptr @s2n_strerror_debug(i32 noundef %200, ptr noundef nonnull @.str.4) #11
  %202 = load i32, ptr %183, align 4, !tbaa !5
  %203 = call ptr @strerror(i32 noundef %202) #11
  %204 = load i32, ptr %183, align 4, !tbaa !5
  %205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %195, ptr noundef nonnull %.str.5.sink432, i32 noundef %196, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 43, ptr noundef %199, ptr noundef %201, ptr noundef %203, i32 noundef %204) #13
  call void @exit(i32 noundef 1) #14
  unreachable

206:                                              ; preds = %175, %178
  %207 = load i32, ptr @test_count, align 4, !tbaa !5
  %208 = add nsw i32 %207, 1
  store i32 %208, ptr @test_count, align 4, !tbaa !5
  %209 = call i32 @s2n_config_set_cert_authorities_from_trust_store(ptr noundef null) #11
  %210 = icmp eq i32 %209, -1
  br i1 %210, label %235, label %211

211:                                              ; preds = %206
  %212 = tail call ptr @__errno_location() #12
  %213 = load i32, ptr %212, align 4, !tbaa !5
  %214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %215 = call i32 @s2n_print_stacktrace(ptr noundef %214) #11
  %216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %217 = trunc nuw i8 %216 to i1
  br i1 %217, label %218, label %222

218:                                              ; preds = %211
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = call i32 @fileno(ptr noundef %219) #11
  %221 = call i32 @isatty(i32 noundef %220) #11
  %.not264 = icmp eq i32 %221, 0
  br i1 %.not264, label %222, label %223

222:                                              ; preds = %218, %211
  br label %223

223:                                              ; preds = %218, %222
  %.str.5.sink443 = phi ptr [ @.str.5, %222 ], [ @.str.2, %218 ]
  store i32 %213, ptr %212, align 4, !tbaa !5
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = load i32, ptr @test_count, align 4, !tbaa !5
  %226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = call ptr @s2n_strerror(i32 noundef %227, ptr noundef nonnull @.str.4) #11
  %229 = load i32, ptr %226, align 4, !tbaa !5
  %230 = call ptr @s2n_strerror_debug(i32 noundef %229, ptr noundef nonnull @.str.4) #11
  %231 = load i32, ptr %212, align 4, !tbaa !5
  %232 = call ptr @strerror(i32 noundef %231) #11
  %233 = load i32, ptr %212, align 4, !tbaa !5
  %234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %224, ptr noundef nonnull %.str.5.sink443, i32 noundef %225, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 52, ptr noundef %228, ptr noundef %230, ptr noundef %232, i32 noundef %233) #13
  call void @exit(i32 noundef 1) #14
  unreachable

235:                                              ; preds = %206
  %236 = load i32, ptr @test_count, align 4, !tbaa !5
  %237 = add nsw i32 %236, 1
  store i32 %237, ptr @test_count, align 4, !tbaa !5
  %238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = icmp eq i32 %239, 402653193
  br i1 %240, label %264, label %241

241:                                              ; preds = %235
  %242 = tail call ptr @__errno_location() #12
  %243 = load i32, ptr %242, align 4, !tbaa !5
  %244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %245 = call i32 @s2n_print_stacktrace(ptr noundef %244) #11
  %246 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %247 = trunc nuw i8 %246 to i1
  br i1 %247, label %248, label %252

248:                                              ; preds = %241
  %249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %250 = call i32 @fileno(ptr noundef %249) #11
  %251 = call i32 @isatty(i32 noundef %250) #11
  %.not265 = icmp eq i32 %251, 0
  br i1 %.not265, label %252, label %253

252:                                              ; preds = %248, %241
  br label %253

253:                                              ; preds = %248, %252
  %.str.5.sink454 = phi ptr [ @.str.5, %252 ], [ @.str.2, %248 ]
  store i32 %243, ptr %242, align 4, !tbaa !5
  %254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %255 = load i32, ptr @test_count, align 4, !tbaa !5
  %256 = load i32, ptr %238, align 4, !tbaa !5
  %257 = call ptr @s2n_strerror(i32 noundef %256, ptr noundef nonnull @.str.4) #11
  %258 = load i32, ptr %238, align 4, !tbaa !5
  %259 = call ptr @s2n_strerror_debug(i32 noundef %258, ptr noundef nonnull @.str.4) #11
  %260 = load i32, ptr %242, align 4, !tbaa !5
  %261 = call ptr @strerror(i32 noundef %260) #11
  %262 = load i32, ptr %242, align 4, !tbaa !5
  %263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %254, ptr noundef nonnull %.str.5.sink454, i32 noundef %255, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 52, ptr noundef %257, ptr noundef %259, ptr noundef %261, i32 noundef %262) #13
  call void @exit(i32 noundef 1) #14
  unreachable

264:                                              ; preds = %235
  %265 = add nsw i32 %236, 2
  store i32 %265, ptr @test_count, align 4, !tbaa !5
  %266 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #11
  %267 = icmp eq ptr %266, null
  br i1 %267, label %268, label %291

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

275:                                              ; preds = %268
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = call i32 @fileno(ptr noundef %276) #11
  %278 = call i32 @isatty(i32 noundef %277) #11
  %.not371 = icmp eq i32 %278, 0
  br i1 %.not371, label %279, label %280

279:                                              ; preds = %275, %268
  br label %280

280:                                              ; preds = %275, %279
  %.str.5.sink463 = phi ptr [ @.str.5, %279 ], [ @.str.2, %275 ]
  store i32 %270, ptr %269, align 4, !tbaa !5
  %281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %282 = load i32, ptr @test_count, align 4, !tbaa !5
  %283 = load i32, ptr %238, align 4, !tbaa !5
  %284 = call ptr @s2n_strerror(i32 noundef %283, ptr noundef nonnull @.str.4) #11
  %285 = load i32, ptr %238, align 4, !tbaa !5
  %286 = call ptr @s2n_strerror_debug(i32 noundef %285, ptr noundef nonnull @.str.4) #11
  %287 = load i32, ptr %269, align 4, !tbaa !5
  %288 = call ptr @strerror(i32 noundef %287) #11
  %289 = load i32, ptr %269, align 4, !tbaa !5
  %290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %281, ptr noundef nonnull %.str.5.sink463, i32 noundef %282, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 52, ptr noundef %284, ptr noundef %286, ptr noundef %288, i32 noundef %289) #13
  call void @exit(i32 noundef 1) #14
  unreachable

291:                                              ; preds = %264
  store i32 0, ptr %238, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  %292 = tail call ptr @__errno_location() #12
  store i32 0, ptr %292, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #11
  %293 = call ptr @s2n_config_new_minimal() #11
  store ptr %293, ptr %5, align 8, !tbaa !9
  %294 = load i32, ptr @test_count, align 4, !tbaa !5
  %295 = add nsw i32 %294, 1
  store i32 %295, ptr @test_count, align 4, !tbaa !5
  %296 = icmp eq ptr %293, null
  br i1 %296, label %297, label %319

297:                                              ; preds = %291
  %298 = load i32, ptr %292, align 4, !tbaa !5
  %299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %300 = call i32 @s2n_print_stacktrace(ptr noundef %299) #11
  %301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %302 = trunc nuw i8 %301 to i1
  br i1 %302, label %303, label %307

303:                                              ; preds = %297
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = call i32 @fileno(ptr noundef %304) #11
  %306 = call i32 @isatty(i32 noundef %305) #11
  %.not370 = icmp eq i32 %306, 0
  br i1 %.not370, label %307, label %308

307:                                              ; preds = %303, %297
  br label %308

308:                                              ; preds = %303, %307
  %.str.5.sink472 = phi ptr [ @.str.5, %307 ], [ @.str.2, %303 ]
  store i32 %298, ptr %292, align 4, !tbaa !5
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = load i32, ptr @test_count, align 4, !tbaa !5
  %311 = load i32, ptr %238, align 4, !tbaa !5
  %312 = call ptr @s2n_strerror(i32 noundef %311, ptr noundef nonnull @.str.4) #11
  %313 = load i32, ptr %238, align 4, !tbaa !5
  %314 = call ptr @s2n_strerror_debug(i32 noundef %313, ptr noundef nonnull @.str.4) #11
  %315 = load i32, ptr %292, align 4, !tbaa !5
  %316 = call ptr @strerror(i32 noundef %315) #11
  %317 = load i32, ptr %292, align 4, !tbaa !5
  %318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %309, ptr noundef nonnull %.str.5.sink472, i32 noundef %310, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %312, ptr noundef %314, ptr noundef %316, i32 noundef %317) #13
  call void @exit(i32 noundef 1) #14
  unreachable

319:                                              ; preds = %291
  %320 = add nsw i32 %294, 2
  store i32 %320, ptr @test_count, align 4, !tbaa !5
  %321 = call i32 @s2n_config_set_verification_ca_location(ptr noundef nonnull %293, ptr noundef nonnull @.str.17, ptr noundef null) #11
  %322 = icmp eq i32 %321, -1
  br i1 %322, label %323, label %345

323:                                              ; preds = %319
  %324 = load i32, ptr %292, align 4, !tbaa !5
  %325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %326 = call i32 @s2n_print_stacktrace(ptr noundef %325) #11
  %327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %328 = trunc nuw i8 %327 to i1
  br i1 %328, label %329, label %333

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

333:                                              ; preds = %329, %323
  br label %334

334:                                              ; preds = %329, %333
  %.str.5.sink481 = phi ptr [ @.str.5, %333 ], [ @.str.2, %329 ]
  store i32 %324, ptr %292, align 4, !tbaa !5
  %335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %336 = load i32, ptr @test_count, align 4, !tbaa !5
  %337 = load i32, ptr %238, align 4, !tbaa !5
  %338 = call ptr @s2n_strerror(i32 noundef %337, ptr noundef nonnull @.str.4) #11
  %339 = load i32, ptr %238, align 4, !tbaa !5
  %340 = call ptr @s2n_strerror_debug(i32 noundef %339, ptr noundef nonnull @.str.4) #11
  %341 = load i32, ptr %292, align 4, !tbaa !5
  %342 = call ptr @strerror(i32 noundef %341) #11
  %343 = load i32, ptr %292, align 4, !tbaa !5
  %344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %335, ptr noundef nonnull %.str.5.sink481, i32 noundef %336, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %338, ptr noundef %340, ptr noundef %342, i32 noundef %343) #13
  call void @exit(i32 noundef 1) #14
  unreachable

345:                                              ; preds = %319
  %346 = call zeroext i1 (...) @s2n_cert_authorities_supported_from_trust_store() #11
  %347 = load i32, ptr @test_count, align 4, !tbaa !5
  %348 = add nsw i32 %347, 1
  store i32 %348, ptr @test_count, align 4, !tbaa !5
  %349 = load ptr, ptr %5, align 8, !tbaa !9
  %350 = call i32 @s2n_config_set_cert_authorities_from_trust_store(ptr noundef %349) #11
  %351 = icmp eq i32 %350, -1
  br i1 %346, label %352, label %404

352:                                              ; preds = %345
  br i1 %351, label %353, label %375

353:                                              ; preds = %352
  %354 = load i32, ptr %292, align 4, !tbaa !5
  %355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %356 = call i32 @s2n_print_stacktrace(ptr noundef %355) #11
  %357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %358 = trunc nuw i8 %357 to i1
  br i1 %358, label %359, label %363

359:                                              ; preds = %353
  %360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %361 = call i32 @fileno(ptr noundef %360) #11
  %362 = call i32 @isatty(i32 noundef %361) #11
  %.not368 = icmp eq i32 %362, 0
  br i1 %.not368, label %363, label %364

363:                                              ; preds = %359, %353
  br label %364

364:                                              ; preds = %359, %363
  %.str.5.sink490 = phi ptr [ @.str.5, %363 ], [ @.str.2, %359 ]
  store i32 %354, ptr %292, align 4, !tbaa !5
  %365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %366 = load i32, ptr @test_count, align 4, !tbaa !5
  %367 = load i32, ptr %238, align 4, !tbaa !5
  %368 = call ptr @s2n_strerror(i32 noundef %367, ptr noundef nonnull @.str.4) #11
  %369 = load i32, ptr %238, align 4, !tbaa !5
  %370 = call ptr @s2n_strerror_debug(i32 noundef %369, ptr noundef nonnull @.str.4) #11
  %371 = load i32, ptr %292, align 4, !tbaa !5
  %372 = call ptr @strerror(i32 noundef %371) #11
  %373 = load i32, ptr %292, align 4, !tbaa !5
  %374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %365, ptr noundef nonnull %.str.5.sink490, i32 noundef %366, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 64, ptr noundef %368, ptr noundef %370, ptr noundef %372, i32 noundef %373) #13
  call void @exit(i32 noundef 1) #14
  unreachable

375:                                              ; preds = %352
  %376 = load i32, ptr @test_count, align 4, !tbaa !5
  %377 = add nsw i32 %376, 1
  store i32 %377, ptr @test_count, align 4, !tbaa !5
  %378 = load ptr, ptr %5, align 8, !tbaa !9
  %379 = getelementptr inbounds i8, ptr %378, i64 456
  %380 = load i32, ptr %379, align 8, !tbaa !19
  %381 = icmp eq i32 %380, 0
  br i1 %381, label %382, label %509

382:                                              ; preds = %375
  %383 = load i32, ptr %292, align 4, !tbaa !5
  %384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %385 = call i32 @s2n_print_stacktrace(ptr noundef %384) #11
  %386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %387 = trunc nuw i8 %386 to i1
  br i1 %387, label %388, label %392

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

392:                                              ; preds = %388, %382
  br label %393

393:                                              ; preds = %388, %392
  %.str.5.sink499 = phi ptr [ @.str.5, %392 ], [ @.str.2, %388 ]
  store i32 %383, ptr %292, align 4, !tbaa !5
  %394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %395 = load i32, ptr @test_count, align 4, !tbaa !5
  %396 = load i32, ptr %238, align 4, !tbaa !5
  %397 = call ptr @s2n_strerror(i32 noundef %396, ptr noundef nonnull @.str.4) #11
  %398 = load i32, ptr %238, align 4, !tbaa !5
  %399 = call ptr @s2n_strerror_debug(i32 noundef %398, ptr noundef nonnull @.str.4) #11
  %400 = load i32, ptr %292, align 4, !tbaa !5
  %401 = call ptr @strerror(i32 noundef %400) #11
  %402 = load i32, ptr %292, align 4, !tbaa !5
  %403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %394, ptr noundef nonnull %.str.5.sink499, i32 noundef %395, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %397, ptr noundef %399, ptr noundef %401, i32 noundef %402) #13
  call void @exit(i32 noundef 1) #14
  unreachable

404:                                              ; preds = %345
  br i1 %351, label %427, label %405

405:                                              ; preds = %404
  %406 = load i32, ptr %292, align 4, !tbaa !5
  %407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %408 = call i32 @s2n_print_stacktrace(ptr noundef %407) #11
  %409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %410 = trunc nuw i8 %409 to i1
  br i1 %410, label %411, label %415

411:                                              ; preds = %405
  %412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %413 = call i32 @fileno(ptr noundef %412) #11
  %414 = call i32 @isatty(i32 noundef %413) #11
  %.not266 = icmp eq i32 %414, 0
  br i1 %.not266, label %415, label %416

415:                                              ; preds = %411, %405
  br label %416

416:                                              ; preds = %411, %415
  %.str.5.sink508 = phi ptr [ @.str.5, %415 ], [ @.str.2, %411 ]
  store i32 %406, ptr %292, align 4, !tbaa !5
  %417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %418 = load i32, ptr @test_count, align 4, !tbaa !5
  %419 = load i32, ptr %238, align 4, !tbaa !5
  %420 = call ptr @s2n_strerror(i32 noundef %419, ptr noundef nonnull @.str.4) #11
  %421 = load i32, ptr %238, align 4, !tbaa !5
  %422 = call ptr @s2n_strerror_debug(i32 noundef %421, ptr noundef nonnull @.str.4) #11
  %423 = load i32, ptr %292, align 4, !tbaa !5
  %424 = call ptr @strerror(i32 noundef %423) #11
  %425 = load i32, ptr %292, align 4, !tbaa !5
  %426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %417, ptr noundef nonnull %.str.5.sink508, i32 noundef %418, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %420, ptr noundef %422, ptr noundef %424, i32 noundef %425) #13
  call void @exit(i32 noundef 1) #14
  unreachable

427:                                              ; preds = %404
  %428 = load i32, ptr @test_count, align 4, !tbaa !5
  %429 = add nsw i32 %428, 1
  store i32 %429, ptr @test_count, align 4, !tbaa !5
  %430 = load i32, ptr %238, align 4, !tbaa !5
  %431 = icmp eq i32 %430, 469762136
  br i1 %431, label %454, label %432

432:                                              ; preds = %427
  %433 = load i32, ptr %292, align 4, !tbaa !5
  %434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %435 = call i32 @s2n_print_stacktrace(ptr noundef %434) #11
  %436 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %437 = trunc nuw i8 %436 to i1
  br i1 %437, label %438, label %442

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

442:                                              ; preds = %438, %432
  br label %443

443:                                              ; preds = %438, %442
  %.str.5.sink517 = phi ptr [ @.str.5, %442 ], [ @.str.2, %438 ]
  store i32 %433, ptr %292, align 4, !tbaa !5
  %444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %445 = load i32, ptr @test_count, align 4, !tbaa !5
  %446 = load i32, ptr %238, align 4, !tbaa !5
  %447 = call ptr @s2n_strerror(i32 noundef %446, ptr noundef nonnull @.str.4) #11
  %448 = load i32, ptr %238, align 4, !tbaa !5
  %449 = call ptr @s2n_strerror_debug(i32 noundef %448, ptr noundef nonnull @.str.4) #11
  %450 = load i32, ptr %292, align 4, !tbaa !5
  %451 = call ptr @strerror(i32 noundef %450) #11
  %452 = load i32, ptr %292, align 4, !tbaa !5
  %453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %444, ptr noundef nonnull %.str.5.sink517, i32 noundef %445, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %447, ptr noundef %449, ptr noundef %451, i32 noundef %452) #13
  call void @exit(i32 noundef 1) #14
  unreachable

454:                                              ; preds = %427
  %455 = add nsw i32 %428, 2
  store i32 %455, ptr @test_count, align 4, !tbaa !5
  %456 = call ptr @s2n_strerror_debug(i32 noundef 469762136, ptr noundef nonnull @.str.4) #11
  %457 = icmp eq ptr %456, null
  br i1 %457, label %458, label %480

458:                                              ; preds = %454
  %459 = load i32, ptr %292, align 4, !tbaa !5
  %460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %461 = call i32 @s2n_print_stacktrace(ptr noundef %460) #11
  %462 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %463 = trunc nuw i8 %462 to i1
  br i1 %463, label %464, label %468

464:                                              ; preds = %458
  %465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %466 = call i32 @fileno(ptr noundef %465) #11
  %467 = call i32 @isatty(i32 noundef %466) #11
  %.not269 = icmp eq i32 %467, 0
  br i1 %.not269, label %468, label %469

468:                                              ; preds = %464, %458
  br label %469

469:                                              ; preds = %464, %468
  %.str.5.sink526 = phi ptr [ @.str.5, %468 ], [ @.str.2, %464 ]
  store i32 %459, ptr %292, align 4, !tbaa !5
  %470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %471 = load i32, ptr @test_count, align 4, !tbaa !5
  %472 = load i32, ptr %238, align 4, !tbaa !5
  %473 = call ptr @s2n_strerror(i32 noundef %472, ptr noundef nonnull @.str.4) #11
  %474 = load i32, ptr %238, align 4, !tbaa !5
  %475 = call ptr @s2n_strerror_debug(i32 noundef %474, ptr noundef nonnull @.str.4) #11
  %476 = load i32, ptr %292, align 4, !tbaa !5
  %477 = call ptr @strerror(i32 noundef %476) #11
  %478 = load i32, ptr %292, align 4, !tbaa !5
  %479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %470, ptr noundef nonnull %.str.5.sink526, i32 noundef %471, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %473, ptr noundef %475, ptr noundef %477, i32 noundef %478) #13
  call void @exit(i32 noundef 1) #14
  unreachable

480:                                              ; preds = %454
  store i32 0, ptr %238, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %292, align 4, !tbaa !5
  %481 = load i32, ptr @test_count, align 4, !tbaa !5
  %482 = add nsw i32 %481, 1
  store i32 %482, ptr @test_count, align 4, !tbaa !5
  %483 = load ptr, ptr %5, align 8, !tbaa !9
  %484 = getelementptr inbounds i8, ptr %483, i64 456
  %485 = load i32, ptr %484, align 8, !tbaa !19
  %486 = icmp eq i32 %485, 0
  br i1 %486, label %509, label %487

487:                                              ; preds = %480
  %488 = load i32, ptr %292, align 4, !tbaa !5
  %489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %490 = call i32 @s2n_print_stacktrace(ptr noundef %489) #11
  %491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %492 = trunc nuw i8 %491 to i1
  br i1 %492, label %493, label %497

493:                                              ; preds = %487
  %494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %495 = call i32 @fileno(ptr noundef %494) #11
  %496 = call i32 @isatty(i32 noundef %495) #11
  %.not268 = icmp eq i32 %496, 0
  br i1 %.not268, label %497, label %498

497:                                              ; preds = %493, %487
  br label %498

498:                                              ; preds = %493, %497
  %.str.5.sink535 = phi ptr [ @.str.5, %497 ], [ @.str.2, %493 ]
  store i32 %488, ptr %292, align 4, !tbaa !5
  %499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %500 = load i32, ptr @test_count, align 4, !tbaa !5
  %501 = load i32, ptr %238, align 4, !tbaa !5
  %502 = call ptr @s2n_strerror(i32 noundef %501, ptr noundef nonnull @.str.4) #11
  %503 = load i32, ptr %238, align 4, !tbaa !5
  %504 = call ptr @s2n_strerror_debug(i32 noundef %503, ptr noundef nonnull @.str.4) #11
  %505 = load i32, ptr %292, align 4, !tbaa !5
  %506 = call ptr @strerror(i32 noundef %505) #11
  %507 = load i32, ptr %292, align 4, !tbaa !5
  %508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %499, ptr noundef nonnull %.str.5.sink535, i32 noundef %500, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %502, ptr noundef %504, ptr noundef %506, i32 noundef %507) #13
  call void @exit(i32 noundef 1) #14
  unreachable

509:                                              ; preds = %480, %375
  %510 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #11
  %511 = call ptr @s2n_config_new() #11
  store ptr %511, ptr %6, align 8, !tbaa !9
  %512 = load i32, ptr @test_count, align 4, !tbaa !5
  %513 = add nsw i32 %512, 1
  store i32 %513, ptr @test_count, align 4, !tbaa !5
  %514 = icmp eq ptr %511, null
  br i1 %514, label %515, label %537

515:                                              ; preds = %509
  %516 = load i32, ptr %292, align 4, !tbaa !5
  %517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %518 = call i32 @s2n_print_stacktrace(ptr noundef %517) #11
  %519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %520 = trunc nuw i8 %519 to i1
  br i1 %520, label %521, label %525

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

525:                                              ; preds = %521, %515
  br label %526

526:                                              ; preds = %521, %525
  %.str.5.sink544 = phi ptr [ @.str.5, %525 ], [ @.str.2, %521 ]
  store i32 %516, ptr %292, align 4, !tbaa !5
  %527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %528 = load i32, ptr @test_count, align 4, !tbaa !5
  %529 = load i32, ptr %238, align 4, !tbaa !5
  %530 = call ptr @s2n_strerror(i32 noundef %529, ptr noundef nonnull @.str.4) #11
  %531 = load i32, ptr %238, align 4, !tbaa !5
  %532 = call ptr @s2n_strerror_debug(i32 noundef %531, ptr noundef nonnull @.str.4) #11
  %533 = load i32, ptr %292, align 4, !tbaa !5
  %534 = call ptr @strerror(i32 noundef %533) #11
  %535 = load i32, ptr %292, align 4, !tbaa !5
  %536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %527, ptr noundef nonnull %.str.5.sink544, i32 noundef %528, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %530, ptr noundef %532, ptr noundef %534, i32 noundef %535) #13
  call void @exit(i32 noundef 1) #14
  unreachable

537:                                              ; preds = %509
  %538 = add nsw i32 %512, 2
  store i32 %538, ptr @test_count, align 4, !tbaa !5
  %539 = call i32 @s2n_config_set_cert_authorities_from_trust_store(ptr noundef nonnull %511) #11
  %540 = icmp eq i32 %539, -1
  br i1 %540, label %563, label %541

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

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

551:                                              ; preds = %547, %541
  br label %552

552:                                              ; preds = %547, %551
  %.str.5.sink553 = phi ptr [ @.str.5, %551 ], [ @.str.2, %547 ]
  store i32 %542, ptr %292, align 4, !tbaa !5
  %553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %554 = load i32, ptr @test_count, align 4, !tbaa !5
  %555 = load i32, ptr %238, align 4, !tbaa !5
  %556 = call ptr @s2n_strerror(i32 noundef %555, ptr noundef nonnull @.str.4) #11
  %557 = load i32, ptr %238, align 4, !tbaa !5
  %558 = call ptr @s2n_strerror_debug(i32 noundef %557, ptr noundef nonnull @.str.4) #11
  %559 = load i32, ptr %292, align 4, !tbaa !5
  %560 = call ptr @strerror(i32 noundef %559) #11
  %561 = load i32, ptr %292, align 4, !tbaa !5
  %562 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %553, ptr noundef nonnull %.str.5.sink553, i32 noundef %554, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %556, ptr noundef %558, ptr noundef %560, i32 noundef %561) #13
  call void @exit(i32 noundef 1) #14
  unreachable

563:                                              ; preds = %537
  %564 = load i32, ptr @test_count, align 4, !tbaa !5
  %565 = add nsw i32 %564, 1
  store i32 %565, ptr @test_count, align 4, !tbaa !5
  %566 = load i32, ptr %238, align 4, !tbaa !5
  %567 = icmp eq i32 %566, 469762112
  br i1 %567, label %590, label %568

568:                                              ; preds = %563
  %569 = load i32, ptr %292, align 4, !tbaa !5
  %570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %571 = call i32 @s2n_print_stacktrace(ptr noundef %570) #11
  %572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %573 = trunc nuw i8 %572 to i1
  br i1 %573, label %574, label %578

574:                                              ; preds = %568
  %575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %576 = call i32 @fileno(ptr noundef %575) #11
  %577 = call i32 @isatty(i32 noundef %576) #11
  %.not271 = icmp eq i32 %577, 0
  br i1 %.not271, label %578, label %579

578:                                              ; preds = %574, %568
  br label %579

579:                                              ; preds = %574, %578
  %.str.5.sink562 = phi ptr [ @.str.5, %578 ], [ @.str.2, %574 ]
  store i32 %569, ptr %292, align 4, !tbaa !5
  %580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %581 = load i32, ptr @test_count, align 4, !tbaa !5
  %582 = load i32, ptr %238, align 4, !tbaa !5
  %583 = call ptr @s2n_strerror(i32 noundef %582, ptr noundef nonnull @.str.4) #11
  %584 = load i32, ptr %238, align 4, !tbaa !5
  %585 = call ptr @s2n_strerror_debug(i32 noundef %584, ptr noundef nonnull @.str.4) #11
  %586 = load i32, ptr %292, align 4, !tbaa !5
  %587 = call ptr @strerror(i32 noundef %586) #11
  %588 = load i32, ptr %292, align 4, !tbaa !5
  %589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %580, ptr noundef nonnull %.str.5.sink562, i32 noundef %581, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %583, ptr noundef %585, ptr noundef %587, i32 noundef %588) #13
  call void @exit(i32 noundef 1) #14
  unreachable

590:                                              ; preds = %563
  %591 = add nsw i32 %564, 2
  store i32 %591, ptr @test_count, align 4, !tbaa !5
  %592 = call ptr @s2n_strerror_debug(i32 noundef 469762112, ptr noundef nonnull @.str.4) #11
  %593 = icmp eq ptr %592, null
  br i1 %593, label %594, label %616

594:                                              ; preds = %590
  %595 = load i32, ptr %292, align 4, !tbaa !5
  %596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %597 = call i32 @s2n_print_stacktrace(ptr noundef %596) #11
  %598 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %599 = trunc nuw i8 %598 to i1
  br i1 %599, label %600, label %604

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

604:                                              ; preds = %600, %594
  br label %605

605:                                              ; preds = %600, %604
  %.str.5.sink571 = phi ptr [ @.str.5, %604 ], [ @.str.2, %600 ]
  store i32 %595, ptr %292, align 4, !tbaa !5
  %606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %607 = load i32, ptr @test_count, align 4, !tbaa !5
  %608 = load i32, ptr %238, align 4, !tbaa !5
  %609 = call ptr @s2n_strerror(i32 noundef %608, ptr noundef nonnull @.str.4) #11
  %610 = load i32, ptr %238, align 4, !tbaa !5
  %611 = call ptr @s2n_strerror_debug(i32 noundef %610, ptr noundef nonnull @.str.4) #11
  %612 = load i32, ptr %292, align 4, !tbaa !5
  %613 = call ptr @strerror(i32 noundef %612) #11
  %614 = load i32, ptr %292, align 4, !tbaa !5
  %615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %606, ptr noundef nonnull %.str.5.sink571, i32 noundef %607, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %609, ptr noundef %611, ptr noundef %613, i32 noundef %614) #13
  call void @exit(i32 noundef 1) #14
  unreachable

616:                                              ; preds = %590
  store i32 0, ptr %238, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %292, align 4, !tbaa !5
  %617 = load i32, ptr @test_count, align 4, !tbaa !5
  %618 = add nsw i32 %617, 1
  store i32 %618, ptr @test_count, align 4, !tbaa !5
  %619 = load ptr, ptr %6, align 8, !tbaa !9
  %620 = getelementptr inbounds i8, ptr %619, i64 456
  %621 = load i32, ptr %620, align 8, !tbaa !19
  %622 = icmp eq i32 %621, 0
  br i1 %622, label %645, label %623

623:                                              ; preds = %616
  %624 = load i32, ptr %292, align 4, !tbaa !5
  %625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %626 = call i32 @s2n_print_stacktrace(ptr noundef %625) #11
  %627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %628 = trunc nuw i8 %627 to i1
  br i1 %628, label %629, label %633

629:                                              ; preds = %623
  %630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %631 = call i32 @fileno(ptr noundef %630) #11
  %632 = call i32 @isatty(i32 noundef %631) #11
  %.not272 = icmp eq i32 %632, 0
  br i1 %.not272, label %633, label %634

633:                                              ; preds = %629, %623
  br label %634

634:                                              ; preds = %629, %633
  %.str.5.sink580 = phi ptr [ @.str.5, %633 ], [ @.str.2, %629 ]
  store i32 %624, ptr %292, align 4, !tbaa !5
  %635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %636 = load i32, ptr @test_count, align 4, !tbaa !5
  %637 = load i32, ptr %238, align 4, !tbaa !5
  %638 = call ptr @s2n_strerror(i32 noundef %637, ptr noundef nonnull @.str.4) #11
  %639 = load i32, ptr %238, align 4, !tbaa !5
  %640 = call ptr @s2n_strerror_debug(i32 noundef %639, ptr noundef nonnull @.str.4) #11
  %641 = load i32, ptr %292, align 4, !tbaa !5
  %642 = call ptr @strerror(i32 noundef %641) #11
  %643 = load i32, ptr %292, align 4, !tbaa !5
  %644 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %635, ptr noundef nonnull %.str.5.sink580, i32 noundef %636, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %638, ptr noundef %640, ptr noundef %642, i32 noundef %643) #13
  call void @exit(i32 noundef 1) #14
  unreachable

645:                                              ; preds = %616
  %646 = add nsw i32 %617, 2
  store i32 %646, ptr @test_count, align 4, !tbaa !5
  %647 = call i32 @s2n_config_wipe_trust_store(ptr noundef nonnull %619) #11
  %648 = icmp eq i32 %647, -1
  br i1 %648, label %649, label %671

649:                                              ; preds = %645
  %650 = load i32, ptr %292, align 4, !tbaa !5
  %651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %652 = call i32 @s2n_print_stacktrace(ptr noundef %651) #11
  %653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %654 = trunc nuw i8 %653 to i1
  br i1 %654, label %655, label %659

655:                                              ; preds = %649
  %656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %657 = call i32 @fileno(ptr noundef %656) #11
  %658 = call i32 @isatty(i32 noundef %657) #11
  %.not364 = icmp eq i32 %658, 0
  br i1 %.not364, label %659, label %660

659:                                              ; preds = %655, %649
  br label %660

660:                                              ; preds = %655, %659
  %.str.5.sink589 = phi ptr [ @.str.5, %659 ], [ @.str.2, %655 ]
  store i32 %650, ptr %292, align 4, !tbaa !5
  %661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %662 = load i32, ptr @test_count, align 4, !tbaa !5
  %663 = load i32, ptr %238, align 4, !tbaa !5
  %664 = call ptr @s2n_strerror(i32 noundef %663, ptr noundef nonnull @.str.4) #11
  %665 = load i32, ptr %238, align 4, !tbaa !5
  %666 = call ptr @s2n_strerror_debug(i32 noundef %665, ptr noundef nonnull @.str.4) #11
  %667 = load i32, ptr %292, align 4, !tbaa !5
  %668 = call ptr @strerror(i32 noundef %667) #11
  %669 = load i32, ptr %292, align 4, !tbaa !5
  %670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %661, ptr noundef nonnull %.str.5.sink589, i32 noundef %662, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 87, ptr noundef %664, ptr noundef %666, ptr noundef %668, i32 noundef %669) #13
  call void @exit(i32 noundef 1) #14
  unreachable

671:                                              ; preds = %645
  %672 = load i32, ptr @test_count, align 4, !tbaa !5
  %673 = add nsw i32 %672, 1
  store i32 %673, ptr @test_count, align 4, !tbaa !5
  %674 = load ptr, ptr %6, align 8, !tbaa !9
  %675 = call i32 @s2n_config_set_cert_authorities_from_trust_store(ptr noundef %674) #11
  %676 = icmp eq i32 %675, -1
  br i1 %676, label %677, label %699

677:                                              ; preds = %671
  %678 = load i32, ptr %292, align 4, !tbaa !5
  %679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %680 = call i32 @s2n_print_stacktrace(ptr noundef %679) #11
  %681 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %682 = trunc nuw i8 %681 to i1
  br i1 %682, label %683, label %687

683:                                              ; preds = %677
  %684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %685 = call i32 @fileno(ptr noundef %684) #11
  %686 = call i32 @isatty(i32 noundef %685) #11
  %.not363 = icmp eq i32 %686, 0
  br i1 %.not363, label %687, label %688

687:                                              ; preds = %683, %677
  br label %688

688:                                              ; preds = %683, %687
  %.str.5.sink598 = phi ptr [ @.str.5, %687 ], [ @.str.2, %683 ]
  store i32 %678, ptr %292, align 4, !tbaa !5
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = load i32, ptr @test_count, align 4, !tbaa !5
  %691 = load i32, ptr %238, align 4, !tbaa !5
  %692 = call ptr @s2n_strerror(i32 noundef %691, ptr noundef nonnull @.str.4) #11
  %693 = load i32, ptr %238, align 4, !tbaa !5
  %694 = call ptr @s2n_strerror_debug(i32 noundef %693, ptr noundef nonnull @.str.4) #11
  %695 = load i32, ptr %292, align 4, !tbaa !5
  %696 = call ptr @strerror(i32 noundef %695) #11
  %697 = load i32, ptr %292, align 4, !tbaa !5
  %698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %689, ptr noundef nonnull %.str.5.sink598, i32 noundef %690, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %692, ptr noundef %694, ptr noundef %696, i32 noundef %697) #13
  call void @exit(i32 noundef 1) #14
  unreachable

699:                                              ; preds = %671
  %700 = load i32, ptr @test_count, align 4, !tbaa !5
  %701 = add nsw i32 %700, 1
  store i32 %701, ptr @test_count, align 4, !tbaa !5
  %702 = load ptr, ptr %6, align 8, !tbaa !9
  %703 = getelementptr inbounds i8, ptr %702, i64 456
  %704 = load i32, ptr %703, align 8, !tbaa !19
  %705 = icmp eq i32 %704, 0
  br i1 %705, label %728, label %706

706:                                              ; preds = %699
  %707 = load i32, ptr %292, align 4, !tbaa !5
  %708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %709 = call i32 @s2n_print_stacktrace(ptr noundef %708) #11
  %710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %711 = trunc nuw i8 %710 to i1
  br i1 %711, label %712, label %716

712:                                              ; preds = %706
  %713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %714 = call i32 @fileno(ptr noundef %713) #11
  %715 = call i32 @isatty(i32 noundef %714) #11
  %.not273 = icmp eq i32 %715, 0
  br i1 %.not273, label %716, label %717

716:                                              ; preds = %712, %706
  br label %717

717:                                              ; preds = %712, %716
  %.str.5.sink607 = phi ptr [ @.str.5, %716 ], [ @.str.2, %712 ]
  store i32 %707, ptr %292, align 4, !tbaa !5
  %718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %719 = load i32, ptr @test_count, align 4, !tbaa !5
  %720 = load i32, ptr %238, align 4, !tbaa !5
  %721 = call ptr @s2n_strerror(i32 noundef %720, ptr noundef nonnull @.str.4) #11
  %722 = load i32, ptr %238, align 4, !tbaa !5
  %723 = call ptr @s2n_strerror_debug(i32 noundef %722, ptr noundef nonnull @.str.4) #11
  %724 = load i32, ptr %292, align 4, !tbaa !5
  %725 = call ptr @strerror(i32 noundef %724) #11
  %726 = load i32, ptr %292, align 4, !tbaa !5
  %727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %718, ptr noundef nonnull %.str.5.sink607, i32 noundef %719, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %721, ptr noundef %723, ptr noundef %725, i32 noundef %726) #13
  call void @exit(i32 noundef 1) #14
  unreachable

728:                                              ; preds = %699
  %729 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #11
  %730 = call ptr @s2n_config_new_minimal() #11
  store ptr %730, ptr %7, align 8, !tbaa !9
  %731 = load i32, ptr @test_count, align 4, !tbaa !5
  %732 = add nsw i32 %731, 1
  store i32 %732, ptr @test_count, align 4, !tbaa !5
  %733 = icmp eq ptr %730, null
  br i1 %733, label %734, label %756

734:                                              ; preds = %728
  %735 = load i32, ptr %292, align 4, !tbaa !5
  %736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %737 = call i32 @s2n_print_stacktrace(ptr noundef %736) #11
  %738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %739 = trunc nuw i8 %738 to i1
  br i1 %739, label %740, label %744

740:                                              ; preds = %734
  %741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %742 = call i32 @fileno(ptr noundef %741) #11
  %743 = call i32 @isatty(i32 noundef %742) #11
  %.not362 = icmp eq i32 %743, 0
  br i1 %.not362, label %744, label %745

744:                                              ; preds = %740, %734
  br label %745

745:                                              ; preds = %740, %744
  %.str.5.sink616 = phi ptr [ @.str.5, %744 ], [ @.str.2, %740 ]
  store i32 %735, ptr %292, align 4, !tbaa !5
  %746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %747 = load i32, ptr @test_count, align 4, !tbaa !5
  %748 = load i32, ptr %238, align 4, !tbaa !5
  %749 = call ptr @s2n_strerror(i32 noundef %748, ptr noundef nonnull @.str.4) #11
  %750 = load i32, ptr %238, align 4, !tbaa !5
  %751 = call ptr @s2n_strerror_debug(i32 noundef %750, ptr noundef nonnull @.str.4) #11
  %752 = load i32, ptr %292, align 4, !tbaa !5
  %753 = call ptr @strerror(i32 noundef %752) #11
  %754 = load i32, ptr %292, align 4, !tbaa !5
  %755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %746, ptr noundef nonnull %.str.5.sink616, i32 noundef %747, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %749, ptr noundef %751, ptr noundef %753, i32 noundef %754) #13
  call void @exit(i32 noundef 1) #14
  unreachable

756:                                              ; preds = %728
  %757 = add nsw i32 %731, 2
  store i32 %757, ptr @test_count, align 4, !tbaa !5
  %758 = call i32 @s2n_config_set_cert_authorities_from_trust_store(ptr noundef nonnull %730) #11
  %759 = icmp eq i32 %758, -1
  br i1 %759, label %760, label %782

760:                                              ; preds = %756
  %761 = load i32, ptr %292, align 4, !tbaa !5
  %762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %763 = call i32 @s2n_print_stacktrace(ptr noundef %762) #11
  %764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %765 = trunc nuw i8 %764 to i1
  br i1 %765, label %766, label %770

766:                                              ; preds = %760
  %767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %768 = call i32 @fileno(ptr noundef %767) #11
  %769 = call i32 @isatty(i32 noundef %768) #11
  %.not361 = icmp eq i32 %769, 0
  br i1 %.not361, label %770, label %771

770:                                              ; preds = %766, %760
  br label %771

771:                                              ; preds = %766, %770
  %.str.5.sink625 = phi ptr [ @.str.5, %770 ], [ @.str.2, %766 ]
  store i32 %761, ptr %292, align 4, !tbaa !5
  %772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %773 = load i32, ptr @test_count, align 4, !tbaa !5
  %774 = load i32, ptr %238, align 4, !tbaa !5
  %775 = call ptr @s2n_strerror(i32 noundef %774, ptr noundef nonnull @.str.4) #11
  %776 = load i32, ptr %238, align 4, !tbaa !5
  %777 = call ptr @s2n_strerror_debug(i32 noundef %776, ptr noundef nonnull @.str.4) #11
  %778 = load i32, ptr %292, align 4, !tbaa !5
  %779 = call ptr @strerror(i32 noundef %778) #11
  %780 = load i32, ptr %292, align 4, !tbaa !5
  %781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %772, ptr noundef nonnull %.str.5.sink625, i32 noundef %773, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %775, ptr noundef %777, ptr noundef %779, i32 noundef %780) #13
  call void @exit(i32 noundef 1) #14
  unreachable

782:                                              ; preds = %756
  %783 = load i32, ptr @test_count, align 4, !tbaa !5
  %784 = add nsw i32 %783, 1
  store i32 %784, ptr @test_count, align 4, !tbaa !5
  %785 = load ptr, ptr %7, align 8, !tbaa !9
  %786 = getelementptr inbounds i8, ptr %785, i64 456
  %787 = load i32, ptr %786, align 8, !tbaa !19
  %788 = icmp eq i32 %787, 0
  br i1 %788, label %811, label %789

789:                                              ; preds = %782
  %790 = load i32, ptr %292, align 4, !tbaa !5
  %791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %792 = call i32 @s2n_print_stacktrace(ptr noundef %791) #11
  %793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %794 = trunc nuw i8 %793 to i1
  br i1 %794, label %795, label %799

795:                                              ; preds = %789
  %796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %797 = call i32 @fileno(ptr noundef %796) #11
  %798 = call i32 @isatty(i32 noundef %797) #11
  %.not274 = icmp eq i32 %798, 0
  br i1 %.not274, label %799, label %800

799:                                              ; preds = %795, %789
  br label %800

800:                                              ; preds = %795, %799
  %.str.5.sink634 = phi ptr [ @.str.5, %799 ], [ @.str.2, %795 ]
  store i32 %790, ptr %292, align 4, !tbaa !5
  %801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %802 = load i32, ptr @test_count, align 4, !tbaa !5
  %803 = load i32, ptr %238, align 4, !tbaa !5
  %804 = call ptr @s2n_strerror(i32 noundef %803, ptr noundef nonnull @.str.4) #11
  %805 = load i32, ptr %238, align 4, !tbaa !5
  %806 = call ptr @s2n_strerror_debug(i32 noundef %805, ptr noundef nonnull @.str.4) #11
  %807 = load i32, ptr %292, align 4, !tbaa !5
  %808 = call ptr @strerror(i32 noundef %807) #11
  %809 = load i32, ptr %292, align 4, !tbaa !5
  %810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %801, ptr noundef nonnull %.str.5.sink634, i32 noundef %802, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %804, ptr noundef %806, ptr noundef %808, i32 noundef %809) #13
  call void @exit(i32 noundef 1) #14
  unreachable

811:                                              ; preds = %782
  %812 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #11
  %813 = call zeroext i1 (...) @s2n_cert_authorities_supported_from_trust_store() #11
  br i1 %813, label %814, label %979

814:                                              ; preds = %811
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #11
  %815 = call ptr @s2n_config_new_minimal() #11
  store ptr %815, ptr %8, align 8, !tbaa !9
  %816 = load i32, ptr @test_count, align 4, !tbaa !5
  %817 = add nsw i32 %816, 1
  store i32 %817, ptr @test_count, align 4, !tbaa !5
  %818 = icmp eq ptr %815, null
  br i1 %818, label %819, label %841

819:                                              ; preds = %814
  %820 = load i32, ptr %292, align 4, !tbaa !5
  %821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %822 = call i32 @s2n_print_stacktrace(ptr noundef %821) #11
  %823 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %824 = trunc nuw i8 %823 to i1
  br i1 %824, label %825, label %829

825:                                              ; preds = %819
  %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
  %.not360 = icmp eq i32 %828, 0
  br i1 %.not360, label %829, label %830

829:                                              ; preds = %825, %819
  br label %830

830:                                              ; preds = %825, %829
  %.str.5.sink643 = phi ptr [ @.str.5, %829 ], [ @.str.2, %825 ]
  store i32 %820, ptr %292, align 4, !tbaa !5
  %831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %832 = load i32, ptr @test_count, align 4, !tbaa !5
  %833 = load i32, ptr %238, align 4, !tbaa !5
  %834 = call ptr @s2n_strerror(i32 noundef %833, ptr noundef nonnull @.str.4) #11
  %835 = load i32, ptr %238, align 4, !tbaa !5
  %836 = call ptr @s2n_strerror_debug(i32 noundef %835, ptr noundef nonnull @.str.4) #11
  %837 = load i32, ptr %292, align 4, !tbaa !5
  %838 = call ptr @strerror(i32 noundef %837) #11
  %839 = load i32, ptr %292, align 4, !tbaa !5
  %840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %831, ptr noundef nonnull %.str.5.sink643, i32 noundef %832, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %834, ptr noundef %836, ptr noundef %838, i32 noundef %839) #13
  call void @exit(i32 noundef 1) #14
  unreachable

841:                                              ; preds = %814
  %842 = add nsw i32 %816, 2
  store i32 %842, ptr @test_count, align 4, !tbaa !5
  %843 = call i32 @s2n_config_set_verification_ca_location(ptr noundef nonnull %815, ptr noundef nonnull @.str.26, ptr noundef null) #11
  %844 = icmp eq i32 %843, -1
  br i1 %844, label %845, label %867

845:                                              ; preds = %841
  %846 = load i32, ptr %292, align 4, !tbaa !5
  %847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %848 = call i32 @s2n_print_stacktrace(ptr noundef %847) #11
  %849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %850 = trunc nuw i8 %849 to i1
  br i1 %850, label %851, label %855

851:                                              ; preds = %845
  %852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %853 = call i32 @fileno(ptr noundef %852) #11
  %854 = call i32 @isatty(i32 noundef %853) #11
  %.not359 = icmp eq i32 %854, 0
  br i1 %.not359, label %855, label %856

855:                                              ; preds = %851, %845
  br label %856

856:                                              ; preds = %851, %855
  %.str.5.sink652 = phi ptr [ @.str.5, %855 ], [ @.str.2, %851 ]
  store i32 %846, ptr %292, align 4, !tbaa !5
  %857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %858 = load i32, ptr @test_count, align 4, !tbaa !5
  %859 = load i32, ptr %238, align 4, !tbaa !5
  %860 = call ptr @s2n_strerror(i32 noundef %859, ptr noundef nonnull @.str.4) #11
  %861 = load i32, ptr %238, align 4, !tbaa !5
  %862 = call ptr @s2n_strerror_debug(i32 noundef %861, ptr noundef nonnull @.str.4) #11
  %863 = load i32, ptr %292, align 4, !tbaa !5
  %864 = call ptr @strerror(i32 noundef %863) #11
  %865 = load i32, ptr %292, align 4, !tbaa !5
  %866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %857, ptr noundef nonnull %.str.5.sink652, i32 noundef %858, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %860, ptr noundef %862, ptr noundef %864, i32 noundef %865) #13
  call void @exit(i32 noundef 1) #14
  unreachable

867:                                              ; preds = %841
  %868 = load i32, ptr @test_count, align 4, !tbaa !5
  %869 = add nsw i32 %868, 1
  store i32 %869, ptr @test_count, align 4, !tbaa !5
  %870 = load ptr, ptr %8, align 8, !tbaa !9
  %871 = call i32 @s2n_config_set_cert_authorities_from_trust_store(ptr noundef %870) #11
  %872 = icmp eq i32 %871, -1
  br i1 %872, label %895, label %873

873:                                              ; preds = %867
  %874 = load i32, ptr %292, align 4, !tbaa !5
  %875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %876 = call i32 @s2n_print_stacktrace(ptr noundef %875) #11
  %877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %878 = trunc nuw i8 %877 to i1
  br i1 %878, label %879, label %883

879:                                              ; preds = %873
  %880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %881 = call i32 @fileno(ptr noundef %880) #11
  %882 = call i32 @isatty(i32 noundef %881) #11
  %.not275 = icmp eq i32 %882, 0
  br i1 %.not275, label %883, label %884

883:                                              ; preds = %879, %873
  br label %884

884:                                              ; preds = %879, %883
  %.str.5.sink661 = phi ptr [ @.str.5, %883 ], [ @.str.2, %879 ]
  store i32 %874, ptr %292, align 4, !tbaa !5
  %885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %886 = load i32, ptr @test_count, align 4, !tbaa !5
  %887 = load i32, ptr %238, align 4, !tbaa !5
  %888 = call ptr @s2n_strerror(i32 noundef %887, ptr noundef nonnull @.str.4) #11
  %889 = load i32, ptr %238, align 4, !tbaa !5
  %890 = call ptr @s2n_strerror_debug(i32 noundef %889, ptr noundef nonnull @.str.4) #11
  %891 = load i32, ptr %292, align 4, !tbaa !5
  %892 = call ptr @strerror(i32 noundef %891) #11
  %893 = load i32, ptr %292, align 4, !tbaa !5
  %894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %885, ptr noundef nonnull %.str.5.sink661, i32 noundef %886, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %888, ptr noundef %890, ptr noundef %892, i32 noundef %893) #13
  call void @exit(i32 noundef 1) #14
  unreachable

895:                                              ; preds = %867
  %896 = load i32, ptr @test_count, align 4, !tbaa !5
  %897 = add nsw i32 %896, 1
  store i32 %897, ptr @test_count, align 4, !tbaa !5
  %898 = load i32, ptr %238, align 4, !tbaa !5
  %899 = icmp eq i32 %898, 469762135
  br i1 %899, label %922, label %900

900:                                              ; preds = %895
  %901 = load i32, ptr %292, align 4, !tbaa !5
  %902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %903 = call i32 @s2n_print_stacktrace(ptr noundef %902) #11
  %904 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %905 = trunc nuw i8 %904 to i1
  br i1 %905, label %906, label %910

906:                                              ; preds = %900
  %907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %908 = call i32 @fileno(ptr noundef %907) #11
  %909 = call i32 @isatty(i32 noundef %908) #11
  %.not276 = icmp eq i32 %909, 0
  br i1 %.not276, label %910, label %911

910:                                              ; preds = %906, %900
  br label %911

911:                                              ; preds = %906, %910
  %.str.5.sink670 = phi ptr [ @.str.5, %910 ], [ @.str.2, %906 ]
  store i32 %901, ptr %292, align 4, !tbaa !5
  %912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %913 = load i32, ptr @test_count, align 4, !tbaa !5
  %914 = load i32, ptr %238, align 4, !tbaa !5
  %915 = call ptr @s2n_strerror(i32 noundef %914, ptr noundef nonnull @.str.4) #11
  %916 = load i32, ptr %238, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror_debug(i32 noundef %916, ptr noundef nonnull @.str.4) #11
  %918 = load i32, ptr %292, align 4, !tbaa !5
  %919 = call ptr @strerror(i32 noundef %918) #11
  %920 = load i32, ptr %292, align 4, !tbaa !5
  %921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %912, ptr noundef nonnull %.str.5.sink670, i32 noundef %913, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %915, ptr noundef %917, ptr noundef %919, i32 noundef %920) #13
  call void @exit(i32 noundef 1) #14
  unreachable

922:                                              ; preds = %895
  %923 = add nsw i32 %896, 2
  store i32 %923, ptr @test_count, align 4, !tbaa !5
  %924 = call ptr @s2n_strerror_debug(i32 noundef 469762135, ptr noundef nonnull @.str.4) #11
  %925 = icmp eq ptr %924, null
  br i1 %925, label %926, label %948

926:                                              ; preds = %922
  %927 = load i32, ptr %292, align 4, !tbaa !5
  %928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %929 = call i32 @s2n_print_stacktrace(ptr noundef %928) #11
  %930 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %931 = trunc nuw i8 %930 to i1
  br i1 %931, label %932, label %936

932:                                              ; preds = %926
  %933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %934 = call i32 @fileno(ptr noundef %933) #11
  %935 = call i32 @isatty(i32 noundef %934) #11
  %.not358 = icmp eq i32 %935, 0
  br i1 %.not358, label %936, label %937

936:                                              ; preds = %932, %926
  br label %937

937:                                              ; preds = %932, %936
  %.str.5.sink679 = phi ptr [ @.str.5, %936 ], [ @.str.2, %932 ]
  store i32 %927, ptr %292, align 4, !tbaa !5
  %938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %939 = load i32, ptr @test_count, align 4, !tbaa !5
  %940 = load i32, ptr %238, align 4, !tbaa !5
  %941 = call ptr @s2n_strerror(i32 noundef %940, ptr noundef nonnull @.str.4) #11
  %942 = load i32, ptr %238, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror_debug(i32 noundef %942, ptr noundef nonnull @.str.4) #11
  %944 = load i32, ptr %292, align 4, !tbaa !5
  %945 = call ptr @strerror(i32 noundef %944) #11
  %946 = load i32, ptr %292, align 4, !tbaa !5
  %947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %938, ptr noundef nonnull %.str.5.sink679, i32 noundef %939, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %941, ptr noundef %943, ptr noundef %945, i32 noundef %946) #13
  call void @exit(i32 noundef 1) #14
  unreachable

948:                                              ; preds = %922
  store i32 0, ptr %238, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #11
  store i32 0, ptr %292, align 4, !tbaa !5
  %949 = load i32, ptr @test_count, align 4, !tbaa !5
  %950 = add nsw i32 %949, 1
  store i32 %950, ptr @test_count, align 4, !tbaa !5
  %951 = load ptr, ptr %8, align 8, !tbaa !9
  %952 = getelementptr inbounds i8, ptr %951, i64 456
  %953 = load i32, ptr %952, align 8, !tbaa !19
  %954 = icmp eq i32 %953, 0
  br i1 %954, label %977, label %955

955:                                              ; preds = %948
  %956 = load i32, ptr %292, align 4, !tbaa !5
  %957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %958 = call i32 @s2n_print_stacktrace(ptr noundef %957) #11
  %959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %960 = trunc nuw i8 %959 to i1
  br i1 %960, label %961, label %965

961:                                              ; preds = %955
  %962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %963 = call i32 @fileno(ptr noundef %962) #11
  %964 = call i32 @isatty(i32 noundef %963) #11
  %.not277 = icmp eq i32 %964, 0
  br i1 %.not277, label %965, label %966

965:                                              ; preds = %961, %955
  br label %966

966:                                              ; preds = %961, %965
  %.str.5.sink688 = phi ptr [ @.str.5, %965 ], [ @.str.2, %961 ]
  store i32 %956, ptr %292, align 4, !tbaa !5
  %967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %968 = load i32, ptr @test_count, align 4, !tbaa !5
  %969 = load i32, ptr %238, align 4, !tbaa !5
  %970 = call ptr @s2n_strerror(i32 noundef %969, ptr noundef nonnull @.str.4) #11
  %971 = load i32, ptr %238, align 4, !tbaa !5
  %972 = call ptr @s2n_strerror_debug(i32 noundef %971, ptr noundef nonnull @.str.4) #11
  %973 = load i32, ptr %292, align 4, !tbaa !5
  %974 = call ptr @strerror(i32 noundef %973) #11
  %975 = load i32, ptr %292, align 4, !tbaa !5
  %976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %967, ptr noundef nonnull %.str.5.sink688, i32 noundef %968, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 110, ptr noundef %970, ptr noundef %972, ptr noundef %974, i32 noundef %975) #13
  call void @exit(i32 noundef 1) #14
  unreachable

977:                                              ; preds = %948
  %978 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #11
  br label %979

979:                                              ; preds = %977, %811
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #11
  %980 = call ptr @s2n_config_new_minimal() #11
  store ptr %980, ptr %9, align 8, !tbaa !9
  %981 = load i32, ptr @test_count, align 4, !tbaa !5
  %982 = add nsw i32 %981, 1
  store i32 %982, ptr @test_count, align 4, !tbaa !5
  %983 = getelementptr inbounds i8, ptr %980, i64 448
  %984 = call i32 @s2n_alloc(ptr noundef nonnull %983, i32 noundef 17) #11
  %985 = icmp eq i32 %984, -1
  br i1 %985, label %986, label %1008

986:                                              ; preds = %979
  %987 = load i32, ptr %292, align 4, !tbaa !5
  %988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %989 = call i32 @s2n_print_stacktrace(ptr noundef %988) #11
  %990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %991 = trunc nuw i8 %990 to i1
  br i1 %991, label %992, label %996

992:                                              ; preds = %986
  %993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %994 = call i32 @fileno(ptr noundef %993) #11
  %995 = call i32 @isatty(i32 noundef %994) #11
  %.not357 = icmp eq i32 %995, 0
  br i1 %.not357, label %996, label %997

996:                                              ; preds = %992, %986
  br label %997

997:                                              ; preds = %992, %996
  %.str.5.sink697 = phi ptr [ @.str.5, %996 ], [ @.str.2, %992 ]
  store i32 %987, ptr %292, align 4, !tbaa !5
  %998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %999 = load i32, ptr @test_count, align 4, !tbaa !5
  %1000 = load i32, ptr %238, align 4, !tbaa !5
  %1001 = call ptr @s2n_strerror(i32 noundef %1000, ptr noundef nonnull @.str.4) #11
  %1002 = load i32, ptr %238, align 4, !tbaa !5
  %1003 = call ptr @s2n_strerror_debug(i32 noundef %1002, ptr noundef nonnull @.str.4) #11
  %1004 = load i32, ptr %292, align 4, !tbaa !5
  %1005 = call ptr @strerror(i32 noundef %1004) #11
  %1006 = load i32, ptr %292, align 4, !tbaa !5
  %1007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %998, ptr noundef nonnull %.str.5.sink697, i32 noundef %999, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef %1001, ptr noundef %1003, ptr noundef %1005, i32 noundef %1006) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1008:                                             ; preds = %979
  %1009 = load ptr, ptr %9, align 8, !tbaa !9
  %1010 = getelementptr inbounds i8, ptr %1009, i64 448
  %1011 = load ptr, ptr %1010, align 8, !tbaa !25
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(17) %1011, ptr noundef nonnull align 16 dereferenceable(17) @__const.main.ca_data, i64 17, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #11
  %1012 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %1012, ptr %10, align 8, !tbaa !9
  %1013 = load i32, ptr @test_count, align 4, !tbaa !5
  %1014 = add nsw i32 %1013, 1
  store i32 %1014, ptr @test_count, align 4, !tbaa !5
  %1015 = load ptr, ptr %9, align 8, !tbaa !9
  %1016 = call i32 @s2n_connection_set_config(ptr noundef %1012, ptr noundef %1015) #11
  %1017 = icmp eq i32 %1016, -1
  br i1 %1017, label %1018, label %1040

1018:                                             ; preds = %1008
  %1019 = load i32, ptr %292, align 4, !tbaa !5
  %1020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1021 = call i32 @s2n_print_stacktrace(ptr noundef %1020) #11
  %1022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1023 = trunc nuw i8 %1022 to i1
  br i1 %1023, label %1024, label %1028

1024:                                             ; preds = %1018
  %1025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1026 = call i32 @fileno(ptr noundef %1025) #11
  %1027 = call i32 @isatty(i32 noundef %1026) #11
  %.not355 = icmp eq i32 %1027, 0
  br i1 %.not355, label %1028, label %1029

1028:                                             ; preds = %1024, %1018
  br label %1029

1029:                                             ; preds = %1024, %1028
  %.str.5.sink706 = phi ptr [ @.str.5, %1028 ], [ @.str.2, %1024 ]
  store i32 %1019, ptr %292, align 4, !tbaa !5
  %1030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1031 = load i32, ptr @test_count, align 4, !tbaa !5
  %1032 = load i32, ptr %238, align 4, !tbaa !5
  %1033 = call ptr @s2n_strerror(i32 noundef %1032, ptr noundef nonnull @.str.4) #11
  %1034 = load i32, ptr %238, align 4, !tbaa !5
  %1035 = call ptr @s2n_strerror_debug(i32 noundef %1034, ptr noundef nonnull @.str.4) #11
  %1036 = load i32, ptr %292, align 4, !tbaa !5
  %1037 = call ptr @strerror(i32 noundef %1036) #11
  %1038 = load i32, ptr %292, align 4, !tbaa !5
  %1039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1030, ptr noundef nonnull %.str.5.sink706, i32 noundef %1031, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %1033, ptr noundef %1035, ptr noundef %1037, i32 noundef %1038) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1040:                                             ; preds = %1008
  %1041 = load ptr, ptr %10, align 8, !tbaa !9
  %1042 = getelementptr inbounds i8, ptr %1041, i64 220
  store i8 34, ptr %1042, align 4, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %11) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %11, i8 0, i64 40, i1 false)
  %1043 = load i32, ptr @test_count, align 4, !tbaa !5
  %1044 = add nsw i32 %1043, 1
  store i32 %1044, ptr @test_count, align 4, !tbaa !5
  %1045 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %11, i32 noundef 0) #11
  %1046 = icmp eq i32 %1045, -1
  br i1 %1046, label %1047, label %1069

1047:                                             ; preds = %1040
  %1048 = load i32, ptr %292, align 4, !tbaa !5
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = call i32 @s2n_print_stacktrace(ptr noundef %1049) #11
  %1051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1052 = trunc nuw i8 %1051 to i1
  br i1 %1052, label %1053, label %1057

1053:                                             ; preds = %1047
  %1054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1055 = call i32 @fileno(ptr noundef %1054) #11
  %1056 = call i32 @isatty(i32 noundef %1055) #11
  %.not354 = icmp eq i32 %1056, 0
  br i1 %.not354, label %1057, label %1058

1057:                                             ; preds = %1053, %1047
  br label %1058

1058:                                             ; preds = %1053, %1057
  %.str.5.sink715 = phi ptr [ @.str.5, %1057 ], [ @.str.2, %1053 ]
  store i32 %1048, ptr %292, align 4, !tbaa !5
  %1059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1060 = load i32, ptr @test_count, align 4, !tbaa !5
  %1061 = load i32, ptr %238, align 4, !tbaa !5
  %1062 = call ptr @s2n_strerror(i32 noundef %1061, ptr noundef nonnull @.str.4) #11
  %1063 = load i32, ptr %238, align 4, !tbaa !5
  %1064 = call ptr @s2n_strerror_debug(i32 noundef %1063, ptr noundef nonnull @.str.4) #11
  %1065 = load i32, ptr %292, align 4, !tbaa !5
  %1066 = call ptr @strerror(i32 noundef %1065) #11
  %1067 = load i32, ptr %292, align 4, !tbaa !5
  %1068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1059, ptr noundef nonnull %.str.5.sink715, i32 noundef %1060, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 130, ptr noundef %1062, ptr noundef %1064, ptr noundef %1066, i32 noundef %1067) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1069:                                             ; preds = %1040
  %1070 = load i32, ptr @test_count, align 4, !tbaa !5
  %1071 = add nsw i32 %1070, 1
  store i32 %1071, ptr @test_count, align 4, !tbaa !5
  %1072 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_cert_authorities_extension, i64 8), align 8, !tbaa !50
  %1073 = load ptr, ptr %10, align 8, !tbaa !9
  %1074 = call i32 %1072(ptr noundef %1073, ptr noundef nonnull %11) #11
  %1075 = icmp eq i32 %1074, -1
  br i1 %1075, label %1076, label %1098

1076:                                             ; preds = %1069
  %1077 = load i32, ptr %292, align 4, !tbaa !5
  %1078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1079 = call i32 @s2n_print_stacktrace(ptr noundef %1078) #11
  %1080 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1081 = trunc nuw i8 %1080 to i1
  br i1 %1081, label %1082, label %1086

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

1086:                                             ; preds = %1082, %1076
  br label %1087

1087:                                             ; preds = %1082, %1086
  %.str.5.sink724 = phi ptr [ @.str.5, %1086 ], [ @.str.2, %1082 ]
  store i32 %1077, ptr %292, align 4, !tbaa !5
  %1088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1089 = load i32, ptr @test_count, align 4, !tbaa !5
  %1090 = load i32, ptr %238, align 4, !tbaa !5
  %1091 = call ptr @s2n_strerror(i32 noundef %1090, ptr noundef nonnull @.str.4) #11
  %1092 = load i32, ptr %238, align 4, !tbaa !5
  %1093 = call ptr @s2n_strerror_debug(i32 noundef %1092, ptr noundef nonnull @.str.4) #11
  %1094 = load i32, ptr %292, align 4, !tbaa !5
  %1095 = call ptr @strerror(i32 noundef %1094) #11
  %1096 = load i32, ptr %292, align 4, !tbaa !5
  %1097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1088, ptr noundef nonnull %.str.5.sink724, i32 noundef %1089, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %1091, ptr noundef %1093, ptr noundef %1095, i32 noundef %1096) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1098:                                             ; preds = %1069
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %12) #11
  store i16 0, ptr %12, align 2, !tbaa !51
  %1099 = load i32, ptr @test_count, align 4, !tbaa !5
  %1100 = add nsw i32 %1099, 1
  store i32 %1100, ptr @test_count, align 4, !tbaa !5
  %1101 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %11, ptr noundef nonnull %12) #11
  %1102 = icmp eq i32 %1101, -1
  br i1 %1102, label %1103, label %1125

1103:                                             ; preds = %1098
  %1104 = load i32, ptr %292, align 4, !tbaa !5
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1106 = call i32 @s2n_print_stacktrace(ptr noundef %1105) #11
  %1107 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1108 = trunc nuw i8 %1107 to i1
  br i1 %1108, label %1109, label %1113

1109:                                             ; preds = %1103
  %1110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1111 = call i32 @fileno(ptr noundef %1110) #11
  %1112 = call i32 @isatty(i32 noundef %1111) #11
  %.not352 = icmp eq i32 %1112, 0
  br i1 %.not352, label %1113, label %1114

1113:                                             ; preds = %1109, %1103
  br label %1114

1114:                                             ; preds = %1109, %1113
  %.str.5.sink733 = phi ptr [ @.str.5, %1113 ], [ @.str.2, %1109 ]
  store i32 %1104, ptr %292, align 4, !tbaa !5
  %1115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1116 = load i32, ptr @test_count, align 4, !tbaa !5
  %1117 = load i32, ptr %238, align 4, !tbaa !5
  %1118 = call ptr @s2n_strerror(i32 noundef %1117, ptr noundef nonnull @.str.4) #11
  %1119 = load i32, ptr %238, align 4, !tbaa !5
  %1120 = call ptr @s2n_strerror_debug(i32 noundef %1119, ptr noundef nonnull @.str.4) #11
  %1121 = load i32, ptr %292, align 4, !tbaa !5
  %1122 = call ptr @strerror(i32 noundef %1121) #11
  %1123 = load i32, ptr %292, align 4, !tbaa !5
  %1124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1115, ptr noundef nonnull %.str.5.sink733, i32 noundef %1116, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %1118, ptr noundef %1120, ptr noundef %1122, i32 noundef %1123) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1125:                                             ; preds = %1098
  %1126 = load i32, ptr @test_count, align 4, !tbaa !5
  %1127 = add nsw i32 %1126, 1
  store i32 %1127, ptr @test_count, align 4, !tbaa !5
  %1128 = load i16, ptr %12, align 2, !tbaa !51
  %1129 = icmp eq i16 %1128, 17
  br i1 %1129, label %1152, label %1130

1130:                                             ; preds = %1125
  %1131 = load i32, ptr %292, align 4, !tbaa !5
  %1132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1133 = call i32 @s2n_print_stacktrace(ptr noundef %1132) #11
  %1134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1135 = trunc nuw i8 %1134 to i1
  br i1 %1135, label %1136, label %1140

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

1140:                                             ; preds = %1136, %1130
  br label %1141

1141:                                             ; preds = %1136, %1140
  %.str.5.sink742 = phi ptr [ @.str.5, %1140 ], [ @.str.2, %1136 ]
  store i32 %1131, ptr %292, align 4, !tbaa !5
  %1142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1143 = load i32, ptr @test_count, align 4, !tbaa !5
  %1144 = load i32, ptr %238, align 4, !tbaa !5
  %1145 = call ptr @s2n_strerror(i32 noundef %1144, ptr noundef nonnull @.str.4) #11
  %1146 = load i32, ptr %238, align 4, !tbaa !5
  %1147 = call ptr @s2n_strerror_debug(i32 noundef %1146, ptr noundef nonnull @.str.4) #11
  %1148 = load i32, ptr %292, align 4, !tbaa !5
  %1149 = call ptr @strerror(i32 noundef %1148) #11
  %1150 = load i32, ptr %292, align 4, !tbaa !5
  %1151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1142, ptr noundef nonnull %.str.5.sink742, i32 noundef %1143, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %1145, ptr noundef %1147, ptr noundef %1149, i32 noundef %1150) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1152:                                             ; preds = %1125
  %1153 = add nsw i32 %1126, 2
  store i32 %1153, ptr @test_count, align 4, !tbaa !5
  %1154 = getelementptr inbounds i8, ptr %11, i64 28
  %1155 = load i32, ptr %1154, align 4, !tbaa !52
  %1156 = getelementptr inbounds i8, ptr %11, i64 24
  %1157 = load i32, ptr %1156, align 8, !tbaa !53
  %1158 = sub i32 %1155, %1157
  %1159 = icmp eq i32 %1158, 17
  br i1 %1159, label %1182, label %1160

1160:                                             ; preds = %1152
  %1161 = load i32, ptr %292, align 4, !tbaa !5
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = call i32 @s2n_print_stacktrace(ptr noundef %1162) #11
  %1164 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1165 = trunc nuw i8 %1164 to i1
  br i1 %1165, label %1166, label %1170

1166:                                             ; preds = %1160
  %1167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1168 = call i32 @fileno(ptr noundef %1167) #11
  %1169 = call i32 @isatty(i32 noundef %1168) #11
  %.not279 = icmp eq i32 %1169, 0
  br i1 %.not279, label %1170, label %1171

1170:                                             ; preds = %1166, %1160
  br label %1171

1171:                                             ; preds = %1166, %1170
  %.str.5.sink751 = phi ptr [ @.str.5, %1170 ], [ @.str.2, %1166 ]
  store i32 %1161, ptr %292, align 4, !tbaa !5
  %1172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1173 = load i32, ptr @test_count, align 4, !tbaa !5
  %1174 = load i32, ptr %238, align 4, !tbaa !5
  %1175 = call ptr @s2n_strerror(i32 noundef %1174, ptr noundef nonnull @.str.4) #11
  %1176 = load i32, ptr %238, align 4, !tbaa !5
  %1177 = call ptr @s2n_strerror_debug(i32 noundef %1176, ptr noundef nonnull @.str.4) #11
  %1178 = load i32, ptr %292, align 4, !tbaa !5
  %1179 = call ptr @strerror(i32 noundef %1178) #11
  %1180 = load i32, ptr %292, align 4, !tbaa !5
  %1181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1172, ptr noundef nonnull %.str.5.sink751, i32 noundef %1173, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef %1175, ptr noundef %1177, ptr noundef %1179, i32 noundef %1180) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1182:                                             ; preds = %1152
  %1183 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %11, i32 noundef 17) #11
  %1184 = load i32, ptr @test_count, align 4, !tbaa !5
  %1185 = add nsw i32 %1184, 1
  store i32 %1185, ptr @test_count, align 4, !tbaa !5
  %1186 = icmp eq ptr %1183, null
  br i1 %1186, label %1187, label %1209

1187:                                             ; preds = %1182
  %1188 = load i32, ptr %292, align 4, !tbaa !5
  %1189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1190 = call i32 @s2n_print_stacktrace(ptr noundef %1189) #11
  %1191 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1192 = trunc nuw i8 %1191 to i1
  br i1 %1192, label %1193, label %1197

1193:                                             ; preds = %1187
  %1194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1195 = call i32 @fileno(ptr noundef %1194) #11
  %1196 = call i32 @isatty(i32 noundef %1195) #11
  %.not351 = icmp eq i32 %1196, 0
  br i1 %.not351, label %1197, label %1198

1197:                                             ; preds = %1193, %1187
  br label %1198

1198:                                             ; preds = %1193, %1197
  %.str.5.sink760 = phi ptr [ @.str.5, %1197 ], [ @.str.2, %1193 ]
  store i32 %1188, ptr %292, align 4, !tbaa !5
  %1199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1200 = load i32, ptr @test_count, align 4, !tbaa !5
  %1201 = load i32, ptr %238, align 4, !tbaa !5
  %1202 = call ptr @s2n_strerror(i32 noundef %1201, ptr noundef nonnull @.str.4) #11
  %1203 = load i32, ptr %238, align 4, !tbaa !5
  %1204 = call ptr @s2n_strerror_debug(i32 noundef %1203, ptr noundef nonnull @.str.4) #11
  %1205 = load i32, ptr %292, align 4, !tbaa !5
  %1206 = call ptr @strerror(i32 noundef %1205) #11
  %1207 = load i32, ptr %292, align 4, !tbaa !5
  %1208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1199, ptr noundef nonnull %.str.5.sink760, i32 noundef %1200, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %1202, ptr noundef %1204, ptr noundef %1206, i32 noundef %1207) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1209:                                             ; preds = %1182
  %1210 = add nsw i32 %1184, 2
  store i32 %1210, ptr @test_count, align 4, !tbaa !5
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(17) %1183, ptr noundef nonnull dereferenceable(17) @__const.main.ca_data, i64 17)
  %1211 = icmp eq i32 %bcmp, 0
  br i1 %1211, label %1234, label %1212

1212:                                             ; preds = %1209
  %1213 = load i32, ptr %292, align 4, !tbaa !5
  %1214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1215 = call i32 @s2n_print_stacktrace(ptr noundef %1214) #11
  %1216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1217 = trunc nuw i8 %1216 to i1
  br i1 %1217, label %1218, label %1222

1218:                                             ; preds = %1212
  %1219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1220 = call i32 @fileno(ptr noundef %1219) #11
  %1221 = call i32 @isatty(i32 noundef %1220) #11
  %.not280 = icmp eq i32 %1221, 0
  br i1 %.not280, label %1222, label %1223

1222:                                             ; preds = %1218, %1212
  br label %1223

1223:                                             ; preds = %1218, %1222
  %.str.5.sink769 = phi ptr [ @.str.5, %1222 ], [ @.str.2, %1218 ]
  store i32 %1213, ptr %292, align 4, !tbaa !5
  %1224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1225 = load i32, ptr @test_count, align 4, !tbaa !5
  %1226 = load i32, ptr %238, align 4, !tbaa !5
  %1227 = call ptr @s2n_strerror(i32 noundef %1226, ptr noundef nonnull @.str.4) #11
  %1228 = load i32, ptr %238, align 4, !tbaa !5
  %1229 = call ptr @s2n_strerror_debug(i32 noundef %1228, ptr noundef nonnull @.str.4) #11
  %1230 = load i32, ptr %292, align 4, !tbaa !5
  %1231 = call ptr @strerror(i32 noundef %1230) #11
  %1232 = load i32, ptr %292, align 4, !tbaa !5
  %1233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1224, ptr noundef nonnull %.str.5.sink769, i32 noundef %1225, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %1227, ptr noundef %1229, ptr noundef %1231, i32 noundef %1232) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1234:                                             ; preds = %1209
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %12) #11
  %1235 = call i32 @s2n_stuffer_free(ptr noundef nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #11
  %1236 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #11
  %1237 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %9) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #11
  %1238 = call ptr @s2n_config_new_minimal() #11
  store ptr %1238, ptr %13, align 8, !tbaa !9
  %1239 = load i32, ptr @test_count, align 4, !tbaa !5
  %1240 = add nsw i32 %1239, 1
  store i32 %1240, ptr @test_count, align 4, !tbaa !5
  %1241 = getelementptr inbounds i8, ptr %1238, i64 448
  %1242 = call i32 @s2n_alloc(ptr noundef nonnull %1241, i32 noundef 10) #11
  %1243 = icmp eq i32 %1242, -1
  br i1 %1243, label %1244, label %1266

1244:                                             ; preds = %1234
  %1245 = load i32, ptr %292, align 4, !tbaa !5
  %1246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1247 = call i32 @s2n_print_stacktrace(ptr noundef %1246) #11
  %1248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1249 = trunc nuw i8 %1248 to i1
  br i1 %1249, label %1250, label %1254

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

1254:                                             ; preds = %1250, %1244
  br label %1255

1255:                                             ; preds = %1250, %1254
  %.str.5.sink778 = phi ptr [ @.str.5, %1254 ], [ @.str.2, %1250 ]
  store i32 %1245, ptr %292, align 4, !tbaa !5
  %1256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1257 = load i32, ptr @test_count, align 4, !tbaa !5
  %1258 = load i32, ptr %238, align 4, !tbaa !5
  %1259 = call ptr @s2n_strerror(i32 noundef %1258, ptr noundef nonnull @.str.4) #11
  %1260 = load i32, ptr %238, align 4, !tbaa !5
  %1261 = call ptr @s2n_strerror_debug(i32 noundef %1260, ptr noundef nonnull @.str.4) #11
  %1262 = load i32, ptr %292, align 4, !tbaa !5
  %1263 = call ptr @strerror(i32 noundef %1262) #11
  %1264 = load i32, ptr %292, align 4, !tbaa !5
  %1265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1256, ptr noundef nonnull %.str.5.sink778, i32 noundef %1257, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %1259, ptr noundef %1261, ptr noundef %1263, i32 noundef %1264) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1266:                                             ; preds = %1234
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #11
  %1267 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %1267, ptr %14, align 8, !tbaa !9
  %1268 = load i32, ptr @test_count, align 4, !tbaa !5
  %1269 = add nsw i32 %1268, 1
  store i32 %1269, ptr @test_count, align 4, !tbaa !5
  %1270 = load ptr, ptr %13, align 8, !tbaa !9
  %1271 = call i32 @s2n_connection_set_config(ptr noundef %1267, ptr noundef %1270) #11
  %1272 = icmp eq i32 %1271, -1
  br i1 %1272, label %1273, label %1295

1273:                                             ; preds = %1266
  %1274 = load i32, ptr %292, align 4, !tbaa !5
  %1275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1276 = call i32 @s2n_print_stacktrace(ptr noundef %1275) #11
  %1277 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1278 = trunc nuw i8 %1277 to i1
  br i1 %1278, label %1279, label %1283

1279:                                             ; preds = %1273
  %1280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1281 = call i32 @fileno(ptr noundef %1280) #11
  %1282 = call i32 @isatty(i32 noundef %1281) #11
  %.not349 = icmp eq i32 %1282, 0
  br i1 %.not349, label %1283, label %1284

1283:                                             ; preds = %1279, %1273
  br label %1284

1284:                                             ; preds = %1279, %1283
  %.str.5.sink787 = phi ptr [ @.str.5, %1283 ], [ @.str.2, %1279 ]
  store i32 %1274, ptr %292, align 4, !tbaa !5
  %1285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1286 = load i32, ptr @test_count, align 4, !tbaa !5
  %1287 = load i32, ptr %238, align 4, !tbaa !5
  %1288 = call ptr @s2n_strerror(i32 noundef %1287, ptr noundef nonnull @.str.4) #11
  %1289 = load i32, ptr %238, align 4, !tbaa !5
  %1290 = call ptr @s2n_strerror_debug(i32 noundef %1289, ptr noundef nonnull @.str.4) #11
  %1291 = load i32, ptr %292, align 4, !tbaa !5
  %1292 = call ptr @strerror(i32 noundef %1291) #11
  %1293 = load i32, ptr %292, align 4, !tbaa !5
  %1294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1285, ptr noundef nonnull %.str.5.sink787, i32 noundef %1286, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 154, ptr noundef %1288, ptr noundef %1290, ptr noundef %1292, i32 noundef %1293) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1295:                                             ; preds = %1266
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %15) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %15, i8 0, i64 40, i1 false)
  %1296 = load i32, ptr @test_count, align 4, !tbaa !5
  %1297 = add nsw i32 %1296, 1
  store i32 %1297, ptr @test_count, align 4, !tbaa !5
  %1298 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %15, i32 noundef 0) #11
  %1299 = icmp eq i32 %1298, -1
  br i1 %1299, label %1300, label %1322

1300:                                             ; preds = %1295
  %1301 = load i32, ptr %292, align 4, !tbaa !5
  %1302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1303 = call i32 @s2n_print_stacktrace(ptr noundef %1302) #11
  %1304 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1305 = trunc nuw i8 %1304 to i1
  br i1 %1305, label %1306, label %1310

1306:                                             ; preds = %1300
  %1307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1308 = call i32 @fileno(ptr noundef %1307) #11
  %1309 = call i32 @isatty(i32 noundef %1308) #11
  %.not348 = icmp eq i32 %1309, 0
  br i1 %.not348, label %1310, label %1311

1310:                                             ; preds = %1306, %1300
  br label %1311

1311:                                             ; preds = %1306, %1310
  %.str.5.sink796 = phi ptr [ @.str.5, %1310 ], [ @.str.2, %1306 ]
  store i32 %1301, ptr %292, align 4, !tbaa !5
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1313 = load i32, ptr @test_count, align 4, !tbaa !5
  %1314 = load i32, ptr %238, align 4, !tbaa !5
  %1315 = call ptr @s2n_strerror(i32 noundef %1314, ptr noundef nonnull @.str.4) #11
  %1316 = load i32, ptr %238, align 4, !tbaa !5
  %1317 = call ptr @s2n_strerror_debug(i32 noundef %1316, ptr noundef nonnull @.str.4) #11
  %1318 = load i32, ptr %292, align 4, !tbaa !5
  %1319 = call ptr @strerror(i32 noundef %1318) #11
  %1320 = load i32, ptr %292, align 4, !tbaa !5
  %1321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1312, ptr noundef nonnull %.str.5.sink796, i32 noundef %1313, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %1315, ptr noundef %1317, ptr noundef %1319, i32 noundef %1320) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1322:                                             ; preds = %1295
  %1323 = load ptr, ptr %14, align 8, !tbaa !9
  %1324 = getelementptr inbounds i8, ptr %1323, i64 220
  store i8 33, ptr %1324, align 4, !tbaa !26
  %1325 = load i32, ptr @test_count, align 4, !tbaa !5
  %1326 = add nsw i32 %1325, 1
  store i32 %1326, ptr @test_count, align 4, !tbaa !5
  %1327 = call i32 @s2n_extension_send(ptr noundef nonnull @s2n_cert_authorities_extension, ptr noundef %1323, ptr noundef nonnull %15) #11
  %1328 = icmp eq i32 %1327, -1
  br i1 %1328, label %1329, label %1351

1329:                                             ; preds = %1322
  %1330 = load i32, ptr %292, align 4, !tbaa !5
  %1331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1332 = call i32 @s2n_print_stacktrace(ptr noundef %1331) #11
  %1333 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1334 = trunc nuw i8 %1333 to i1
  br i1 %1334, label %1335, label %1339

1335:                                             ; preds = %1329
  %1336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1337 = call i32 @fileno(ptr noundef %1336) #11
  %1338 = call i32 @isatty(i32 noundef %1337) #11
  %.not347 = icmp eq i32 %1338, 0
  br i1 %.not347, label %1339, label %1340

1339:                                             ; preds = %1335, %1329
  br label %1340

1340:                                             ; preds = %1335, %1339
  %.str.5.sink805 = phi ptr [ @.str.5, %1339 ], [ @.str.2, %1335 ]
  store i32 %1330, ptr %292, align 4, !tbaa !5
  %1341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1342 = load i32, ptr @test_count, align 4, !tbaa !5
  %1343 = load i32, ptr %238, align 4, !tbaa !5
  %1344 = call ptr @s2n_strerror(i32 noundef %1343, ptr noundef nonnull @.str.4) #11
  %1345 = load i32, ptr %238, align 4, !tbaa !5
  %1346 = call ptr @s2n_strerror_debug(i32 noundef %1345, ptr noundef nonnull @.str.4) #11
  %1347 = load i32, ptr %292, align 4, !tbaa !5
  %1348 = call ptr @strerror(i32 noundef %1347) #11
  %1349 = load i32, ptr %292, align 4, !tbaa !5
  %1350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1341, ptr noundef nonnull %.str.5.sink805, i32 noundef %1342, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %1344, ptr noundef %1346, ptr noundef %1348, i32 noundef %1349) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1351:                                             ; preds = %1322
  %1352 = load i32, ptr @test_count, align 4, !tbaa !5
  %1353 = add nsw i32 %1352, 1
  store i32 %1353, ptr @test_count, align 4, !tbaa !5
  %1354 = getelementptr inbounds i8, ptr %15, i64 28
  %1355 = load i32, ptr %1354, align 4, !tbaa !52
  %1356 = getelementptr inbounds i8, ptr %15, i64 24
  %1357 = load i32, ptr %1356, align 8, !tbaa !53
  %1358 = icmp eq i32 %1355, %1357
  br i1 %1358, label %1381, label %1359

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

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

1369:                                             ; preds = %1365, %1359
  br label %1370

1370:                                             ; preds = %1365, %1369
  %.str.5.sink814 = phi ptr [ @.str.5, %1369 ], [ @.str.2, %1365 ]
  store i32 %1360, ptr %292, align 4, !tbaa !5
  %1371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1372 = load i32, ptr @test_count, align 4, !tbaa !5
  %1373 = load i32, ptr %238, align 4, !tbaa !5
  %1374 = call ptr @s2n_strerror(i32 noundef %1373, ptr noundef nonnull @.str.4) #11
  %1375 = load i32, ptr %238, align 4, !tbaa !5
  %1376 = call ptr @s2n_strerror_debug(i32 noundef %1375, ptr noundef nonnull @.str.4) #11
  %1377 = load i32, ptr %292, align 4, !tbaa !5
  %1378 = call ptr @strerror(i32 noundef %1377) #11
  %1379 = load i32, ptr %292, align 4, !tbaa !5
  %1380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1371, ptr noundef nonnull %.str.5.sink814, i32 noundef %1372, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %1374, ptr noundef %1376, ptr noundef %1378, i32 noundef %1379) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1381:                                             ; preds = %1351
  %1382 = load ptr, ptr %14, align 8, !tbaa !9
  %1383 = getelementptr inbounds i8, ptr %1382, i64 220
  store i8 34, ptr %1383, align 4, !tbaa !26
  %1384 = add nsw i32 %1352, 2
  store i32 %1384, ptr @test_count, align 4, !tbaa !5
  %1385 = call i32 @s2n_extension_send(ptr noundef nonnull @s2n_cert_authorities_extension, ptr noundef %1382, ptr noundef nonnull %15) #11
  %1386 = icmp eq i32 %1385, -1
  br i1 %1386, label %1387, label %1409

1387:                                             ; preds = %1381
  %1388 = load i32, ptr %292, align 4, !tbaa !5
  %1389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1390 = call i32 @s2n_print_stacktrace(ptr noundef %1389) #11
  %1391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1392 = trunc nuw i8 %1391 to i1
  br i1 %1392, label %1393, label %1397

1393:                                             ; preds = %1387
  %1394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1395 = call i32 @fileno(ptr noundef %1394) #11
  %1396 = call i32 @isatty(i32 noundef %1395) #11
  %.not346 = icmp eq i32 %1396, 0
  br i1 %.not346, label %1397, label %1398

1397:                                             ; preds = %1393, %1387
  br label %1398

1398:                                             ; preds = %1393, %1397
  %.str.5.sink823 = phi ptr [ @.str.5, %1397 ], [ @.str.2, %1393 ]
  store i32 %1388, ptr %292, align 4, !tbaa !5
  %1399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1400 = load i32, ptr @test_count, align 4, !tbaa !5
  %1401 = load i32, ptr %238, align 4, !tbaa !5
  %1402 = call ptr @s2n_strerror(i32 noundef %1401, ptr noundef nonnull @.str.4) #11
  %1403 = load i32, ptr %238, align 4, !tbaa !5
  %1404 = call ptr @s2n_strerror_debug(i32 noundef %1403, ptr noundef nonnull @.str.4) #11
  %1405 = load i32, ptr %292, align 4, !tbaa !5
  %1406 = call ptr @strerror(i32 noundef %1405) #11
  %1407 = load i32, ptr %292, align 4, !tbaa !5
  %1408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1399, ptr noundef nonnull %.str.5.sink823, i32 noundef %1400, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %1402, ptr noundef %1404, ptr noundef %1406, i32 noundef %1407) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1409:                                             ; preds = %1381
  %1410 = load i32, ptr @test_count, align 4, !tbaa !5
  %1411 = add nsw i32 %1410, 1
  store i32 %1411, ptr @test_count, align 4, !tbaa !5
  %1412 = load i32, ptr %1354, align 4, !tbaa !52
  %1413 = load i32, ptr %1356, align 8, !tbaa !53
  %1414 = icmp eq i32 %1412, %1413
  br i1 %1414, label %1415, label %1437

1415:                                             ; preds = %1409
  %1416 = load i32, ptr %292, align 4, !tbaa !5
  %1417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1418 = call i32 @s2n_print_stacktrace(ptr noundef %1417) #11
  %1419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1420 = trunc nuw i8 %1419 to i1
  br i1 %1420, label %1421, label %1425

1421:                                             ; preds = %1415
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = call i32 @fileno(ptr noundef %1422) #11
  %1424 = call i32 @isatty(i32 noundef %1423) #11
  %.not345 = icmp eq i32 %1424, 0
  br i1 %.not345, label %1425, label %1426

1425:                                             ; preds = %1421, %1415
  br label %1426

1426:                                             ; preds = %1421, %1425
  %.str.5.sink832 = phi ptr [ @.str.5, %1425 ], [ @.str.2, %1421 ]
  store i32 %1416, ptr %292, align 4, !tbaa !5
  %1427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1428 = load i32, ptr @test_count, align 4, !tbaa !5
  %1429 = load i32, ptr %238, align 4, !tbaa !5
  %1430 = call ptr @s2n_strerror(i32 noundef %1429, ptr noundef nonnull @.str.4) #11
  %1431 = load i32, ptr %238, align 4, !tbaa !5
  %1432 = call ptr @s2n_strerror_debug(i32 noundef %1431, ptr noundef nonnull @.str.4) #11
  %1433 = load i32, ptr %292, align 4, !tbaa !5
  %1434 = call ptr @strerror(i32 noundef %1433) #11
  %1435 = load i32, ptr %292, align 4, !tbaa !5
  %1436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1427, ptr noundef nonnull %.str.5.sink832, i32 noundef %1428, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %1430, ptr noundef %1432, ptr noundef %1434, i32 noundef %1435) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1437:                                             ; preds = %1409
  %1438 = call i32 @s2n_stuffer_free(ptr noundef nonnull %15) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #11
  %1439 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %14) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  %1440 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #11
  %1441 = call ptr @s2n_config_new_minimal() #11
  store ptr %1441, ptr %16, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #11
  %1442 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %1442, ptr %17, align 8, !tbaa !9
  %1443 = load i32, ptr @test_count, align 4, !tbaa !5
  %1444 = add nsw i32 %1443, 1
  store i32 %1444, ptr @test_count, align 4, !tbaa !5
  %1445 = load ptr, ptr %16, align 8, !tbaa !9
  %1446 = call i32 @s2n_connection_set_config(ptr noundef %1442, ptr noundef %1445) #11
  %1447 = icmp eq i32 %1446, -1
  br i1 %1447, label %1448, label %1470

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

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

1458:                                             ; preds = %1454, %1448
  br label %1459

1459:                                             ; preds = %1454, %1458
  %.str.5.sink841 = phi ptr [ @.str.5, %1458 ], [ @.str.2, %1454 ]
  store i32 %1449, ptr %292, align 4, !tbaa !5
  %1460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1461 = load i32, ptr @test_count, align 4, !tbaa !5
  %1462 = load i32, ptr %238, align 4, !tbaa !5
  %1463 = call ptr @s2n_strerror(i32 noundef %1462, ptr noundef nonnull @.str.4) #11
  %1464 = load i32, ptr %238, align 4, !tbaa !5
  %1465 = call ptr @s2n_strerror_debug(i32 noundef %1464, ptr noundef nonnull @.str.4) #11
  %1466 = load i32, ptr %292, align 4, !tbaa !5
  %1467 = call ptr @strerror(i32 noundef %1466) #11
  %1468 = load i32, ptr %292, align 4, !tbaa !5
  %1469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1460, ptr noundef nonnull %.str.5.sink841, i32 noundef %1461, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 176, ptr noundef %1463, ptr noundef %1465, ptr noundef %1467, i32 noundef %1468) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1470:                                             ; preds = %1437
  %1471 = load i32, ptr @test_count, align 4, !tbaa !5
  %1472 = add nsw i32 %1471, 1
  store i32 %1472, ptr @test_count, align 4, !tbaa !5
  %1473 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_cert_authorities_extension, i64 24), align 8, !tbaa !54
  %1474 = load ptr, ptr %17, align 8, !tbaa !9
  %1475 = call zeroext i1 %1473(ptr noundef %1474) #11
  br i1 %1475, label %1476, label %1498

1476:                                             ; preds = %1470
  %1477 = load i32, ptr %292, align 4, !tbaa !5
  %1478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1479 = call i32 @s2n_print_stacktrace(ptr noundef %1478) #11
  %1480 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1481 = trunc nuw i8 %1480 to i1
  br i1 %1481, label %1482, label %1486

1482:                                             ; preds = %1476
  %1483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1484 = call i32 @fileno(ptr noundef %1483) #11
  %1485 = call i32 @isatty(i32 noundef %1484) #11
  %.not343 = icmp eq i32 %1485, 0
  br i1 %.not343, label %1486, label %1487

1486:                                             ; preds = %1482, %1476
  br label %1487

1487:                                             ; preds = %1482, %1486
  %.str.5.sink850 = phi ptr [ @.str.5, %1486 ], [ @.str.2, %1482 ]
  store i32 %1477, ptr %292, align 4, !tbaa !5
  %1488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1489 = load i32, ptr @test_count, align 4, !tbaa !5
  %1490 = load i32, ptr %238, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror(i32 noundef %1490, ptr noundef nonnull @.str.4) #11
  %1492 = load i32, ptr %238, align 4, !tbaa !5
  %1493 = call ptr @s2n_strerror_debug(i32 noundef %1492, ptr noundef nonnull @.str.4) #11
  %1494 = load i32, ptr %292, align 4, !tbaa !5
  %1495 = call ptr @strerror(i32 noundef %1494) #11
  %1496 = load i32, ptr %292, align 4, !tbaa !5
  %1497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1488, ptr noundef nonnull %.str.5.sink850, i32 noundef %1489, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1491, ptr noundef %1493, ptr noundef %1495, i32 noundef %1496) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1498:                                             ; preds = %1470
  %1499 = load i32, ptr @test_count, align 4, !tbaa !5
  %1500 = add nsw i32 %1499, 1
  store i32 %1500, ptr @test_count, align 4, !tbaa !5
  %1501 = load ptr, ptr %16, align 8, !tbaa !9
  %1502 = getelementptr inbounds i8, ptr %1501, i64 448
  %1503 = call i32 @s2n_alloc(ptr noundef nonnull %1502, i32 noundef 10) #11
  %1504 = icmp eq i32 %1503, -1
  br i1 %1504, label %1505, label %1527

1505:                                             ; preds = %1498
  %1506 = load i32, ptr %292, align 4, !tbaa !5
  %1507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1508 = call i32 @s2n_print_stacktrace(ptr noundef %1507) #11
  %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) #11
  %1514 = call i32 @isatty(i32 noundef %1513) #11
  %.not342 = icmp eq i32 %1514, 0
  br i1 %.not342, label %1515, label %1516

1515:                                             ; preds = %1511, %1505
  br label %1516

1516:                                             ; preds = %1511, %1515
  %.str.5.sink859 = phi ptr [ @.str.5, %1515 ], [ @.str.2, %1511 ]
  store i32 %1506, ptr %292, 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 %238, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror(i32 noundef %1519, ptr noundef nonnull @.str.4) #11
  %1521 = load i32, ptr %238, align 4, !tbaa !5
  %1522 = call ptr @s2n_strerror_debug(i32 noundef %1521, ptr noundef nonnull @.str.4) #11
  %1523 = load i32, ptr %292, align 4, !tbaa !5
  %1524 = call ptr @strerror(i32 noundef %1523) #11
  %1525 = load i32, ptr %292, align 4, !tbaa !5
  %1526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1517, ptr noundef nonnull %.str.5.sink859, i32 noundef %1518, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %1520, ptr noundef %1522, ptr noundef %1524, i32 noundef %1525) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1527:                                             ; preds = %1498
  %1528 = load i32, ptr @test_count, align 4, !tbaa !5
  %1529 = add nsw i32 %1528, 1
  store i32 %1529, ptr @test_count, align 4, !tbaa !5
  %1530 = load ptr, ptr %17, align 8, !tbaa !9
  %1531 = call zeroext i1 %1473(ptr noundef %1530) #11
  br i1 %1531, label %1554, label %1532

1532:                                             ; preds = %1527
  %1533 = load i32, ptr %292, align 4, !tbaa !5
  %1534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1535 = call i32 @s2n_print_stacktrace(ptr noundef %1534) #11
  %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) #11
  %1541 = call i32 @isatty(i32 noundef %1540) #11
  %.not282 = icmp eq i32 %1541, 0
  br i1 %.not282, label %1542, label %1543

1542:                                             ; preds = %1538, %1532
  br label %1543

1543:                                             ; preds = %1538, %1542
  %.str.5.sink868 = phi ptr [ @.str.5, %1542 ], [ @.str.2, %1538 ]
  store i32 %1533, ptr %292, 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 %238, align 4, !tbaa !5
  %1547 = call ptr @s2n_strerror(i32 noundef %1546, ptr noundef nonnull @.str.4) #11
  %1548 = load i32, ptr %238, align 4, !tbaa !5
  %1549 = call ptr @s2n_strerror_debug(i32 noundef %1548, ptr noundef nonnull @.str.4) #11
  %1550 = load i32, ptr %292, align 4, !tbaa !5
  %1551 = call ptr @strerror(i32 noundef %1550) #11
  %1552 = load i32, ptr %292, align 4, !tbaa !5
  %1553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1544, ptr noundef nonnull %.str.5.sink868, i32 noundef %1545, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %1547, ptr noundef %1549, ptr noundef %1551, i32 noundef %1552) #13
  call void @exit(i32 noundef 1) #14
  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 ptr, ptr %16, align 8, !tbaa !9
  %1558 = getelementptr inbounds i8, ptr %1557, i64 448
  %1559 = call i32 @s2n_free(ptr noundef nonnull %1558) #11
  %1560 = icmp eq i32 %1559, -1
  br i1 %1560, label %1561, label %1583

1561:                                             ; preds = %1554
  %1562 = load i32, ptr %292, align 4, !tbaa !5
  %1563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1564 = call i32 @s2n_print_stacktrace(ptr noundef %1563) #11
  %1565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1566 = trunc nuw i8 %1565 to i1
  br i1 %1566, label %1567, label %1571

1567:                                             ; preds = %1561
  %1568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1569 = call i32 @fileno(ptr noundef %1568) #11
  %1570 = call i32 @isatty(i32 noundef %1569) #11
  %.not341 = icmp eq i32 %1570, 0
  br i1 %.not341, label %1571, label %1572

1571:                                             ; preds = %1567, %1561
  br label %1572

1572:                                             ; preds = %1567, %1571
  %.str.5.sink877 = phi ptr [ @.str.5, %1571 ], [ @.str.2, %1567 ]
  store i32 %1562, ptr %292, align 4, !tbaa !5
  %1573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1574 = load i32, ptr @test_count, align 4, !tbaa !5
  %1575 = load i32, ptr %238, align 4, !tbaa !5
  %1576 = call ptr @s2n_strerror(i32 noundef %1575, ptr noundef nonnull @.str.4) #11
  %1577 = load i32, ptr %238, align 4, !tbaa !5
  %1578 = call ptr @s2n_strerror_debug(i32 noundef %1577, ptr noundef nonnull @.str.4) #11
  %1579 = load i32, ptr %292, align 4, !tbaa !5
  %1580 = call ptr @strerror(i32 noundef %1579) #11
  %1581 = load i32, ptr %292, align 4, !tbaa !5
  %1582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1573, ptr noundef nonnull %.str.5.sink877, i32 noundef %1574, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 183, ptr noundef %1576, ptr noundef %1578, ptr noundef %1580, i32 noundef %1581) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1583:                                             ; preds = %1554
  %1584 = load i32, ptr @test_count, align 4, !tbaa !5
  %1585 = add nsw i32 %1584, 1
  store i32 %1585, ptr @test_count, align 4, !tbaa !5
  %1586 = load ptr, ptr %17, align 8, !tbaa !9
  %1587 = call zeroext i1 %1473(ptr noundef %1586) #11
  br i1 %1587, label %1588, label %1610

1588:                                             ; preds = %1583
  %1589 = load i32, ptr %292, align 4, !tbaa !5
  %1590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1591 = call i32 @s2n_print_stacktrace(ptr noundef %1590) #11
  %1592 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1593 = trunc nuw i8 %1592 to i1
  br i1 %1593, label %1594, label %1598

1594:                                             ; preds = %1588
  %1595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1596 = call i32 @fileno(ptr noundef %1595) #11
  %1597 = call i32 @isatty(i32 noundef %1596) #11
  %.not340 = icmp eq i32 %1597, 0
  br i1 %.not340, label %1598, label %1599

1598:                                             ; preds = %1594, %1588
  br label %1599

1599:                                             ; preds = %1594, %1598
  %.str.5.sink886 = phi ptr [ @.str.5, %1598 ], [ @.str.2, %1594 ]
  store i32 %1589, ptr %292, align 4, !tbaa !5
  %1600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1601 = load i32, ptr @test_count, align 4, !tbaa !5
  %1602 = load i32, ptr %238, align 4, !tbaa !5
  %1603 = call ptr @s2n_strerror(i32 noundef %1602, ptr noundef nonnull @.str.4) #11
  %1604 = load i32, ptr %238, align 4, !tbaa !5
  %1605 = call ptr @s2n_strerror_debug(i32 noundef %1604, ptr noundef nonnull @.str.4) #11
  %1606 = load i32, ptr %292, align 4, !tbaa !5
  %1607 = call ptr @strerror(i32 noundef %1606) #11
  %1608 = load i32, ptr %292, align 4, !tbaa !5
  %1609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1600, ptr noundef nonnull %.str.5.sink886, i32 noundef %1601, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %1603, ptr noundef %1605, ptr noundef %1607, i32 noundef %1608) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1610:                                             ; preds = %1583
  %1611 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %17) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #11
  %1612 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %16) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #11
  %1613 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #11
  br i1 %1613, label %1614, label %2162

1614:                                             ; preds = %1610
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #11
  %1615 = call ptr @s2n_config_new_minimal() #11
  store ptr %1615, ptr %18, align 8, !tbaa !9
  %1616 = load i32, ptr @test_count, align 4, !tbaa !5
  %1617 = add nsw i32 %1616, 1
  store i32 %1617, ptr @test_count, align 4, !tbaa !5
  %1618 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %1615) #11
  %1619 = icmp eq i32 %1618, -1
  br i1 %1619, label %1620, label %1642

1620:                                             ; preds = %1614
  %1621 = load i32, ptr %292, align 4, !tbaa !5
  %1622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1623 = call i32 @s2n_print_stacktrace(ptr noundef %1622) #11
  %1624 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1625 = trunc nuw i8 %1624 to i1
  br i1 %1625, label %1626, label %1630

1626:                                             ; preds = %1620
  %1627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1628 = call i32 @fileno(ptr noundef %1627) #11
  %1629 = call i32 @isatty(i32 noundef %1628) #11
  %.not339 = icmp eq i32 %1629, 0
  br i1 %.not339, label %1630, label %1631

1630:                                             ; preds = %1626, %1620
  br label %1631

1631:                                             ; preds = %1626, %1630
  %.str.5.sink895 = phi ptr [ @.str.5, %1630 ], [ @.str.2, %1626 ]
  store i32 %1621, ptr %292, align 4, !tbaa !5
  %1632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1633 = load i32, ptr @test_count, align 4, !tbaa !5
  %1634 = load i32, ptr %238, align 4, !tbaa !5
  %1635 = call ptr @s2n_strerror(i32 noundef %1634, ptr noundef nonnull @.str.4) #11
  %1636 = load i32, ptr %238, align 4, !tbaa !5
  %1637 = call ptr @s2n_strerror_debug(i32 noundef %1636, ptr noundef nonnull @.str.4) #11
  %1638 = load i32, ptr %292, align 4, !tbaa !5
  %1639 = call ptr @strerror(i32 noundef %1638) #11
  %1640 = load i32, ptr %292, align 4, !tbaa !5
  %1641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1632, ptr noundef nonnull %.str.5.sink895, i32 noundef %1633, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 197, ptr noundef %1635, ptr noundef %1637, ptr noundef %1639, i32 noundef %1640) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1642:                                             ; preds = %1614
  %1643 = load i32, ptr @test_count, align 4, !tbaa !5
  %1644 = add nsw i32 %1643, 1
  store i32 %1644, ptr @test_count, align 4, !tbaa !5
  %1645 = load ptr, ptr %18, align 8, !tbaa !9
  %1646 = load ptr, ptr %3, align 8, !tbaa !9
  %1647 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1645, ptr noundef %1646) #11
  %1648 = icmp eq i32 %1647, -1
  br i1 %1648, label %1649, label %1671

1649:                                             ; preds = %1642
  %1650 = load i32, ptr %292, align 4, !tbaa !5
  %1651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1652 = call i32 @s2n_print_stacktrace(ptr noundef %1651) #11
  %1653 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1654 = trunc nuw i8 %1653 to i1
  br i1 %1654, label %1655, label %1659

1655:                                             ; preds = %1649
  %1656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1657 = call i32 @fileno(ptr noundef %1656) #11
  %1658 = call i32 @isatty(i32 noundef %1657) #11
  %.not338 = icmp eq i32 %1658, 0
  br i1 %.not338, label %1659, label %1660

1659:                                             ; preds = %1655, %1649
  br label %1660

1660:                                             ; preds = %1655, %1659
  %.str.5.sink904 = phi ptr [ @.str.5, %1659 ], [ @.str.2, %1655 ]
  store i32 %1650, ptr %292, align 4, !tbaa !5
  %1661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1662 = load i32, ptr @test_count, align 4, !tbaa !5
  %1663 = load i32, ptr %238, align 4, !tbaa !5
  %1664 = call ptr @s2n_strerror(i32 noundef %1663, ptr noundef nonnull @.str.4) #11
  %1665 = load i32, ptr %238, align 4, !tbaa !5
  %1666 = call ptr @s2n_strerror_debug(i32 noundef %1665, ptr noundef nonnull @.str.4) #11
  %1667 = load i32, ptr %292, align 4, !tbaa !5
  %1668 = call ptr @strerror(i32 noundef %1667) #11
  %1669 = load i32, ptr %292, align 4, !tbaa !5
  %1670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1661, ptr noundef nonnull %.str.5.sink904, i32 noundef %1662, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 198, ptr noundef %1664, ptr noundef %1666, ptr noundef %1668, i32 noundef %1669) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1671:                                             ; preds = %1642
  %1672 = load i32, ptr @test_count, align 4, !tbaa !5
  %1673 = add nsw i32 %1672, 1
  store i32 %1673, ptr @test_count, align 4, !tbaa !5
  %1674 = load ptr, ptr %18, align 8, !tbaa !9
  %1675 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1674, ptr noundef nonnull @.str.48) #11
  %1676 = icmp eq i32 %1675, -1
  br i1 %1676, label %1677, label %1699

1677:                                             ; preds = %1671
  %1678 = load i32, ptr %292, align 4, !tbaa !5
  %1679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1680 = call i32 @s2n_print_stacktrace(ptr noundef %1679) #11
  %1681 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1682 = trunc nuw i8 %1681 to i1
  br i1 %1682, label %1683, label %1687

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

1687:                                             ; preds = %1683, %1677
  br label %1688

1688:                                             ; preds = %1683, %1687
  %.str.5.sink913 = phi ptr [ @.str.5, %1687 ], [ @.str.2, %1683 ]
  store i32 %1678, ptr %292, align 4, !tbaa !5
  %1689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1690 = load i32, ptr @test_count, align 4, !tbaa !5
  %1691 = load i32, ptr %238, align 4, !tbaa !5
  %1692 = call ptr @s2n_strerror(i32 noundef %1691, ptr noundef nonnull @.str.4) #11
  %1693 = load i32, ptr %238, align 4, !tbaa !5
  %1694 = call ptr @s2n_strerror_debug(i32 noundef %1693, ptr noundef nonnull @.str.4) #11
  %1695 = load i32, ptr %292, align 4, !tbaa !5
  %1696 = call ptr @strerror(i32 noundef %1695) #11
  %1697 = load i32, ptr %292, align 4, !tbaa !5
  %1698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1689, ptr noundef nonnull %.str.5.sink913, i32 noundef %1690, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %1692, ptr noundef %1694, ptr noundef %1696, i32 noundef %1697) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1699:                                             ; preds = %1671
  %1700 = load i32, ptr @test_count, align 4, !tbaa !5
  %1701 = add nsw i32 %1700, 1
  store i32 %1701, ptr @test_count, align 4, !tbaa !5
  %1702 = load ptr, ptr %18, align 8, !tbaa !9
  %1703 = getelementptr inbounds i8, ptr %1702, i64 448
  %1704 = call i32 @s2n_alloc(ptr noundef nonnull %1703, i32 noundef 10) #11
  %1705 = icmp eq i32 %1704, -1
  br i1 %1705, label %1706, label %1728

1706:                                             ; preds = %1699
  %1707 = load i32, ptr %292, align 4, !tbaa !5
  %1708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1709 = call i32 @s2n_print_stacktrace(ptr noundef %1708) #11
  %1710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1711 = trunc nuw i8 %1710 to i1
  br i1 %1711, label %1712, label %1716

1712:                                             ; preds = %1706
  %1713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1714 = call i32 @fileno(ptr noundef %1713) #11
  %1715 = call i32 @isatty(i32 noundef %1714) #11
  %.not336 = icmp eq i32 %1715, 0
  br i1 %.not336, label %1716, label %1717

1716:                                             ; preds = %1712, %1706
  br label %1717

1717:                                             ; preds = %1712, %1716
  %.str.5.sink922 = phi ptr [ @.str.5, %1716 ], [ @.str.2, %1712 ]
  store i32 %1707, ptr %292, align 4, !tbaa !5
  %1718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1719 = load i32, ptr @test_count, align 4, !tbaa !5
  %1720 = load i32, ptr %238, align 4, !tbaa !5
  %1721 = call ptr @s2n_strerror(i32 noundef %1720, ptr noundef nonnull @.str.4) #11
  %1722 = load i32, ptr %238, align 4, !tbaa !5
  %1723 = call ptr @s2n_strerror_debug(i32 noundef %1722, ptr noundef nonnull @.str.4) #11
  %1724 = load i32, ptr %292, align 4, !tbaa !5
  %1725 = call ptr @strerror(i32 noundef %1724) #11
  %1726 = load i32, ptr %292, align 4, !tbaa !5
  %1727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1718, ptr noundef nonnull %.str.5.sink922, i32 noundef %1719, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 200, ptr noundef %1721, ptr noundef %1723, ptr noundef %1725, i32 noundef %1726) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1728:                                             ; preds = %1699
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #11
  %1729 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %1729, ptr %19, align 8, !tbaa !9
  %1730 = load i32, ptr @test_count, align 4, !tbaa !5
  %1731 = add nsw i32 %1730, 1
  store i32 %1731, ptr @test_count, align 4, !tbaa !5
  %1732 = load ptr, ptr %18, align 8, !tbaa !9
  %1733 = call i32 @s2n_connection_set_config(ptr noundef %1729, ptr noundef %1732) #11
  %1734 = icmp eq i32 %1733, -1
  br i1 %1734, label %1735, label %1757

1735:                                             ; preds = %1728
  %1736 = load i32, ptr %292, align 4, !tbaa !5
  %1737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1738 = call i32 @s2n_print_stacktrace(ptr noundef %1737) #11
  %1739 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1740 = trunc nuw i8 %1739 to i1
  br i1 %1740, label %1741, label %1745

1741:                                             ; preds = %1735
  %1742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1743 = call i32 @fileno(ptr noundef %1742) #11
  %1744 = call i32 @isatty(i32 noundef %1743) #11
  %.not335 = icmp eq i32 %1744, 0
  br i1 %.not335, label %1745, label %1746

1745:                                             ; preds = %1741, %1735
  br label %1746

1746:                                             ; preds = %1741, %1745
  %.str.5.sink931 = phi ptr [ @.str.5, %1745 ], [ @.str.2, %1741 ]
  store i32 %1736, ptr %292, align 4, !tbaa !5
  %1747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1748 = load i32, ptr @test_count, align 4, !tbaa !5
  %1749 = load i32, ptr %238, align 4, !tbaa !5
  %1750 = call ptr @s2n_strerror(i32 noundef %1749, ptr noundef nonnull @.str.4) #11
  %1751 = load i32, ptr %238, align 4, !tbaa !5
  %1752 = call ptr @s2n_strerror_debug(i32 noundef %1751, ptr noundef nonnull @.str.4) #11
  %1753 = load i32, ptr %292, align 4, !tbaa !5
  %1754 = call ptr @strerror(i32 noundef %1753) #11
  %1755 = load i32, ptr %292, align 4, !tbaa !5
  %1756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1747, ptr noundef nonnull %.str.5.sink931, i32 noundef %1748, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 204, ptr noundef %1750, ptr noundef %1752, ptr noundef %1754, i32 noundef %1755) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1757:                                             ; preds = %1728
  %1758 = load i32, ptr @test_count, align 4, !tbaa !5
  %1759 = add nsw i32 %1758, 1
  store i32 %1759, ptr @test_count, align 4, !tbaa !5
  %1760 = load ptr, ptr %19, align 8, !tbaa !9
  %1761 = call i32 @s2n_client_hello_send(ptr noundef %1760) #11
  %1762 = icmp eq i32 %1761, -1
  br i1 %1762, label %1763, label %1785

1763:                                             ; preds = %1757
  %1764 = load i32, ptr %292, align 4, !tbaa !5
  %1765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1766 = call i32 @s2n_print_stacktrace(ptr noundef %1765) #11
  %1767 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1768 = trunc nuw i8 %1767 to i1
  br i1 %1768, label %1769, label %1773

1769:                                             ; preds = %1763
  %1770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1771 = call i32 @fileno(ptr noundef %1770) #11
  %1772 = call i32 @isatty(i32 noundef %1771) #11
  %.not334 = icmp eq i32 %1772, 0
  br i1 %.not334, label %1773, label %1774

1773:                                             ; preds = %1769, %1763
  br label %1774

1774:                                             ; preds = %1769, %1773
  %.str.5.sink940 = phi ptr [ @.str.5, %1773 ], [ @.str.2, %1769 ]
  store i32 %1764, ptr %292, align 4, !tbaa !5
  %1775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1776 = load i32, ptr @test_count, align 4, !tbaa !5
  %1777 = load i32, ptr %238, align 4, !tbaa !5
  %1778 = call ptr @s2n_strerror(i32 noundef %1777, ptr noundef nonnull @.str.4) #11
  %1779 = load i32, ptr %238, align 4, !tbaa !5
  %1780 = call ptr @s2n_strerror_debug(i32 noundef %1779, ptr noundef nonnull @.str.4) #11
  %1781 = load i32, ptr %292, align 4, !tbaa !5
  %1782 = call ptr @strerror(i32 noundef %1781) #11
  %1783 = load i32, ptr %292, align 4, !tbaa !5
  %1784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1775, ptr noundef nonnull %.str.5.sink940, i32 noundef %1776, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 205, ptr noundef %1778, ptr noundef %1780, ptr noundef %1782, i32 noundef %1783) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1785:                                             ; preds = %1757
  %1786 = load i32, ptr @test_count, align 4, !tbaa !5
  %1787 = add nsw i32 %1786, 1
  store i32 %1787, ptr @test_count, align 4, !tbaa !5
  %1788 = load ptr, ptr %19, align 8, !tbaa !9
  %1789 = call i32 @s2n_parse_client_hello(ptr noundef %1788) #11
  %1790 = icmp eq i32 %1789, -1
  br i1 %1790, label %1791, label %1813

1791:                                             ; preds = %1785
  %1792 = load i32, ptr %292, align 4, !tbaa !5
  %1793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1794 = call i32 @s2n_print_stacktrace(ptr noundef %1793) #11
  %1795 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1796 = trunc nuw i8 %1795 to i1
  br i1 %1796, label %1797, label %1801

1797:                                             ; preds = %1791
  %1798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1799 = call i32 @fileno(ptr noundef %1798) #11
  %1800 = call i32 @isatty(i32 noundef %1799) #11
  %.not333 = icmp eq i32 %1800, 0
  br i1 %.not333, label %1801, label %1802

1801:                                             ; preds = %1797, %1791
  br label %1802

1802:                                             ; preds = %1797, %1801
  %.str.5.sink949 = phi ptr [ @.str.5, %1801 ], [ @.str.2, %1797 ]
  store i32 %1792, ptr %292, align 4, !tbaa !5
  %1803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1804 = load i32, ptr @test_count, align 4, !tbaa !5
  %1805 = load i32, ptr %238, align 4, !tbaa !5
  %1806 = call ptr @s2n_strerror(i32 noundef %1805, ptr noundef nonnull @.str.4) #11
  %1807 = load i32, ptr %238, align 4, !tbaa !5
  %1808 = call ptr @s2n_strerror_debug(i32 noundef %1807, ptr noundef nonnull @.str.4) #11
  %1809 = load i32, ptr %292, align 4, !tbaa !5
  %1810 = call ptr @strerror(i32 noundef %1809) #11
  %1811 = load i32, ptr %292, align 4, !tbaa !5
  %1812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1803, ptr noundef nonnull %.str.5.sink949, i32 noundef %1804, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %1806, ptr noundef %1808, ptr noundef %1810, i32 noundef %1811) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1813:                                             ; preds = %1785
  %1814 = load ptr, ptr %19, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #11
  %1815 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %1815, ptr %20, align 8, !tbaa !9
  %1816 = load i32, ptr @test_count, align 4, !tbaa !5
  %1817 = add nsw i32 %1816, 1
  store i32 %1817, ptr @test_count, align 4, !tbaa !5
  %1818 = load ptr, ptr %18, align 8, !tbaa !9
  %1819 = call i32 @s2n_connection_set_config(ptr noundef %1815, ptr noundef %1818) #11
  %1820 = icmp eq i32 %1819, -1
  br i1 %1820, label %1821, label %1843

1821:                                             ; preds = %1813
  %1822 = load i32, ptr %292, align 4, !tbaa !5
  %1823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1824 = call i32 @s2n_print_stacktrace(ptr noundef %1823) #11
  %1825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1826 = trunc nuw i8 %1825 to i1
  br i1 %1826, label %1827, label %1831

1827:                                             ; preds = %1821
  %1828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1829 = call i32 @fileno(ptr noundef %1828) #11
  %1830 = call i32 @isatty(i32 noundef %1829) #11
  %.not332 = icmp eq i32 %1830, 0
  br i1 %.not332, label %1831, label %1832

1831:                                             ; preds = %1827, %1821
  br label %1832

1832:                                             ; preds = %1827, %1831
  %.str.5.sink958 = phi ptr [ @.str.5, %1831 ], [ @.str.2, %1827 ]
  store i32 %1822, ptr %292, align 4, !tbaa !5
  %1833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1834 = load i32, ptr @test_count, align 4, !tbaa !5
  %1835 = load i32, ptr %238, align 4, !tbaa !5
  %1836 = call ptr @s2n_strerror(i32 noundef %1835, ptr noundef nonnull @.str.4) #11
  %1837 = load i32, ptr %238, align 4, !tbaa !5
  %1838 = call ptr @s2n_strerror_debug(i32 noundef %1837, ptr noundef nonnull @.str.4) #11
  %1839 = load i32, ptr %292, align 4, !tbaa !5
  %1840 = call ptr @strerror(i32 noundef %1839) #11
  %1841 = load i32, ptr %292, align 4, !tbaa !5
  %1842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1833, ptr noundef nonnull %.str.5.sink958, i32 noundef %1834, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 211, ptr noundef %1836, ptr noundef %1838, ptr noundef %1840, i32 noundef %1841) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1843:                                             ; preds = %1813
  %1844 = getelementptr inbounds i8, ptr %1814, i64 2896
  %1845 = load ptr, ptr %20, align 8, !tbaa !9
  %1846 = getelementptr inbounds i8, ptr %1845, i64 2016
  %1847 = getelementptr inbounds i8, ptr %1814, i64 2904
  %1848 = load i32, ptr %1847, align 8, !tbaa !55
  %1849 = getelementptr inbounds i8, ptr %1814, i64 3592
  %1850 = getelementptr inbounds i8, ptr %1814, i64 3600
  %1851 = load i32, ptr %1850, align 8, !tbaa !56
  %1852 = add i32 %1848, -2
  %1853 = sub i32 %1852, %1851
  %1854 = load i32, ptr @test_count, align 4, !tbaa !5
  %1855 = add nsw i32 %1854, 1
  store i32 %1855, ptr @test_count, align 4, !tbaa !5
  %1856 = load ptr, ptr %1844, align 8, !tbaa !57
  %1857 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %1846, ptr noundef %1856, i32 noundef %1853) #11
  %1858 = icmp eq i32 %1857, -1
  br i1 %1858, label %1859, label %1881

1859:                                             ; preds = %1843
  %1860 = load i32, ptr %292, align 4, !tbaa !5
  %1861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1862 = call i32 @s2n_print_stacktrace(ptr noundef %1861) #11
  %1863 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1864 = trunc nuw i8 %1863 to i1
  br i1 %1864, label %1865, label %1869

1865:                                             ; preds = %1859
  %1866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1867 = call i32 @fileno(ptr noundef %1866) #11
  %1868 = call i32 @isatty(i32 noundef %1867) #11
  %.not331 = icmp eq i32 %1868, 0
  br i1 %.not331, label %1869, label %1870

1869:                                             ; preds = %1865, %1859
  br label %1870

1870:                                             ; preds = %1865, %1869
  %.str.5.sink967 = phi ptr [ @.str.5, %1869 ], [ @.str.2, %1865 ]
  store i32 %1860, ptr %292, align 4, !tbaa !5
  %1871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1872 = load i32, ptr @test_count, align 4, !tbaa !5
  %1873 = load i32, ptr %238, align 4, !tbaa !5
  %1874 = call ptr @s2n_strerror(i32 noundef %1873, ptr noundef nonnull @.str.4) #11
  %1875 = load i32, ptr %238, align 4, !tbaa !5
  %1876 = call ptr @s2n_strerror_debug(i32 noundef %1875, ptr noundef nonnull @.str.4) #11
  %1877 = load i32, ptr %292, align 4, !tbaa !5
  %1878 = call ptr @strerror(i32 noundef %1877) #11
  %1879 = load i32, ptr %292, align 4, !tbaa !5
  %1880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1871, ptr noundef nonnull %.str.5.sink967, i32 noundef %1872, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %1874, ptr noundef %1876, ptr noundef %1878, i32 noundef %1879) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1881:                                             ; preds = %1843
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %21) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %21, i8 0, i64 16, i1 false)
  %1882 = load i32, ptr @test_count, align 4, !tbaa !5
  %1883 = add nsw i32 %1882, 1
  store i32 %1883, ptr @test_count, align 4, !tbaa !5
  %1884 = call i32 @s2n_stuffer_reserve_uint16(ptr noundef nonnull %1846, ptr noundef nonnull %21) #11
  %1885 = icmp eq i32 %1884, -1
  br i1 %1885, label %1886, label %1908

1886:                                             ; preds = %1881
  %1887 = load i32, ptr %292, align 4, !tbaa !5
  %1888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1889 = call i32 @s2n_print_stacktrace(ptr noundef %1888) #11
  %1890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1891 = trunc nuw i8 %1890 to i1
  br i1 %1891, label %1892, label %1896

1892:                                             ; preds = %1886
  %1893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1894 = call i32 @fileno(ptr noundef %1893) #11
  %1895 = call i32 @isatty(i32 noundef %1894) #11
  %.not330 = icmp eq i32 %1895, 0
  br i1 %.not330, label %1896, label %1897

1896:                                             ; preds = %1892, %1886
  br label %1897

1897:                                             ; preds = %1892, %1896
  %.str.5.sink976 = phi ptr [ @.str.5, %1896 ], [ @.str.2, %1892 ]
  store i32 %1887, ptr %292, align 4, !tbaa !5
  %1898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1899 = load i32, ptr @test_count, align 4, !tbaa !5
  %1900 = load i32, ptr %238, align 4, !tbaa !5
  %1901 = call ptr @s2n_strerror(i32 noundef %1900, ptr noundef nonnull @.str.4) #11
  %1902 = load i32, ptr %238, align 4, !tbaa !5
  %1903 = call ptr @s2n_strerror_debug(i32 noundef %1902, ptr noundef nonnull @.str.4) #11
  %1904 = load i32, ptr %292, align 4, !tbaa !5
  %1905 = call ptr @strerror(i32 noundef %1904) #11
  %1906 = load i32, ptr %292, align 4, !tbaa !5
  %1907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1898, ptr noundef nonnull %.str.5.sink976, i32 noundef %1899, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 223, ptr noundef %1901, ptr noundef %1903, ptr noundef %1905, i32 noundef %1906) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1908:                                             ; preds = %1881
  %1909 = load ptr, ptr %20, align 8, !tbaa !9
  %1910 = getelementptr inbounds i8, ptr %1909, i64 220
  store i8 34, ptr %1910, align 4, !tbaa !26
  %1911 = load i32, ptr @test_count, align 4, !tbaa !5
  %1912 = add nsw i32 %1911, 1
  store i32 %1912, ptr @test_count, align 4, !tbaa !5
  %1913 = call i32 @s2n_extension_send(ptr noundef nonnull @s2n_cert_authorities_extension, ptr noundef %1909, ptr noundef nonnull %1846) #11
  %1914 = icmp eq i32 %1913, -1
  br i1 %1914, label %1915, label %1937

1915:                                             ; preds = %1908
  %1916 = load i32, ptr %292, align 4, !tbaa !5
  %1917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1918 = call i32 @s2n_print_stacktrace(ptr noundef %1917) #11
  %1919 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1920 = trunc nuw i8 %1919 to i1
  br i1 %1920, label %1921, label %1925

1921:                                             ; preds = %1915
  %1922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1923 = call i32 @fileno(ptr noundef %1922) #11
  %1924 = call i32 @isatty(i32 noundef %1923) #11
  %.not329 = icmp eq i32 %1924, 0
  br i1 %.not329, label %1925, label %1926

1925:                                             ; preds = %1921, %1915
  br label %1926

1926:                                             ; preds = %1921, %1925
  %.str.5.sink985 = phi ptr [ @.str.5, %1925 ], [ @.str.2, %1921 ]
  store i32 %1916, ptr %292, align 4, !tbaa !5
  %1927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1928 = load i32, ptr @test_count, align 4, !tbaa !5
  %1929 = load i32, ptr %238, align 4, !tbaa !5
  %1930 = call ptr @s2n_strerror(i32 noundef %1929, ptr noundef nonnull @.str.4) #11
  %1931 = load i32, ptr %238, align 4, !tbaa !5
  %1932 = call ptr @s2n_strerror_debug(i32 noundef %1931, ptr noundef nonnull @.str.4) #11
  %1933 = load i32, ptr %292, align 4, !tbaa !5
  %1934 = call ptr @strerror(i32 noundef %1933) #11
  %1935 = load i32, ptr %292, align 4, !tbaa !5
  %1936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1927, ptr noundef nonnull %.str.5.sink985, i32 noundef %1928, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 230, ptr noundef %1930, ptr noundef %1932, ptr noundef %1934, i32 noundef %1935) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1937:                                             ; preds = %1908
  %1938 = load i32, ptr @test_count, align 4, !tbaa !5
  %1939 = add nsw i32 %1938, 1
  store i32 %1939, ptr @test_count, align 4, !tbaa !5
  %1940 = call i32 @s2n_stuffer_write(ptr noundef nonnull %1846, ptr noundef nonnull %1849) #11
  %1941 = icmp eq i32 %1940, -1
  br i1 %1941, label %1942, label %1964

1942:                                             ; preds = %1937
  %1943 = load i32, ptr %292, align 4, !tbaa !5
  %1944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1945 = call i32 @s2n_print_stacktrace(ptr noundef %1944) #11
  %1946 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1947 = trunc nuw i8 %1946 to i1
  br i1 %1947, label %1948, label %1952

1948:                                             ; preds = %1942
  %1949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1950 = call i32 @fileno(ptr noundef %1949) #11
  %1951 = call i32 @isatty(i32 noundef %1950) #11
  %.not328 = icmp eq i32 %1951, 0
  br i1 %.not328, label %1952, label %1953

1952:                                             ; preds = %1948, %1942
  br label %1953

1953:                                             ; preds = %1948, %1952
  %.str.5.sink994 = phi ptr [ @.str.5, %1952 ], [ @.str.2, %1948 ]
  store i32 %1943, ptr %292, align 4, !tbaa !5
  %1954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1955 = load i32, ptr @test_count, align 4, !tbaa !5
  %1956 = load i32, ptr %238, align 4, !tbaa !5
  %1957 = call ptr @s2n_strerror(i32 noundef %1956, ptr noundef nonnull @.str.4) #11
  %1958 = load i32, ptr %238, align 4, !tbaa !5
  %1959 = call ptr @s2n_strerror_debug(i32 noundef %1958, ptr noundef nonnull @.str.4) #11
  %1960 = load i32, ptr %292, align 4, !tbaa !5
  %1961 = call ptr @strerror(i32 noundef %1960) #11
  %1962 = load i32, ptr %292, align 4, !tbaa !5
  %1963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1954, ptr noundef nonnull %.str.5.sink994, i32 noundef %1955, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %1957, ptr noundef %1959, ptr noundef %1961, i32 noundef %1962) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1964:                                             ; preds = %1937
  %1965 = load i32, ptr @test_count, align 4, !tbaa !5
  %1966 = add nsw i32 %1965, 1
  store i32 %1966, ptr @test_count, align 4, !tbaa !5
  %1967 = call i32 @s2n_stuffer_write_vector_size(ptr noundef nonnull %21) #11
  %1968 = icmp eq i32 %1967, -1
  br i1 %1968, label %1969, label %1991

1969:                                             ; preds = %1964
  %1970 = load i32, ptr %292, align 4, !tbaa !5
  %1971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1972 = call i32 @s2n_print_stacktrace(ptr noundef %1971) #11
  %1973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1974 = trunc nuw i8 %1973 to i1
  br i1 %1974, label %1975, label %1979

1975:                                             ; preds = %1969
  %1976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1977 = call i32 @fileno(ptr noundef %1976) #11
  %1978 = call i32 @isatty(i32 noundef %1977) #11
  %.not327 = icmp eq i32 %1978, 0
  br i1 %.not327, label %1979, label %1980

1979:                                             ; preds = %1975, %1969
  br label %1980

1980:                                             ; preds = %1975, %1979
  %.str.5.sink1003 = phi ptr [ @.str.5, %1979 ], [ @.str.2, %1975 ]
  store i32 %1970, ptr %292, align 4, !tbaa !5
  %1981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1982 = load i32, ptr @test_count, align 4, !tbaa !5
  %1983 = load i32, ptr %238, align 4, !tbaa !5
  %1984 = call ptr @s2n_strerror(i32 noundef %1983, ptr noundef nonnull @.str.4) #11
  %1985 = load i32, ptr %238, align 4, !tbaa !5
  %1986 = call ptr @s2n_strerror_debug(i32 noundef %1985, ptr noundef nonnull @.str.4) #11
  %1987 = load i32, ptr %292, align 4, !tbaa !5
  %1988 = call ptr @strerror(i32 noundef %1987) #11
  %1989 = load i32, ptr %292, align 4, !tbaa !5
  %1990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1981, ptr noundef nonnull %.str.5.sink1003, i32 noundef %1982, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 236, ptr noundef %1984, ptr noundef %1986, ptr noundef %1988, i32 noundef %1989) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1991:                                             ; preds = %1964
  %1992 = load i32, ptr @test_count, align 4, !tbaa !5
  %1993 = add nsw i32 %1992, 1
  store i32 %1993, ptr @test_count, align 4, !tbaa !5
  %1994 = load ptr, ptr %20, align 8, !tbaa !9
  %1995 = call i32 @s2n_client_hello_recv(ptr noundef %1994) #11
  %1996 = icmp eq i32 %1995, -1
  br i1 %1996, label %1997, label %2019

1997:                                             ; preds = %1991
  %1998 = load i32, ptr %292, align 4, !tbaa !5
  %1999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2000 = call i32 @s2n_print_stacktrace(ptr noundef %1999) #11
  %2001 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2002 = trunc nuw i8 %2001 to i1
  br i1 %2002, label %2003, label %2007

2003:                                             ; preds = %1997
  %2004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2005 = call i32 @fileno(ptr noundef %2004) #11
  %2006 = call i32 @isatty(i32 noundef %2005) #11
  %.not326 = icmp eq i32 %2006, 0
  br i1 %.not326, label %2007, label %2008

2007:                                             ; preds = %2003, %1997
  br label %2008

2008:                                             ; preds = %2003, %2007
  %.str.5.sink1012 = phi ptr [ @.str.5, %2007 ], [ @.str.2, %2003 ]
  store i32 %1998, ptr %292, align 4, !tbaa !5
  %2009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2010 = load i32, ptr @test_count, align 4, !tbaa !5
  %2011 = load i32, ptr %238, align 4, !tbaa !5
  %2012 = call ptr @s2n_strerror(i32 noundef %2011, ptr noundef nonnull @.str.4) #11
  %2013 = load i32, ptr %238, align 4, !tbaa !5
  %2014 = call ptr @s2n_strerror_debug(i32 noundef %2013, ptr noundef nonnull @.str.4) #11
  %2015 = load i32, ptr %292, align 4, !tbaa !5
  %2016 = call ptr @strerror(i32 noundef %2015) #11
  %2017 = load i32, ptr %292, align 4, !tbaa !5
  %2018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2009, ptr noundef nonnull %.str.5.sink1012, i32 noundef %2010, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 239, ptr noundef %2012, ptr noundef %2014, ptr noundef %2016, i32 noundef %2017) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2019:                                             ; preds = %1991
  %2020 = load i32, ptr @test_count, align 4, !tbaa !5
  %2021 = add nsw i32 %2020, 1
  store i32 %2021, ptr @test_count, align 4, !tbaa !5
  %2022 = load ptr, ptr %20, align 8, !tbaa !9
  %2023 = getelementptr inbounds i8, ptr %2022, i64 3698
  %2024 = load i8, ptr %2023, align 2
  %2025 = and i8 %2024, 16
  %.not283 = icmp eq i8 %2025, 0
  br i1 %.not283, label %2026, label %2048

2026:                                             ; preds = %2019
  %2027 = load i32, ptr %292, align 4, !tbaa !5
  %2028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2029 = call i32 @s2n_print_stacktrace(ptr noundef %2028) #11
  %2030 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2031 = trunc nuw i8 %2030 to i1
  br i1 %2031, label %2032, label %2036

2032:                                             ; preds = %2026
  %2033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2034 = call i32 @fileno(ptr noundef %2033) #11
  %2035 = call i32 @isatty(i32 noundef %2034) #11
  %.not284 = icmp eq i32 %2035, 0
  br i1 %.not284, label %2036, label %2037

2036:                                             ; preds = %2032, %2026
  br label %2037

2037:                                             ; preds = %2032, %2036
  %.str.5.sink1021 = phi ptr [ @.str.5, %2036 ], [ @.str.2, %2032 ]
  store i32 %2027, ptr %292, align 4, !tbaa !5
  %2038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2039 = load i32, ptr @test_count, align 4, !tbaa !5
  %2040 = load i32, ptr %238, align 4, !tbaa !5
  %2041 = call ptr @s2n_strerror(i32 noundef %2040, ptr noundef nonnull @.str.4) #11
  %2042 = load i32, ptr %238, align 4, !tbaa !5
  %2043 = call ptr @s2n_strerror_debug(i32 noundef %2042, ptr noundef nonnull @.str.4) #11
  %2044 = load i32, ptr %292, align 4, !tbaa !5
  %2045 = call ptr @strerror(i32 noundef %2044) #11
  %2046 = load i32, ptr %292, align 4, !tbaa !5
  %2047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2038, ptr noundef nonnull %.str.5.sink1021, i32 noundef %2039, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 240, ptr noundef %2041, ptr noundef %2043, ptr noundef %2045, i32 noundef %2046) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2048:                                             ; preds = %2019
  %2049 = add nsw i32 %2020, 2
  store i32 %2049, ptr @test_count, align 4, !tbaa !5
  %2050 = getelementptr inbounds i8, ptr %2022, i64 220
  %2051 = load i8, ptr %2050, align 4, !tbaa !26
  %2052 = icmp eq i8 %2051, 34
  br i1 %2052, label %2075, label %2053

2053:                                             ; preds = %2048
  %2054 = load i32, ptr %292, align 4, !tbaa !5
  %2055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2056 = call i32 @s2n_print_stacktrace(ptr noundef %2055) #11
  %2057 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2058 = trunc nuw i8 %2057 to i1
  br i1 %2058, label %2059, label %2063

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

2063:                                             ; preds = %2059, %2053
  br label %2064

2064:                                             ; preds = %2059, %2063
  %.str.5.sink1030 = phi ptr [ @.str.5, %2063 ], [ @.str.2, %2059 ]
  store i32 %2054, ptr %292, align 4, !tbaa !5
  %2065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2066 = load i32, ptr @test_count, align 4, !tbaa !5
  %2067 = load i32, ptr %238, align 4, !tbaa !5
  %2068 = call ptr @s2n_strerror(i32 noundef %2067, ptr noundef nonnull @.str.4) #11
  %2069 = load i32, ptr %238, align 4, !tbaa !5
  %2070 = call ptr @s2n_strerror_debug(i32 noundef %2069, ptr noundef nonnull @.str.4) #11
  %2071 = load i32, ptr %292, align 4, !tbaa !5
  %2072 = call ptr @strerror(i32 noundef %2071) #11
  %2073 = load i32, ptr %292, align 4, !tbaa !5
  %2074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2065, ptr noundef nonnull %.str.5.sink1030, i32 noundef %2066, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 241, ptr noundef %2068, ptr noundef %2070, ptr noundef %2072, i32 noundef %2073) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2075:                                             ; preds = %2048
  %2076 = getelementptr inbounds i8, ptr %2022, i64 2920
  %2077 = zext i8 %176 to i64
  %2078 = getelementptr inbounds [21 x %struct.s2n_parsed_extension], ptr %2076, i64 0, i64 %2077
  %2079 = add nsw i32 %2020, 3
  store i32 %2079, ptr @test_count, align 4, !tbaa !5
  %2080 = getelementptr inbounds i8, ptr %2078, i64 8
  %2081 = load i32, ptr %2080, align 8, !tbaa !58
  %.not286 = icmp eq i32 %2081, 0
  br i1 %.not286, label %2082, label %2104

2082:                                             ; preds = %2075
  %2083 = load i32, ptr %292, align 4, !tbaa !5
  %2084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2085 = call i32 @s2n_print_stacktrace(ptr noundef %2084) #11
  %2086 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2087 = trunc nuw i8 %2086 to i1
  br i1 %2087, label %2088, label %2092

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

2092:                                             ; preds = %2088, %2082
  br label %2093

2093:                                             ; preds = %2088, %2092
  %.str.5.sink1039 = phi ptr [ @.str.5, %2092 ], [ @.str.2, %2088 ]
  store i32 %2083, ptr %292, align 4, !tbaa !5
  %2094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2095 = load i32, ptr @test_count, align 4, !tbaa !5
  %2096 = load i32, ptr %238, align 4, !tbaa !5
  %2097 = call ptr @s2n_strerror(i32 noundef %2096, ptr noundef nonnull @.str.4) #11
  %2098 = load i32, ptr %238, align 4, !tbaa !5
  %2099 = call ptr @s2n_strerror_debug(i32 noundef %2098, ptr noundef nonnull @.str.4) #11
  %2100 = load i32, ptr %292, align 4, !tbaa !5
  %2101 = call ptr @strerror(i32 noundef %2100) #11
  %2102 = load i32, ptr %292, align 4, !tbaa !5
  %2103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2094, ptr noundef nonnull %.str.5.sink1039, i32 noundef %2095, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %2097, ptr noundef %2099, ptr noundef %2101, i32 noundef %2102) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2104:                                             ; preds = %2075
  %2105 = add nsw i32 %2020, 4
  store i32 %2105, ptr @test_count, align 4, !tbaa !5
  %2106 = getelementptr inbounds i8, ptr %2078, i64 28
  %2107 = load i8, ptr %2106, align 4
  %2108 = and i8 %2107, 1
  %.not288 = icmp eq i8 %2108, 0
  br i1 %.not288, label %2131, label %2109

2109:                                             ; preds = %2104
  %2110 = load i32, ptr %292, align 4, !tbaa !5
  %2111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2112 = call i32 @s2n_print_stacktrace(ptr noundef %2111) #11
  %2113 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2114 = trunc nuw i8 %2113 to i1
  br i1 %2114, label %2115, label %2119

2115:                                             ; preds = %2109
  %2116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2117 = call i32 @fileno(ptr noundef %2116) #11
  %2118 = call i32 @isatty(i32 noundef %2117) #11
  %.not325 = icmp eq i32 %2118, 0
  br i1 %.not325, label %2119, label %2120

2119:                                             ; preds = %2115, %2109
  br label %2120

2120:                                             ; preds = %2115, %2119
  %.str.5.sink1048 = phi ptr [ @.str.5, %2119 ], [ @.str.2, %2115 ]
  store i32 %2110, ptr %292, align 4, !tbaa !5
  %2121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2122 = load i32, ptr @test_count, align 4, !tbaa !5
  %2123 = load i32, ptr %238, align 4, !tbaa !5
  %2124 = call ptr @s2n_strerror(i32 noundef %2123, ptr noundef nonnull @.str.4) #11
  %2125 = load i32, ptr %238, align 4, !tbaa !5
  %2126 = call ptr @s2n_strerror_debug(i32 noundef %2125, ptr noundef nonnull @.str.4) #11
  %2127 = load i32, ptr %292, align 4, !tbaa !5
  %2128 = call ptr @strerror(i32 noundef %2127) #11
  %2129 = load i32, ptr %292, align 4, !tbaa !5
  %2130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2121, ptr noundef nonnull %.str.5.sink1048, i32 noundef %2122, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 245, ptr noundef %2124, ptr noundef %2126, ptr noundef %2128, i32 noundef %2129) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2131:                                             ; preds = %2104
  %2132 = add nsw i32 %2020, 5
  store i32 %2132, ptr @test_count, align 4, !tbaa !5
  %2133 = getelementptr inbounds i8, ptr %2078, i64 24
  %2134 = load i16, ptr %2133, align 8, !tbaa !60
  %2135 = icmp eq i16 %2134, %148
  br i1 %2135, label %2158, label %2136

2136:                                             ; preds = %2131
  %2137 = load i32, ptr %292, align 4, !tbaa !5
  %2138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2139 = call i32 @s2n_print_stacktrace(ptr noundef %2138) #11
  %2140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2141 = trunc nuw i8 %2140 to i1
  br i1 %2141, label %2142, label %2146

2142:                                             ; preds = %2136
  %2143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2144 = call i32 @fileno(ptr noundef %2143) #11
  %2145 = call i32 @isatty(i32 noundef %2144) #11
  %.not289 = icmp eq i32 %2145, 0
  br i1 %.not289, label %2146, label %2147

2146:                                             ; preds = %2142, %2136
  br label %2147

2147:                                             ; preds = %2142, %2146
  %.str.5.sink1057 = phi ptr [ @.str.5, %2146 ], [ @.str.2, %2142 ]
  store i32 %2137, ptr %292, align 4, !tbaa !5
  %2148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2149 = load i32, ptr @test_count, align 4, !tbaa !5
  %2150 = load i32, ptr %238, align 4, !tbaa !5
  %2151 = call ptr @s2n_strerror(i32 noundef %2150, ptr noundef nonnull @.str.4) #11
  %2152 = load i32, ptr %238, align 4, !tbaa !5
  %2153 = call ptr @s2n_strerror_debug(i32 noundef %2152, ptr noundef nonnull @.str.4) #11
  %2154 = load i32, ptr %292, align 4, !tbaa !5
  %2155 = call ptr @strerror(i32 noundef %2154) #11
  %2156 = load i32, ptr %292, align 4, !tbaa !5
  %2157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2148, ptr noundef nonnull %.str.5.sink1057, i32 noundef %2149, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 246, ptr noundef %2151, ptr noundef %2153, ptr noundef %2155, i32 noundef %2156) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2158:                                             ; preds = %2131
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %21) #11
  %2159 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %20) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #11
  %2160 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %19) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #11
  %2161 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %18) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #11
  br label %2162

2162:                                             ; preds = %2158, %1610
  %2163 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #11
  br i1 %2163, label %2164, label %2632

2164:                                             ; preds = %2162
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #11
  %2165 = call ptr @s2n_config_new_minimal() #11
  store ptr %2165, ptr %22, align 8, !tbaa !9
  %2166 = load i32, ptr @test_count, align 4, !tbaa !5
  %2167 = add nsw i32 %2166, 1
  store i32 %2167, ptr @test_count, align 4, !tbaa !5
  %2168 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %2165) #11
  %2169 = icmp eq i32 %2168, -1
  br i1 %2169, label %2170, label %2192

2170:                                             ; preds = %2164
  %2171 = load i32, ptr %292, align 4, !tbaa !5
  %2172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2173 = call i32 @s2n_print_stacktrace(ptr noundef %2172) #11
  %2174 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2175 = trunc nuw i8 %2174 to i1
  br i1 %2175, label %2176, label %2180

2176:                                             ; preds = %2170
  %2177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2178 = call i32 @fileno(ptr noundef %2177) #11
  %2179 = call i32 @isatty(i32 noundef %2178) #11
  %.not324 = icmp eq i32 %2179, 0
  br i1 %.not324, label %2180, label %2181

2180:                                             ; preds = %2176, %2170
  br label %2181

2181:                                             ; preds = %2176, %2180
  %.str.5.sink1066 = phi ptr [ @.str.5, %2180 ], [ @.str.2, %2176 ]
  store i32 %2171, ptr %292, align 4, !tbaa !5
  %2182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2183 = load i32, ptr @test_count, align 4, !tbaa !5
  %2184 = load i32, ptr %238, align 4, !tbaa !5
  %2185 = call ptr @s2n_strerror(i32 noundef %2184, ptr noundef nonnull @.str.4) #11
  %2186 = load i32, ptr %238, align 4, !tbaa !5
  %2187 = call ptr @s2n_strerror_debug(i32 noundef %2186, ptr noundef nonnull @.str.4) #11
  %2188 = load i32, ptr %292, align 4, !tbaa !5
  %2189 = call ptr @strerror(i32 noundef %2188) #11
  %2190 = load i32, ptr %292, align 4, !tbaa !5
  %2191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2182, ptr noundef nonnull %.str.5.sink1066, i32 noundef %2183, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 257, ptr noundef %2185, ptr noundef %2187, ptr noundef %2189, i32 noundef %2190) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2192:                                             ; preds = %2164
  %2193 = load i32, ptr @test_count, align 4, !tbaa !5
  %2194 = add nsw i32 %2193, 1
  store i32 %2194, ptr @test_count, align 4, !tbaa !5
  %2195 = load ptr, ptr %22, align 8, !tbaa !9
  %2196 = load ptr, ptr %3, align 8, !tbaa !9
  %2197 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %2195, ptr noundef %2196) #11
  %2198 = icmp eq i32 %2197, -1
  br i1 %2198, label %2199, label %2221

2199:                                             ; preds = %2192
  %2200 = load i32, ptr %292, align 4, !tbaa !5
  %2201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2202 = call i32 @s2n_print_stacktrace(ptr noundef %2201) #11
  %2203 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2204 = trunc nuw i8 %2203 to i1
  br i1 %2204, label %2205, label %2209

2205:                                             ; preds = %2199
  %2206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2207 = call i32 @fileno(ptr noundef %2206) #11
  %2208 = call i32 @isatty(i32 noundef %2207) #11
  %.not323 = icmp eq i32 %2208, 0
  br i1 %.not323, label %2209, label %2210

2209:                                             ; preds = %2205, %2199
  br label %2210

2210:                                             ; preds = %2205, %2209
  %.str.5.sink1075 = phi ptr [ @.str.5, %2209 ], [ @.str.2, %2205 ]
  store i32 %2200, ptr %292, align 4, !tbaa !5
  %2211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2212 = load i32, ptr @test_count, align 4, !tbaa !5
  %2213 = load i32, ptr %238, align 4, !tbaa !5
  %2214 = call ptr @s2n_strerror(i32 noundef %2213, ptr noundef nonnull @.str.4) #11
  %2215 = load i32, ptr %238, align 4, !tbaa !5
  %2216 = call ptr @s2n_strerror_debug(i32 noundef %2215, ptr noundef nonnull @.str.4) #11
  %2217 = load i32, ptr %292, align 4, !tbaa !5
  %2218 = call ptr @strerror(i32 noundef %2217) #11
  %2219 = load i32, ptr %292, align 4, !tbaa !5
  %2220 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2211, ptr noundef nonnull %.str.5.sink1075, i32 noundef %2212, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 258, ptr noundef %2214, ptr noundef %2216, ptr noundef %2218, i32 noundef %2219) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2221:                                             ; preds = %2192
  %2222 = load i32, ptr @test_count, align 4, !tbaa !5
  %2223 = add nsw i32 %2222, 1
  store i32 %2223, ptr @test_count, align 4, !tbaa !5
  %2224 = load ptr, ptr %22, align 8, !tbaa !9
  %2225 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2224, ptr noundef nonnull @.str.48) #11
  %2226 = icmp eq i32 %2225, -1
  br i1 %2226, label %2227, label %2249

2227:                                             ; preds = %2221
  %2228 = load i32, ptr %292, align 4, !tbaa !5
  %2229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2230 = call i32 @s2n_print_stacktrace(ptr noundef %2229) #11
  %2231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2232 = trunc nuw i8 %2231 to i1
  br i1 %2232, label %2233, label %2237

2233:                                             ; preds = %2227
  %2234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2235 = call i32 @fileno(ptr noundef %2234) #11
  %2236 = call i32 @isatty(i32 noundef %2235) #11
  %.not322 = icmp eq i32 %2236, 0
  br i1 %.not322, label %2237, label %2238

2237:                                             ; preds = %2233, %2227
  br label %2238

2238:                                             ; preds = %2233, %2237
  %.str.5.sink1084 = phi ptr [ @.str.5, %2237 ], [ @.str.2, %2233 ]
  store i32 %2228, ptr %292, align 4, !tbaa !5
  %2239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2240 = load i32, ptr @test_count, align 4, !tbaa !5
  %2241 = load i32, ptr %238, align 4, !tbaa !5
  %2242 = call ptr @s2n_strerror(i32 noundef %2241, ptr noundef nonnull @.str.4) #11
  %2243 = load i32, ptr %238, align 4, !tbaa !5
  %2244 = call ptr @s2n_strerror_debug(i32 noundef %2243, ptr noundef nonnull @.str.4) #11
  %2245 = load i32, ptr %292, align 4, !tbaa !5
  %2246 = call ptr @strerror(i32 noundef %2245) #11
  %2247 = load i32, ptr %292, align 4, !tbaa !5
  %2248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2239, ptr noundef nonnull %.str.5.sink1084, i32 noundef %2240, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 259, ptr noundef %2242, ptr noundef %2244, ptr noundef %2246, i32 noundef %2247) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2249:                                             ; preds = %2221
  %2250 = load i32, ptr @test_count, align 4, !tbaa !5
  %2251 = add nsw i32 %2250, 1
  store i32 %2251, ptr @test_count, align 4, !tbaa !5
  %2252 = load ptr, ptr %22, align 8, !tbaa !9
  %2253 = call i32 @s2n_config_set_client_auth_type(ptr noundef %2252, i32 noundef 2) #11
  %2254 = icmp eq i32 %2253, -1
  br i1 %2254, label %2255, label %2277

2255:                                             ; preds = %2249
  %2256 = load i32, ptr %292, align 4, !tbaa !5
  %2257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2258 = call i32 @s2n_print_stacktrace(ptr noundef %2257) #11
  %2259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2260 = trunc nuw i8 %2259 to i1
  br i1 %2260, label %2261, label %2265

2261:                                             ; preds = %2255
  %2262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2263 = call i32 @fileno(ptr noundef %2262) #11
  %2264 = call i32 @isatty(i32 noundef %2263) #11
  %.not321 = icmp eq i32 %2264, 0
  br i1 %.not321, label %2265, label %2266

2265:                                             ; preds = %2261, %2255
  br label %2266

2266:                                             ; preds = %2261, %2265
  %.str.5.sink1093 = phi ptr [ @.str.5, %2265 ], [ @.str.2, %2261 ]
  store i32 %2256, ptr %292, align 4, !tbaa !5
  %2267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2268 = load i32, ptr @test_count, align 4, !tbaa !5
  %2269 = load i32, ptr %238, align 4, !tbaa !5
  %2270 = call ptr @s2n_strerror(i32 noundef %2269, ptr noundef nonnull @.str.4) #11
  %2271 = load i32, ptr %238, align 4, !tbaa !5
  %2272 = call ptr @s2n_strerror_debug(i32 noundef %2271, ptr noundef nonnull @.str.4) #11
  %2273 = load i32, ptr %292, align 4, !tbaa !5
  %2274 = call ptr @strerror(i32 noundef %2273) #11
  %2275 = load i32, ptr %292, align 4, !tbaa !5
  %2276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2267, ptr noundef nonnull %.str.5.sink1093, i32 noundef %2268, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 260, ptr noundef %2270, ptr noundef %2272, ptr noundef %2274, i32 noundef %2275) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2277:                                             ; preds = %2249
  %2278 = load i32, ptr @test_count, align 4, !tbaa !5
  %2279 = add nsw i32 %2278, 1
  store i32 %2279, ptr @test_count, align 4, !tbaa !5
  %2280 = load ptr, ptr %22, align 8, !tbaa !9
  %2281 = getelementptr inbounds i8, ptr %2280, i64 448
  %2282 = call i32 @s2n_alloc(ptr noundef nonnull %2281, i32 noundef 10) #11
  %2283 = icmp eq i32 %2282, -1
  br i1 %2283, label %2284, label %2306

2284:                                             ; preds = %2277
  %2285 = load i32, ptr %292, align 4, !tbaa !5
  %2286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2287 = call i32 @s2n_print_stacktrace(ptr noundef %2286) #11
  %2288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2289 = trunc nuw i8 %2288 to i1
  br i1 %2289, label %2290, label %2294

2290:                                             ; preds = %2284
  %2291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2292 = call i32 @fileno(ptr noundef %2291) #11
  %2293 = call i32 @isatty(i32 noundef %2292) #11
  %.not320 = icmp eq i32 %2293, 0
  br i1 %.not320, label %2294, label %2295

2294:                                             ; preds = %2290, %2284
  br label %2295

2295:                                             ; preds = %2290, %2294
  %.str.5.sink1102 = phi ptr [ @.str.5, %2294 ], [ @.str.2, %2290 ]
  store i32 %2285, ptr %292, align 4, !tbaa !5
  %2296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2297 = load i32, ptr @test_count, align 4, !tbaa !5
  %2298 = load i32, ptr %238, align 4, !tbaa !5
  %2299 = call ptr @s2n_strerror(i32 noundef %2298, ptr noundef nonnull @.str.4) #11
  %2300 = load i32, ptr %238, align 4, !tbaa !5
  %2301 = call ptr @s2n_strerror_debug(i32 noundef %2300, ptr noundef nonnull @.str.4) #11
  %2302 = load i32, ptr %292, align 4, !tbaa !5
  %2303 = call ptr @strerror(i32 noundef %2302) #11
  %2304 = load i32, ptr %292, align 4, !tbaa !5
  %2305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2296, ptr noundef nonnull %.str.5.sink1102, i32 noundef %2297, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 261, ptr noundef %2299, ptr noundef %2301, ptr noundef %2303, i32 noundef %2304) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2306:                                             ; preds = %2277
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #11
  %2307 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %2307, ptr %23, align 8, !tbaa !9
  %2308 = load i32, ptr @test_count, align 4, !tbaa !5
  %2309 = add nsw i32 %2308, 1
  store i32 %2309, ptr @test_count, align 4, !tbaa !5
  %2310 = load ptr, ptr %22, align 8, !tbaa !9
  %2311 = call i32 @s2n_connection_set_config(ptr noundef %2307, ptr noundef %2310) #11
  %2312 = icmp eq i32 %2311, -1
  br i1 %2312, label %2313, label %2335

2313:                                             ; preds = %2306
  %2314 = load i32, ptr %292, align 4, !tbaa !5
  %2315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2316 = call i32 @s2n_print_stacktrace(ptr noundef %2315) #11
  %2317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2318 = trunc nuw i8 %2317 to i1
  br i1 %2318, label %2319, label %2323

2319:                                             ; preds = %2313
  %2320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2321 = call i32 @fileno(ptr noundef %2320) #11
  %2322 = call i32 @isatty(i32 noundef %2321) #11
  %.not319 = icmp eq i32 %2322, 0
  br i1 %.not319, label %2323, label %2324

2323:                                             ; preds = %2319, %2313
  br label %2324

2324:                                             ; preds = %2319, %2323
  %.str.5.sink1111 = phi ptr [ @.str.5, %2323 ], [ @.str.2, %2319 ]
  store i32 %2314, ptr %292, align 4, !tbaa !5
  %2325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2326 = load i32, ptr @test_count, align 4, !tbaa !5
  %2327 = load i32, ptr %238, align 4, !tbaa !5
  %2328 = call ptr @s2n_strerror(i32 noundef %2327, ptr noundef nonnull @.str.4) #11
  %2329 = load i32, ptr %238, align 4, !tbaa !5
  %2330 = call ptr @s2n_strerror_debug(i32 noundef %2329, ptr noundef nonnull @.str.4) #11
  %2331 = load i32, ptr %292, align 4, !tbaa !5
  %2332 = call ptr @strerror(i32 noundef %2331) #11
  %2333 = load i32, ptr %292, align 4, !tbaa !5
  %2334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2325, ptr noundef nonnull %.str.5.sink1111, i32 noundef %2326, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 265, ptr noundef %2328, ptr noundef %2330, ptr noundef %2332, i32 noundef %2333) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2335:                                             ; preds = %2306
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #11
  %2336 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %2336, ptr %24, align 8, !tbaa !9
  %2337 = load i32, ptr @test_count, align 4, !tbaa !5
  %2338 = add nsw i32 %2337, 1
  store i32 %2338, ptr @test_count, align 4, !tbaa !5
  %2339 = load ptr, ptr %22, align 8, !tbaa !9
  %2340 = call i32 @s2n_connection_set_config(ptr noundef %2336, ptr noundef %2339) #11
  %2341 = icmp eq i32 %2340, -1
  br i1 %2341, label %2342, label %2364

2342:                                             ; preds = %2335
  %2343 = load i32, ptr %292, align 4, !tbaa !5
  %2344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2345 = call i32 @s2n_print_stacktrace(ptr noundef %2344) #11
  %2346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2347 = trunc nuw i8 %2346 to i1
  br i1 %2347, label %2348, label %2352

2348:                                             ; preds = %2342
  %2349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2350 = call i32 @fileno(ptr noundef %2349) #11
  %2351 = call i32 @isatty(i32 noundef %2350) #11
  %.not318 = icmp eq i32 %2351, 0
  br i1 %.not318, label %2352, label %2353

2352:                                             ; preds = %2348, %2342
  br label %2353

2353:                                             ; preds = %2348, %2352
  %.str.5.sink1120 = phi ptr [ @.str.5, %2352 ], [ @.str.2, %2348 ]
  store i32 %2343, ptr %292, align 4, !tbaa !5
  %2354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2355 = load i32, ptr @test_count, align 4, !tbaa !5
  %2356 = load i32, ptr %238, align 4, !tbaa !5
  %2357 = call ptr @s2n_strerror(i32 noundef %2356, ptr noundef nonnull @.str.4) #11
  %2358 = load i32, ptr %238, align 4, !tbaa !5
  %2359 = call ptr @s2n_strerror_debug(i32 noundef %2358, ptr noundef nonnull @.str.4) #11
  %2360 = load i32, ptr %292, align 4, !tbaa !5
  %2361 = call ptr @strerror(i32 noundef %2360) #11
  %2362 = load i32, ptr %292, align 4, !tbaa !5
  %2363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2354, ptr noundef nonnull %.str.5.sink1120, i32 noundef %2355, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 269, ptr noundef %2357, ptr noundef %2359, ptr noundef %2361, i32 noundef %2362) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2364:                                             ; preds = %2335
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #11
  store i64 0, ptr %25, align 8
  %2365 = load i32, ptr @test_count, align 4, !tbaa !5
  %2366 = add nsw i32 %2365, 1
  store i32 %2366, ptr @test_count, align 4, !tbaa !5
  %2367 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %25) #11
  %2368 = icmp eq i32 %2367, -1
  br i1 %2368, label %2369, label %2391

2369:                                             ; preds = %2364
  %2370 = load i32, ptr %292, align 4, !tbaa !5
  %2371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2372 = call i32 @s2n_print_stacktrace(ptr noundef %2371) #11
  %2373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2374 = trunc nuw i8 %2373 to i1
  br i1 %2374, label %2375, label %2379

2375:                                             ; preds = %2369
  %2376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2377 = call i32 @fileno(ptr noundef %2376) #11
  %2378 = call i32 @isatty(i32 noundef %2377) #11
  %.not317 = icmp eq i32 %2378, 0
  br i1 %.not317, label %2379, label %2380

2379:                                             ; preds = %2375, %2369
  br label %2380

2380:                                             ; preds = %2375, %2379
  %.str.5.sink1129 = phi ptr [ @.str.5, %2379 ], [ @.str.2, %2375 ]
  store i32 %2370, ptr %292, align 4, !tbaa !5
  %2381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2382 = load i32, ptr @test_count, align 4, !tbaa !5
  %2383 = load i32, ptr %238, align 4, !tbaa !5
  %2384 = call ptr @s2n_strerror(i32 noundef %2383, ptr noundef nonnull @.str.4) #11
  %2385 = load i32, ptr %238, align 4, !tbaa !5
  %2386 = call ptr @s2n_strerror_debug(i32 noundef %2385, ptr noundef nonnull @.str.4) #11
  %2387 = load i32, ptr %292, align 4, !tbaa !5
  %2388 = call ptr @strerror(i32 noundef %2387) #11
  %2389 = load i32, ptr %292, align 4, !tbaa !5
  %2390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2381, ptr noundef nonnull %.str.5.sink1129, i32 noundef %2382, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %2384, ptr noundef %2386, ptr noundef %2388, i32 noundef %2389) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2391:                                             ; preds = %2364
  %2392 = load i32, ptr @test_count, align 4, !tbaa !5
  %2393 = add nsw i32 %2392, 1
  store i32 %2393, ptr @test_count, align 4, !tbaa !5
  %2394 = load ptr, ptr %23, align 8, !tbaa !9
  %2395 = load ptr, ptr %24, align 8, !tbaa !9
  %2396 = call i32 @s2n_connections_set_io_pair(ptr noundef %2394, ptr noundef %2395, ptr noundef nonnull %25) #11
  %2397 = icmp eq i32 %2396, -1
  br i1 %2397, label %2398, label %2420

2398:                                             ; preds = %2391
  %2399 = load i32, ptr %292, align 4, !tbaa !5
  %2400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2401 = call i32 @s2n_print_stacktrace(ptr noundef %2400) #11
  %2402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2403 = trunc nuw i8 %2402 to i1
  br i1 %2403, label %2404, label %2408

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

2408:                                             ; preds = %2404, %2398
  br label %2409

2409:                                             ; preds = %2404, %2408
  %.str.5.sink1138 = phi ptr [ @.str.5, %2408 ], [ @.str.2, %2404 ]
  store i32 %2399, ptr %292, align 4, !tbaa !5
  %2410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2411 = load i32, ptr @test_count, align 4, !tbaa !5
  %2412 = load i32, ptr %238, align 4, !tbaa !5
  %2413 = call ptr @s2n_strerror(i32 noundef %2412, ptr noundef nonnull @.str.4) #11
  %2414 = load i32, ptr %238, align 4, !tbaa !5
  %2415 = call ptr @s2n_strerror_debug(i32 noundef %2414, ptr noundef nonnull @.str.4) #11
  %2416 = load i32, ptr %292, align 4, !tbaa !5
  %2417 = call ptr @strerror(i32 noundef %2416) #11
  %2418 = load i32, ptr %292, align 4, !tbaa !5
  %2419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2410, ptr noundef nonnull %.str.5.sink1138, i32 noundef %2411, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 273, ptr noundef %2413, ptr noundef %2415, ptr noundef %2417, i32 noundef %2418) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2420:                                             ; preds = %2391
  %2421 = load i32, ptr @test_count, align 4, !tbaa !5
  %2422 = add nsw i32 %2421, 1
  store i32 %2422, ptr @test_count, align 4, !tbaa !5
  %2423 = load ptr, ptr %24, align 8, !tbaa !9
  %2424 = load ptr, ptr %23, align 8, !tbaa !9
  %2425 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %2423, ptr noundef %2424) #11
  %2426 = icmp eq i32 %2425, -1
  br i1 %2426, label %2427, label %2449

2427:                                             ; preds = %2420
  %2428 = load i32, ptr %292, align 4, !tbaa !5
  %2429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2430 = call i32 @s2n_print_stacktrace(ptr noundef %2429) #11
  %2431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2432 = trunc nuw i8 %2431 to i1
  br i1 %2432, label %2433, label %2437

2433:                                             ; preds = %2427
  %2434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2435 = call i32 @fileno(ptr noundef %2434) #11
  %2436 = call i32 @isatty(i32 noundef %2435) #11
  %.not315 = icmp eq i32 %2436, 0
  br i1 %.not315, label %2437, label %2438

2437:                                             ; preds = %2433, %2427
  br label %2438

2438:                                             ; preds = %2433, %2437
  %.str.5.sink1147 = phi ptr [ @.str.5, %2437 ], [ @.str.2, %2433 ]
  store i32 %2428, ptr %292, align 4, !tbaa !5
  %2439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2440 = load i32, ptr @test_count, align 4, !tbaa !5
  %2441 = load i32, ptr %238, align 4, !tbaa !5
  %2442 = call ptr @s2n_strerror(i32 noundef %2441, ptr noundef nonnull @.str.4) #11
  %2443 = load i32, ptr %238, align 4, !tbaa !5
  %2444 = call ptr @s2n_strerror_debug(i32 noundef %2443, ptr noundef nonnull @.str.4) #11
  %2445 = load i32, ptr %292, align 4, !tbaa !5
  %2446 = call ptr @strerror(i32 noundef %2445) #11
  %2447 = load i32, ptr %292, align 4, !tbaa !5
  %2448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2439, ptr noundef nonnull %.str.5.sink1147, i32 noundef %2440, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 275, ptr noundef %2442, ptr noundef %2444, ptr noundef %2446, i32 noundef %2447) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2449:                                             ; preds = %2420
  %2450 = load i32, ptr @test_count, align 4, !tbaa !5
  %2451 = add nsw i32 %2450, 1
  store i32 %2451, ptr @test_count, align 4, !tbaa !5
  %2452 = load ptr, ptr %24, align 8, !tbaa !9
  %2453 = getelementptr inbounds i8, ptr %2452, i64 220
  %2454 = load i8, ptr %2453, align 4, !tbaa !26
  %2455 = icmp eq i8 %2454, 34
  br i1 %2455, label %2478, label %2456

2456:                                             ; preds = %2449
  %2457 = load i32, ptr %292, align 4, !tbaa !5
  %2458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2459 = call i32 @s2n_print_stacktrace(ptr noundef %2458) #11
  %2460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2461 = trunc nuw i8 %2460 to i1
  br i1 %2461, label %2462, label %2466

2462:                                             ; preds = %2456
  %2463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2464 = call i32 @fileno(ptr noundef %2463) #11
  %2465 = call i32 @isatty(i32 noundef %2464) #11
  %.not290 = icmp eq i32 %2465, 0
  br i1 %.not290, label %2466, label %2467

2466:                                             ; preds = %2462, %2456
  br label %2467

2467:                                             ; preds = %2462, %2466
  %.str.5.sink1156 = phi ptr [ @.str.5, %2466 ], [ @.str.2, %2462 ]
  store i32 %2457, ptr %292, align 4, !tbaa !5
  %2468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2469 = load i32, ptr @test_count, align 4, !tbaa !5
  %2470 = load i32, ptr %238, align 4, !tbaa !5
  %2471 = call ptr @s2n_strerror(i32 noundef %2470, ptr noundef nonnull @.str.4) #11
  %2472 = load i32, ptr %238, align 4, !tbaa !5
  %2473 = call ptr @s2n_strerror_debug(i32 noundef %2472, ptr noundef nonnull @.str.4) #11
  %2474 = load i32, ptr %292, align 4, !tbaa !5
  %2475 = call ptr @strerror(i32 noundef %2474) #11
  %2476 = load i32, ptr %292, align 4, !tbaa !5
  %2477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2468, ptr noundef nonnull %.str.5.sink1156, i32 noundef %2469, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 276, ptr noundef %2471, ptr noundef %2473, ptr noundef %2475, i32 noundef %2476) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2478:                                             ; preds = %2449
  %2479 = add nsw i32 %2450, 2
  store i32 %2479, ptr @test_count, align 4, !tbaa !5
  %2480 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %2452, i32 noundef 4) #11
  br i1 %2480, label %2503, label %2481

2481:                                             ; preds = %2478
  %2482 = load i32, ptr %292, align 4, !tbaa !5
  %2483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2484 = call i32 @s2n_print_stacktrace(ptr noundef %2483) #11
  %2485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2486 = trunc nuw i8 %2485 to i1
  br i1 %2486, label %2487, label %2491

2487:                                             ; preds = %2481
  %2488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2489 = call i32 @fileno(ptr noundef %2488) #11
  %2490 = call i32 @isatty(i32 noundef %2489) #11
  %.not291 = icmp eq i32 %2490, 0
  br i1 %.not291, label %2491, label %2492

2491:                                             ; preds = %2487, %2481
  br label %2492

2492:                                             ; preds = %2487, %2491
  %.str.5.sink1165 = phi ptr [ @.str.5, %2491 ], [ @.str.2, %2487 ]
  store i32 %2482, ptr %292, align 4, !tbaa !5
  %2493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2494 = load i32, ptr @test_count, align 4, !tbaa !5
  %2495 = load i32, ptr %238, align 4, !tbaa !5
  %2496 = call ptr @s2n_strerror(i32 noundef %2495, ptr noundef nonnull @.str.4) #11
  %2497 = load i32, ptr %238, align 4, !tbaa !5
  %2498 = call ptr @s2n_strerror_debug(i32 noundef %2497, ptr noundef nonnull @.str.4) #11
  %2499 = load i32, ptr %292, align 4, !tbaa !5
  %2500 = call ptr @strerror(i32 noundef %2499) #11
  %2501 = load i32, ptr %292, align 4, !tbaa !5
  %2502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2493, ptr noundef nonnull %.str.5.sink1165, i32 noundef %2494, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 277, ptr noundef %2496, ptr noundef %2498, ptr noundef %2500, i32 noundef %2501) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2503:                                             ; preds = %2478
  %2504 = load i32, ptr @test_count, align 4, !tbaa !5
  %2505 = add nsw i32 %2504, 1
  store i32 %2505, ptr @test_count, align 4, !tbaa !5
  %2506 = load ptr, ptr %24, align 8, !tbaa !9
  %2507 = getelementptr inbounds i8, ptr %2506, i64 80
  %2508 = zext i8 %176 to i32
  %2509 = lshr i32 %2508, 3
  %2510 = zext nneg i32 %2509 to i64
  %2511 = getelementptr inbounds [22 x i8], ptr %2507, i64 0, i64 %2510
  %2512 = load i8, ptr %2511, align 1, !tbaa !15
  %2513 = zext i8 %2512 to i32
  %2514 = and i32 %2508, 7
  %2515 = shl nuw nsw i32 1, %2514
  %2516 = and i32 %2515, %2513
  %.not292 = icmp eq i32 %2516, 0
  br i1 %.not292, label %2517, label %2539

2517:                                             ; preds = %2503
  %2518 = load i32, ptr %292, align 4, !tbaa !5
  %2519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2520 = call i32 @s2n_print_stacktrace(ptr noundef %2519) #11
  %2521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2522 = trunc nuw i8 %2521 to i1
  br i1 %2522, label %2523, label %2527

2523:                                             ; preds = %2517
  %2524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2525 = call i32 @fileno(ptr noundef %2524) #11
  %2526 = call i32 @isatty(i32 noundef %2525) #11
  %.not293 = icmp eq i32 %2526, 0
  br i1 %.not293, label %2527, label %2528

2527:                                             ; preds = %2523, %2517
  br label %2528

2528:                                             ; preds = %2523, %2527
  %.str.5.sink1174 = phi ptr [ @.str.5, %2527 ], [ @.str.2, %2523 ]
  store i32 %2518, ptr %292, align 4, !tbaa !5
  %2529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2530 = load i32, ptr @test_count, align 4, !tbaa !5
  %2531 = load i32, ptr %238, align 4, !tbaa !5
  %2532 = call ptr @s2n_strerror(i32 noundef %2531, ptr noundef nonnull @.str.4) #11
  %2533 = load i32, ptr %238, align 4, !tbaa !5
  %2534 = call ptr @s2n_strerror_debug(i32 noundef %2533, ptr noundef nonnull @.str.4) #11
  %2535 = load i32, ptr %292, align 4, !tbaa !5
  %2536 = call ptr @strerror(i32 noundef %2535) #11
  %2537 = load i32, ptr %292, align 4, !tbaa !5
  %2538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2529, ptr noundef nonnull %.str.5.sink1174, i32 noundef %2530, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 280, ptr noundef %2532, ptr noundef %2534, ptr noundef %2536, i32 noundef %2537) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2539:                                             ; preds = %2503
  %2540 = add nsw i32 %2504, 2
  store i32 %2540, ptr @test_count, align 4, !tbaa !5
  %2541 = getelementptr inbounds i8, ptr %2506, i64 102
  %2542 = getelementptr inbounds [22 x i8], ptr %2541, i64 0, i64 %2510
  %2543 = load i8, ptr %2542, align 1, !tbaa !15
  %2544 = zext i8 %2543 to i32
  %2545 = and i32 %2515, %2544
  %.not294 = icmp eq i32 %2545, 0
  br i1 %.not294, label %2568, label %2546

2546:                                             ; preds = %2539
  %2547 = load i32, ptr %292, align 4, !tbaa !5
  %2548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2549 = call i32 @s2n_print_stacktrace(ptr noundef %2548) #11
  %2550 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2551 = trunc nuw i8 %2550 to i1
  br i1 %2551, label %2552, label %2556

2552:                                             ; preds = %2546
  %2553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2554 = call i32 @fileno(ptr noundef %2553) #11
  %2555 = call i32 @isatty(i32 noundef %2554) #11
  %.not314 = icmp eq i32 %2555, 0
  br i1 %.not314, label %2556, label %2557

2556:                                             ; preds = %2552, %2546
  br label %2557

2557:                                             ; preds = %2552, %2556
  %.str.5.sink1183 = phi ptr [ @.str.5, %2556 ], [ @.str.2, %2552 ]
  store i32 %2547, ptr %292, align 4, !tbaa !5
  %2558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2559 = load i32, ptr @test_count, align 4, !tbaa !5
  %2560 = load i32, ptr %238, align 4, !tbaa !5
  %2561 = call ptr @s2n_strerror(i32 noundef %2560, ptr noundef nonnull @.str.4) #11
  %2562 = load i32, ptr %238, align 4, !tbaa !5
  %2563 = call ptr @s2n_strerror_debug(i32 noundef %2562, ptr noundef nonnull @.str.4) #11
  %2564 = load i32, ptr %292, align 4, !tbaa !5
  %2565 = call ptr @strerror(i32 noundef %2564) #11
  %2566 = load i32, ptr %292, align 4, !tbaa !5
  %2567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2558, ptr noundef nonnull %.str.5.sink1183, i32 noundef %2559, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 281, ptr noundef %2561, ptr noundef %2563, ptr noundef %2565, i32 noundef %2566) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2568:                                             ; preds = %2539
  %2569 = add nsw i32 %2504, 3
  store i32 %2569, ptr @test_count, align 4, !tbaa !5
  %2570 = load ptr, ptr %23, align 8, !tbaa !9
  %2571 = getelementptr inbounds i8, ptr %2570, i64 80
  %2572 = getelementptr inbounds [22 x i8], ptr %2571, i64 0, i64 %2510
  %2573 = load i8, ptr %2572, align 1, !tbaa !15
  %2574 = zext i8 %2573 to i32
  %2575 = and i32 %2515, %2574
  %.not295 = icmp eq i32 %2575, 0
  br i1 %.not295, label %2598, label %2576

2576:                                             ; preds = %2568
  %2577 = load i32, ptr %292, align 4, !tbaa !5
  %2578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2579 = call i32 @s2n_print_stacktrace(ptr noundef %2578) #11
  %2580 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2581 = trunc nuw i8 %2580 to i1
  br i1 %2581, label %2582, label %2586

2582:                                             ; preds = %2576
  %2583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2584 = call i32 @fileno(ptr noundef %2583) #11
  %2585 = call i32 @isatty(i32 noundef %2584) #11
  %.not313 = icmp eq i32 %2585, 0
  br i1 %.not313, label %2586, label %2587

2586:                                             ; preds = %2582, %2576
  br label %2587

2587:                                             ; preds = %2582, %2586
  %.str.5.sink1192 = phi ptr [ @.str.5, %2586 ], [ @.str.2, %2582 ]
  store i32 %2577, ptr %292, align 4, !tbaa !5
  %2588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2589 = load i32, ptr @test_count, align 4, !tbaa !5
  %2590 = load i32, ptr %238, align 4, !tbaa !5
  %2591 = call ptr @s2n_strerror(i32 noundef %2590, ptr noundef nonnull @.str.4) #11
  %2592 = load i32, ptr %238, align 4, !tbaa !5
  %2593 = call ptr @s2n_strerror_debug(i32 noundef %2592, ptr noundef nonnull @.str.4) #11
  %2594 = load i32, ptr %292, align 4, !tbaa !5
  %2595 = call ptr @strerror(i32 noundef %2594) #11
  %2596 = load i32, ptr %292, align 4, !tbaa !5
  %2597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2588, ptr noundef nonnull %.str.5.sink1192, i32 noundef %2589, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 284, ptr noundef %2591, ptr noundef %2593, ptr noundef %2595, i32 noundef %2596) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2598:                                             ; preds = %2568
  %2599 = add nsw i32 %2504, 4
  store i32 %2599, ptr @test_count, align 4, !tbaa !5
  %2600 = getelementptr inbounds i8, ptr %2570, i64 102
  %2601 = getelementptr inbounds [22 x i8], ptr %2600, i64 0, i64 %2510
  %2602 = load i8, ptr %2601, align 1, !tbaa !15
  %2603 = zext i8 %2602 to i32
  %2604 = and i32 %2515, %2603
  %.not296 = icmp eq i32 %2604, 0
  br i1 %.not296, label %2605, label %2627

2605:                                             ; preds = %2598
  %2606 = load i32, ptr %292, align 4, !tbaa !5
  %2607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2608 = call i32 @s2n_print_stacktrace(ptr noundef %2607) #11
  %2609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2610 = trunc nuw i8 %2609 to i1
  br i1 %2610, label %2611, label %2615

2611:                                             ; preds = %2605
  %2612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2613 = call i32 @fileno(ptr noundef %2612) #11
  %2614 = call i32 @isatty(i32 noundef %2613) #11
  %.not297 = icmp eq i32 %2614, 0
  br i1 %.not297, label %2615, label %2616

2615:                                             ; preds = %2611, %2605
  br label %2616

2616:                                             ; preds = %2611, %2615
  %.str.5.sink1201 = phi ptr [ @.str.5, %2615 ], [ @.str.2, %2611 ]
  store i32 %2606, ptr %292, align 4, !tbaa !5
  %2617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2618 = load i32, ptr @test_count, align 4, !tbaa !5
  %2619 = load i32, ptr %238, align 4, !tbaa !5
  %2620 = call ptr @s2n_strerror(i32 noundef %2619, ptr noundef nonnull @.str.4) #11
  %2621 = load i32, ptr %238, align 4, !tbaa !5
  %2622 = call ptr @s2n_strerror_debug(i32 noundef %2621, ptr noundef nonnull @.str.4) #11
  %2623 = load i32, ptr %292, align 4, !tbaa !5
  %2624 = call ptr @strerror(i32 noundef %2623) #11
  %2625 = load i32, ptr %292, align 4, !tbaa !5
  %2626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2617, ptr noundef nonnull %.str.5.sink1201, i32 noundef %2618, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 285, ptr noundef %2620, ptr noundef %2622, ptr noundef %2624, i32 noundef %2625) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2627:                                             ; preds = %2598
  %2628 = call i32 @s2n_io_pair_close(ptr noundef nonnull %25) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #11
  %2629 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %24) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #11
  %2630 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %23) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #11
  %2631 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #11
  br label %2632

2632:                                             ; preds = %2627, %2162
  %2633 = call zeroext i1 (...) @s2n_is_rsa_pss_certs_supported() #11
  br i1 %2633, label %2634, label %.loopexit

2634:                                             ; preds = %2632
  %2635 = call zeroext i1 (...) @s2n_cert_authorities_supported_from_trust_store() #11
  br i1 %2635, label %.preheader, label %.loopexit

.preheader:                                       ; preds = %2634
  %2636 = getelementptr inbounds i8, ptr %28, i64 28
  %2637 = getelementptr inbounds i8, ptr %28, i64 24
  br label %2638

2638:                                             ; preds = %.preheader, %2869
  %.0377 = phi i64 [ 0, %.preheader ], [ %2873, %2869 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #11
  %2639 = call ptr @s2n_config_new_minimal() #11
  store ptr %2639, ptr %26, align 8, !tbaa !9
  %2640 = load i32, ptr @test_count, align 4, !tbaa !5
  %2641 = add nsw i32 %2640, 1
  store i32 %2641, ptr @test_count, align 4, !tbaa !5
  %2642 = getelementptr inbounds [4 x %struct.anon], ptr @__const.main.test_cases, i64 0, i64 %.0377
  %2643 = load ptr, ptr %2642, align 8, !tbaa !61
  %2644 = call i32 @s2n_config_set_verification_ca_location(ptr noundef %2639, ptr noundef %2643, ptr noundef null) #11
  %2645 = icmp eq i32 %2644, -1
  br i1 %2645, label %2646, label %2668

2646:                                             ; preds = %2638
  %2647 = load i32, ptr %292, align 4, !tbaa !5
  %2648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2649 = call i32 @s2n_print_stacktrace(ptr noundef %2648) #11
  %2650 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2651 = trunc nuw i8 %2650 to i1
  br i1 %2651, label %2652, label %2656

2652:                                             ; preds = %2646
  %2653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2654 = call i32 @fileno(ptr noundef %2653) #11
  %2655 = call i32 @isatty(i32 noundef %2654) #11
  %.not312 = icmp eq i32 %2655, 0
  br i1 %.not312, label %2656, label %2657

2656:                                             ; preds = %2652, %2646
  br label %2657

2657:                                             ; preds = %2652, %2656
  %.str.5.sink1210 = phi ptr [ @.str.5, %2656 ], [ @.str.2, %2652 ]
  store i32 %2647, ptr %292, align 4, !tbaa !5
  %2658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2659 = load i32, ptr @test_count, align 4, !tbaa !5
  %2660 = load i32, ptr %238, align 4, !tbaa !5
  %2661 = call ptr @s2n_strerror(i32 noundef %2660, ptr noundef nonnull @.str.4) #11
  %2662 = load i32, ptr %238, align 4, !tbaa !5
  %2663 = call ptr @s2n_strerror_debug(i32 noundef %2662, ptr noundef nonnull @.str.4) #11
  %2664 = load i32, ptr %292, align 4, !tbaa !5
  %2665 = call ptr @strerror(i32 noundef %2664) #11
  %2666 = load i32, ptr %292, align 4, !tbaa !5
  %2667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2658, ptr noundef nonnull %.str.5.sink1210, i32 noundef %2659, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 381, ptr noundef %2661, ptr noundef %2663, ptr noundef %2665, i32 noundef %2666) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2668:                                             ; preds = %2638
  %2669 = load i32, ptr @test_count, align 4, !tbaa !5
  %2670 = add nsw i32 %2669, 1
  store i32 %2670, ptr @test_count, align 4, !tbaa !5
  %2671 = load ptr, ptr %26, align 8, !tbaa !9
  %2672 = call i32 @s2n_config_set_cert_authorities_from_trust_store(ptr noundef %2671) #11
  %2673 = icmp eq i32 %2672, -1
  br i1 %2673, label %2674, label %2696

2674:                                             ; preds = %2668
  %2675 = load i32, ptr %292, align 4, !tbaa !5
  %2676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2677 = call i32 @s2n_print_stacktrace(ptr noundef %2676) #11
  %2678 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2679 = trunc nuw i8 %2678 to i1
  br i1 %2679, label %2680, label %2684

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

2684:                                             ; preds = %2680, %2674
  br label %2685

2685:                                             ; preds = %2680, %2684
  %.str.5.sink1219 = phi ptr [ @.str.5, %2684 ], [ @.str.2, %2680 ]
  store i32 %2675, ptr %292, align 4, !tbaa !5
  %2686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2687 = load i32, ptr @test_count, align 4, !tbaa !5
  %2688 = load i32, ptr %238, align 4, !tbaa !5
  %2689 = call ptr @s2n_strerror(i32 noundef %2688, ptr noundef nonnull @.str.4) #11
  %2690 = load i32, ptr %238, align 4, !tbaa !5
  %2691 = call ptr @s2n_strerror_debug(i32 noundef %2690, ptr noundef nonnull @.str.4) #11
  %2692 = load i32, ptr %292, align 4, !tbaa !5
  %2693 = call ptr @strerror(i32 noundef %2692) #11
  %2694 = load i32, ptr %292, align 4, !tbaa !5
  %2695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2686, ptr noundef nonnull %.str.5.sink1219, i32 noundef %2687, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 383, ptr noundef %2689, ptr noundef %2691, ptr noundef %2693, i32 noundef %2694) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2696:                                             ; preds = %2668
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #11
  %2697 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %2697, ptr %27, align 8, !tbaa !9
  %2698 = load i32, ptr @test_count, align 4, !tbaa !5
  %2699 = add nsw i32 %2698, 1
  store i32 %2699, ptr @test_count, align 4, !tbaa !5
  %2700 = load ptr, ptr %26, align 8, !tbaa !9
  %2701 = call i32 @s2n_connection_set_config(ptr noundef %2697, ptr noundef %2700) #11
  %2702 = icmp eq i32 %2701, -1
  br i1 %2702, label %2703, label %2725

2703:                                             ; preds = %2696
  %2704 = load i32, ptr %292, align 4, !tbaa !5
  %2705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2706 = call i32 @s2n_print_stacktrace(ptr noundef %2705) #11
  %2707 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2708 = trunc nuw i8 %2707 to i1
  br i1 %2708, label %2709, label %2713

2709:                                             ; preds = %2703
  %2710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2711 = call i32 @fileno(ptr noundef %2710) #11
  %2712 = call i32 @isatty(i32 noundef %2711) #11
  %.not310 = icmp eq i32 %2712, 0
  br i1 %.not310, label %2713, label %2714

2713:                                             ; preds = %2709, %2703
  br label %2714

2714:                                             ; preds = %2709, %2713
  %.str.5.sink1228 = phi ptr [ @.str.5, %2713 ], [ @.str.2, %2709 ]
  store i32 %2704, ptr %292, align 4, !tbaa !5
  %2715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2716 = load i32, ptr @test_count, align 4, !tbaa !5
  %2717 = load i32, ptr %238, align 4, !tbaa !5
  %2718 = call ptr @s2n_strerror(i32 noundef %2717, ptr noundef nonnull @.str.4) #11
  %2719 = load i32, ptr %238, align 4, !tbaa !5
  %2720 = call ptr @s2n_strerror_debug(i32 noundef %2719, ptr noundef nonnull @.str.4) #11
  %2721 = load i32, ptr %292, align 4, !tbaa !5
  %2722 = call ptr @strerror(i32 noundef %2721) #11
  %2723 = load i32, ptr %292, align 4, !tbaa !5
  %2724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2715, ptr noundef nonnull %.str.5.sink1228, i32 noundef %2716, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 387, ptr noundef %2718, ptr noundef %2720, ptr noundef %2722, i32 noundef %2723) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2725:                                             ; preds = %2696
  %2726 = load ptr, ptr %27, align 8, !tbaa !9
  %2727 = getelementptr inbounds i8, ptr %2726, i64 220
  store i8 34, ptr %2727, align 4, !tbaa !26
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %28) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %28, i8 0, i64 40, i1 false)
  %2728 = load i32, ptr @test_count, align 4, !tbaa !5
  %2729 = add nsw i32 %2728, 1
  store i32 %2729, ptr @test_count, align 4, !tbaa !5
  %2730 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %28, i32 noundef 0) #11
  %2731 = icmp eq i32 %2730, -1
  br i1 %2731, label %2732, label %2754

2732:                                             ; preds = %2725
  %2733 = load i32, ptr %292, align 4, !tbaa !5
  %2734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2735 = call i32 @s2n_print_stacktrace(ptr noundef %2734) #11
  %2736 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2737 = trunc nuw i8 %2736 to i1
  br i1 %2737, label %2738, label %2742

2738:                                             ; preds = %2732
  %2739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2740 = call i32 @fileno(ptr noundef %2739) #11
  %2741 = call i32 @isatty(i32 noundef %2740) #11
  %.not309 = icmp eq i32 %2741, 0
  br i1 %.not309, label %2742, label %2743

2742:                                             ; preds = %2738, %2732
  br label %2743

2743:                                             ; preds = %2738, %2742
  %.str.5.sink1237 = phi ptr [ @.str.5, %2742 ], [ @.str.2, %2738 ]
  store i32 %2733, ptr %292, align 4, !tbaa !5
  %2744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2745 = load i32, ptr @test_count, align 4, !tbaa !5
  %2746 = load i32, ptr %238, align 4, !tbaa !5
  %2747 = call ptr @s2n_strerror(i32 noundef %2746, ptr noundef nonnull @.str.4) #11
  %2748 = load i32, ptr %238, align 4, !tbaa !5
  %2749 = call ptr @s2n_strerror_debug(i32 noundef %2748, ptr noundef nonnull @.str.4) #11
  %2750 = load i32, ptr %292, align 4, !tbaa !5
  %2751 = call ptr @strerror(i32 noundef %2750) #11
  %2752 = load i32, ptr %292, align 4, !tbaa !5
  %2753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2744, ptr noundef nonnull %.str.5.sink1237, i32 noundef %2745, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 391, ptr noundef %2747, ptr noundef %2749, ptr noundef %2751, i32 noundef %2752) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2754:                                             ; preds = %2725
  %2755 = load i32, ptr @test_count, align 4, !tbaa !5
  %2756 = add nsw i32 %2755, 1
  store i32 %2756, ptr @test_count, align 4, !tbaa !5
  %2757 = load ptr, ptr %27, align 8, !tbaa !9
  %2758 = call i32 @s2n_extension_send(ptr noundef nonnull @s2n_cert_authorities_extension, ptr noundef %2757, ptr noundef nonnull %28) #11
  %2759 = icmp eq i32 %2758, -1
  br i1 %2759, label %2760, label %2782

2760:                                             ; preds = %2754
  %2761 = load i32, ptr %292, align 4, !tbaa !5
  %2762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2763 = call i32 @s2n_print_stacktrace(ptr noundef %2762) #11
  %2764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2765 = trunc nuw i8 %2764 to i1
  br i1 %2765, label %2766, label %2770

2766:                                             ; preds = %2760
  %2767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2768 = call i32 @fileno(ptr noundef %2767) #11
  %2769 = call i32 @isatty(i32 noundef %2768) #11
  %.not308 = icmp eq i32 %2769, 0
  br i1 %.not308, label %2770, label %2771

2770:                                             ; preds = %2766, %2760
  br label %2771

2771:                                             ; preds = %2766, %2770
  %.str.5.sink1246 = phi ptr [ @.str.5, %2770 ], [ @.str.2, %2766 ]
  store i32 %2761, ptr %292, align 4, !tbaa !5
  %2772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2773 = load i32, ptr @test_count, align 4, !tbaa !5
  %2774 = load i32, ptr %238, align 4, !tbaa !5
  %2775 = call ptr @s2n_strerror(i32 noundef %2774, ptr noundef nonnull @.str.4) #11
  %2776 = load i32, ptr %238, align 4, !tbaa !5
  %2777 = call ptr @s2n_strerror_debug(i32 noundef %2776, ptr noundef nonnull @.str.4) #11
  %2778 = load i32, ptr %292, align 4, !tbaa !5
  %2779 = call ptr @strerror(i32 noundef %2778) #11
  %2780 = load i32, ptr %292, align 4, !tbaa !5
  %2781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2772, ptr noundef nonnull %.str.5.sink1246, i32 noundef %2773, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 394, ptr noundef %2775, ptr noundef %2777, ptr noundef %2779, i32 noundef %2780) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2782:                                             ; preds = %2754
  %2783 = load i32, ptr %2636, align 4, !tbaa !52
  %2784 = load i32, ptr %2637, align 8, !tbaa !53
  %2785 = sub i32 %2783, %2784
  %2786 = zext i32 %2785 to i64
  %2787 = load i32, ptr @test_count, align 4, !tbaa !5
  %2788 = add nsw i32 %2787, 1
  store i32 %2788, ptr @test_count, align 4, !tbaa !5
  %2789 = getelementptr inbounds i8, ptr %2642, i64 8
  %2790 = load i8, ptr %2789, align 8, !tbaa !63
  %2791 = zext i8 %2790 to i32
  %2792 = icmp eq i32 %2785, %2791
  br i1 %2792, label %2815, label %2793

2793:                                             ; preds = %2782
  %2794 = load i32, ptr %292, align 4, !tbaa !5
  %2795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2796 = call i32 @s2n_print_stacktrace(ptr noundef %2795) #11
  %2797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2798 = trunc nuw i8 %2797 to i1
  br i1 %2798, label %2799, label %2803

2799:                                             ; preds = %2793
  %2800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2801 = call i32 @fileno(ptr noundef %2800) #11
  %2802 = call i32 @isatty(i32 noundef %2801) #11
  %.not303 = icmp eq i32 %2802, 0
  br i1 %.not303, label %2803, label %2804

2803:                                             ; preds = %2799, %2793
  br label %2804

2804:                                             ; preds = %2799, %2803
  %.str.5.sink1255 = phi ptr [ @.str.5, %2803 ], [ @.str.2, %2799 ]
  store i32 %2794, ptr %292, align 4, !tbaa !5
  %2805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2806 = load i32, ptr @test_count, align 4, !tbaa !5
  %2807 = load i32, ptr %238, align 4, !tbaa !5
  %2808 = call ptr @s2n_strerror(i32 noundef %2807, ptr noundef nonnull @.str.4) #11
  %2809 = load i32, ptr %238, align 4, !tbaa !5
  %2810 = call ptr @s2n_strerror_debug(i32 noundef %2809, ptr noundef nonnull @.str.4) #11
  %2811 = load i32, ptr %292, align 4, !tbaa !5
  %2812 = call ptr @strerror(i32 noundef %2811) #11
  %2813 = load i32, ptr %292, align 4, !tbaa !5
  %2814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2805, ptr noundef nonnull %.str.5.sink1255, i32 noundef %2806, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 397, ptr noundef %2808, ptr noundef %2810, ptr noundef %2812, i32 noundef %2813) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2815:                                             ; preds = %2782
  %2816 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %28, i32 noundef %2785) #11
  %2817 = load i32, ptr @test_count, align 4, !tbaa !5
  %2818 = add nsw i32 %2817, 1
  store i32 %2818, ptr @test_count, align 4, !tbaa !5
  %2819 = icmp eq ptr %2816, null
  br i1 %2819, label %2820, label %2842

2820:                                             ; preds = %2815
  %2821 = load i32, ptr %292, align 4, !tbaa !5
  %2822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2823 = call i32 @s2n_print_stacktrace(ptr noundef %2822) #11
  %2824 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2825 = trunc nuw i8 %2824 to i1
  br i1 %2825, label %2826, label %2830

2826:                                             ; preds = %2820
  %2827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2828 = call i32 @fileno(ptr noundef %2827) #11
  %2829 = call i32 @isatty(i32 noundef %2828) #11
  %.not307 = icmp eq i32 %2829, 0
  br i1 %.not307, label %2830, label %2831

2830:                                             ; preds = %2826, %2820
  br label %2831

2831:                                             ; preds = %2826, %2830
  %.str.5.sink1264 = phi ptr [ @.str.5, %2830 ], [ @.str.2, %2826 ]
  store i32 %2821, ptr %292, align 4, !tbaa !5
  %2832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2833 = load i32, ptr @test_count, align 4, !tbaa !5
  %2834 = load i32, ptr %238, align 4, !tbaa !5
  %2835 = call ptr @s2n_strerror(i32 noundef %2834, ptr noundef nonnull @.str.4) #11
  %2836 = load i32, ptr %238, align 4, !tbaa !5
  %2837 = call ptr @s2n_strerror_debug(i32 noundef %2836, ptr noundef nonnull @.str.4) #11
  %2838 = load i32, ptr %292, align 4, !tbaa !5
  %2839 = call ptr @strerror(i32 noundef %2838) #11
  %2840 = load i32, ptr %292, align 4, !tbaa !5
  %2841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2832, ptr noundef nonnull %.str.5.sink1264, i32 noundef %2833, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 400, ptr noundef %2835, ptr noundef %2837, ptr noundef %2839, i32 noundef %2840) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2842:                                             ; preds = %2815
  %.not304 = icmp eq i32 %2783, %2784
  br i1 %.not304, label %2869, label %2843

2843:                                             ; preds = %2842
  %2844 = add nsw i32 %2817, 2
  store i32 %2844, ptr @test_count, align 4, !tbaa !5
  %2845 = getelementptr inbounds i8, ptr %2642, i64 9
  %bcmp305 = call i32 @bcmp(ptr nonnull %2845, ptr nonnull %2816, i64 %2786)
  %2846 = icmp eq i32 %bcmp305, 0
  br i1 %2846, label %2869, label %2847

2847:                                             ; preds = %2843
  %2848 = load i32, ptr %292, align 4, !tbaa !5
  %2849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2850 = call i32 @s2n_print_stacktrace(ptr noundef %2849) #11
  %2851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2852 = trunc nuw i8 %2851 to i1
  br i1 %2852, label %2853, label %2857

2853:                                             ; preds = %2847
  %2854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2855 = call i32 @fileno(ptr noundef %2854) #11
  %2856 = call i32 @isatty(i32 noundef %2855) #11
  %.not306 = icmp eq i32 %2856, 0
  br i1 %.not306, label %2857, label %2858

2857:                                             ; preds = %2853, %2847
  br label %2858

2858:                                             ; preds = %2853, %2857
  %.str.5.sink1273 = phi ptr [ @.str.5, %2857 ], [ @.str.2, %2853 ]
  store i32 %2848, ptr %292, align 4, !tbaa !5
  %2859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2860 = load i32, ptr @test_count, align 4, !tbaa !5
  %2861 = load i32, ptr %238, align 4, !tbaa !5
  %2862 = call ptr @s2n_strerror(i32 noundef %2861, ptr noundef nonnull @.str.4) #11
  %2863 = load i32, ptr %238, align 4, !tbaa !5
  %2864 = call ptr @s2n_strerror_debug(i32 noundef %2863, ptr noundef nonnull @.str.4) #11
  %2865 = load i32, ptr %292, align 4, !tbaa !5
  %2866 = call ptr @strerror(i32 noundef %2865) #11
  %2867 = load i32, ptr %292, align 4, !tbaa !5
  %2868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2859, ptr noundef nonnull %.str.5.sink1273, i32 noundef %2860, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 401, ptr noundef %2862, ptr noundef %2864, ptr noundef %2866, i32 noundef %2867) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2869:                                             ; preds = %2843, %2842
  %2870 = call i32 @s2n_stuffer_free(ptr noundef nonnull %28) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %28) #11
  %2871 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %27) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #11
  %2872 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %26) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #11
  %2873 = add nuw nsw i64 %.0377, 1
  %exitcond.not = icmp eq i64 %2873, 4
  br i1 %exitcond.not, label %.loopexit, label %2638, !llvm.loop !64

.loopexit:                                        ; preds = %2869, %2634, %2632
  %2874 = call i32 @s2n_cleanup() #11
  %2875 = icmp eq i32 %2874, -1
  br i1 %2875, label %2876, label %2898

2876:                                             ; preds = %.loopexit
  %2877 = load i32, ptr %292, align 4, !tbaa !5
  %2878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2879 = call i32 @s2n_print_stacktrace(ptr noundef %2878) #11
  %2880 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2881 = trunc nuw i8 %2880 to i1
  br i1 %2881, label %2882, label %2886

2882:                                             ; preds = %2876
  %2883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2884 = call i32 @fileno(ptr noundef %2883) #11
  %2885 = call i32 @isatty(i32 noundef %2884) #11
  %.not302 = icmp eq i32 %2885, 0
  br i1 %.not302, label %2886, label %2887

2886:                                             ; preds = %2882, %2876
  br label %2887

2887:                                             ; preds = %2882, %2886
  %.str.5.sink1282 = phi ptr [ @.str.5, %2886 ], [ @.str.2, %2882 ]
  store i32 %2877, ptr %292, align 4, !tbaa !5
  %2888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2889 = load i32, ptr @test_count, align 4, !tbaa !5
  %2890 = load i32, ptr %238, align 4, !tbaa !5
  %2891 = call ptr @s2n_strerror(i32 noundef %2890, ptr noundef nonnull @.str.4) #11
  %2892 = load i32, ptr %238, align 4, !tbaa !5
  %2893 = call ptr @s2n_strerror_debug(i32 noundef %2892, ptr noundef nonnull @.str.4) #11
  %2894 = load i32, ptr %292, align 4, !tbaa !5
  %2895 = call ptr @strerror(i32 noundef %2894) #11
  %2896 = load i32, ptr %292, align 4, !tbaa !5
  %2897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2888, ptr noundef nonnull %.str.5.sink1282, i32 noundef %2889, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 405, ptr noundef %2891, ptr noundef %2893, ptr noundef %2895, i32 noundef %2896) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2898:                                             ; preds = %.loopexit
  %2899 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %2900 = icmp eq i32 %2899, -1
  br i1 %2900, label %2901, label %2923

2901:                                             ; preds = %2898
  %2902 = load i32, ptr %292, align 4, !tbaa !5
  %2903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2904 = call i32 @s2n_print_stacktrace(ptr noundef %2903) #11
  %2905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2906 = trunc nuw i8 %2905 to i1
  br i1 %2906, label %2907, label %2911

2907:                                             ; preds = %2901
  %2908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2909 = call i32 @fileno(ptr noundef %2908) #11
  %2910 = call i32 @isatty(i32 noundef %2909) #11
  %.not301 = icmp eq i32 %2910, 0
  br i1 %.not301, label %2911, label %2912

2911:                                             ; preds = %2907, %2901
  br label %2912

2912:                                             ; preds = %2907, %2911
  %.str.5.sink1291 = phi ptr [ @.str.5, %2911 ], [ @.str.2, %2907 ]
  store i32 %2902, ptr %292, align 4, !tbaa !5
  %2913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2914 = load i32, ptr @test_count, align 4, !tbaa !5
  %2915 = load i32, ptr %238, align 4, !tbaa !5
  %2916 = call ptr @s2n_strerror(i32 noundef %2915, ptr noundef nonnull @.str.4) #11
  %2917 = load i32, ptr %238, align 4, !tbaa !5
  %2918 = call ptr @s2n_strerror_debug(i32 noundef %2917, ptr noundef nonnull @.str.4) #11
  %2919 = load i32, ptr %292, align 4, !tbaa !5
  %2920 = call ptr @strerror(i32 noundef %2919) #11
  %2921 = load i32, ptr %292, align 4, !tbaa !5
  %2922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2913, ptr noundef nonnull %.str.5.sink1291, i32 noundef %2914, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 405, ptr noundef %2916, ptr noundef %2918, ptr noundef %2920, i32 noundef %2921) #13
  call void @exit(i32 noundef 1) #14
  unreachable

2923:                                             ; preds = %2898
  %2924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2925 = trunc nuw i8 %2924 to i1
  br i1 %2925, label %2926, label %2937

2926:                                             ; preds = %2923
  %2927 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2928 = call i32 @fileno(ptr noundef %2927) #11
  %2929 = call i32 @isatty(i32 noundef %2928) #11
  %.not298 = icmp eq i32 %2929, 0
  br i1 %.not298, label %2937, label %2930

2930:                                             ; preds = %2926
  %2931 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not300 = icmp eq i32 %2931, 0
  %2932 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not300, label %2935, label %2933

2933:                                             ; preds = %2930
  %2934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2932, ptr noundef nonnull @.str.83, i32 noundef %2931) #11
  br label %2944

2935:                                             ; preds = %2930
  %2936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2932, ptr noundef nonnull @.str.84) #11
  br label %2944

2937:                                             ; preds = %2926, %2923
  %2938 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not299 = icmp eq i32 %2938, 0
  %2939 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not299, label %2942, label %2940

2940:                                             ; preds = %2937
  %2941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2939, ptr noundef nonnull @.str.85, i32 noundef %2938) #11
  br label %2944

2942:                                             ; preds = %2937
  %2943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2939, ptr noundef nonnull @.str.86) #11
  br label %2944

2944:                                             ; preds = %2940, %2942, %2933, %2935
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #11
  %2945 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %3) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #11
  ret i32 0
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #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

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext, ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_libcrypto_is_awslc() local_unnamed_addr #2

declare zeroext i1 @s2n_cert_authorities_supported_from_trust_store(...) local_unnamed_addr #2

declare i32 @s2n_config_set_cert_authorities_from_trust_store(ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare ptr @s2n_config_new_minimal() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_verification_ca_location(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_wipe_trust_store(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) 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) #9

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_read_uint16(ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @s2n_stuffer_raw_read(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_extension_send(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #2

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_client_hello_send(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_parse_client_hello(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_reserve_uint16(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_vector_size(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_client_hello_recv(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_client_auth_type(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connections_set_io_pair(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_negotiate_test_server_and_client(ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare zeroext i1 @s2n_is_rsa_pss_certs_supported(...) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #10

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: readwrite) }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { nofree nounwind willreturn memory(argmem: read) }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { cold nounwind }
attributes #14 = { noreturn nounwind }

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

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


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass