; LLVM IR from aws/s2n-tls :: tests/unit (s2n_protocol_preferences_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_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_config = type { i32, ptr, ptr, %struct.certs_by_type, %struct.s2n_blob, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, i64, ptr, i64, i64, ptr, ptr, ptr, ptr, ptr, ptr, i32, i8, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, %struct.s2n_x509_trust_store, i16, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, ptr, i32, i32, ptr, ptr, i32, %struct.s2n_blob }
%struct.certs_by_type = type { [4 x ptr] }
%struct.s2n_x509_trust_store = type { ptr, i8 }
%struct.s2n_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 [88 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@__const.main.protocol1 = external hidden unnamed_addr constant [10 x i8], align 1
@__const.main.protocol2 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [39 x i8], align 1
@s2n_client_alpn_extension = external constant %struct.s2n_extension_type, align 8
@.str.62 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [91 x i8], align 1
@__const.main.protocol3 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.78 = 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 [10 x i8], align 1
  %10 = alloca i64, align 8
  %11 = alloca [15 x i8], align 1
  %12 = alloca i64, align 8
  %13 = alloca [255 x i8], align 16
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i64, align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i64, align 8
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca [2 x ptr], align 16
  %45 = alloca i8, align 1
  %46 = alloca [257 x i8], align 16
  %47 = alloca i32, align 4
  %48 = alloca [1 x ptr], align 8
  %49 = alloca i8, align 1
  %50 = alloca ptr, align 8
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca ptr, align 8
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca %struct.s2n_stuffer, align 8
  %87 = alloca %struct.s2n_blob, align 8
  %88 = alloca %struct.s2n_result, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca %struct.s2n_result, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca %struct.s2n_stuffer, align 8
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca %struct.s2n_blob, align 8
  %100 = alloca %struct.s2n_result, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca %struct.s2n_stuffer, align 8
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca %struct.s2n_blob, align 8
  %111 = alloca %struct.s2n_result, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca ptr, align 8
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca %struct.s2n_blob, align 8
  %122 = alloca %struct.s2n_result, align 4
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca [10 x i8], align 1
  %128 = alloca %struct.s2n_blob, align 8
  %129 = alloca i32, align 4
  %130 = alloca %struct.s2n_blob, align 8
  %131 = alloca i8, align 1
  %132 = alloca %struct.s2n_result, align 4
  %133 = alloca i32, align 4
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca %struct.s2n_result, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca %struct.s2n_result, align 4
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca ptr, align 8
  %145 = alloca i32, align 4
  %146 = alloca i8, align 1
  %147 = alloca %struct.s2n_result, align 4
  %148 = alloca i32, align 4
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca ptr, align 8
  %152 = alloca i32, align 4
  %153 = alloca i32, align 4
  %154 = alloca i32, align 4
  %155 = alloca i8, align 1
  %156 = alloca %struct.s2n_result, align 4
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca i32, align 4
  %160 = alloca ptr, align 8
  %161 = alloca i32, align 4
  %162 = alloca i32, align 4
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca i8, align 1
  %166 = alloca %struct.s2n_result, align 4
  %167 = alloca i32, align 4
  %168 = alloca i32, align 4
  %169 = alloca i32, align 4
  %170 = alloca i32, align 4
  %171 = alloca i32, align 4
  %172 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %173

173:                                              ; preds = %2
  br label %174

174:                                              ; preds = %173
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %175 = load ptr, ptr @stdout, align 8, !tbaa !9
  %176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %175, ptr noundef @.str, ptr noundef @.str.1) #11
  %177 = load ptr, ptr @stdout, align 8, !tbaa !9
  %178 = call i32 @fflush(ptr noundef %177)
  br label %179

179:                                              ; preds = %174
  %180 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %181 = icmp eq i32 %180, -1
  br i1 %181, label %182, label %233

182:                                              ; preds = %179
  br label %183

183:                                              ; preds = %182
  br label %184

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

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

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

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

230:                                              ; preds = %213, %196
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %231

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

232:                                              ; No predecessors!
  br label %233

233:                                              ; preds = %232, %179
  br label %234

234:                                              ; preds = %233
  br label %235

235:                                              ; preds = %234
  %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 i32 @s2n_enable_atexit()
  %239 = icmp eq i32 %238, -1
  br i1 %239, label %240, label %291

240:                                              ; preds = %235
  br label %241

241:                                              ; preds = %240
  br label %242

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

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

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

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

288:                                              ; preds = %271, %254
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %289

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

290:                                              ; No predecessors!
  br label %291

291:                                              ; preds = %290, %235
  br label %292

292:                                              ; preds = %291
  br label %293

293:                                              ; preds = %292
  br label %294

294:                                              ; preds = %293
  %295 = call i32 @s2n_init()
  %296 = icmp eq i32 %295, -1
  br i1 %296, label %297, label %348

297:                                              ; preds = %294
  br label %298

298:                                              ; preds = %297
  br label %299

299:                                              ; preds = %298
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %300 = call ptr @__errno_location() #12
  %301 = load i32, ptr %300, align 4, !tbaa !5
  store i32 %301, ptr %8, align 4, !tbaa !5
  %302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %303 = call i32 @s2n_print_stacktrace(ptr noundef %302)
  %304 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %305 = trunc i8 %304 to i1
  br i1 %305, label %306, label %328

306:                                              ; preds = %299
  %307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %308 = call i32 @fileno(ptr noundef %307) #11
  %309 = call i32 @isatty(i32 noundef %308) #11
  %310 = icmp ne i32 %309, 0
  br i1 %310, label %311, label %328

311:                                              ; preds = %306
  %312 = load i32, ptr %8, align 4, !tbaa !5
  %313 = call ptr @__errno_location() #12
  store i32 %312, ptr %313, align 4, !tbaa !5
  %314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %315 = load i32, ptr @test_count, align 4, !tbaa !5
  %316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %317 = load i32, ptr %316, align 4, !tbaa !5
  %318 = call ptr @s2n_strerror(i32 noundef %317, ptr noundef @.str.4)
  %319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %320 = load i32, ptr %319, align 4, !tbaa !5
  %321 = call ptr @s2n_strerror_debug(i32 noundef %320, ptr noundef @.str.4)
  %322 = call ptr @__errno_location() #12
  %323 = load i32, ptr %322, align 4, !tbaa !5
  %324 = call ptr @strerror(i32 noundef %323) #11
  %325 = call ptr @__errno_location() #12
  %326 = load i32, ptr %325, align 4, !tbaa !5
  %327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %314, ptr noundef @.str.2, i32 noundef %315, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 27, ptr noundef %318, ptr noundef %321, ptr noundef %324, i32 noundef %326) #11
  br label %345

328:                                              ; preds = %306, %299
  %329 = load i32, ptr %8, align 4, !tbaa !5
  %330 = call ptr @__errno_location() #12
  store i32 %329, ptr %330, align 4, !tbaa !5
  %331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %332 = load i32, ptr @test_count, align 4, !tbaa !5
  %333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %334 = load i32, ptr %333, align 4, !tbaa !5
  %335 = call ptr @s2n_strerror(i32 noundef %334, ptr noundef @.str.4)
  %336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %337 = load i32, ptr %336, align 4, !tbaa !5
  %338 = call ptr @s2n_strerror_debug(i32 noundef %337, ptr noundef @.str.4)
  %339 = call ptr @__errno_location() #12
  %340 = load i32, ptr %339, align 4, !tbaa !5
  %341 = call ptr @strerror(i32 noundef %340) #11
  %342 = call ptr @__errno_location() #12
  %343 = load i32, ptr %342, align 4, !tbaa !5
  %344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %331, ptr noundef @.str.5, i32 noundef %332, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 27, ptr noundef %335, ptr noundef %338, ptr noundef %341, i32 noundef %343) #11
  br label %345

345:                                              ; preds = %328, %311
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %346

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

347:                                              ; No predecessors!
  br label %348

348:                                              ; preds = %347, %294
  br label %349

349:                                              ; preds = %348
  br label %350

350:                                              ; preds = %349
  call void @llvm.lifetime.start.p0(i64 10, ptr %9) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %9, ptr align 1 @__const.main.protocol1, i64 10, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #11
  %351 = getelementptr inbounds [10 x i8], ptr %9, i64 0, i64 0
  %352 = call i64 @strlen(ptr noundef %351) #14
  store i64 %352, ptr %10, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 15, ptr %11) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %11, ptr align 1 @__const.main.protocol2, i64 15, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #11
  %353 = getelementptr inbounds [15 x i8], ptr %11, i64 0, i64 0
  %354 = call i64 @strlen(ptr noundef %353) #14
  store i64 %354, ptr %12, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 255, ptr %13) #11
  call void @llvm.memset.p0.i64(ptr align 16 %13, i8 0, i64 255, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #11
  store ptr null, ptr %14, align 8, !tbaa !9
  br label %355

355:                                              ; preds = %350
  %356 = load i32, ptr @test_count, align 4, !tbaa !5
  %357 = add nsw i32 %356, 1
  store i32 %357, ptr @test_count, align 4, !tbaa !5
  %358 = call ptr @s2n_config_new()
  store ptr %358, ptr %14, align 8, !tbaa !9
  %359 = icmp eq ptr %358, null
  br i1 %359, label %360, label %413

360:                                              ; preds = %355
  br label %361

361:                                              ; preds = %360
  br label %362

362:                                              ; preds = %361
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #11
  %363 = call ptr @__errno_location() #12
  %364 = load i32, ptr %363, align 4, !tbaa !5
  store i32 %364, ptr %15, align 4, !tbaa !5
  %365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %366 = call i32 @s2n_print_stacktrace(ptr noundef %365)
  %367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %368 = trunc i8 %367 to i1
  br i1 %368, label %369, label %391

369:                                              ; preds = %362
  %370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %371 = call i32 @fileno(ptr noundef %370) #11
  %372 = call i32 @isatty(i32 noundef %371) #11
  %373 = icmp ne i32 %372, 0
  br i1 %373, label %374, label %391

374:                                              ; preds = %369
  %375 = load i32, ptr %15, align 4, !tbaa !5
  %376 = call ptr @__errno_location() #12
  store i32 %375, ptr %376, align 4, !tbaa !5
  %377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %378 = load i32, ptr @test_count, align 4, !tbaa !5
  %379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %380 = load i32, ptr %379, align 4, !tbaa !5
  %381 = call ptr @s2n_strerror(i32 noundef %380, ptr noundef @.str.4)
  %382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %383 = load i32, ptr %382, align 4, !tbaa !5
  %384 = call ptr @s2n_strerror_debug(i32 noundef %383, ptr noundef @.str.4)
  %385 = call ptr @__errno_location() #12
  %386 = load i32, ptr %385, align 4, !tbaa !5
  %387 = call ptr @strerror(i32 noundef %386) #11
  %388 = call ptr @__errno_location() #12
  %389 = load i32, ptr %388, align 4, !tbaa !5
  %390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %377, ptr noundef @.str.2, i32 noundef %378, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 40, ptr noundef %381, ptr noundef %384, ptr noundef %387, i32 noundef %389) #11
  br label %408

391:                                              ; preds = %369, %362
  %392 = load i32, ptr %15, align 4, !tbaa !5
  %393 = call ptr @__errno_location() #12
  store i32 %392, ptr %393, align 4, !tbaa !5
  %394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %395 = load i32, ptr @test_count, align 4, !tbaa !5
  %396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %397 = load i32, ptr %396, align 4, !tbaa !5
  %398 = call ptr @s2n_strerror(i32 noundef %397, ptr noundef @.str.4)
  %399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %400 = load i32, ptr %399, align 4, !tbaa !5
  %401 = call ptr @s2n_strerror_debug(i32 noundef %400, ptr noundef @.str.4)
  %402 = call ptr @__errno_location() #12
  %403 = load i32, ptr %402, align 4, !tbaa !5
  %404 = call ptr @strerror(i32 noundef %403) #11
  %405 = call ptr @__errno_location() #12
  %406 = load i32, ptr %405, align 4, !tbaa !5
  %407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %394, ptr noundef @.str.5, i32 noundef %395, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 40, ptr noundef %398, ptr noundef %401, ptr noundef %404, i32 noundef %406) #11
  br label %408

408:                                              ; preds = %391, %374
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %409

409:                                              ; preds = %408
  br label %410

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

411:                                              ; No predecessors!
  br label %412

412:                                              ; preds = %411
  br label %413

413:                                              ; preds = %412, %355
  br label %414

414:                                              ; preds = %413
  br label %415

415:                                              ; preds = %414
  br label %416

416:                                              ; preds = %415
  %417 = load i32, ptr @test_count, align 4, !tbaa !5
  %418 = add nsw i32 %417, 1
  store i32 %418, ptr @test_count, align 4, !tbaa !5
  %419 = load ptr, ptr %14, align 8, !tbaa !9
  %420 = getelementptr inbounds %struct.s2n_config, ptr %419, i32 0, i32 4
  %421 = getelementptr inbounds %struct.s2n_blob, ptr %420, i32 0, i32 1
  %422 = load i32, ptr %421, align 8, !tbaa !17
  %423 = icmp eq i32 %422, 0
  br i1 %423, label %477, label %424

424:                                              ; preds = %416
  br label %425

425:                                              ; preds = %424
  br label %426

426:                                              ; preds = %425
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #11
  %427 = call ptr @__errno_location() #12
  %428 = load i32, ptr %427, align 4, !tbaa !5
  store i32 %428, ptr %16, align 4, !tbaa !5
  %429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %430 = call i32 @s2n_print_stacktrace(ptr noundef %429)
  %431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %432 = trunc i8 %431 to i1
  br i1 %432, label %433, label %455

433:                                              ; preds = %426
  %434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %435 = call i32 @fileno(ptr noundef %434) #11
  %436 = call i32 @isatty(i32 noundef %435) #11
  %437 = icmp ne i32 %436, 0
  br i1 %437, label %438, label %455

438:                                              ; preds = %433
  %439 = load i32, ptr %16, align 4, !tbaa !5
  %440 = call ptr @__errno_location() #12
  store i32 %439, ptr %440, align 4, !tbaa !5
  %441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %442 = load i32, ptr @test_count, align 4, !tbaa !5
  %443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %444 = load i32, ptr %443, align 4, !tbaa !5
  %445 = call ptr @s2n_strerror(i32 noundef %444, ptr noundef @.str.4)
  %446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %447 = load i32, ptr %446, align 4, !tbaa !5
  %448 = call ptr @s2n_strerror_debug(i32 noundef %447, ptr noundef @.str.4)
  %449 = call ptr @__errno_location() #12
  %450 = load i32, ptr %449, align 4, !tbaa !5
  %451 = call ptr @strerror(i32 noundef %450) #11
  %452 = call ptr @__errno_location() #12
  %453 = load i32, ptr %452, align 4, !tbaa !5
  %454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %441, ptr noundef @.str.2, i32 noundef %442, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 41, ptr noundef %445, ptr noundef %448, ptr noundef %451, i32 noundef %453) #11
  br label %472

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

472:                                              ; preds = %455, %438
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  br label %473

473:                                              ; preds = %472
  br label %474

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

475:                                              ; No predecessors!
  br label %476

476:                                              ; preds = %475
  br label %477

477:                                              ; preds = %476, %416
  br label %478

478:                                              ; preds = %477
  br label %479

479:                                              ; preds = %478
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #11
  store i64 0, ptr %17, align 8, !tbaa !15
  br label %480

480:                                              ; preds = %479
  %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 %14, align 8, !tbaa !9
  %484 = getelementptr inbounds [10 x i8], ptr %9, i64 0, i64 0
  %485 = call i32 @s2n_config_append_protocol_preference(ptr noundef %483, ptr noundef %484, i8 noundef zeroext 10)
  %486 = icmp eq i32 %485, -1
  br i1 %486, label %487, label %540

487:                                              ; preds = %480
  br label %488

488:                                              ; preds = %487
  br label %489

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

496:                                              ; preds = %489
  %497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %498 = call i32 @fileno(ptr noundef %497) #11
  %499 = call i32 @isatty(i32 noundef %498) #11
  %500 = icmp ne i32 %499, 0
  br i1 %500, label %501, label %518

501:                                              ; preds = %496
  %502 = load i32, ptr %18, align 4, !tbaa !5
  %503 = call ptr @__errno_location() #12
  store i32 %502, ptr %503, align 4, !tbaa !5
  %504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %505 = load i32, ptr @test_count, align 4, !tbaa !5
  %506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %507 = load i32, ptr %506, align 4, !tbaa !5
  %508 = call ptr @s2n_strerror(i32 noundef %507, ptr noundef @.str.4)
  %509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %510 = load i32, ptr %509, align 4, !tbaa !5
  %511 = call ptr @s2n_strerror_debug(i32 noundef %510, ptr noundef @.str.4)
  %512 = call ptr @__errno_location() #12
  %513 = load i32, ptr %512, align 4, !tbaa !5
  %514 = call ptr @strerror(i32 noundef %513) #11
  %515 = call ptr @__errno_location() #12
  %516 = load i32, ptr %515, align 4, !tbaa !5
  %517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %504, ptr noundef @.str.2, i32 noundef %505, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 45, ptr noundef %508, ptr noundef %511, ptr noundef %514, i32 noundef %516) #11
  br label %535

518:                                              ; preds = %496, %489
  %519 = load i32, ptr %18, align 4, !tbaa !5
  %520 = call ptr @__errno_location() #12
  store i32 %519, ptr %520, align 4, !tbaa !5
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = load i32, ptr @test_count, align 4, !tbaa !5
  %523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %524 = load i32, ptr %523, align 4, !tbaa !5
  %525 = call ptr @s2n_strerror(i32 noundef %524, ptr noundef @.str.4)
  %526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %527 = load i32, ptr %526, align 4, !tbaa !5
  %528 = call ptr @s2n_strerror_debug(i32 noundef %527, ptr noundef @.str.4)
  %529 = call ptr @__errno_location() #12
  %530 = load i32, ptr %529, align 4, !tbaa !5
  %531 = call ptr @strerror(i32 noundef %530) #11
  %532 = call ptr @__errno_location() #12
  %533 = load i32, ptr %532, align 4, !tbaa !5
  %534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %521, ptr noundef @.str.5, i32 noundef %522, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 45, ptr noundef %525, ptr noundef %528, ptr noundef %531, i32 noundef %533) #11
  br label %535

535:                                              ; preds = %518, %501
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  br label %536

536:                                              ; preds = %535
  br label %537

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

538:                                              ; No predecessors!
  br label %539

539:                                              ; preds = %538
  br label %540

540:                                              ; preds = %539, %480
  br label %541

541:                                              ; preds = %540
  br label %542

542:                                              ; preds = %541
  br label %543

543:                                              ; preds = %542
  %544 = load i32, ptr @test_count, align 4, !tbaa !5
  %545 = add nsw i32 %544, 1
  store i32 %545, ptr @test_count, align 4, !tbaa !5
  %546 = load ptr, ptr %14, align 8, !tbaa !9
  %547 = getelementptr inbounds %struct.s2n_config, ptr %546, i32 0, i32 4
  %548 = getelementptr inbounds %struct.s2n_blob, ptr %547, i32 0, i32 1
  %549 = load i32, ptr %548, align 8, !tbaa !17
  %550 = zext i32 %549 to i64
  %551 = icmp eq i64 %550, 11
  br i1 %551, label %605, label %552

552:                                              ; preds = %543
  br label %553

553:                                              ; preds = %552
  br label %554

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

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

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

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

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

601:                                              ; preds = %600
  br label %602

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

603:                                              ; No predecessors!
  br label %604

604:                                              ; preds = %603
  br label %605

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

606:                                              ; preds = %605
  br label %607

607:                                              ; preds = %606
  %608 = load ptr, ptr %14, align 8, !tbaa !9
  %609 = getelementptr inbounds %struct.s2n_config, ptr %608, i32 0, i32 4
  %610 = getelementptr inbounds %struct.s2n_blob, ptr %609, i32 0, i32 1
  %611 = load i32, ptr %610, align 8, !tbaa !17
  %612 = zext i32 %611 to i64
  store i64 %612, ptr %17, align 8, !tbaa !15
  br label %613

613:                                              ; preds = %607
  %614 = load i32, ptr @test_count, align 4, !tbaa !5
  %615 = add nsw i32 %614, 1
  store i32 %615, ptr @test_count, align 4, !tbaa !5
  %616 = load ptr, ptr %14, align 8, !tbaa !9
  %617 = getelementptr inbounds [15 x i8], ptr %11, i64 0, i64 0
  %618 = call i32 @s2n_config_append_protocol_preference(ptr noundef %616, ptr noundef %617, i8 noundef zeroext 15)
  %619 = icmp eq i32 %618, -1
  br i1 %619, label %620, label %673

620:                                              ; preds = %613
  br label %621

621:                                              ; preds = %620
  br label %622

622:                                              ; preds = %621
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  %623 = call ptr @__errno_location() #12
  %624 = load i32, ptr %623, align 4, !tbaa !5
  store i32 %624, ptr %20, align 4, !tbaa !5
  %625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %626 = call i32 @s2n_print_stacktrace(ptr noundef %625)
  %627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %628 = trunc i8 %627 to i1
  br i1 %628, label %629, label %651

629:                                              ; preds = %622
  %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
  %633 = icmp ne i32 %632, 0
  br i1 %633, label %634, label %651

634:                                              ; preds = %629
  %635 = load i32, ptr %20, align 4, !tbaa !5
  %636 = call ptr @__errno_location() #12
  store i32 %635, ptr %636, align 4, !tbaa !5
  %637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %638 = load i32, ptr @test_count, align 4, !tbaa !5
  %639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %640 = load i32, ptr %639, align 4, !tbaa !5
  %641 = call ptr @s2n_strerror(i32 noundef %640, ptr noundef @.str.4)
  %642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %643 = load i32, ptr %642, align 4, !tbaa !5
  %644 = call ptr @s2n_strerror_debug(i32 noundef %643, ptr noundef @.str.4)
  %645 = call ptr @__errno_location() #12
  %646 = load i32, ptr %645, align 4, !tbaa !5
  %647 = call ptr @strerror(i32 noundef %646) #11
  %648 = call ptr @__errno_location() #12
  %649 = load i32, ptr %648, align 4, !tbaa !5
  %650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %637, ptr noundef @.str.2, i32 noundef %638, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 50, ptr noundef %641, ptr noundef %644, ptr noundef %647, i32 noundef %649) #11
  br label %668

651:                                              ; preds = %629, %622
  %652 = load i32, ptr %20, align 4, !tbaa !5
  %653 = call ptr @__errno_location() #12
  store i32 %652, ptr %653, align 4, !tbaa !5
  %654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %655 = load i32, ptr @test_count, align 4, !tbaa !5
  %656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %657 = load i32, ptr %656, align 4, !tbaa !5
  %658 = call ptr @s2n_strerror(i32 noundef %657, ptr noundef @.str.4)
  %659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %660 = load i32, ptr %659, align 4, !tbaa !5
  %661 = call ptr @s2n_strerror_debug(i32 noundef %660, ptr noundef @.str.4)
  %662 = call ptr @__errno_location() #12
  %663 = load i32, ptr %662, align 4, !tbaa !5
  %664 = call ptr @strerror(i32 noundef %663) #11
  %665 = call ptr @__errno_location() #12
  %666 = load i32, ptr %665, align 4, !tbaa !5
  %667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %654, ptr noundef @.str.5, i32 noundef %655, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 50, ptr noundef %658, ptr noundef %661, ptr noundef %664, i32 noundef %666) #11
  br label %668

668:                                              ; preds = %651, %634
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %669

669:                                              ; preds = %668
  br label %670

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

671:                                              ; No predecessors!
  br label %672

672:                                              ; preds = %671
  br label %673

673:                                              ; preds = %672, %613
  br label %674

674:                                              ; preds = %673
  br label %675

675:                                              ; preds = %674
  br label %676

676:                                              ; preds = %675
  %677 = load i32, ptr @test_count, align 4, !tbaa !5
  %678 = add nsw i32 %677, 1
  store i32 %678, ptr @test_count, align 4, !tbaa !5
  %679 = load ptr, ptr %14, align 8, !tbaa !9
  %680 = getelementptr inbounds %struct.s2n_config, ptr %679, i32 0, i32 4
  %681 = getelementptr inbounds %struct.s2n_blob, ptr %680, i32 0, i32 1
  %682 = load i32, ptr %681, align 8, !tbaa !17
  %683 = zext i32 %682 to i64
  %684 = load i64, ptr %17, align 8, !tbaa !15
  %685 = add i64 %684, 1
  %686 = add i64 %685, 15
  %687 = icmp eq i64 %683, %686
  br i1 %687, label %741, label %688

688:                                              ; preds = %676
  br label %689

689:                                              ; preds = %688
  br label %690

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

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

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

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

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

737:                                              ; preds = %736
  br label %738

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

739:                                              ; No predecessors!
  br label %740

740:                                              ; preds = %739
  br label %741

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

742:                                              ; preds = %741
  br label %743

743:                                              ; preds = %742
  %744 = load ptr, ptr %14, align 8, !tbaa !9
  %745 = getelementptr inbounds %struct.s2n_config, ptr %744, i32 0, i32 4
  %746 = getelementptr inbounds %struct.s2n_blob, ptr %745, i32 0, i32 1
  %747 = load i32, ptr %746, align 8, !tbaa !17
  %748 = zext i32 %747 to i64
  store i64 %748, ptr %17, align 8, !tbaa !15
  br label %749

749:                                              ; preds = %743
  %750 = load i32, ptr @test_count, align 4, !tbaa !5
  %751 = add nsw i32 %750, 1
  store i32 %751, ptr @test_count, align 4, !tbaa !5
  %752 = load ptr, ptr %14, align 8, !tbaa !9
  %753 = getelementptr inbounds [255 x i8], ptr %13, i64 0, i64 0
  %754 = call i32 @s2n_config_append_protocol_preference(ptr noundef %752, ptr noundef %753, i8 noundef zeroext -1)
  %755 = icmp eq i32 %754, -1
  br i1 %755, label %756, label %809

756:                                              ; preds = %749
  br label %757

757:                                              ; preds = %756
  br label %758

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

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

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

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

804:                                              ; preds = %787, %770
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %805

805:                                              ; preds = %804
  br label %806

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

807:                                              ; No predecessors!
  br label %808

808:                                              ; preds = %807
  br label %809

809:                                              ; preds = %808, %749
  br label %810

810:                                              ; preds = %809
  br label %811

811:                                              ; preds = %810
  br label %812

812:                                              ; preds = %811
  %813 = load i32, ptr @test_count, align 4, !tbaa !5
  %814 = add nsw i32 %813, 1
  store i32 %814, ptr @test_count, align 4, !tbaa !5
  %815 = load ptr, ptr %14, align 8, !tbaa !9
  %816 = getelementptr inbounds %struct.s2n_config, ptr %815, i32 0, i32 4
  %817 = getelementptr inbounds %struct.s2n_blob, ptr %816, i32 0, i32 1
  %818 = load i32, ptr %817, align 8, !tbaa !17
  %819 = zext i32 %818 to i64
  %820 = load i64, ptr %17, align 8, !tbaa !15
  %821 = add i64 %820, 1
  %822 = add i64 %821, 255
  %823 = icmp eq i64 %819, %822
  br i1 %823, label %877, label %824

824:                                              ; preds = %812
  br label %825

825:                                              ; preds = %824
  br label %826

826:                                              ; preds = %825
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #11
  %827 = call ptr @__errno_location() #12
  %828 = load i32, ptr %827, align 4, !tbaa !5
  store i32 %828, ptr %23, align 4, !tbaa !5
  %829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %830 = call i32 @s2n_print_stacktrace(ptr noundef %829)
  %831 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %832 = trunc i8 %831 to i1
  br i1 %832, label %833, label %855

833:                                              ; preds = %826
  %834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %835 = call i32 @fileno(ptr noundef %834) #11
  %836 = call i32 @isatty(i32 noundef %835) #11
  %837 = icmp ne i32 %836, 0
  br i1 %837, label %838, label %855

838:                                              ; preds = %833
  %839 = load i32, ptr %23, align 4, !tbaa !5
  %840 = call ptr @__errno_location() #12
  store i32 %839, ptr %840, align 4, !tbaa !5
  %841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %842 = load i32, ptr @test_count, align 4, !tbaa !5
  %843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %844 = load i32, ptr %843, align 4, !tbaa !5
  %845 = call ptr @s2n_strerror(i32 noundef %844, ptr noundef @.str.4)
  %846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %847 = load i32, ptr %846, align 4, !tbaa !5
  %848 = call ptr @s2n_strerror_debug(i32 noundef %847, ptr noundef @.str.4)
  %849 = call ptr @__errno_location() #12
  %850 = load i32, ptr %849, align 4, !tbaa !5
  %851 = call ptr @strerror(i32 noundef %850) #11
  %852 = call ptr @__errno_location() #12
  %853 = load i32, ptr %852, align 4, !tbaa !5
  %854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %841, ptr noundef @.str.2, i32 noundef %842, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 56, ptr noundef %845, ptr noundef %848, ptr noundef %851, i32 noundef %853) #11
  br label %872

855:                                              ; preds = %833, %826
  %856 = load i32, ptr %23, align 4, !tbaa !5
  %857 = call ptr @__errno_location() #12
  store i32 %856, ptr %857, align 4, !tbaa !5
  %858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %859 = load i32, ptr @test_count, align 4, !tbaa !5
  %860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %861 = load i32, ptr %860, align 4, !tbaa !5
  %862 = call ptr @s2n_strerror(i32 noundef %861, ptr noundef @.str.4)
  %863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %864 = load i32, ptr %863, align 4, !tbaa !5
  %865 = call ptr @s2n_strerror_debug(i32 noundef %864, ptr noundef @.str.4)
  %866 = call ptr @__errno_location() #12
  %867 = load i32, ptr %866, align 4, !tbaa !5
  %868 = call ptr @strerror(i32 noundef %867) #11
  %869 = call ptr @__errno_location() #12
  %870 = load i32, ptr %869, align 4, !tbaa !5
  %871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %858, ptr noundef @.str.5, i32 noundef %859, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 56, ptr noundef %862, ptr noundef %865, ptr noundef %868, i32 noundef %870) #11
  br label %872

872:                                              ; preds = %855, %838
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  br label %873

873:                                              ; preds = %872
  br label %874

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

875:                                              ; No predecessors!
  br label %876

876:                                              ; preds = %875
  br label %877

877:                                              ; preds = %876, %812
  br label %878

878:                                              ; preds = %877
  br label %879

879:                                              ; preds = %878
  %880 = load ptr, ptr %14, align 8, !tbaa !9
  %881 = getelementptr inbounds %struct.s2n_config, ptr %880, i32 0, i32 4
  %882 = getelementptr inbounds %struct.s2n_blob, ptr %881, i32 0, i32 1
  %883 = load i32, ptr %882, align 8, !tbaa !17
  %884 = zext i32 %883 to i64
  store i64 %884, ptr %17, align 8, !tbaa !15
  br label %885

885:                                              ; preds = %879
  br label %886

886:                                              ; preds = %885
  %887 = load i32, ptr @test_count, align 4, !tbaa !5
  %888 = add nsw i32 %887, 1
  store i32 %888, ptr @test_count, align 4, !tbaa !5
  %889 = load ptr, ptr %14, align 8, !tbaa !9
  %890 = getelementptr inbounds [255 x i8], ptr %13, i64 0, i64 0
  %891 = call i32 @s2n_config_append_protocol_preference(ptr noundef %889, ptr noundef %890, i8 noundef zeroext 0)
  %892 = icmp eq i32 %891, -1
  br i1 %892, label %946, label %893

893:                                              ; preds = %886
  br label %894

894:                                              ; preds = %893
  br label %895

895:                                              ; preds = %894
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  %896 = call ptr @__errno_location() #12
  %897 = load i32, ptr %896, align 4, !tbaa !5
  store i32 %897, ptr %24, align 4, !tbaa !5
  %898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %899 = call i32 @s2n_print_stacktrace(ptr noundef %898)
  %900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %901 = trunc i8 %900 to i1
  br i1 %901, label %902, label %924

902:                                              ; preds = %895
  %903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %904 = call i32 @fileno(ptr noundef %903) #11
  %905 = call i32 @isatty(i32 noundef %904) #11
  %906 = icmp ne i32 %905, 0
  br i1 %906, label %907, label %924

907:                                              ; preds = %902
  %908 = load i32, ptr %24, align 4, !tbaa !5
  %909 = call ptr @__errno_location() #12
  store i32 %908, ptr %909, align 4, !tbaa !5
  %910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %911 = load i32, ptr @test_count, align 4, !tbaa !5
  %912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %913 = load i32, ptr %912, align 4, !tbaa !5
  %914 = call ptr @s2n_strerror(i32 noundef %913, ptr noundef @.str.4)
  %915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %916 = load i32, ptr %915, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror_debug(i32 noundef %916, ptr noundef @.str.4)
  %918 = call ptr @__errno_location() #12
  %919 = load i32, ptr %918, align 4, !tbaa !5
  %920 = call ptr @strerror(i32 noundef %919) #11
  %921 = call ptr @__errno_location() #12
  %922 = load i32, ptr %921, align 4, !tbaa !5
  %923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %910, ptr noundef @.str.2, i32 noundef %911, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 60, ptr noundef %914, ptr noundef %917, ptr noundef %920, i32 noundef %922) #11
  br label %941

924:                                              ; preds = %902, %895
  %925 = load i32, ptr %24, align 4, !tbaa !5
  %926 = call ptr @__errno_location() #12
  store i32 %925, ptr %926, align 4, !tbaa !5
  %927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %928 = load i32, ptr @test_count, align 4, !tbaa !5
  %929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %930 = load i32, ptr %929, align 4, !tbaa !5
  %931 = call ptr @s2n_strerror(i32 noundef %930, ptr noundef @.str.4)
  %932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = call ptr @s2n_strerror_debug(i32 noundef %933, ptr noundef @.str.4)
  %935 = call ptr @__errno_location() #12
  %936 = load i32, ptr %935, align 4, !tbaa !5
  %937 = call ptr @strerror(i32 noundef %936) #11
  %938 = call ptr @__errno_location() #12
  %939 = load i32, ptr %938, align 4, !tbaa !5
  %940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %927, ptr noundef @.str.5, i32 noundef %928, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 60, ptr noundef %931, ptr noundef %934, ptr noundef %937, i32 noundef %939) #11
  br label %941

941:                                              ; preds = %924, %907
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  br label %942

942:                                              ; preds = %941
  br label %943

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

944:                                              ; No predecessors!
  br label %945

945:                                              ; preds = %944
  br label %946

946:                                              ; preds = %945, %886
  br label %947

947:                                              ; preds = %946
  br label %948

948:                                              ; preds = %947
  br label %949

949:                                              ; preds = %948
  %950 = load i32, ptr @test_count, align 4, !tbaa !5
  %951 = add nsw i32 %950, 1
  store i32 %951, ptr @test_count, align 4, !tbaa !5
  %952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %953 = load i32, ptr %952, align 4, !tbaa !5
  %954 = icmp eq i32 %953, 0
  br i1 %954, label %955, label %1008

955:                                              ; preds = %949
  br label %956

956:                                              ; preds = %955
  br label %957

957:                                              ; preds = %956
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #11
  %958 = call ptr @__errno_location() #12
  %959 = load i32, ptr %958, align 4, !tbaa !5
  store i32 %959, ptr %25, align 4, !tbaa !5
  %960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %961 = call i32 @s2n_print_stacktrace(ptr noundef %960)
  %962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %963 = trunc i8 %962 to i1
  br i1 %963, label %964, label %986

964:                                              ; preds = %957
  %965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %966 = call i32 @fileno(ptr noundef %965) #11
  %967 = call i32 @isatty(i32 noundef %966) #11
  %968 = icmp ne i32 %967, 0
  br i1 %968, label %969, label %986

969:                                              ; preds = %964
  %970 = load i32, ptr %25, align 4, !tbaa !5
  %971 = call ptr @__errno_location() #12
  store i32 %970, ptr %971, align 4, !tbaa !5
  %972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %973 = load i32, ptr @test_count, align 4, !tbaa !5
  %974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %975 = load i32, ptr %974, align 4, !tbaa !5
  %976 = call ptr @s2n_strerror(i32 noundef %975, ptr noundef @.str.4)
  %977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %978 = load i32, ptr %977, align 4, !tbaa !5
  %979 = call ptr @s2n_strerror_debug(i32 noundef %978, ptr noundef @.str.4)
  %980 = call ptr @__errno_location() #12
  %981 = load i32, ptr %980, align 4, !tbaa !5
  %982 = call ptr @strerror(i32 noundef %981) #11
  %983 = call ptr @__errno_location() #12
  %984 = load i32, ptr %983, align 4, !tbaa !5
  %985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %972, ptr noundef @.str.2, i32 noundef %973, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 60, ptr noundef %976, ptr noundef %979, ptr noundef %982, i32 noundef %984) #11
  br label %1003

986:                                              ; preds = %964, %957
  %987 = load i32, ptr %25, align 4, !tbaa !5
  %988 = call ptr @__errno_location() #12
  store i32 %987, ptr %988, align 4, !tbaa !5
  %989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %990 = load i32, ptr @test_count, align 4, !tbaa !5
  %991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %992 = load i32, ptr %991, align 4, !tbaa !5
  %993 = call ptr @s2n_strerror(i32 noundef %992, ptr noundef @.str.4)
  %994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %995 = load i32, ptr %994, align 4, !tbaa !5
  %996 = call ptr @s2n_strerror_debug(i32 noundef %995, ptr noundef @.str.4)
  %997 = call ptr @__errno_location() #12
  %998 = load i32, ptr %997, align 4, !tbaa !5
  %999 = call ptr @strerror(i32 noundef %998) #11
  %1000 = call ptr @__errno_location() #12
  %1001 = load i32, ptr %1000, align 4, !tbaa !5
  %1002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %989, ptr noundef @.str.5, i32 noundef %990, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 60, ptr noundef %993, ptr noundef %996, ptr noundef %999, i32 noundef %1001) #11
  br label %1003

1003:                                             ; preds = %986, %969
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #11
  br label %1004

1004:                                             ; preds = %1003
  br label %1005

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

1006:                                             ; No predecessors!
  br label %1007

1007:                                             ; preds = %1006
  br label %1008

1008:                                             ; preds = %1007, %949
  br label %1009

1009:                                             ; preds = %1008
  br label %1010

1010:                                             ; preds = %1009
  br label %1011

1011:                                             ; preds = %1010
  %1012 = load i32, ptr @test_count, align 4, !tbaa !5
  %1013 = add nsw i32 %1012, 1
  store i32 %1013, ptr @test_count, align 4, !tbaa !5
  %1014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1015 = load i32, ptr %1014, align 4, !tbaa !5
  %1016 = call ptr @s2n_strerror_debug(i32 noundef %1015, ptr noundef @.str.4)
  %1017 = icmp eq ptr %1016, null
  br i1 %1017, label %1018, label %1071

1018:                                             ; preds = %1011
  br label %1019

1019:                                             ; preds = %1018
  br label %1020

1020:                                             ; preds = %1019
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  %1021 = call ptr @__errno_location() #12
  %1022 = load i32, ptr %1021, align 4, !tbaa !5
  store i32 %1022, ptr %26, align 4, !tbaa !5
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = call i32 @s2n_print_stacktrace(ptr noundef %1023)
  %1025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1026 = trunc i8 %1025 to i1
  br i1 %1026, label %1027, label %1049

1027:                                             ; preds = %1020
  %1028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1029 = call i32 @fileno(ptr noundef %1028) #11
  %1030 = call i32 @isatty(i32 noundef %1029) #11
  %1031 = icmp ne i32 %1030, 0
  br i1 %1031, label %1032, label %1049

1032:                                             ; preds = %1027
  %1033 = load i32, ptr %26, align 4, !tbaa !5
  %1034 = call ptr @__errno_location() #12
  store i32 %1033, ptr %1034, align 4, !tbaa !5
  %1035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1036 = load i32, ptr @test_count, align 4, !tbaa !5
  %1037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1038 = load i32, ptr %1037, align 4, !tbaa !5
  %1039 = call ptr @s2n_strerror(i32 noundef %1038, ptr noundef @.str.4)
  %1040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1041 = load i32, ptr %1040, align 4, !tbaa !5
  %1042 = call ptr @s2n_strerror_debug(i32 noundef %1041, ptr noundef @.str.4)
  %1043 = call ptr @__errno_location() #12
  %1044 = load i32, ptr %1043, align 4, !tbaa !5
  %1045 = call ptr @strerror(i32 noundef %1044) #11
  %1046 = call ptr @__errno_location() #12
  %1047 = load i32, ptr %1046, align 4, !tbaa !5
  %1048 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1035, ptr noundef @.str.2, i32 noundef %1036, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1039, ptr noundef %1042, ptr noundef %1045, i32 noundef %1047) #11
  br label %1066

1049:                                             ; preds = %1027, %1020
  %1050 = load i32, ptr %26, align 4, !tbaa !5
  %1051 = call ptr @__errno_location() #12
  store i32 %1050, ptr %1051, align 4, !tbaa !5
  %1052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1053 = load i32, ptr @test_count, align 4, !tbaa !5
  %1054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1055 = load i32, ptr %1054, align 4, !tbaa !5
  %1056 = call ptr @s2n_strerror(i32 noundef %1055, ptr noundef @.str.4)
  %1057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1058 = load i32, ptr %1057, align 4, !tbaa !5
  %1059 = call ptr @s2n_strerror_debug(i32 noundef %1058, ptr noundef @.str.4)
  %1060 = call ptr @__errno_location() #12
  %1061 = load i32, ptr %1060, align 4, !tbaa !5
  %1062 = call ptr @strerror(i32 noundef %1061) #11
  %1063 = call ptr @__errno_location() #12
  %1064 = load i32, ptr %1063, align 4, !tbaa !5
  %1065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1052, ptr noundef @.str.5, i32 noundef %1053, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1056, ptr noundef %1059, ptr noundef %1062, i32 noundef %1064) #11
  br label %1066

1066:                                             ; preds = %1049, %1032
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %1067

1067:                                             ; preds = %1066
  br label %1068

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

1069:                                             ; No predecessors!
  br label %1070

1070:                                             ; preds = %1069
  br label %1071

1071:                                             ; preds = %1070, %1011
  br label %1072

1072:                                             ; preds = %1071
  br label %1073

1073:                                             ; preds = %1072
  br label %1074

1074:                                             ; preds = %1073
  %1075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1075, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1076 = call ptr @__errno_location() #12
  store i32 0, ptr %1076, align 4, !tbaa !5
  br label %1077

1077:                                             ; preds = %1074
  br label %1078

1078:                                             ; preds = %1077
  br label %1079

1079:                                             ; preds = %1078
  br label %1080

1080:                                             ; preds = %1079
  br label %1081

1081:                                             ; preds = %1080
  %1082 = load i32, ptr @test_count, align 4, !tbaa !5
  %1083 = add nsw i32 %1082, 1
  store i32 %1083, ptr @test_count, align 4, !tbaa !5
  %1084 = load ptr, ptr %14, align 8, !tbaa !9
  %1085 = getelementptr inbounds %struct.s2n_config, ptr %1084, i32 0, i32 4
  %1086 = getelementptr inbounds %struct.s2n_blob, ptr %1085, i32 0, i32 1
  %1087 = load i32, ptr %1086, align 8, !tbaa !17
  %1088 = zext i32 %1087 to i64
  %1089 = load i64, ptr %17, align 8, !tbaa !15
  %1090 = icmp eq i64 %1088, %1089
  br i1 %1090, label %1144, label %1091

1091:                                             ; preds = %1081
  br label %1092

1092:                                             ; preds = %1091
  br label %1093

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

1100:                                             ; preds = %1093
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = call i32 @fileno(ptr noundef %1101) #11
  %1103 = call i32 @isatty(i32 noundef %1102) #11
  %1104 = icmp ne i32 %1103, 0
  br i1 %1104, label %1105, label %1122

1105:                                             ; preds = %1100
  %1106 = load i32, ptr %27, align 4, !tbaa !5
  %1107 = call ptr @__errno_location() #12
  store i32 %1106, ptr %1107, align 4, !tbaa !5
  %1108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1109 = load i32, ptr @test_count, align 4, !tbaa !5
  %1110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  %1112 = call ptr @s2n_strerror(i32 noundef %1111, ptr noundef @.str.4)
  %1113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  %1115 = call ptr @s2n_strerror_debug(i32 noundef %1114, ptr noundef @.str.4)
  %1116 = call ptr @__errno_location() #12
  %1117 = load i32, ptr %1116, align 4, !tbaa !5
  %1118 = call ptr @strerror(i32 noundef %1117) #11
  %1119 = call ptr @__errno_location() #12
  %1120 = load i32, ptr %1119, align 4, !tbaa !5
  %1121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1108, ptr noundef @.str.2, i32 noundef %1109, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1112, ptr noundef %1115, ptr noundef %1118, i32 noundef %1120) #11
  br label %1139

1122:                                             ; preds = %1100, %1093
  %1123 = load i32, ptr %27, align 4, !tbaa !5
  %1124 = call ptr @__errno_location() #12
  store i32 %1123, ptr %1124, align 4, !tbaa !5
  %1125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1126 = load i32, ptr @test_count, align 4, !tbaa !5
  %1127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  %1129 = call ptr @s2n_strerror(i32 noundef %1128, ptr noundef @.str.4)
  %1130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1131 = load i32, ptr %1130, align 4, !tbaa !5
  %1132 = call ptr @s2n_strerror_debug(i32 noundef %1131, ptr noundef @.str.4)
  %1133 = call ptr @__errno_location() #12
  %1134 = load i32, ptr %1133, align 4, !tbaa !5
  %1135 = call ptr @strerror(i32 noundef %1134) #11
  %1136 = call ptr @__errno_location() #12
  %1137 = load i32, ptr %1136, align 4, !tbaa !5
  %1138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1125, ptr noundef @.str.5, i32 noundef %1126, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 61, ptr noundef %1129, ptr noundef %1132, ptr noundef %1135, i32 noundef %1137) #11
  br label %1139

1139:                                             ; preds = %1122, %1105
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  br label %1140

1140:                                             ; preds = %1139
  br label %1141

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

1142:                                             ; No predecessors!
  br label %1143

1143:                                             ; preds = %1142
  br label %1144

1144:                                             ; preds = %1143, %1081
  br label %1145

1145:                                             ; preds = %1144
  br label %1146

1146:                                             ; preds = %1145
  br label %1147

1147:                                             ; preds = %1146
  %1148 = load i32, ptr @test_count, align 4, !tbaa !5
  %1149 = add nsw i32 %1148, 1
  store i32 %1149, ptr @test_count, align 4, !tbaa !5
  %1150 = load ptr, ptr %14, align 8, !tbaa !9
  %1151 = call i32 @s2n_config_free(ptr noundef %1150)
  %1152 = icmp eq i32 %1151, -1
  br i1 %1152, label %1153, label %1206

1153:                                             ; preds = %1147
  br label %1154

1154:                                             ; preds = %1153
  br label %1155

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

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

1167:                                             ; preds = %1162
  %1168 = load i32, ptr %28, align 4, !tbaa !5
  %1169 = call ptr @__errno_location() #12
  store i32 %1168, ptr %1169, align 4, !tbaa !5
  %1170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1171 = load i32, ptr @test_count, align 4, !tbaa !5
  %1172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1173 = load i32, ptr %1172, align 4, !tbaa !5
  %1174 = call ptr @s2n_strerror(i32 noundef %1173, ptr noundef @.str.4)
  %1175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1176 = load i32, ptr %1175, align 4, !tbaa !5
  %1177 = call ptr @s2n_strerror_debug(i32 noundef %1176, ptr noundef @.str.4)
  %1178 = call ptr @__errno_location() #12
  %1179 = load i32, ptr %1178, align 4, !tbaa !5
  %1180 = call ptr @strerror(i32 noundef %1179) #11
  %1181 = call ptr @__errno_location() #12
  %1182 = load i32, ptr %1181, align 4, !tbaa !5
  %1183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1170, ptr noundef @.str.2, i32 noundef %1171, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1174, ptr noundef %1177, ptr noundef %1180, i32 noundef %1182) #11
  br label %1201

1184:                                             ; preds = %1162, %1155
  %1185 = load i32, ptr %28, align 4, !tbaa !5
  %1186 = call ptr @__errno_location() #12
  store i32 %1185, ptr %1186, align 4, !tbaa !5
  %1187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1188 = load i32, ptr @test_count, align 4, !tbaa !5
  %1189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1190 = load i32, ptr %1189, align 4, !tbaa !5
  %1191 = call ptr @s2n_strerror(i32 noundef %1190, ptr noundef @.str.4)
  %1192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1193 = load i32, ptr %1192, align 4, !tbaa !5
  %1194 = call ptr @s2n_strerror_debug(i32 noundef %1193, ptr noundef @.str.4)
  %1195 = call ptr @__errno_location() #12
  %1196 = load i32, ptr %1195, align 4, !tbaa !5
  %1197 = call ptr @strerror(i32 noundef %1196) #11
  %1198 = call ptr @__errno_location() #12
  %1199 = load i32, ptr %1198, align 4, !tbaa !5
  %1200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1187, ptr noundef @.str.5, i32 noundef %1188, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1191, ptr noundef %1194, ptr noundef %1197, i32 noundef %1199) #11
  br label %1201

1201:                                             ; preds = %1184, %1167
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %1202

1202:                                             ; preds = %1201
  br label %1203

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

1204:                                             ; No predecessors!
  br label %1205

1205:                                             ; preds = %1204
  br label %1206

1206:                                             ; preds = %1205, %1147
  br label %1207

1207:                                             ; preds = %1206
  br label %1208

1208:                                             ; preds = %1207
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #11
  store ptr null, ptr %29, align 8, !tbaa !9
  br label %1209

1209:                                             ; preds = %1208
  %1210 = load i32, ptr @test_count, align 4, !tbaa !5
  %1211 = add nsw i32 %1210, 1
  store i32 %1211, ptr @test_count, align 4, !tbaa !5
  %1212 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1212, ptr %29, align 8, !tbaa !9
  %1213 = icmp eq ptr %1212, null
  br i1 %1213, label %1214, label %1267

1214:                                             ; preds = %1209
  br label %1215

1215:                                             ; preds = %1214
  br label %1216

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

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

1228:                                             ; preds = %1223
  %1229 = load i32, ptr %30, align 4, !tbaa !5
  %1230 = call ptr @__errno_location() #12
  store i32 %1229, ptr %1230, align 4, !tbaa !5
  %1231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1232 = load i32, ptr @test_count, align 4, !tbaa !5
  %1233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1234 = load i32, ptr %1233, align 4, !tbaa !5
  %1235 = call ptr @s2n_strerror(i32 noundef %1234, ptr noundef @.str.4)
  %1236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1237 = load i32, ptr %1236, align 4, !tbaa !5
  %1238 = call ptr @s2n_strerror_debug(i32 noundef %1237, ptr noundef @.str.4)
  %1239 = call ptr @__errno_location() #12
  %1240 = load i32, ptr %1239, align 4, !tbaa !5
  %1241 = call ptr @strerror(i32 noundef %1240) #11
  %1242 = call ptr @__errno_location() #12
  %1243 = load i32, ptr %1242, align 4, !tbaa !5
  %1244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1231, ptr noundef @.str.2, i32 noundef %1232, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1235, ptr noundef %1238, ptr noundef %1241, i32 noundef %1243) #11
  br label %1262

1245:                                             ; preds = %1223, %1216
  %1246 = load i32, ptr %30, align 4, !tbaa !5
  %1247 = call ptr @__errno_location() #12
  store i32 %1246, ptr %1247, align 4, !tbaa !5
  %1248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1249 = load i32, ptr @test_count, align 4, !tbaa !5
  %1250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1251 = load i32, ptr %1250, align 4, !tbaa !5
  %1252 = call ptr @s2n_strerror(i32 noundef %1251, ptr noundef @.str.4)
  %1253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1254 = load i32, ptr %1253, align 4, !tbaa !5
  %1255 = call ptr @s2n_strerror_debug(i32 noundef %1254, ptr noundef @.str.4)
  %1256 = call ptr @__errno_location() #12
  %1257 = load i32, ptr %1256, align 4, !tbaa !5
  %1258 = call ptr @strerror(i32 noundef %1257) #11
  %1259 = call ptr @__errno_location() #12
  %1260 = load i32, ptr %1259, align 4, !tbaa !5
  %1261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1248, ptr noundef @.str.5, i32 noundef %1249, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 69, ptr noundef %1252, ptr noundef %1255, ptr noundef %1258, i32 noundef %1260) #11
  br label %1262

1262:                                             ; preds = %1245, %1228
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %1263

1263:                                             ; preds = %1262
  br label %1264

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

1265:                                             ; No predecessors!
  br label %1266

1266:                                             ; preds = %1265
  br label %1267

1267:                                             ; preds = %1266, %1209
  br label %1268

1268:                                             ; preds = %1267
  br label %1269

1269:                                             ; preds = %1268
  br label %1270

1270:                                             ; preds = %1269
  %1271 = load i32, ptr @test_count, align 4, !tbaa !5
  %1272 = add nsw i32 %1271, 1
  store i32 %1272, ptr @test_count, align 4, !tbaa !5
  %1273 = load ptr, ptr %29, align 8, !tbaa !9
  %1274 = getelementptr inbounds %struct.s2n_connection, ptr %1273, i32 0, i32 82
  %1275 = getelementptr inbounds %struct.s2n_blob, ptr %1274, i32 0, i32 1
  %1276 = load i32, ptr %1275, align 8, !tbaa !23
  %1277 = icmp eq i32 %1276, 0
  br i1 %1277, label %1331, label %1278

1278:                                             ; preds = %1270
  br label %1279

1279:                                             ; preds = %1278
  br label %1280

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

1287:                                             ; preds = %1280
  %1288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1289 = call i32 @fileno(ptr noundef %1288) #11
  %1290 = call i32 @isatty(i32 noundef %1289) #11
  %1291 = icmp ne i32 %1290, 0
  br i1 %1291, label %1292, label %1309

1292:                                             ; preds = %1287
  %1293 = load i32, ptr %31, align 4, !tbaa !5
  %1294 = call ptr @__errno_location() #12
  store i32 %1293, ptr %1294, align 4, !tbaa !5
  %1295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1296 = load i32, ptr @test_count, align 4, !tbaa !5
  %1297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1298 = load i32, ptr %1297, align 4, !tbaa !5
  %1299 = call ptr @s2n_strerror(i32 noundef %1298, ptr noundef @.str.4)
  %1300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1301 = load i32, ptr %1300, align 4, !tbaa !5
  %1302 = call ptr @s2n_strerror_debug(i32 noundef %1301, ptr noundef @.str.4)
  %1303 = call ptr @__errno_location() #12
  %1304 = load i32, ptr %1303, align 4, !tbaa !5
  %1305 = call ptr @strerror(i32 noundef %1304) #11
  %1306 = call ptr @__errno_location() #12
  %1307 = load i32, ptr %1306, align 4, !tbaa !5
  %1308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1295, ptr noundef @.str.2, i32 noundef %1296, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1299, ptr noundef %1302, ptr noundef %1305, i32 noundef %1307) #11
  br label %1326

1309:                                             ; preds = %1287, %1280
  %1310 = load i32, ptr %31, align 4, !tbaa !5
  %1311 = call ptr @__errno_location() #12
  store i32 %1310, ptr %1311, align 4, !tbaa !5
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1313 = load i32, ptr @test_count, align 4, !tbaa !5
  %1314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1315 = load i32, ptr %1314, align 4, !tbaa !5
  %1316 = call ptr @s2n_strerror(i32 noundef %1315, ptr noundef @.str.4)
  %1317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1318 = load i32, ptr %1317, align 4, !tbaa !5
  %1319 = call ptr @s2n_strerror_debug(i32 noundef %1318, ptr noundef @.str.4)
  %1320 = call ptr @__errno_location() #12
  %1321 = load i32, ptr %1320, align 4, !tbaa !5
  %1322 = call ptr @strerror(i32 noundef %1321) #11
  %1323 = call ptr @__errno_location() #12
  %1324 = load i32, ptr %1323, align 4, !tbaa !5
  %1325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1312, ptr noundef @.str.5, i32 noundef %1313, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 70, ptr noundef %1316, ptr noundef %1319, ptr noundef %1322, i32 noundef %1324) #11
  br label %1326

1326:                                             ; preds = %1309, %1292
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %1327

1327:                                             ; preds = %1326
  br label %1328

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

1329:                                             ; No predecessors!
  br label %1330

1330:                                             ; preds = %1329
  br label %1331

1331:                                             ; preds = %1330, %1270
  br label %1332

1332:                                             ; preds = %1331
  br label %1333

1333:                                             ; preds = %1332
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #11
  store i64 0, ptr %32, align 8, !tbaa !15
  br label %1334

1334:                                             ; preds = %1333
  %1335 = load i32, ptr @test_count, align 4, !tbaa !5
  %1336 = add nsw i32 %1335, 1
  store i32 %1336, ptr @test_count, align 4, !tbaa !5
  %1337 = load ptr, ptr %29, align 8, !tbaa !9
  %1338 = getelementptr inbounds [10 x i8], ptr %9, i64 0, i64 0
  %1339 = call i32 @s2n_connection_append_protocol_preference(ptr noundef %1337, ptr noundef %1338, i8 noundef zeroext 10)
  %1340 = icmp eq i32 %1339, -1
  br i1 %1340, label %1341, label %1394

1341:                                             ; preds = %1334
  br label %1342

1342:                                             ; preds = %1341
  br label %1343

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

1350:                                             ; preds = %1343
  %1351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1352 = call i32 @fileno(ptr noundef %1351) #11
  %1353 = call i32 @isatty(i32 noundef %1352) #11
  %1354 = icmp ne i32 %1353, 0
  br i1 %1354, label %1355, label %1372

1355:                                             ; preds = %1350
  %1356 = load i32, ptr %33, align 4, !tbaa !5
  %1357 = call ptr @__errno_location() #12
  store i32 %1356, ptr %1357, align 4, !tbaa !5
  %1358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1359 = load i32, ptr @test_count, align 4, !tbaa !5
  %1360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1361 = load i32, ptr %1360, align 4, !tbaa !5
  %1362 = call ptr @s2n_strerror(i32 noundef %1361, ptr noundef @.str.4)
  %1363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1364 = load i32, ptr %1363, align 4, !tbaa !5
  %1365 = call ptr @s2n_strerror_debug(i32 noundef %1364, ptr noundef @.str.4)
  %1366 = call ptr @__errno_location() #12
  %1367 = load i32, ptr %1366, align 4, !tbaa !5
  %1368 = call ptr @strerror(i32 noundef %1367) #11
  %1369 = call ptr @__errno_location() #12
  %1370 = load i32, ptr %1369, align 4, !tbaa !5
  %1371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1358, ptr noundef @.str.2, i32 noundef %1359, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1362, ptr noundef %1365, ptr noundef %1368, i32 noundef %1370) #11
  br label %1389

1372:                                             ; preds = %1350, %1343
  %1373 = load i32, ptr %33, align 4, !tbaa !5
  %1374 = call ptr @__errno_location() #12
  store i32 %1373, ptr %1374, align 4, !tbaa !5
  %1375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1376 = load i32, ptr @test_count, align 4, !tbaa !5
  %1377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1378 = load i32, ptr %1377, align 4, !tbaa !5
  %1379 = call ptr @s2n_strerror(i32 noundef %1378, ptr noundef @.str.4)
  %1380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1381 = load i32, ptr %1380, align 4, !tbaa !5
  %1382 = call ptr @s2n_strerror_debug(i32 noundef %1381, ptr noundef @.str.4)
  %1383 = call ptr @__errno_location() #12
  %1384 = load i32, ptr %1383, align 4, !tbaa !5
  %1385 = call ptr @strerror(i32 noundef %1384) #11
  %1386 = call ptr @__errno_location() #12
  %1387 = load i32, ptr %1386, align 4, !tbaa !5
  %1388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1375, ptr noundef @.str.5, i32 noundef %1376, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1379, ptr noundef %1382, ptr noundef %1385, i32 noundef %1387) #11
  br label %1389

1389:                                             ; preds = %1372, %1355
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %1390

1390:                                             ; preds = %1389
  br label %1391

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

1392:                                             ; No predecessors!
  br label %1393

1393:                                             ; preds = %1392
  br label %1394

1394:                                             ; preds = %1393, %1334
  br label %1395

1395:                                             ; preds = %1394
  br label %1396

1396:                                             ; preds = %1395
  br label %1397

1397:                                             ; preds = %1396
  %1398 = load i32, ptr @test_count, align 4, !tbaa !5
  %1399 = add nsw i32 %1398, 1
  store i32 %1399, ptr @test_count, align 4, !tbaa !5
  %1400 = load ptr, ptr %29, align 8, !tbaa !9
  %1401 = getelementptr inbounds %struct.s2n_connection, ptr %1400, i32 0, i32 82
  %1402 = getelementptr inbounds %struct.s2n_blob, ptr %1401, i32 0, i32 1
  %1403 = load i32, ptr %1402, align 8, !tbaa !23
  %1404 = zext i32 %1403 to i64
  %1405 = icmp eq i64 %1404, 11
  br i1 %1405, label %1459, label %1406

1406:                                             ; preds = %1397
  br label %1407

1407:                                             ; preds = %1406
  br label %1408

1408:                                             ; preds = %1407
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #11
  %1409 = call ptr @__errno_location() #12
  %1410 = load i32, ptr %1409, align 4, !tbaa !5
  store i32 %1410, ptr %34, align 4, !tbaa !5
  %1411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1412 = call i32 @s2n_print_stacktrace(ptr noundef %1411)
  %1413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1414 = trunc i8 %1413 to i1
  br i1 %1414, label %1415, label %1437

1415:                                             ; preds = %1408
  %1416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1417 = call i32 @fileno(ptr noundef %1416) #11
  %1418 = call i32 @isatty(i32 noundef %1417) #11
  %1419 = icmp ne i32 %1418, 0
  br i1 %1419, label %1420, label %1437

1420:                                             ; preds = %1415
  %1421 = load i32, ptr %34, align 4, !tbaa !5
  %1422 = call ptr @__errno_location() #12
  store i32 %1421, ptr %1422, align 4, !tbaa !5
  %1423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1424 = load i32, ptr @test_count, align 4, !tbaa !5
  %1425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1426 = load i32, ptr %1425, align 4, !tbaa !5
  %1427 = call ptr @s2n_strerror(i32 noundef %1426, ptr noundef @.str.4)
  %1428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1429 = load i32, ptr %1428, align 4, !tbaa !5
  %1430 = call ptr @s2n_strerror_debug(i32 noundef %1429, ptr noundef @.str.4)
  %1431 = call ptr @__errno_location() #12
  %1432 = load i32, ptr %1431, align 4, !tbaa !5
  %1433 = call ptr @strerror(i32 noundef %1432) #11
  %1434 = call ptr @__errno_location() #12
  %1435 = load i32, ptr %1434, align 4, !tbaa !5
  %1436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1423, ptr noundef @.str.2, i32 noundef %1424, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1427, ptr noundef %1430, ptr noundef %1433, i32 noundef %1435) #11
  br label %1454

1437:                                             ; preds = %1415, %1408
  %1438 = load i32, ptr %34, align 4, !tbaa !5
  %1439 = call ptr @__errno_location() #12
  store i32 %1438, ptr %1439, align 4, !tbaa !5
  %1440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1441 = load i32, ptr @test_count, align 4, !tbaa !5
  %1442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1443 = load i32, ptr %1442, align 4, !tbaa !5
  %1444 = call ptr @s2n_strerror(i32 noundef %1443, ptr noundef @.str.4)
  %1445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1446 = load i32, ptr %1445, align 4, !tbaa !5
  %1447 = call ptr @s2n_strerror_debug(i32 noundef %1446, ptr noundef @.str.4)
  %1448 = call ptr @__errno_location() #12
  %1449 = load i32, ptr %1448, align 4, !tbaa !5
  %1450 = call ptr @strerror(i32 noundef %1449) #11
  %1451 = call ptr @__errno_location() #12
  %1452 = load i32, ptr %1451, align 4, !tbaa !5
  %1453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1440, ptr noundef @.str.5, i32 noundef %1441, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1444, ptr noundef %1447, ptr noundef %1450, i32 noundef %1452) #11
  br label %1454

1454:                                             ; preds = %1437, %1420
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  br label %1455

1455:                                             ; preds = %1454
  br label %1456

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

1457:                                             ; No predecessors!
  br label %1458

1458:                                             ; preds = %1457
  br label %1459

1459:                                             ; preds = %1458, %1397
  br label %1460

1460:                                             ; preds = %1459
  br label %1461

1461:                                             ; preds = %1460
  %1462 = load ptr, ptr %29, align 8, !tbaa !9
  %1463 = getelementptr inbounds %struct.s2n_connection, ptr %1462, i32 0, i32 82
  %1464 = getelementptr inbounds %struct.s2n_blob, ptr %1463, i32 0, i32 1
  %1465 = load i32, ptr %1464, align 8, !tbaa !23
  %1466 = zext i32 %1465 to i64
  store i64 %1466, ptr %32, align 8, !tbaa !15
  br label %1467

1467:                                             ; preds = %1461
  %1468 = load i32, ptr @test_count, align 4, !tbaa !5
  %1469 = add nsw i32 %1468, 1
  store i32 %1469, ptr @test_count, align 4, !tbaa !5
  %1470 = load ptr, ptr %29, align 8, !tbaa !9
  %1471 = getelementptr inbounds [15 x i8], ptr %11, i64 0, i64 0
  %1472 = call i32 @s2n_connection_append_protocol_preference(ptr noundef %1470, ptr noundef %1471, i8 noundef zeroext 15)
  %1473 = icmp eq i32 %1472, -1
  br i1 %1473, label %1474, label %1527

1474:                                             ; preds = %1467
  br label %1475

1475:                                             ; preds = %1474
  br label %1476

1476:                                             ; preds = %1475
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #11
  %1477 = call ptr @__errno_location() #12
  %1478 = load i32, ptr %1477, align 4, !tbaa !5
  store i32 %1478, ptr %35, align 4, !tbaa !5
  %1479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1480 = call i32 @s2n_print_stacktrace(ptr noundef %1479)
  %1481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1482 = trunc i8 %1481 to i1
  br i1 %1482, label %1483, label %1505

1483:                                             ; preds = %1476
  %1484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1485 = call i32 @fileno(ptr noundef %1484) #11
  %1486 = call i32 @isatty(i32 noundef %1485) #11
  %1487 = icmp ne i32 %1486, 0
  br i1 %1487, label %1488, label %1505

1488:                                             ; preds = %1483
  %1489 = load i32, ptr %35, align 4, !tbaa !5
  %1490 = call ptr @__errno_location() #12
  store i32 %1489, ptr %1490, align 4, !tbaa !5
  %1491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1492 = load i32, ptr @test_count, align 4, !tbaa !5
  %1493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1494 = load i32, ptr %1493, align 4, !tbaa !5
  %1495 = call ptr @s2n_strerror(i32 noundef %1494, ptr noundef @.str.4)
  %1496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1497 = load i32, ptr %1496, align 4, !tbaa !5
  %1498 = call ptr @s2n_strerror_debug(i32 noundef %1497, ptr noundef @.str.4)
  %1499 = call ptr @__errno_location() #12
  %1500 = load i32, ptr %1499, align 4, !tbaa !5
  %1501 = call ptr @strerror(i32 noundef %1500) #11
  %1502 = call ptr @__errno_location() #12
  %1503 = load i32, ptr %1502, align 4, !tbaa !5
  %1504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1491, ptr noundef @.str.2, i32 noundef %1492, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1495, ptr noundef %1498, ptr noundef %1501, i32 noundef %1503) #11
  br label %1522

1505:                                             ; preds = %1483, %1476
  %1506 = load i32, ptr %35, align 4, !tbaa !5
  %1507 = call ptr @__errno_location() #12
  store i32 %1506, ptr %1507, align 4, !tbaa !5
  %1508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1509 = load i32, ptr @test_count, align 4, !tbaa !5
  %1510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1511 = load i32, ptr %1510, align 4, !tbaa !5
  %1512 = call ptr @s2n_strerror(i32 noundef %1511, ptr noundef @.str.4)
  %1513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1514 = load i32, ptr %1513, align 4, !tbaa !5
  %1515 = call ptr @s2n_strerror_debug(i32 noundef %1514, ptr noundef @.str.4)
  %1516 = call ptr @__errno_location() #12
  %1517 = load i32, ptr %1516, align 4, !tbaa !5
  %1518 = call ptr @strerror(i32 noundef %1517) #11
  %1519 = call ptr @__errno_location() #12
  %1520 = load i32, ptr %1519, align 4, !tbaa !5
  %1521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1508, ptr noundef @.str.5, i32 noundef %1509, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1512, ptr noundef %1515, ptr noundef %1518, i32 noundef %1520) #11
  br label %1522

1522:                                             ; preds = %1505, %1488
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  br label %1523

1523:                                             ; preds = %1522
  br label %1524

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

1525:                                             ; No predecessors!
  br label %1526

1526:                                             ; preds = %1525
  br label %1527

1527:                                             ; preds = %1526, %1467
  br label %1528

1528:                                             ; preds = %1527
  br label %1529

1529:                                             ; preds = %1528
  br label %1530

1530:                                             ; preds = %1529
  %1531 = load i32, ptr @test_count, align 4, !tbaa !5
  %1532 = add nsw i32 %1531, 1
  store i32 %1532, ptr @test_count, align 4, !tbaa !5
  %1533 = load ptr, ptr %29, align 8, !tbaa !9
  %1534 = getelementptr inbounds %struct.s2n_connection, ptr %1533, i32 0, i32 82
  %1535 = getelementptr inbounds %struct.s2n_blob, ptr %1534, i32 0, i32 1
  %1536 = load i32, ptr %1535, align 8, !tbaa !23
  %1537 = zext i32 %1536 to i64
  %1538 = load i64, ptr %32, align 8, !tbaa !15
  %1539 = add i64 %1538, 1
  %1540 = add i64 %1539, 15
  %1541 = icmp eq i64 %1537, %1540
  br i1 %1541, label %1595, label %1542

1542:                                             ; preds = %1530
  br label %1543

1543:                                             ; preds = %1542
  br label %1544

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

1551:                                             ; preds = %1544
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = call i32 @fileno(ptr noundef %1552) #11
  %1554 = call i32 @isatty(i32 noundef %1553) #11
  %1555 = icmp ne i32 %1554, 0
  br i1 %1555, label %1556, label %1573

1556:                                             ; preds = %1551
  %1557 = load i32, ptr %36, align 4, !tbaa !5
  %1558 = call ptr @__errno_location() #12
  store i32 %1557, ptr %1558, align 4, !tbaa !5
  %1559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1560 = load i32, ptr @test_count, align 4, !tbaa !5
  %1561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1562 = load i32, ptr %1561, align 4, !tbaa !5
  %1563 = call ptr @s2n_strerror(i32 noundef %1562, ptr noundef @.str.4)
  %1564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1565 = load i32, ptr %1564, align 4, !tbaa !5
  %1566 = call ptr @s2n_strerror_debug(i32 noundef %1565, ptr noundef @.str.4)
  %1567 = call ptr @__errno_location() #12
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  %1569 = call ptr @strerror(i32 noundef %1568) #11
  %1570 = call ptr @__errno_location() #12
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  %1572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1559, ptr noundef @.str.2, i32 noundef %1560, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1563, ptr noundef %1566, ptr noundef %1569, i32 noundef %1571) #11
  br label %1590

1573:                                             ; preds = %1551, %1544
  %1574 = load i32, ptr %36, align 4, !tbaa !5
  %1575 = call ptr @__errno_location() #12
  store i32 %1574, ptr %1575, align 4, !tbaa !5
  %1576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1577 = load i32, ptr @test_count, align 4, !tbaa !5
  %1578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1579 = load i32, ptr %1578, align 4, !tbaa !5
  %1580 = call ptr @s2n_strerror(i32 noundef %1579, ptr noundef @.str.4)
  %1581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1582 = load i32, ptr %1581, align 4, !tbaa !5
  %1583 = call ptr @s2n_strerror_debug(i32 noundef %1582, ptr noundef @.str.4)
  %1584 = call ptr @__errno_location() #12
  %1585 = load i32, ptr %1584, align 4, !tbaa !5
  %1586 = call ptr @strerror(i32 noundef %1585) #11
  %1587 = call ptr @__errno_location() #12
  %1588 = load i32, ptr %1587, align 4, !tbaa !5
  %1589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1576, ptr noundef @.str.5, i32 noundef %1577, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 80, ptr noundef %1580, ptr noundef %1583, ptr noundef %1586, i32 noundef %1588) #11
  br label %1590

1590:                                             ; preds = %1573, %1556
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  br label %1591

1591:                                             ; preds = %1590
  br label %1592

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

1593:                                             ; No predecessors!
  br label %1594

1594:                                             ; preds = %1593
  br label %1595

1595:                                             ; preds = %1594, %1530
  br label %1596

1596:                                             ; preds = %1595
  br label %1597

1597:                                             ; preds = %1596
  %1598 = load ptr, ptr %29, align 8, !tbaa !9
  %1599 = getelementptr inbounds %struct.s2n_connection, ptr %1598, i32 0, i32 82
  %1600 = getelementptr inbounds %struct.s2n_blob, ptr %1599, i32 0, i32 1
  %1601 = load i32, ptr %1600, align 8, !tbaa !23
  %1602 = zext i32 %1601 to i64
  store i64 %1602, ptr %32, align 8, !tbaa !15
  br label %1603

1603:                                             ; preds = %1597
  %1604 = load i32, ptr @test_count, align 4, !tbaa !5
  %1605 = add nsw i32 %1604, 1
  store i32 %1605, ptr @test_count, align 4, !tbaa !5
  %1606 = load ptr, ptr %29, align 8, !tbaa !9
  %1607 = getelementptr inbounds [255 x i8], ptr %13, i64 0, i64 0
  %1608 = call i32 @s2n_connection_append_protocol_preference(ptr noundef %1606, ptr noundef %1607, i8 noundef zeroext -1)
  %1609 = icmp eq i32 %1608, -1
  br i1 %1609, label %1610, label %1663

1610:                                             ; preds = %1603
  br label %1611

1611:                                             ; preds = %1610
  br label %1612

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

1619:                                             ; preds = %1612
  %1620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1621 = call i32 @fileno(ptr noundef %1620) #11
  %1622 = call i32 @isatty(i32 noundef %1621) #11
  %1623 = icmp ne i32 %1622, 0
  br i1 %1623, label %1624, label %1641

1624:                                             ; preds = %1619
  %1625 = load i32, ptr %37, align 4, !tbaa !5
  %1626 = call ptr @__errno_location() #12
  store i32 %1625, ptr %1626, align 4, !tbaa !5
  %1627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1628 = load i32, ptr @test_count, align 4, !tbaa !5
  %1629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1630 = load i32, ptr %1629, align 4, !tbaa !5
  %1631 = call ptr @s2n_strerror(i32 noundef %1630, ptr noundef @.str.4)
  %1632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1633 = load i32, ptr %1632, align 4, !tbaa !5
  %1634 = call ptr @s2n_strerror_debug(i32 noundef %1633, ptr noundef @.str.4)
  %1635 = call ptr @__errno_location() #12
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = call ptr @strerror(i32 noundef %1636) #11
  %1638 = call ptr @__errno_location() #12
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  %1640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1627, ptr noundef @.str.2, i32 noundef %1628, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1631, ptr noundef %1634, ptr noundef %1637, i32 noundef %1639) #11
  br label %1658

1641:                                             ; preds = %1619, %1612
  %1642 = load i32, ptr %37, align 4, !tbaa !5
  %1643 = call ptr @__errno_location() #12
  store i32 %1642, ptr %1643, align 4, !tbaa !5
  %1644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1645 = load i32, ptr @test_count, align 4, !tbaa !5
  %1646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1647 = load i32, ptr %1646, align 4, !tbaa !5
  %1648 = call ptr @s2n_strerror(i32 noundef %1647, ptr noundef @.str.4)
  %1649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1650 = load i32, ptr %1649, align 4, !tbaa !5
  %1651 = call ptr @s2n_strerror_debug(i32 noundef %1650, ptr noundef @.str.4)
  %1652 = call ptr @__errno_location() #12
  %1653 = load i32, ptr %1652, align 4, !tbaa !5
  %1654 = call ptr @strerror(i32 noundef %1653) #11
  %1655 = call ptr @__errno_location() #12
  %1656 = load i32, ptr %1655, align 4, !tbaa !5
  %1657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1644, ptr noundef @.str.5, i32 noundef %1645, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1648, ptr noundef %1651, ptr noundef %1654, i32 noundef %1656) #11
  br label %1658

1658:                                             ; preds = %1641, %1624
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #11
  br label %1659

1659:                                             ; preds = %1658
  br label %1660

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

1661:                                             ; No predecessors!
  br label %1662

1662:                                             ; preds = %1661
  br label %1663

1663:                                             ; preds = %1662, %1603
  br label %1664

1664:                                             ; preds = %1663
  br label %1665

1665:                                             ; preds = %1664
  br label %1666

1666:                                             ; preds = %1665
  %1667 = load i32, ptr @test_count, align 4, !tbaa !5
  %1668 = add nsw i32 %1667, 1
  store i32 %1668, ptr @test_count, align 4, !tbaa !5
  %1669 = load ptr, ptr %29, align 8, !tbaa !9
  %1670 = getelementptr inbounds %struct.s2n_connection, ptr %1669, i32 0, i32 82
  %1671 = getelementptr inbounds %struct.s2n_blob, ptr %1670, i32 0, i32 1
  %1672 = load i32, ptr %1671, align 8, !tbaa !23
  %1673 = zext i32 %1672 to i64
  %1674 = load i64, ptr %32, align 8, !tbaa !15
  %1675 = add i64 %1674, 1
  %1676 = add i64 %1675, 255
  %1677 = icmp eq i64 %1673, %1676
  br i1 %1677, label %1731, label %1678

1678:                                             ; preds = %1666
  br label %1679

1679:                                             ; preds = %1678
  br label %1680

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

1687:                                             ; preds = %1680
  %1688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1689 = call i32 @fileno(ptr noundef %1688) #11
  %1690 = call i32 @isatty(i32 noundef %1689) #11
  %1691 = icmp ne i32 %1690, 0
  br i1 %1691, label %1692, label %1709

1692:                                             ; preds = %1687
  %1693 = load i32, ptr %38, align 4, !tbaa !5
  %1694 = call ptr @__errno_location() #12
  store i32 %1693, ptr %1694, align 4, !tbaa !5
  %1695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1696 = load i32, ptr @test_count, align 4, !tbaa !5
  %1697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1698 = load i32, ptr %1697, align 4, !tbaa !5
  %1699 = call ptr @s2n_strerror(i32 noundef %1698, ptr noundef @.str.4)
  %1700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1701 = load i32, ptr %1700, align 4, !tbaa !5
  %1702 = call ptr @s2n_strerror_debug(i32 noundef %1701, ptr noundef @.str.4)
  %1703 = call ptr @__errno_location() #12
  %1704 = load i32, ptr %1703, align 4, !tbaa !5
  %1705 = call ptr @strerror(i32 noundef %1704) #11
  %1706 = call ptr @__errno_location() #12
  %1707 = load i32, ptr %1706, align 4, !tbaa !5
  %1708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1695, ptr noundef @.str.2, i32 noundef %1696, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1699, ptr noundef %1702, ptr noundef %1705, i32 noundef %1707) #11
  br label %1726

1709:                                             ; preds = %1687, %1680
  %1710 = load i32, ptr %38, align 4, !tbaa !5
  %1711 = call ptr @__errno_location() #12
  store i32 %1710, ptr %1711, align 4, !tbaa !5
  %1712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1713 = load i32, ptr @test_count, align 4, !tbaa !5
  %1714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1715 = load i32, ptr %1714, align 4, !tbaa !5
  %1716 = call ptr @s2n_strerror(i32 noundef %1715, ptr noundef @.str.4)
  %1717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1718 = load i32, ptr %1717, align 4, !tbaa !5
  %1719 = call ptr @s2n_strerror_debug(i32 noundef %1718, ptr noundef @.str.4)
  %1720 = call ptr @__errno_location() #12
  %1721 = load i32, ptr %1720, align 4, !tbaa !5
  %1722 = call ptr @strerror(i32 noundef %1721) #11
  %1723 = call ptr @__errno_location() #12
  %1724 = load i32, ptr %1723, align 4, !tbaa !5
  %1725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1712, ptr noundef @.str.5, i32 noundef %1713, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1716, ptr noundef %1719, ptr noundef %1722, i32 noundef %1724) #11
  br label %1726

1726:                                             ; preds = %1709, %1692
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1727

1727:                                             ; preds = %1726
  br label %1728

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

1729:                                             ; No predecessors!
  br label %1730

1730:                                             ; preds = %1729
  br label %1731

1731:                                             ; preds = %1730, %1666
  br label %1732

1732:                                             ; preds = %1731
  br label %1733

1733:                                             ; preds = %1732
  %1734 = load ptr, ptr %29, align 8, !tbaa !9
  %1735 = getelementptr inbounds %struct.s2n_connection, ptr %1734, i32 0, i32 82
  %1736 = getelementptr inbounds %struct.s2n_blob, ptr %1735, i32 0, i32 1
  %1737 = load i32, ptr %1736, align 8, !tbaa !23
  %1738 = zext i32 %1737 to i64
  store i64 %1738, ptr %32, align 8, !tbaa !15
  br label %1739

1739:                                             ; preds = %1733
  br label %1740

1740:                                             ; preds = %1739
  %1741 = load i32, ptr @test_count, align 4, !tbaa !5
  %1742 = add nsw i32 %1741, 1
  store i32 %1742, ptr @test_count, align 4, !tbaa !5
  %1743 = load ptr, ptr %29, align 8, !tbaa !9
  %1744 = getelementptr inbounds [255 x i8], ptr %13, i64 0, i64 0
  %1745 = call i32 @s2n_connection_append_protocol_preference(ptr noundef %1743, ptr noundef %1744, i8 noundef zeroext 0)
  %1746 = icmp eq i32 %1745, -1
  br i1 %1746, label %1800, label %1747

1747:                                             ; preds = %1740
  br label %1748

1748:                                             ; preds = %1747
  br label %1749

1749:                                             ; preds = %1748
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #11
  %1750 = call ptr @__errno_location() #12
  %1751 = load i32, ptr %1750, align 4, !tbaa !5
  store i32 %1751, ptr %39, align 4, !tbaa !5
  %1752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1753 = call i32 @s2n_print_stacktrace(ptr noundef %1752)
  %1754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1755 = trunc i8 %1754 to i1
  br i1 %1755, label %1756, label %1778

1756:                                             ; preds = %1749
  %1757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1758 = call i32 @fileno(ptr noundef %1757) #11
  %1759 = call i32 @isatty(i32 noundef %1758) #11
  %1760 = icmp ne i32 %1759, 0
  br i1 %1760, label %1761, label %1778

1761:                                             ; preds = %1756
  %1762 = load i32, ptr %39, align 4, !tbaa !5
  %1763 = call ptr @__errno_location() #12
  store i32 %1762, ptr %1763, align 4, !tbaa !5
  %1764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1765 = load i32, ptr @test_count, align 4, !tbaa !5
  %1766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1767 = load i32, ptr %1766, align 4, !tbaa !5
  %1768 = call ptr @s2n_strerror(i32 noundef %1767, ptr noundef @.str.4)
  %1769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1770 = load i32, ptr %1769, align 4, !tbaa !5
  %1771 = call ptr @s2n_strerror_debug(i32 noundef %1770, ptr noundef @.str.4)
  %1772 = call ptr @__errno_location() #12
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  %1774 = call ptr @strerror(i32 noundef %1773) #11
  %1775 = call ptr @__errno_location() #12
  %1776 = load i32, ptr %1775, align 4, !tbaa !5
  %1777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1764, ptr noundef @.str.2, i32 noundef %1765, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1768, ptr noundef %1771, ptr noundef %1774, i32 noundef %1776) #11
  br label %1795

1778:                                             ; preds = %1756, %1749
  %1779 = load i32, ptr %39, align 4, !tbaa !5
  %1780 = call ptr @__errno_location() #12
  store i32 %1779, ptr %1780, align 4, !tbaa !5
  %1781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1782 = load i32, ptr @test_count, align 4, !tbaa !5
  %1783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1784 = load i32, ptr %1783, align 4, !tbaa !5
  %1785 = call ptr @s2n_strerror(i32 noundef %1784, ptr noundef @.str.4)
  %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_debug(i32 noundef %1787, ptr noundef @.str.4)
  %1789 = call ptr @__errno_location() #12
  %1790 = load i32, ptr %1789, align 4, !tbaa !5
  %1791 = call ptr @strerror(i32 noundef %1790) #11
  %1792 = call ptr @__errno_location() #12
  %1793 = load i32, ptr %1792, align 4, !tbaa !5
  %1794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1781, ptr noundef @.str.5, i32 noundef %1782, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1785, ptr noundef %1788, ptr noundef %1791, i32 noundef %1793) #11
  br label %1795

1795:                                             ; preds = %1778, %1761
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %1796

1796:                                             ; preds = %1795
  br label %1797

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

1798:                                             ; No predecessors!
  br label %1799

1799:                                             ; preds = %1798
  br label %1800

1800:                                             ; preds = %1799, %1740
  br label %1801

1801:                                             ; preds = %1800
  br label %1802

1802:                                             ; preds = %1801
  br label %1803

1803:                                             ; preds = %1802
  %1804 = load i32, ptr @test_count, align 4, !tbaa !5
  %1805 = add nsw i32 %1804, 1
  store i32 %1805, ptr @test_count, align 4, !tbaa !5
  %1806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1807 = load i32, ptr %1806, align 4, !tbaa !5
  %1808 = icmp eq i32 %1807, 0
  br i1 %1808, label %1809, label %1862

1809:                                             ; preds = %1803
  br label %1810

1810:                                             ; preds = %1809
  br label %1811

1811:                                             ; preds = %1810
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #11
  %1812 = call ptr @__errno_location() #12
  %1813 = load i32, ptr %1812, align 4, !tbaa !5
  store i32 %1813, ptr %40, align 4, !tbaa !5
  %1814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1815 = call i32 @s2n_print_stacktrace(ptr noundef %1814)
  %1816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1817 = trunc i8 %1816 to i1
  br i1 %1817, label %1818, label %1840

1818:                                             ; preds = %1811
  %1819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1820 = call i32 @fileno(ptr noundef %1819) #11
  %1821 = call i32 @isatty(i32 noundef %1820) #11
  %1822 = icmp ne i32 %1821, 0
  br i1 %1822, label %1823, label %1840

1823:                                             ; preds = %1818
  %1824 = load i32, ptr %40, align 4, !tbaa !5
  %1825 = call ptr @__errno_location() #12
  store i32 %1824, ptr %1825, align 4, !tbaa !5
  %1826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1827 = load i32, ptr @test_count, align 4, !tbaa !5
  %1828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1829 = load i32, ptr %1828, align 4, !tbaa !5
  %1830 = call ptr @s2n_strerror(i32 noundef %1829, ptr noundef @.str.4)
  %1831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1832 = load i32, ptr %1831, align 4, !tbaa !5
  %1833 = call ptr @s2n_strerror_debug(i32 noundef %1832, ptr noundef @.str.4)
  %1834 = call ptr @__errno_location() #12
  %1835 = load i32, ptr %1834, align 4, !tbaa !5
  %1836 = call ptr @strerror(i32 noundef %1835) #11
  %1837 = call ptr @__errno_location() #12
  %1838 = load i32, ptr %1837, align 4, !tbaa !5
  %1839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1826, ptr noundef @.str.2, i32 noundef %1827, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1830, ptr noundef %1833, ptr noundef %1836, i32 noundef %1838) #11
  br label %1857

1840:                                             ; preds = %1818, %1811
  %1841 = load i32, ptr %40, align 4, !tbaa !5
  %1842 = call ptr @__errno_location() #12
  store i32 %1841, ptr %1842, align 4, !tbaa !5
  %1843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1844 = load i32, ptr @test_count, align 4, !tbaa !5
  %1845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1846 = load i32, ptr %1845, align 4, !tbaa !5
  %1847 = call ptr @s2n_strerror(i32 noundef %1846, ptr noundef @.str.4)
  %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_debug(i32 noundef %1849, ptr noundef @.str.4)
  %1851 = call ptr @__errno_location() #12
  %1852 = load i32, ptr %1851, align 4, !tbaa !5
  %1853 = call ptr @strerror(i32 noundef %1852) #11
  %1854 = call ptr @__errno_location() #12
  %1855 = load i32, ptr %1854, align 4, !tbaa !5
  %1856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1843, ptr noundef @.str.5, i32 noundef %1844, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1847, ptr noundef %1850, ptr noundef %1853, i32 noundef %1855) #11
  br label %1857

1857:                                             ; preds = %1840, %1823
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %1858

1858:                                             ; preds = %1857
  br label %1859

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

1860:                                             ; No predecessors!
  br label %1861

1861:                                             ; preds = %1860
  br label %1862

1862:                                             ; preds = %1861, %1803
  br label %1863

1863:                                             ; preds = %1862
  br label %1864

1864:                                             ; preds = %1863
  br label %1865

1865:                                             ; preds = %1864
  %1866 = load i32, ptr @test_count, align 4, !tbaa !5
  %1867 = add nsw i32 %1866, 1
  store i32 %1867, ptr @test_count, align 4, !tbaa !5
  %1868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1869 = load i32, ptr %1868, align 4, !tbaa !5
  %1870 = call ptr @s2n_strerror_debug(i32 noundef %1869, ptr noundef @.str.4)
  %1871 = icmp eq ptr %1870, null
  br i1 %1871, label %1872, label %1925

1872:                                             ; preds = %1865
  br label %1873

1873:                                             ; preds = %1872
  br label %1874

1874:                                             ; preds = %1873
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #11
  %1875 = call ptr @__errno_location() #12
  %1876 = load i32, ptr %1875, align 4, !tbaa !5
  store i32 %1876, ptr %41, align 4, !tbaa !5
  %1877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1878 = call i32 @s2n_print_stacktrace(ptr noundef %1877)
  %1879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1880 = trunc i8 %1879 to i1
  br i1 %1880, label %1881, label %1903

1881:                                             ; preds = %1874
  %1882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1883 = call i32 @fileno(ptr noundef %1882) #11
  %1884 = call i32 @isatty(i32 noundef %1883) #11
  %1885 = icmp ne i32 %1884, 0
  br i1 %1885, label %1886, label %1903

1886:                                             ; preds = %1881
  %1887 = load i32, ptr %41, align 4, !tbaa !5
  %1888 = call ptr @__errno_location() #12
  store i32 %1887, ptr %1888, align 4, !tbaa !5
  %1889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1890 = load i32, ptr @test_count, align 4, !tbaa !5
  %1891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  %1893 = call ptr @s2n_strerror(i32 noundef %1892, ptr noundef @.str.4)
  %1894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1895 = load i32, ptr %1894, align 4, !tbaa !5
  %1896 = call ptr @s2n_strerror_debug(i32 noundef %1895, ptr noundef @.str.4)
  %1897 = call ptr @__errno_location() #12
  %1898 = load i32, ptr %1897, align 4, !tbaa !5
  %1899 = call ptr @strerror(i32 noundef %1898) #11
  %1900 = call ptr @__errno_location() #12
  %1901 = load i32, ptr %1900, align 4, !tbaa !5
  %1902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1889, ptr noundef @.str.2, i32 noundef %1890, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1893, ptr noundef %1896, ptr noundef %1899, i32 noundef %1901) #11
  br label %1920

1903:                                             ; preds = %1881, %1874
  %1904 = load i32, ptr %41, align 4, !tbaa !5
  %1905 = call ptr @__errno_location() #12
  store i32 %1904, ptr %1905, align 4, !tbaa !5
  %1906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1907 = load i32, ptr @test_count, align 4, !tbaa !5
  %1908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1909 = load i32, ptr %1908, align 4, !tbaa !5
  %1910 = call ptr @s2n_strerror(i32 noundef %1909, ptr noundef @.str.4)
  %1911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1912 = load i32, ptr %1911, align 4, !tbaa !5
  %1913 = call ptr @s2n_strerror_debug(i32 noundef %1912, ptr noundef @.str.4)
  %1914 = call ptr @__errno_location() #12
  %1915 = load i32, ptr %1914, align 4, !tbaa !5
  %1916 = call ptr @strerror(i32 noundef %1915) #11
  %1917 = call ptr @__errno_location() #12
  %1918 = load i32, ptr %1917, align 4, !tbaa !5
  %1919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1906, ptr noundef @.str.5, i32 noundef %1907, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1910, ptr noundef %1913, ptr noundef %1916, i32 noundef %1918) #11
  br label %1920

1920:                                             ; preds = %1903, %1886
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %1921

1921:                                             ; preds = %1920
  br label %1922

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

1923:                                             ; No predecessors!
  br label %1924

1924:                                             ; preds = %1923
  br label %1925

1925:                                             ; preds = %1924, %1865
  br label %1926

1926:                                             ; preds = %1925
  br label %1927

1927:                                             ; preds = %1926
  br label %1928

1928:                                             ; preds = %1927
  %1929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1929, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1930 = call ptr @__errno_location() #12
  store i32 0, ptr %1930, align 4, !tbaa !5
  br label %1931

1931:                                             ; preds = %1928
  br label %1932

1932:                                             ; preds = %1931
  br label %1933

1933:                                             ; preds = %1932
  br label %1934

1934:                                             ; preds = %1933
  br label %1935

1935:                                             ; preds = %1934
  %1936 = load i32, ptr @test_count, align 4, !tbaa !5
  %1937 = add nsw i32 %1936, 1
  store i32 %1937, ptr @test_count, align 4, !tbaa !5
  %1938 = load ptr, ptr %29, align 8, !tbaa !9
  %1939 = getelementptr inbounds %struct.s2n_connection, ptr %1938, i32 0, i32 82
  %1940 = getelementptr inbounds %struct.s2n_blob, ptr %1939, i32 0, i32 1
  %1941 = load i32, ptr %1940, align 8, !tbaa !23
  %1942 = zext i32 %1941 to i64
  %1943 = load i64, ptr %32, align 8, !tbaa !15
  %1944 = icmp eq i64 %1942, %1943
  br i1 %1944, label %1998, label %1945

1945:                                             ; preds = %1935
  br label %1946

1946:                                             ; preds = %1945
  br label %1947

1947:                                             ; preds = %1946
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #11
  %1948 = call ptr @__errno_location() #12
  %1949 = load i32, ptr %1948, align 4, !tbaa !5
  store i32 %1949, ptr %42, align 4, !tbaa !5
  %1950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1951 = call i32 @s2n_print_stacktrace(ptr noundef %1950)
  %1952 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1953 = trunc i8 %1952 to i1
  br i1 %1953, label %1954, label %1976

1954:                                             ; preds = %1947
  %1955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1956 = call i32 @fileno(ptr noundef %1955) #11
  %1957 = call i32 @isatty(i32 noundef %1956) #11
  %1958 = icmp ne i32 %1957, 0
  br i1 %1958, label %1959, label %1976

1959:                                             ; preds = %1954
  %1960 = load i32, ptr %42, align 4, !tbaa !5
  %1961 = call ptr @__errno_location() #12
  store i32 %1960, ptr %1961, align 4, !tbaa !5
  %1962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1963 = load i32, ptr @test_count, align 4, !tbaa !5
  %1964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1965 = load i32, ptr %1964, align 4, !tbaa !5
  %1966 = call ptr @s2n_strerror(i32 noundef %1965, ptr noundef @.str.4)
  %1967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1968 = load i32, ptr %1967, align 4, !tbaa !5
  %1969 = call ptr @s2n_strerror_debug(i32 noundef %1968, ptr noundef @.str.4)
  %1970 = call ptr @__errno_location() #12
  %1971 = load i32, ptr %1970, align 4, !tbaa !5
  %1972 = call ptr @strerror(i32 noundef %1971) #11
  %1973 = call ptr @__errno_location() #12
  %1974 = load i32, ptr %1973, align 4, !tbaa !5
  %1975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1962, ptr noundef @.str.2, i32 noundef %1963, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 90, ptr noundef %1966, ptr noundef %1969, ptr noundef %1972, i32 noundef %1974) #11
  br label %1993

1976:                                             ; preds = %1954, %1947
  %1977 = load i32, ptr %42, align 4, !tbaa !5
  %1978 = call ptr @__errno_location() #12
  store i32 %1977, ptr %1978, align 4, !tbaa !5
  %1979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1980 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1982, ptr noundef @.str.4)
  %1984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1985 = load i32, ptr %1984, align 4, !tbaa !5
  %1986 = call ptr @s2n_strerror_debug(i32 noundef %1985, ptr noundef @.str.4)
  %1987 = call ptr @__errno_location() #12
  %1988 = load i32, ptr %1987, align 4, !tbaa !5
  %1989 = call ptr @strerror(i32 noundef %1988) #11
  %1990 = call ptr @__errno_location() #12
  %1991 = load i32, ptr %1990, align 4, !tbaa !5
  %1992 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1979, ptr noundef @.str.5, i32 noundef %1980, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 90, ptr noundef %1983, ptr noundef %1986, ptr noundef %1989, i32 noundef %1991) #11
  br label %1993

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

1994:                                             ; preds = %1993
  br label %1995

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

1996:                                             ; No predecessors!
  br label %1997

1997:                                             ; preds = %1996
  br label %1998

1998:                                             ; preds = %1997, %1935
  br label %1999

1999:                                             ; preds = %1998
  br label %2000

2000:                                             ; preds = %1999
  br label %2001

2001:                                             ; preds = %2000
  %2002 = load i32, ptr @test_count, align 4, !tbaa !5
  %2003 = add nsw i32 %2002, 1
  store i32 %2003, ptr @test_count, align 4, !tbaa !5
  %2004 = load ptr, ptr %29, align 8, !tbaa !9
  %2005 = call i32 @s2n_connection_free(ptr noundef %2004)
  %2006 = icmp eq i32 %2005, -1
  br i1 %2006, label %2007, label %2060

2007:                                             ; preds = %2001
  br label %2008

2008:                                             ; preds = %2007
  br label %2009

2009:                                             ; preds = %2008
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #11
  %2010 = call ptr @__errno_location() #12
  %2011 = load i32, ptr %2010, align 4, !tbaa !5
  store i32 %2011, ptr %43, align 4, !tbaa !5
  %2012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2013 = call i32 @s2n_print_stacktrace(ptr noundef %2012)
  %2014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2015 = trunc i8 %2014 to i1
  br i1 %2015, label %2016, label %2038

2016:                                             ; preds = %2009
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = call i32 @fileno(ptr noundef %2017) #11
  %2019 = call i32 @isatty(i32 noundef %2018) #11
  %2020 = icmp ne i32 %2019, 0
  br i1 %2020, label %2021, label %2038

2021:                                             ; preds = %2016
  %2022 = load i32, ptr %43, align 4, !tbaa !5
  %2023 = call ptr @__errno_location() #12
  store i32 %2022, ptr %2023, align 4, !tbaa !5
  %2024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2025 = load i32, ptr @test_count, align 4, !tbaa !5
  %2026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2027 = load i32, ptr %2026, align 4, !tbaa !5
  %2028 = call ptr @s2n_strerror(i32 noundef %2027, ptr noundef @.str.4)
  %2029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2030 = load i32, ptr %2029, align 4, !tbaa !5
  %2031 = call ptr @s2n_strerror_debug(i32 noundef %2030, ptr noundef @.str.4)
  %2032 = call ptr @__errno_location() #12
  %2033 = load i32, ptr %2032, align 4, !tbaa !5
  %2034 = call ptr @strerror(i32 noundef %2033) #11
  %2035 = call ptr @__errno_location() #12
  %2036 = load i32, ptr %2035, align 4, !tbaa !5
  %2037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2024, ptr noundef @.str.2, i32 noundef %2025, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 92, ptr noundef %2028, ptr noundef %2031, ptr noundef %2034, i32 noundef %2036) #11
  br label %2055

2038:                                             ; preds = %2016, %2009
  %2039 = load i32, ptr %43, align 4, !tbaa !5
  %2040 = call ptr @__errno_location() #12
  store i32 %2039, ptr %2040, align 4, !tbaa !5
  %2041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2042 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2044, ptr noundef @.str.4)
  %2046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2047 = load i32, ptr %2046, align 4, !tbaa !5
  %2048 = call ptr @s2n_strerror_debug(i32 noundef %2047, ptr noundef @.str.4)
  %2049 = call ptr @__errno_location() #12
  %2050 = load i32, ptr %2049, align 4, !tbaa !5
  %2051 = call ptr @strerror(i32 noundef %2050) #11
  %2052 = call ptr @__errno_location() #12
  %2053 = load i32, ptr %2052, align 4, !tbaa !5
  %2054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2041, ptr noundef @.str.5, i32 noundef %2042, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 92, ptr noundef %2045, ptr noundef %2048, ptr noundef %2051, i32 noundef %2053) #11
  br label %2055

2055:                                             ; preds = %2038, %2021
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %2056

2056:                                             ; preds = %2055
  br label %2057

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

2058:                                             ; No predecessors!
  br label %2059

2059:                                             ; preds = %2058
  br label %2060

2060:                                             ; preds = %2059, %2001
  br label %2061

2061:                                             ; preds = %2060
  br label %2062

2062:                                             ; preds = %2061
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #11
  call void @llvm.lifetime.start.p0(i64 16, ptr %44) #11
  %2063 = getelementptr inbounds [10 x i8], ptr %9, i64 0, i64 0
  store ptr %2063, ptr %44, align 8, !tbaa !9
  %2064 = getelementptr inbounds ptr, ptr %44, i64 1
  %2065 = getelementptr inbounds [15 x i8], ptr %11, i64 0, i64 0
  store ptr %2065, ptr %2064, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %45) #11
  store i8 2, ptr %45, align 1, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 257, ptr %46) #11
  call void @llvm.memset.p0.i64(ptr align 16 %46, i8 0, i64 257, i1 false)
  call void @llvm.memset.p0.i64(ptr align 16 %46, i8 1, i64 256, i1 false)
  br label %2066

2066:                                             ; preds = %2062
  %2067 = load i32, ptr @test_count, align 4, !tbaa !5
  %2068 = add nsw i32 %2067, 1
  store i32 %2068, ptr @test_count, align 4, !tbaa !5
  %2069 = getelementptr inbounds [257 x i8], ptr %46, i64 0, i64 0
  %2070 = call i64 @strlen(ptr noundef %2069) #14
  %2071 = icmp eq i64 %2070, 256
  br i1 %2071, label %2125, label %2072

2072:                                             ; preds = %2066
  br label %2073

2073:                                             ; preds = %2072
  br label %2074

2074:                                             ; preds = %2073
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #11
  %2075 = call ptr @__errno_location() #12
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  store i32 %2076, ptr %47, align 4, !tbaa !5
  %2077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2078 = call i32 @s2n_print_stacktrace(ptr noundef %2077)
  %2079 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2080 = trunc i8 %2079 to i1
  br i1 %2080, label %2081, label %2103

2081:                                             ; preds = %2074
  %2082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2083 = call i32 @fileno(ptr noundef %2082) #11
  %2084 = call i32 @isatty(i32 noundef %2083) #11
  %2085 = icmp ne i32 %2084, 0
  br i1 %2085, label %2086, label %2103

2086:                                             ; preds = %2081
  %2087 = load i32, ptr %47, align 4, !tbaa !5
  %2088 = call ptr @__errno_location() #12
  store i32 %2087, ptr %2088, align 4, !tbaa !5
  %2089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2090 = load i32, ptr @test_count, align 4, !tbaa !5
  %2091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2092 = load i32, ptr %2091, align 4, !tbaa !5
  %2093 = call ptr @s2n_strerror(i32 noundef %2092, ptr noundef @.str.4)
  %2094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2095 = load i32, ptr %2094, align 4, !tbaa !5
  %2096 = call ptr @s2n_strerror_debug(i32 noundef %2095, ptr noundef @.str.4)
  %2097 = call ptr @__errno_location() #12
  %2098 = load i32, ptr %2097, align 4, !tbaa !5
  %2099 = call ptr @strerror(i32 noundef %2098) #11
  %2100 = call ptr @__errno_location() #12
  %2101 = load i32, ptr %2100, align 4, !tbaa !5
  %2102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2089, ptr noundef @.str.2, i32 noundef %2090, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 100, ptr noundef %2093, ptr noundef %2096, ptr noundef %2099, i32 noundef %2101) #11
  br label %2120

2103:                                             ; preds = %2081, %2074
  %2104 = load i32, ptr %47, align 4, !tbaa !5
  %2105 = call ptr @__errno_location() #12
  store i32 %2104, ptr %2105, align 4, !tbaa !5
  %2106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2107 = load i32, ptr @test_count, align 4, !tbaa !5
  %2108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2109 = load i32, ptr %2108, align 4, !tbaa !5
  %2110 = call ptr @s2n_strerror(i32 noundef %2109, ptr noundef @.str.4)
  %2111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2112 = load i32, ptr %2111, align 4, !tbaa !5
  %2113 = call ptr @s2n_strerror_debug(i32 noundef %2112, ptr noundef @.str.4)
  %2114 = call ptr @__errno_location() #12
  %2115 = load i32, ptr %2114, align 4, !tbaa !5
  %2116 = call ptr @strerror(i32 noundef %2115) #11
  %2117 = call ptr @__errno_location() #12
  %2118 = load i32, ptr %2117, align 4, !tbaa !5
  %2119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2106, ptr noundef @.str.5, i32 noundef %2107, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 100, ptr noundef %2110, ptr noundef %2113, ptr noundef %2116, i32 noundef %2118) #11
  br label %2120

2120:                                             ; preds = %2103, %2086
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %2121

2121:                                             ; preds = %2120
  br label %2122

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

2123:                                             ; No predecessors!
  br label %2124

2124:                                             ; preds = %2123
  br label %2125

2125:                                             ; preds = %2124, %2066
  br label %2126

2126:                                             ; preds = %2125
  br label %2127

2127:                                             ; preds = %2126
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #11
  %2128 = getelementptr inbounds [257 x i8], ptr %46, i64 0, i64 0
  store ptr %2128, ptr %48, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %49) #11
  store i8 1, ptr %49, align 1, !tbaa !47
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #11
  store ptr null, ptr %50, align 8, !tbaa !9
  br label %2129

2129:                                             ; preds = %2127
  %2130 = load i32, ptr @test_count, align 4, !tbaa !5
  %2131 = add nsw i32 %2130, 1
  store i32 %2131, ptr @test_count, align 4, !tbaa !5
  %2132 = call ptr @s2n_config_new()
  store ptr %2132, ptr %50, align 8, !tbaa !9
  %2133 = icmp eq ptr %2132, null
  br i1 %2133, label %2134, label %2187

2134:                                             ; preds = %2129
  br label %2135

2135:                                             ; preds = %2134
  br label %2136

2136:                                             ; preds = %2135
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #11
  %2137 = call ptr @__errno_location() #12
  %2138 = load i32, ptr %2137, align 4, !tbaa !5
  store i32 %2138, ptr %51, align 4, !tbaa !5
  %2139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2140 = call i32 @s2n_print_stacktrace(ptr noundef %2139)
  %2141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2142 = trunc i8 %2141 to i1
  br i1 %2142, label %2143, label %2165

2143:                                             ; preds = %2136
  %2144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2145 = call i32 @fileno(ptr noundef %2144) #11
  %2146 = call i32 @isatty(i32 noundef %2145) #11
  %2147 = icmp ne i32 %2146, 0
  br i1 %2147, label %2148, label %2165

2148:                                             ; preds = %2143
  %2149 = load i32, ptr %51, align 4, !tbaa !5
  %2150 = call ptr @__errno_location() #12
  store i32 %2149, ptr %2150, align 4, !tbaa !5
  %2151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2152 = load i32, ptr @test_count, align 4, !tbaa !5
  %2153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2154 = load i32, ptr %2153, align 4, !tbaa !5
  %2155 = call ptr @s2n_strerror(i32 noundef %2154, ptr noundef @.str.4)
  %2156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2157 = load i32, ptr %2156, align 4, !tbaa !5
  %2158 = call ptr @s2n_strerror_debug(i32 noundef %2157, ptr noundef @.str.4)
  %2159 = call ptr @__errno_location() #12
  %2160 = load i32, ptr %2159, align 4, !tbaa !5
  %2161 = call ptr @strerror(i32 noundef %2160) #11
  %2162 = call ptr @__errno_location() #12
  %2163 = load i32, ptr %2162, align 4, !tbaa !5
  %2164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2151, ptr noundef @.str.2, i32 noundef %2152, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 107, ptr noundef %2155, ptr noundef %2158, ptr noundef %2161, i32 noundef %2163) #11
  br label %2182

2165:                                             ; preds = %2143, %2136
  %2166 = load i32, ptr %51, align 4, !tbaa !5
  %2167 = call ptr @__errno_location() #12
  store i32 %2166, ptr %2167, align 4, !tbaa !5
  %2168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2169 = load i32, ptr @test_count, align 4, !tbaa !5
  %2170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2171 = load i32, ptr %2170, align 4, !tbaa !5
  %2172 = call ptr @s2n_strerror(i32 noundef %2171, ptr noundef @.str.4)
  %2173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2174 = load i32, ptr %2173, align 4, !tbaa !5
  %2175 = call ptr @s2n_strerror_debug(i32 noundef %2174, ptr noundef @.str.4)
  %2176 = call ptr @__errno_location() #12
  %2177 = load i32, ptr %2176, align 4, !tbaa !5
  %2178 = call ptr @strerror(i32 noundef %2177) #11
  %2179 = call ptr @__errno_location() #12
  %2180 = load i32, ptr %2179, align 4, !tbaa !5
  %2181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2168, ptr noundef @.str.5, i32 noundef %2169, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 107, ptr noundef %2172, ptr noundef %2175, ptr noundef %2178, i32 noundef %2180) #11
  br label %2182

2182:                                             ; preds = %2165, %2148
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %2183

2183:                                             ; preds = %2182
  br label %2184

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

2185:                                             ; No predecessors!
  br label %2186

2186:                                             ; preds = %2185
  br label %2187

2187:                                             ; preds = %2186, %2129
  br label %2188

2188:                                             ; preds = %2187
  br label %2189

2189:                                             ; preds = %2188
  br label %2190

2190:                                             ; preds = %2189
  %2191 = load i32, ptr @test_count, align 4, !tbaa !5
  %2192 = add nsw i32 %2191, 1
  store i32 %2192, ptr @test_count, align 4, !tbaa !5
  %2193 = load ptr, ptr %50, align 8, !tbaa !9
  %2194 = getelementptr inbounds %struct.s2n_config, ptr %2193, i32 0, i32 4
  %2195 = getelementptr inbounds %struct.s2n_blob, ptr %2194, i32 0, i32 1
  %2196 = load i32, ptr %2195, align 8, !tbaa !17
  %2197 = icmp eq i32 %2196, 0
  br i1 %2197, label %2251, label %2198

2198:                                             ; preds = %2190
  br label %2199

2199:                                             ; preds = %2198
  br label %2200

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

2207:                                             ; preds = %2200
  %2208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2209 = call i32 @fileno(ptr noundef %2208) #11
  %2210 = call i32 @isatty(i32 noundef %2209) #11
  %2211 = icmp ne i32 %2210, 0
  br i1 %2211, label %2212, label %2229

2212:                                             ; preds = %2207
  %2213 = load i32, ptr %52, align 4, !tbaa !5
  %2214 = call ptr @__errno_location() #12
  store i32 %2213, ptr %2214, align 4, !tbaa !5
  %2215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2216 = load i32, ptr @test_count, align 4, !tbaa !5
  %2217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2218 = load i32, ptr %2217, align 4, !tbaa !5
  %2219 = call ptr @s2n_strerror(i32 noundef %2218, ptr noundef @.str.4)
  %2220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2221 = load i32, ptr %2220, align 4, !tbaa !5
  %2222 = call ptr @s2n_strerror_debug(i32 noundef %2221, ptr noundef @.str.4)
  %2223 = call ptr @__errno_location() #12
  %2224 = load i32, ptr %2223, align 4, !tbaa !5
  %2225 = call ptr @strerror(i32 noundef %2224) #11
  %2226 = call ptr @__errno_location() #12
  %2227 = load i32, ptr %2226, align 4, !tbaa !5
  %2228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2215, ptr noundef @.str.2, i32 noundef %2216, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 108, ptr noundef %2219, ptr noundef %2222, ptr noundef %2225, i32 noundef %2227) #11
  br label %2246

2229:                                             ; preds = %2207, %2200
  %2230 = load i32, ptr %52, align 4, !tbaa !5
  %2231 = call ptr @__errno_location() #12
  store i32 %2230, ptr %2231, align 4, !tbaa !5
  %2232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2233 = load i32, ptr @test_count, align 4, !tbaa !5
  %2234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2235 = load i32, ptr %2234, align 4, !tbaa !5
  %2236 = call ptr @s2n_strerror(i32 noundef %2235, ptr noundef @.str.4)
  %2237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2238 = load i32, ptr %2237, align 4, !tbaa !5
  %2239 = call ptr @s2n_strerror_debug(i32 noundef %2238, ptr noundef @.str.4)
  %2240 = call ptr @__errno_location() #12
  %2241 = load i32, ptr %2240, align 4, !tbaa !5
  %2242 = call ptr @strerror(i32 noundef %2241) #11
  %2243 = call ptr @__errno_location() #12
  %2244 = load i32, ptr %2243, align 4, !tbaa !5
  %2245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2232, ptr noundef @.str.5, i32 noundef %2233, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 108, ptr noundef %2236, ptr noundef %2239, ptr noundef %2242, i32 noundef %2244) #11
  br label %2246

2246:                                             ; preds = %2229, %2212
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %2247

2247:                                             ; preds = %2246
  br label %2248

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

2249:                                             ; No predecessors!
  br label %2250

2250:                                             ; preds = %2249
  br label %2251

2251:                                             ; preds = %2250, %2190
  br label %2252

2252:                                             ; preds = %2251
  br label %2253

2253:                                             ; preds = %2252
  br label %2254

2254:                                             ; preds = %2253
  %2255 = load i32, ptr @test_count, align 4, !tbaa !5
  %2256 = add nsw i32 %2255, 1
  store i32 %2256, ptr @test_count, align 4, !tbaa !5
  %2257 = load ptr, ptr %50, align 8, !tbaa !9
  %2258 = getelementptr inbounds [2 x ptr], ptr %44, i64 0, i64 0
  %2259 = call i32 @s2n_config_set_protocol_preferences(ptr noundef %2257, ptr noundef %2258, i32 noundef 2)
  %2260 = icmp eq i32 %2259, -1
  br i1 %2260, label %2261, label %2314

2261:                                             ; preds = %2254
  br label %2262

2262:                                             ; preds = %2261
  br label %2263

2263:                                             ; preds = %2262
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #11
  %2264 = call ptr @__errno_location() #12
  %2265 = load i32, ptr %2264, align 4, !tbaa !5
  store i32 %2265, ptr %53, align 4, !tbaa !5
  %2266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2267 = call i32 @s2n_print_stacktrace(ptr noundef %2266)
  %2268 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2269 = trunc i8 %2268 to i1
  br i1 %2269, label %2270, label %2292

2270:                                             ; preds = %2263
  %2271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2272 = call i32 @fileno(ptr noundef %2271) #11
  %2273 = call i32 @isatty(i32 noundef %2272) #11
  %2274 = icmp ne i32 %2273, 0
  br i1 %2274, label %2275, label %2292

2275:                                             ; preds = %2270
  %2276 = load i32, ptr %53, align 4, !tbaa !5
  %2277 = call ptr @__errno_location() #12
  store i32 %2276, ptr %2277, align 4, !tbaa !5
  %2278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2279 = load i32, ptr @test_count, align 4, !tbaa !5
  %2280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2281 = load i32, ptr %2280, align 4, !tbaa !5
  %2282 = call ptr @s2n_strerror(i32 noundef %2281, ptr noundef @.str.4)
  %2283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2284 = load i32, ptr %2283, align 4, !tbaa !5
  %2285 = call ptr @s2n_strerror_debug(i32 noundef %2284, ptr noundef @.str.4)
  %2286 = call ptr @__errno_location() #12
  %2287 = load i32, ptr %2286, align 4, !tbaa !5
  %2288 = call ptr @strerror(i32 noundef %2287) #11
  %2289 = call ptr @__errno_location() #12
  %2290 = load i32, ptr %2289, align 4, !tbaa !5
  %2291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2278, ptr noundef @.str.2, i32 noundef %2279, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2282, ptr noundef %2285, ptr noundef %2288, i32 noundef %2290) #11
  br label %2309

2292:                                             ; preds = %2270, %2263
  %2293 = load i32, ptr %53, align 4, !tbaa !5
  %2294 = call ptr @__errno_location() #12
  store i32 %2293, ptr %2294, align 4, !tbaa !5
  %2295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2296 = load i32, ptr @test_count, align 4, !tbaa !5
  %2297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2298 = load i32, ptr %2297, align 4, !tbaa !5
  %2299 = call ptr @s2n_strerror(i32 noundef %2298, ptr noundef @.str.4)
  %2300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2301 = load i32, ptr %2300, align 4, !tbaa !5
  %2302 = call ptr @s2n_strerror_debug(i32 noundef %2301, ptr noundef @.str.4)
  %2303 = call ptr @__errno_location() #12
  %2304 = load i32, ptr %2303, align 4, !tbaa !5
  %2305 = call ptr @strerror(i32 noundef %2304) #11
  %2306 = call ptr @__errno_location() #12
  %2307 = load i32, ptr %2306, align 4, !tbaa !5
  %2308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2295, ptr noundef @.str.5, i32 noundef %2296, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 111, ptr noundef %2299, ptr noundef %2302, ptr noundef %2305, i32 noundef %2307) #11
  br label %2309

2309:                                             ; preds = %2292, %2275
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %2310

2310:                                             ; preds = %2309
  br label %2311

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

2312:                                             ; No predecessors!
  br label %2313

2313:                                             ; preds = %2312
  br label %2314

2314:                                             ; preds = %2313, %2254
  br label %2315

2315:                                             ; preds = %2314
  br label %2316

2316:                                             ; preds = %2315
  br label %2317

2317:                                             ; preds = %2316
  %2318 = load i32, ptr @test_count, align 4, !tbaa !5
  %2319 = add nsw i32 %2318, 1
  store i32 %2319, ptr @test_count, align 4, !tbaa !5
  %2320 = load ptr, ptr %50, align 8, !tbaa !9
  %2321 = getelementptr inbounds %struct.s2n_config, ptr %2320, i32 0, i32 4
  %2322 = getelementptr inbounds %struct.s2n_blob, ptr %2321, i32 0, i32 1
  %2323 = load i32, ptr %2322, align 8, !tbaa !17
  %2324 = zext i32 %2323 to i64
  %2325 = load i64, ptr %10, align 8, !tbaa !15
  %2326 = add i64 1, %2325
  %2327 = add i64 %2326, 1
  %2328 = load i64, ptr %12, align 8, !tbaa !15
  %2329 = add i64 %2327, %2328
  %2330 = icmp eq i64 %2324, %2329
  br i1 %2330, label %2384, label %2331

2331:                                             ; preds = %2317
  br label %2332

2332:                                             ; preds = %2331
  br label %2333

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

2340:                                             ; preds = %2333
  %2341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2342 = call i32 @fileno(ptr noundef %2341) #11
  %2343 = call i32 @isatty(i32 noundef %2342) #11
  %2344 = icmp ne i32 %2343, 0
  br i1 %2344, label %2345, label %2362

2345:                                             ; preds = %2340
  %2346 = load i32, ptr %54, align 4, !tbaa !5
  %2347 = call ptr @__errno_location() #12
  store i32 %2346, ptr %2347, align 4, !tbaa !5
  %2348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2349 = load i32, ptr @test_count, align 4, !tbaa !5
  %2350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2351 = load i32, ptr %2350, align 4, !tbaa !5
  %2352 = call ptr @s2n_strerror(i32 noundef %2351, ptr noundef @.str.4)
  %2353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2354 = load i32, ptr %2353, align 4, !tbaa !5
  %2355 = call ptr @s2n_strerror_debug(i32 noundef %2354, ptr noundef @.str.4)
  %2356 = call ptr @__errno_location() #12
  %2357 = load i32, ptr %2356, align 4, !tbaa !5
  %2358 = call ptr @strerror(i32 noundef %2357) #11
  %2359 = call ptr @__errno_location() #12
  %2360 = load i32, ptr %2359, align 4, !tbaa !5
  %2361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2348, ptr noundef @.str.2, i32 noundef %2349, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 112, ptr noundef %2352, ptr noundef %2355, ptr noundef %2358, i32 noundef %2360) #11
  br label %2379

2362:                                             ; preds = %2340, %2333
  %2363 = load i32, ptr %54, align 4, !tbaa !5
  %2364 = call ptr @__errno_location() #12
  store i32 %2363, ptr %2364, align 4, !tbaa !5
  %2365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2366 = load i32, ptr @test_count, align 4, !tbaa !5
  %2367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2368 = load i32, ptr %2367, align 4, !tbaa !5
  %2369 = call ptr @s2n_strerror(i32 noundef %2368, ptr noundef @.str.4)
  %2370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2371 = load i32, ptr %2370, align 4, !tbaa !5
  %2372 = call ptr @s2n_strerror_debug(i32 noundef %2371, ptr noundef @.str.4)
  %2373 = call ptr @__errno_location() #12
  %2374 = load i32, ptr %2373, align 4, !tbaa !5
  %2375 = call ptr @strerror(i32 noundef %2374) #11
  %2376 = call ptr @__errno_location() #12
  %2377 = load i32, ptr %2376, align 4, !tbaa !5
  %2378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2365, ptr noundef @.str.5, i32 noundef %2366, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 112, ptr noundef %2369, ptr noundef %2372, ptr noundef %2375, i32 noundef %2377) #11
  br label %2379

2379:                                             ; preds = %2362, %2345
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %2380

2380:                                             ; preds = %2379
  br label %2381

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

2382:                                             ; No predecessors!
  br label %2383

2383:                                             ; preds = %2382
  br label %2384

2384:                                             ; preds = %2383, %2317
  br label %2385

2385:                                             ; preds = %2384
  br label %2386

2386:                                             ; preds = %2385
  br label %2387

2387:                                             ; preds = %2386
  %2388 = load i32, ptr @test_count, align 4, !tbaa !5
  %2389 = add nsw i32 %2388, 1
  store i32 %2389, ptr @test_count, align 4, !tbaa !5
  %2390 = load ptr, ptr %50, align 8, !tbaa !9
  %2391 = getelementptr inbounds [2 x ptr], ptr %44, i64 0, i64 0
  %2392 = call i32 @s2n_config_set_protocol_preferences(ptr noundef %2390, ptr noundef %2391, i32 noundef 1)
  %2393 = icmp eq i32 %2392, -1
  br i1 %2393, label %2394, label %2447

2394:                                             ; preds = %2387
  br label %2395

2395:                                             ; preds = %2394
  br label %2396

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

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

2408:                                             ; preds = %2403
  %2409 = load i32, ptr %55, align 4, !tbaa !5
  %2410 = call ptr @__errno_location() #12
  store i32 %2409, ptr %2410, align 4, !tbaa !5
  %2411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2412 = load i32, ptr @test_count, align 4, !tbaa !5
  %2413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2414 = load i32, ptr %2413, align 4, !tbaa !5
  %2415 = call ptr @s2n_strerror(i32 noundef %2414, ptr noundef @.str.4)
  %2416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2417 = load i32, ptr %2416, align 4, !tbaa !5
  %2418 = call ptr @s2n_strerror_debug(i32 noundef %2417, ptr noundef @.str.4)
  %2419 = call ptr @__errno_location() #12
  %2420 = load i32, ptr %2419, align 4, !tbaa !5
  %2421 = call ptr @strerror(i32 noundef %2420) #11
  %2422 = call ptr @__errno_location() #12
  %2423 = load i32, ptr %2422, align 4, !tbaa !5
  %2424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2411, ptr noundef @.str.2, i32 noundef %2412, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2415, ptr noundef %2418, ptr noundef %2421, i32 noundef %2423) #11
  br label %2442

2425:                                             ; preds = %2403, %2396
  %2426 = load i32, ptr %55, align 4, !tbaa !5
  %2427 = call ptr @__errno_location() #12
  store i32 %2426, ptr %2427, align 4, !tbaa !5
  %2428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2429 = load i32, ptr @test_count, align 4, !tbaa !5
  %2430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2431 = load i32, ptr %2430, align 4, !tbaa !5
  %2432 = call ptr @s2n_strerror(i32 noundef %2431, ptr noundef @.str.4)
  %2433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2434 = load i32, ptr %2433, align 4, !tbaa !5
  %2435 = call ptr @s2n_strerror_debug(i32 noundef %2434, ptr noundef @.str.4)
  %2436 = call ptr @__errno_location() #12
  %2437 = load i32, ptr %2436, align 4, !tbaa !5
  %2438 = call ptr @strerror(i32 noundef %2437) #11
  %2439 = call ptr @__errno_location() #12
  %2440 = load i32, ptr %2439, align 4, !tbaa !5
  %2441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2428, ptr noundef @.str.5, i32 noundef %2429, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2432, ptr noundef %2435, ptr noundef %2438, i32 noundef %2440) #11
  br label %2442

2442:                                             ; preds = %2425, %2408
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %2443

2443:                                             ; preds = %2442
  br label %2444

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

2445:                                             ; No predecessors!
  br label %2446

2446:                                             ; preds = %2445
  br label %2447

2447:                                             ; preds = %2446, %2387
  br label %2448

2448:                                             ; preds = %2447
  br label %2449

2449:                                             ; preds = %2448
  br label %2450

2450:                                             ; preds = %2449
  %2451 = load i32, ptr @test_count, align 4, !tbaa !5
  %2452 = add nsw i32 %2451, 1
  store i32 %2452, ptr @test_count, align 4, !tbaa !5
  %2453 = load ptr, ptr %50, align 8, !tbaa !9
  %2454 = getelementptr inbounds %struct.s2n_config, ptr %2453, i32 0, i32 4
  %2455 = getelementptr inbounds %struct.s2n_blob, ptr %2454, i32 0, i32 1
  %2456 = load i32, ptr %2455, align 8, !tbaa !17
  %2457 = zext i32 %2456 to i64
  %2458 = load i64, ptr %10, align 8, !tbaa !15
  %2459 = add i64 1, %2458
  %2460 = icmp eq i64 %2457, %2459
  br i1 %2460, label %2514, label %2461

2461:                                             ; preds = %2450
  br label %2462

2462:                                             ; preds = %2461
  br label %2463

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

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

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

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

2509:                                             ; preds = %2492, %2475
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %2510

2510:                                             ; preds = %2509
  br label %2511

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

2512:                                             ; No predecessors!
  br label %2513

2513:                                             ; preds = %2512
  br label %2514

2514:                                             ; preds = %2513, %2450
  br label %2515

2515:                                             ; preds = %2514
  br label %2516

2516:                                             ; preds = %2515
  br label %2517

2517:                                             ; preds = %2516
  %2518 = load i32, ptr @test_count, align 4, !tbaa !5
  %2519 = add nsw i32 %2518, 1
  store i32 %2519, ptr @test_count, align 4, !tbaa !5
  %2520 = load ptr, ptr %50, align 8, !tbaa !9
  %2521 = call i32 @s2n_config_set_protocol_preferences(ptr noundef %2520, ptr noundef null, i32 noundef 2)
  %2522 = icmp eq i32 %2521, -1
  br i1 %2522, label %2523, label %2576

2523:                                             ; preds = %2517
  br label %2524

2524:                                             ; preds = %2523
  br label %2525

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

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

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

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

2571:                                             ; preds = %2554, %2537
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %2572

2572:                                             ; preds = %2571
  br label %2573

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

2574:                                             ; No predecessors!
  br label %2575

2575:                                             ; preds = %2574
  br label %2576

2576:                                             ; preds = %2575, %2517
  br label %2577

2577:                                             ; preds = %2576
  br label %2578

2578:                                             ; preds = %2577
  br label %2579

2579:                                             ; preds = %2578
  %2580 = load i32, ptr @test_count, align 4, !tbaa !5
  %2581 = add nsw i32 %2580, 1
  store i32 %2581, ptr @test_count, align 4, !tbaa !5
  %2582 = load ptr, ptr %50, align 8, !tbaa !9
  %2583 = getelementptr inbounds %struct.s2n_config, ptr %2582, i32 0, i32 4
  %2584 = getelementptr inbounds %struct.s2n_blob, ptr %2583, i32 0, i32 1
  %2585 = load i32, ptr %2584, align 8, !tbaa !17
  %2586 = icmp eq i32 %2585, 0
  br i1 %2586, label %2640, label %2587

2587:                                             ; preds = %2579
  br label %2588

2588:                                             ; preds = %2587
  br label %2589

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

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

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

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

2635:                                             ; preds = %2618, %2601
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %2636

2636:                                             ; preds = %2635
  br label %2637

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

2638:                                             ; No predecessors!
  br label %2639

2639:                                             ; preds = %2638
  br label %2640

2640:                                             ; preds = %2639, %2579
  br label %2641

2641:                                             ; preds = %2640
  br label %2642

2642:                                             ; preds = %2641
  br label %2643

2643:                                             ; preds = %2642
  %2644 = load i32, ptr @test_count, align 4, !tbaa !5
  %2645 = add nsw i32 %2644, 1
  store i32 %2645, ptr @test_count, align 4, !tbaa !5
  %2646 = load ptr, ptr %50, align 8, !tbaa !9
  %2647 = getelementptr inbounds [2 x ptr], ptr %44, i64 0, i64 0
  %2648 = call i32 @s2n_config_set_protocol_preferences(ptr noundef %2646, ptr noundef %2647, i32 noundef 2)
  %2649 = icmp eq i32 %2648, -1
  br i1 %2649, label %2650, label %2703

2650:                                             ; preds = %2643
  br label %2651

2651:                                             ; preds = %2650
  br label %2652

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

2659:                                             ; preds = %2652
  %2660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2661 = call i32 @fileno(ptr noundef %2660) #11
  %2662 = call i32 @isatty(i32 noundef %2661) #11
  %2663 = icmp ne i32 %2662, 0
  br i1 %2663, label %2664, label %2681

2664:                                             ; preds = %2659
  %2665 = load i32, ptr %59, align 4, !tbaa !5
  %2666 = call ptr @__errno_location() #12
  store i32 %2665, ptr %2666, align 4, !tbaa !5
  %2667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2668 = load i32, ptr @test_count, align 4, !tbaa !5
  %2669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  %2671 = call ptr @s2n_strerror(i32 noundef %2670, ptr noundef @.str.4)
  %2672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2673 = load i32, ptr %2672, align 4, !tbaa !5
  %2674 = call ptr @s2n_strerror_debug(i32 noundef %2673, ptr noundef @.str.4)
  %2675 = call ptr @__errno_location() #12
  %2676 = load i32, ptr %2675, align 4, !tbaa !5
  %2677 = call ptr @strerror(i32 noundef %2676) #11
  %2678 = call ptr @__errno_location() #12
  %2679 = load i32, ptr %2678, align 4, !tbaa !5
  %2680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2667, ptr noundef @.str.2, i32 noundef %2668, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 122, ptr noundef %2671, ptr noundef %2674, ptr noundef %2677, i32 noundef %2679) #11
  br label %2698

2681:                                             ; preds = %2659, %2652
  %2682 = load i32, ptr %59, align 4, !tbaa !5
  %2683 = call ptr @__errno_location() #12
  store i32 %2682, ptr %2683, align 4, !tbaa !5
  %2684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2685 = load i32, ptr @test_count, align 4, !tbaa !5
  %2686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2687 = load i32, ptr %2686, align 4, !tbaa !5
  %2688 = call ptr @s2n_strerror(i32 noundef %2687, ptr noundef @.str.4)
  %2689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2690 = load i32, ptr %2689, align 4, !tbaa !5
  %2691 = call ptr @s2n_strerror_debug(i32 noundef %2690, ptr noundef @.str.4)
  %2692 = call ptr @__errno_location() #12
  %2693 = load i32, ptr %2692, align 4, !tbaa !5
  %2694 = call ptr @strerror(i32 noundef %2693) #11
  %2695 = call ptr @__errno_location() #12
  %2696 = load i32, ptr %2695, align 4, !tbaa !5
  %2697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2684, ptr noundef @.str.5, i32 noundef %2685, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 122, ptr noundef %2688, ptr noundef %2691, ptr noundef %2694, i32 noundef %2696) #11
  br label %2698

2698:                                             ; preds = %2681, %2664
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %2699

2699:                                             ; preds = %2698
  br label %2700

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

2701:                                             ; No predecessors!
  br label %2702

2702:                                             ; preds = %2701
  br label %2703

2703:                                             ; preds = %2702, %2643
  br label %2704

2704:                                             ; preds = %2703
  br label %2705

2705:                                             ; preds = %2704
  br label %2706

2706:                                             ; preds = %2705
  %2707 = load i32, ptr @test_count, align 4, !tbaa !5
  %2708 = add nsw i32 %2707, 1
  store i32 %2708, ptr @test_count, align 4, !tbaa !5
  %2709 = load ptr, ptr %50, align 8, !tbaa !9
  %2710 = getelementptr inbounds %struct.s2n_config, ptr %2709, i32 0, i32 4
  %2711 = getelementptr inbounds %struct.s2n_blob, ptr %2710, i32 0, i32 1
  %2712 = load i32, ptr %2711, align 8, !tbaa !17
  %2713 = zext i32 %2712 to i64
  %2714 = load i64, ptr %10, align 8, !tbaa !15
  %2715 = add i64 1, %2714
  %2716 = add i64 %2715, 1
  %2717 = load i64, ptr %12, align 8, !tbaa !15
  %2718 = add i64 %2716, %2717
  %2719 = icmp eq i64 %2713, %2718
  br i1 %2719, label %2773, label %2720

2720:                                             ; preds = %2706
  br label %2721

2721:                                             ; preds = %2720
  br label %2722

2722:                                             ; preds = %2721
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #11
  %2723 = call ptr @__errno_location() #12
  %2724 = load i32, ptr %2723, align 4, !tbaa !5
  store i32 %2724, ptr %60, align 4, !tbaa !5
  %2725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2726 = call i32 @s2n_print_stacktrace(ptr noundef %2725)
  %2727 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2728 = trunc i8 %2727 to i1
  br i1 %2728, label %2729, label %2751

2729:                                             ; preds = %2722
  %2730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2731 = call i32 @fileno(ptr noundef %2730) #11
  %2732 = call i32 @isatty(i32 noundef %2731) #11
  %2733 = icmp ne i32 %2732, 0
  br i1 %2733, label %2734, label %2751

2734:                                             ; preds = %2729
  %2735 = load i32, ptr %60, align 4, !tbaa !5
  %2736 = call ptr @__errno_location() #12
  store i32 %2735, ptr %2736, align 4, !tbaa !5
  %2737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2738 = load i32, ptr @test_count, align 4, !tbaa !5
  %2739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2740 = load i32, ptr %2739, align 4, !tbaa !5
  %2741 = call ptr @s2n_strerror(i32 noundef %2740, ptr noundef @.str.4)
  %2742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2743 = load i32, ptr %2742, align 4, !tbaa !5
  %2744 = call ptr @s2n_strerror_debug(i32 noundef %2743, ptr noundef @.str.4)
  %2745 = call ptr @__errno_location() #12
  %2746 = load i32, ptr %2745, align 4, !tbaa !5
  %2747 = call ptr @strerror(i32 noundef %2746) #11
  %2748 = call ptr @__errno_location() #12
  %2749 = load i32, ptr %2748, align 4, !tbaa !5
  %2750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2737, ptr noundef @.str.2, i32 noundef %2738, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 123, ptr noundef %2741, ptr noundef %2744, ptr noundef %2747, i32 noundef %2749) #11
  br label %2768

2751:                                             ; preds = %2729, %2722
  %2752 = load i32, ptr %60, align 4, !tbaa !5
  %2753 = call ptr @__errno_location() #12
  store i32 %2752, ptr %2753, align 4, !tbaa !5
  %2754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2755 = load i32, ptr @test_count, align 4, !tbaa !5
  %2756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2757 = load i32, ptr %2756, align 4, !tbaa !5
  %2758 = call ptr @s2n_strerror(i32 noundef %2757, ptr noundef @.str.4)
  %2759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2760 = load i32, ptr %2759, align 4, !tbaa !5
  %2761 = call ptr @s2n_strerror_debug(i32 noundef %2760, ptr noundef @.str.4)
  %2762 = call ptr @__errno_location() #12
  %2763 = load i32, ptr %2762, align 4, !tbaa !5
  %2764 = call ptr @strerror(i32 noundef %2763) #11
  %2765 = call ptr @__errno_location() #12
  %2766 = load i32, ptr %2765, align 4, !tbaa !5
  %2767 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2754, ptr noundef @.str.5, i32 noundef %2755, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 123, ptr noundef %2758, ptr noundef %2761, ptr noundef %2764, i32 noundef %2766) #11
  br label %2768

2768:                                             ; preds = %2751, %2734
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %2769

2769:                                             ; preds = %2768
  br label %2770

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

2771:                                             ; No predecessors!
  br label %2772

2772:                                             ; preds = %2771
  br label %2773

2773:                                             ; preds = %2772, %2706
  br label %2774

2774:                                             ; preds = %2773
  br label %2775

2775:                                             ; preds = %2774
  br label %2776

2776:                                             ; preds = %2775
  %2777 = load i32, ptr @test_count, align 4, !tbaa !5
  %2778 = add nsw i32 %2777, 1
  store i32 %2778, ptr @test_count, align 4, !tbaa !5
  %2779 = load ptr, ptr %50, align 8, !tbaa !9
  %2780 = getelementptr inbounds [2 x ptr], ptr %44, i64 0, i64 0
  %2781 = call i32 @s2n_config_set_protocol_preferences(ptr noundef %2779, ptr noundef %2780, i32 noundef 0)
  %2782 = icmp eq i32 %2781, -1
  br i1 %2782, label %2783, label %2836

2783:                                             ; preds = %2776
  br label %2784

2784:                                             ; preds = %2783
  br label %2785

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

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

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

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

2831:                                             ; preds = %2814, %2797
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %2832

2832:                                             ; preds = %2831
  br label %2833

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

2834:                                             ; No predecessors!
  br label %2835

2835:                                             ; preds = %2834
  br label %2836

2836:                                             ; preds = %2835, %2776
  br label %2837

2837:                                             ; preds = %2836
  br label %2838

2838:                                             ; preds = %2837
  br label %2839

2839:                                             ; preds = %2838
  %2840 = load i32, ptr @test_count, align 4, !tbaa !5
  %2841 = add nsw i32 %2840, 1
  store i32 %2841, ptr @test_count, align 4, !tbaa !5
  %2842 = load ptr, ptr %50, align 8, !tbaa !9
  %2843 = getelementptr inbounds %struct.s2n_config, ptr %2842, i32 0, i32 4
  %2844 = getelementptr inbounds %struct.s2n_blob, ptr %2843, i32 0, i32 1
  %2845 = load i32, ptr %2844, align 8, !tbaa !17
  %2846 = icmp eq i32 %2845, 0
  br i1 %2846, label %2900, label %2847

2847:                                             ; preds = %2839
  br label %2848

2848:                                             ; preds = %2847
  br label %2849

2849:                                             ; preds = %2848
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #11
  %2850 = call ptr @__errno_location() #12
  %2851 = load i32, ptr %2850, align 4, !tbaa !5
  store i32 %2851, ptr %62, align 4, !tbaa !5
  %2852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2853 = call i32 @s2n_print_stacktrace(ptr noundef %2852)
  %2854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2855 = trunc i8 %2854 to i1
  br i1 %2855, label %2856, label %2878

2856:                                             ; preds = %2849
  %2857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2858 = call i32 @fileno(ptr noundef %2857) #11
  %2859 = call i32 @isatty(i32 noundef %2858) #11
  %2860 = icmp ne i32 %2859, 0
  br i1 %2860, label %2861, label %2878

2861:                                             ; preds = %2856
  %2862 = load i32, ptr %62, align 4, !tbaa !5
  %2863 = call ptr @__errno_location() #12
  store i32 %2862, ptr %2863, align 4, !tbaa !5
  %2864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2865 = load i32, ptr @test_count, align 4, !tbaa !5
  %2866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2867 = load i32, ptr %2866, align 4, !tbaa !5
  %2868 = call ptr @s2n_strerror(i32 noundef %2867, ptr noundef @.str.4)
  %2869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2870 = load i32, ptr %2869, align 4, !tbaa !5
  %2871 = call ptr @s2n_strerror_debug(i32 noundef %2870, ptr noundef @.str.4)
  %2872 = call ptr @__errno_location() #12
  %2873 = load i32, ptr %2872, align 4, !tbaa !5
  %2874 = call ptr @strerror(i32 noundef %2873) #11
  %2875 = call ptr @__errno_location() #12
  %2876 = load i32, ptr %2875, align 4, !tbaa !5
  %2877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2864, ptr noundef @.str.2, i32 noundef %2865, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2868, ptr noundef %2871, ptr noundef %2874, i32 noundef %2876) #11
  br label %2895

2878:                                             ; preds = %2856, %2849
  %2879 = load i32, ptr %62, align 4, !tbaa !5
  %2880 = call ptr @__errno_location() #12
  store i32 %2879, ptr %2880, align 4, !tbaa !5
  %2881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2882 = load i32, ptr @test_count, align 4, !tbaa !5
  %2883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2884 = load i32, ptr %2883, align 4, !tbaa !5
  %2885 = call ptr @s2n_strerror(i32 noundef %2884, ptr noundef @.str.4)
  %2886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2887 = load i32, ptr %2886, align 4, !tbaa !5
  %2888 = call ptr @s2n_strerror_debug(i32 noundef %2887, ptr noundef @.str.4)
  %2889 = call ptr @__errno_location() #12
  %2890 = load i32, ptr %2889, align 4, !tbaa !5
  %2891 = call ptr @strerror(i32 noundef %2890) #11
  %2892 = call ptr @__errno_location() #12
  %2893 = load i32, ptr %2892, align 4, !tbaa !5
  %2894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2881, ptr noundef @.str.5, i32 noundef %2882, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2885, ptr noundef %2888, ptr noundef %2891, i32 noundef %2893) #11
  br label %2895

2895:                                             ; preds = %2878, %2861
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %2896

2896:                                             ; preds = %2895
  br label %2897

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

2898:                                             ; No predecessors!
  br label %2899

2899:                                             ; preds = %2898
  br label %2900

2900:                                             ; preds = %2899, %2839
  br label %2901

2901:                                             ; preds = %2900
  br label %2902

2902:                                             ; preds = %2901
  br label %2903

2903:                                             ; preds = %2902
  br label %2904

2904:                                             ; preds = %2903
  %2905 = load i32, ptr @test_count, align 4, !tbaa !5
  %2906 = add nsw i32 %2905, 1
  store i32 %2906, ptr @test_count, align 4, !tbaa !5
  %2907 = load ptr, ptr %50, align 8, !tbaa !9
  %2908 = getelementptr inbounds [1 x ptr], ptr %48, i64 0, i64 0
  %2909 = call i32 @s2n_config_set_protocol_preferences(ptr noundef %2907, ptr noundef %2908, i32 noundef 1)
  %2910 = icmp eq i32 %2909, -1
  br i1 %2910, label %2964, label %2911

2911:                                             ; preds = %2904
  br label %2912

2912:                                             ; preds = %2911
  br label %2913

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

2920:                                             ; preds = %2913
  %2921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2922 = call i32 @fileno(ptr noundef %2921) #11
  %2923 = call i32 @isatty(i32 noundef %2922) #11
  %2924 = icmp ne i32 %2923, 0
  br i1 %2924, label %2925, label %2942

2925:                                             ; preds = %2920
  %2926 = load i32, ptr %63, align 4, !tbaa !5
  %2927 = call ptr @__errno_location() #12
  store i32 %2926, ptr %2927, align 4, !tbaa !5
  %2928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2929 = load i32, ptr @test_count, align 4, !tbaa !5
  %2930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2931 = load i32, ptr %2930, align 4, !tbaa !5
  %2932 = call ptr @s2n_strerror(i32 noundef %2931, ptr noundef @.str.4)
  %2933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2934 = load i32, ptr %2933, align 4, !tbaa !5
  %2935 = call ptr @s2n_strerror_debug(i32 noundef %2934, ptr noundef @.str.4)
  %2936 = call ptr @__errno_location() #12
  %2937 = load i32, ptr %2936, align 4, !tbaa !5
  %2938 = call ptr @strerror(i32 noundef %2937) #11
  %2939 = call ptr @__errno_location() #12
  %2940 = load i32, ptr %2939, align 4, !tbaa !5
  %2941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2928, ptr noundef @.str.2, i32 noundef %2929, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2932, ptr noundef %2935, ptr noundef %2938, i32 noundef %2940) #11
  br label %2959

2942:                                             ; preds = %2920, %2913
  %2943 = load i32, ptr %63, align 4, !tbaa !5
  %2944 = call ptr @__errno_location() #12
  store i32 %2943, ptr %2944, align 4, !tbaa !5
  %2945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2946 = load i32, ptr @test_count, align 4, !tbaa !5
  %2947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2948 = load i32, ptr %2947, align 4, !tbaa !5
  %2949 = call ptr @s2n_strerror(i32 noundef %2948, ptr noundef @.str.4)
  %2950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2951 = load i32, ptr %2950, align 4, !tbaa !5
  %2952 = call ptr @s2n_strerror_debug(i32 noundef %2951, ptr noundef @.str.4)
  %2953 = call ptr @__errno_location() #12
  %2954 = load i32, ptr %2953, align 4, !tbaa !5
  %2955 = call ptr @strerror(i32 noundef %2954) #11
  %2956 = call ptr @__errno_location() #12
  %2957 = load i32, ptr %2956, align 4, !tbaa !5
  %2958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2945, ptr noundef @.str.5, i32 noundef %2946, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2949, ptr noundef %2952, ptr noundef %2955, i32 noundef %2957) #11
  br label %2959

2959:                                             ; preds = %2942, %2925
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %2960

2960:                                             ; preds = %2959
  br label %2961

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

2962:                                             ; No predecessors!
  br label %2963

2963:                                             ; preds = %2962
  br label %2964

2964:                                             ; preds = %2963, %2904
  br label %2965

2965:                                             ; preds = %2964
  br label %2966

2966:                                             ; preds = %2965
  br label %2967

2967:                                             ; preds = %2966
  %2968 = load i32, ptr @test_count, align 4, !tbaa !5
  %2969 = add nsw i32 %2968, 1
  store i32 %2969, ptr @test_count, align 4, !tbaa !5
  %2970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2971 = load i32, ptr %2970, align 4, !tbaa !5
  %2972 = icmp eq i32 %2971, 0
  br i1 %2972, label %2973, label %3026

2973:                                             ; preds = %2967
  br label %2974

2974:                                             ; preds = %2973
  br label %2975

2975:                                             ; preds = %2974
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  %2976 = call ptr @__errno_location() #12
  %2977 = load i32, ptr %2976, align 4, !tbaa !5
  store i32 %2977, ptr %64, align 4, !tbaa !5
  %2978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2979 = call i32 @s2n_print_stacktrace(ptr noundef %2978)
  %2980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2981 = trunc i8 %2980 to i1
  br i1 %2981, label %2982, label %3004

2982:                                             ; preds = %2975
  %2983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2984 = call i32 @fileno(ptr noundef %2983) #11
  %2985 = call i32 @isatty(i32 noundef %2984) #11
  %2986 = icmp ne i32 %2985, 0
  br i1 %2986, label %2987, label %3004

2987:                                             ; preds = %2982
  %2988 = load i32, ptr %64, align 4, !tbaa !5
  %2989 = call ptr @__errno_location() #12
  store i32 %2988, ptr %2989, align 4, !tbaa !5
  %2990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2991 = load i32, ptr @test_count, align 4, !tbaa !5
  %2992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2993 = load i32, ptr %2992, align 4, !tbaa !5
  %2994 = call ptr @s2n_strerror(i32 noundef %2993, ptr noundef @.str.4)
  %2995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2996 = load i32, ptr %2995, align 4, !tbaa !5
  %2997 = call ptr @s2n_strerror_debug(i32 noundef %2996, ptr noundef @.str.4)
  %2998 = call ptr @__errno_location() #12
  %2999 = load i32, ptr %2998, align 4, !tbaa !5
  %3000 = call ptr @strerror(i32 noundef %2999) #11
  %3001 = call ptr @__errno_location() #12
  %3002 = load i32, ptr %3001, align 4, !tbaa !5
  %3003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2990, ptr noundef @.str.2, i32 noundef %2991, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2994, ptr noundef %2997, ptr noundef %3000, i32 noundef %3002) #11
  br label %3021

3004:                                             ; preds = %2982, %2975
  %3005 = load i32, ptr %64, align 4, !tbaa !5
  %3006 = call ptr @__errno_location() #12
  store i32 %3005, ptr %3006, align 4, !tbaa !5
  %3007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3008 = load i32, ptr @test_count, align 4, !tbaa !5
  %3009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3010 = load i32, ptr %3009, align 4, !tbaa !5
  %3011 = call ptr @s2n_strerror(i32 noundef %3010, ptr noundef @.str.4)
  %3012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3013 = load i32, ptr %3012, align 4, !tbaa !5
  %3014 = call ptr @s2n_strerror_debug(i32 noundef %3013, ptr noundef @.str.4)
  %3015 = call ptr @__errno_location() #12
  %3016 = load i32, ptr %3015, align 4, !tbaa !5
  %3017 = call ptr @strerror(i32 noundef %3016) #11
  %3018 = call ptr @__errno_location() #12
  %3019 = load i32, ptr %3018, align 4, !tbaa !5
  %3020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3007, ptr noundef @.str.5, i32 noundef %3008, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 128, ptr noundef %3011, ptr noundef %3014, ptr noundef %3017, i32 noundef %3019) #11
  br label %3021

3021:                                             ; preds = %3004, %2987
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %3022

3022:                                             ; preds = %3021
  br label %3023

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

3024:                                             ; No predecessors!
  br label %3025

3025:                                             ; preds = %3024
  br label %3026

3026:                                             ; preds = %3025, %2967
  br label %3027

3027:                                             ; preds = %3026
  br label %3028

3028:                                             ; preds = %3027
  br label %3029

3029:                                             ; preds = %3028
  %3030 = load i32, ptr @test_count, align 4, !tbaa !5
  %3031 = add nsw i32 %3030, 1
  store i32 %3031, ptr @test_count, align 4, !tbaa !5
  %3032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3033 = load i32, ptr %3032, align 4, !tbaa !5
  %3034 = call ptr @s2n_strerror_debug(i32 noundef %3033, ptr noundef @.str.4)
  %3035 = icmp eq ptr %3034, null
  br i1 %3035, label %3036, label %3089

3036:                                             ; preds = %3029
  br label %3037

3037:                                             ; preds = %3036
  br label %3038

3038:                                             ; preds = %3037
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #11
  %3039 = call ptr @__errno_location() #12
  %3040 = load i32, ptr %3039, align 4, !tbaa !5
  store i32 %3040, ptr %65, align 4, !tbaa !5
  %3041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3042 = call i32 @s2n_print_stacktrace(ptr noundef %3041)
  %3043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3044 = trunc i8 %3043 to i1
  br i1 %3044, label %3045, label %3067

3045:                                             ; preds = %3038
  %3046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3047 = call i32 @fileno(ptr noundef %3046) #11
  %3048 = call i32 @isatty(i32 noundef %3047) #11
  %3049 = icmp ne i32 %3048, 0
  br i1 %3049, label %3050, label %3067

3050:                                             ; preds = %3045
  %3051 = load i32, ptr %65, align 4, !tbaa !5
  %3052 = call ptr @__errno_location() #12
  store i32 %3051, ptr %3052, align 4, !tbaa !5
  %3053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3054 = load i32, ptr @test_count, align 4, !tbaa !5
  %3055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3056 = load i32, ptr %3055, align 4, !tbaa !5
  %3057 = call ptr @s2n_strerror(i32 noundef %3056, ptr noundef @.str.4)
  %3058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3059 = load i32, ptr %3058, align 4, !tbaa !5
  %3060 = call ptr @s2n_strerror_debug(i32 noundef %3059, ptr noundef @.str.4)
  %3061 = call ptr @__errno_location() #12
  %3062 = load i32, ptr %3061, align 4, !tbaa !5
  %3063 = call ptr @strerror(i32 noundef %3062) #11
  %3064 = call ptr @__errno_location() #12
  %3065 = load i32, ptr %3064, align 4, !tbaa !5
  %3066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3053, ptr noundef @.str.2, i32 noundef %3054, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 128, ptr noundef %3057, ptr noundef %3060, ptr noundef %3063, i32 noundef %3065) #11
  br label %3084

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

3084:                                             ; preds = %3067, %3050
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %3085

3085:                                             ; preds = %3084
  br label %3086

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

3087:                                             ; No predecessors!
  br label %3088

3088:                                             ; preds = %3087
  br label %3089

3089:                                             ; preds = %3088, %3029
  br label %3090

3090:                                             ; preds = %3089
  br label %3091

3091:                                             ; preds = %3090
  br label %3092

3092:                                             ; preds = %3091
  %3093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3093, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3094 = call ptr @__errno_location() #12
  store i32 0, ptr %3094, align 4, !tbaa !5
  br label %3095

3095:                                             ; preds = %3092
  br label %3096

3096:                                             ; preds = %3095
  br label %3097

3097:                                             ; preds = %3096
  br label %3098

3098:                                             ; preds = %3097
  br label %3099

3099:                                             ; preds = %3098
  %3100 = load i32, ptr @test_count, align 4, !tbaa !5
  %3101 = add nsw i32 %3100, 1
  store i32 %3101, ptr @test_count, align 4, !tbaa !5
  %3102 = load ptr, ptr %50, align 8, !tbaa !9
  %3103 = getelementptr inbounds %struct.s2n_config, ptr %3102, i32 0, i32 4
  %3104 = getelementptr inbounds %struct.s2n_blob, ptr %3103, i32 0, i32 1
  %3105 = load i32, ptr %3104, align 8, !tbaa !17
  %3106 = icmp eq i32 %3105, 0
  br i1 %3106, label %3160, label %3107

3107:                                             ; preds = %3099
  br label %3108

3108:                                             ; preds = %3107
  br label %3109

3109:                                             ; preds = %3108
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  %3110 = call ptr @__errno_location() #12
  %3111 = load i32, ptr %3110, align 4, !tbaa !5
  store i32 %3111, ptr %66, align 4, !tbaa !5
  %3112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3113 = call i32 @s2n_print_stacktrace(ptr noundef %3112)
  %3114 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3115 = trunc i8 %3114 to i1
  br i1 %3115, label %3116, label %3138

3116:                                             ; preds = %3109
  %3117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3118 = call i32 @fileno(ptr noundef %3117) #11
  %3119 = call i32 @isatty(i32 noundef %3118) #11
  %3120 = icmp ne i32 %3119, 0
  br i1 %3120, label %3121, label %3138

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

3138:                                             ; preds = %3116, %3109
  %3139 = load i32, ptr %66, align 4, !tbaa !5
  %3140 = call ptr @__errno_location() #12
  store i32 %3139, ptr %3140, align 4, !tbaa !5
  %3141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3142 = load i32, ptr @test_count, align 4, !tbaa !5
  %3143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3144 = load i32, ptr %3143, align 4, !tbaa !5
  %3145 = call ptr @s2n_strerror(i32 noundef %3144, ptr noundef @.str.4)
  %3146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3147 = load i32, ptr %3146, align 4, !tbaa !5
  %3148 = call ptr @s2n_strerror_debug(i32 noundef %3147, ptr noundef @.str.4)
  %3149 = call ptr @__errno_location() #12
  %3150 = load i32, ptr %3149, align 4, !tbaa !5
  %3151 = call ptr @strerror(i32 noundef %3150) #11
  %3152 = call ptr @__errno_location() #12
  %3153 = load i32, ptr %3152, align 4, !tbaa !5
  %3154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3141, ptr noundef @.str.5, i32 noundef %3142, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 129, ptr noundef %3145, ptr noundef %3148, ptr noundef %3151, i32 noundef %3153) #11
  br label %3155

3155:                                             ; preds = %3138, %3121
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %3156

3156:                                             ; preds = %3155
  br label %3157

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

3158:                                             ; No predecessors!
  br label %3159

3159:                                             ; preds = %3158
  br label %3160

3160:                                             ; preds = %3159, %3099
  br label %3161

3161:                                             ; preds = %3160
  br label %3162

3162:                                             ; preds = %3161
  br label %3163

3163:                                             ; preds = %3162
  %3164 = load i32, ptr @test_count, align 4, !tbaa !5
  %3165 = add nsw i32 %3164, 1
  store i32 %3165, ptr @test_count, align 4, !tbaa !5
  %3166 = load ptr, ptr %50, align 8, !tbaa !9
  %3167 = call i32 @s2n_config_free(ptr noundef %3166)
  %3168 = icmp eq i32 %3167, -1
  br i1 %3168, label %3169, label %3222

3169:                                             ; preds = %3163
  br label %3170

3170:                                             ; preds = %3169
  br label %3171

3171:                                             ; preds = %3170
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  %3172 = call ptr @__errno_location() #12
  %3173 = load i32, ptr %3172, align 4, !tbaa !5
  store i32 %3173, ptr %67, align 4, !tbaa !5
  %3174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3175 = call i32 @s2n_print_stacktrace(ptr noundef %3174)
  %3176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3177 = trunc i8 %3176 to i1
  br i1 %3177, label %3178, label %3200

3178:                                             ; preds = %3171
  %3179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3180 = call i32 @fileno(ptr noundef %3179) #11
  %3181 = call i32 @isatty(i32 noundef %3180) #11
  %3182 = icmp ne i32 %3181, 0
  br i1 %3182, label %3183, label %3200

3183:                                             ; preds = %3178
  %3184 = load i32, ptr %67, align 4, !tbaa !5
  %3185 = call ptr @__errno_location() #12
  store i32 %3184, ptr %3185, align 4, !tbaa !5
  %3186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3187 = load i32, ptr @test_count, align 4, !tbaa !5
  %3188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3189 = load i32, ptr %3188, align 4, !tbaa !5
  %3190 = call ptr @s2n_strerror(i32 noundef %3189, ptr noundef @.str.4)
  %3191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3192 = load i32, ptr %3191, align 4, !tbaa !5
  %3193 = call ptr @s2n_strerror_debug(i32 noundef %3192, ptr noundef @.str.4)
  %3194 = call ptr @__errno_location() #12
  %3195 = load i32, ptr %3194, align 4, !tbaa !5
  %3196 = call ptr @strerror(i32 noundef %3195) #11
  %3197 = call ptr @__errno_location() #12
  %3198 = load i32, ptr %3197, align 4, !tbaa !5
  %3199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3186, ptr noundef @.str.2, i32 noundef %3187, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 131, ptr noundef %3190, ptr noundef %3193, ptr noundef %3196, i32 noundef %3198) #11
  br label %3217

3200:                                             ; preds = %3178, %3171
  %3201 = load i32, ptr %67, align 4, !tbaa !5
  %3202 = call ptr @__errno_location() #12
  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() #12
  %3212 = load i32, ptr %3211, align 4, !tbaa !5
  %3213 = call ptr @strerror(i32 noundef %3212) #11
  %3214 = call ptr @__errno_location() #12
  %3215 = load i32, ptr %3214, align 4, !tbaa !5
  %3216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3203, ptr noundef @.str.5, i32 noundef %3204, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 131, ptr noundef %3207, ptr noundef %3210, ptr noundef %3213, i32 noundef %3215) #11
  br label %3217

3217:                                             ; preds = %3200, %3183
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %3218

3218:                                             ; preds = %3217
  br label %3219

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

3220:                                             ; No predecessors!
  br label %3221

3221:                                             ; preds = %3220
  br label %3222

3222:                                             ; preds = %3221, %3163
  br label %3223

3223:                                             ; preds = %3222
  br label %3224

3224:                                             ; preds = %3223
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #11
  store ptr null, ptr %68, align 8, !tbaa !9
  br label %3225

3225:                                             ; preds = %3224
  %3226 = load i32, ptr @test_count, align 4, !tbaa !5
  %3227 = add nsw i32 %3226, 1
  store i32 %3227, ptr @test_count, align 4, !tbaa !5
  %3228 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3228, ptr %68, align 8, !tbaa !9
  %3229 = icmp eq ptr %3228, null
  br i1 %3229, label %3230, label %3283

3230:                                             ; preds = %3225
  br label %3231

3231:                                             ; preds = %3230
  br label %3232

3232:                                             ; preds = %3231
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #11
  %3233 = call ptr @__errno_location() #12
  %3234 = load i32, ptr %3233, align 4, !tbaa !5
  store i32 %3234, ptr %69, align 4, !tbaa !5
  %3235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3236 = call i32 @s2n_print_stacktrace(ptr noundef %3235)
  %3237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3238 = trunc i8 %3237 to i1
  br i1 %3238, label %3239, label %3261

3239:                                             ; preds = %3232
  %3240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3241 = call i32 @fileno(ptr noundef %3240) #11
  %3242 = call i32 @isatty(i32 noundef %3241) #11
  %3243 = icmp ne i32 %3242, 0
  br i1 %3243, label %3244, label %3261

3244:                                             ; preds = %3239
  %3245 = load i32, ptr %69, align 4, !tbaa !5
  %3246 = call ptr @__errno_location() #12
  store i32 %3245, ptr %3246, align 4, !tbaa !5
  %3247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3248 = load i32, ptr @test_count, align 4, !tbaa !5
  %3249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3250 = load i32, ptr %3249, align 4, !tbaa !5
  %3251 = call ptr @s2n_strerror(i32 noundef %3250, ptr noundef @.str.4)
  %3252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3253 = load i32, ptr %3252, align 4, !tbaa !5
  %3254 = call ptr @s2n_strerror_debug(i32 noundef %3253, ptr noundef @.str.4)
  %3255 = call ptr @__errno_location() #12
  %3256 = load i32, ptr %3255, align 4, !tbaa !5
  %3257 = call ptr @strerror(i32 noundef %3256) #11
  %3258 = call ptr @__errno_location() #12
  %3259 = load i32, ptr %3258, align 4, !tbaa !5
  %3260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3247, ptr noundef @.str.2, i32 noundef %3248, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 137, ptr noundef %3251, ptr noundef %3254, ptr noundef %3257, i32 noundef %3259) #11
  br label %3278

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

3278:                                             ; preds = %3261, %3244
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #11
  br label %3279

3279:                                             ; preds = %3278
  br label %3280

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

3281:                                             ; No predecessors!
  br label %3282

3282:                                             ; preds = %3281
  br label %3283

3283:                                             ; preds = %3282, %3225
  br label %3284

3284:                                             ; preds = %3283
  br label %3285

3285:                                             ; preds = %3284
  br label %3286

3286:                                             ; preds = %3285
  %3287 = load i32, ptr @test_count, align 4, !tbaa !5
  %3288 = add nsw i32 %3287, 1
  store i32 %3288, ptr @test_count, align 4, !tbaa !5
  %3289 = load ptr, ptr %68, align 8, !tbaa !9
  %3290 = getelementptr inbounds %struct.s2n_connection, ptr %3289, i32 0, i32 82
  %3291 = getelementptr inbounds %struct.s2n_blob, ptr %3290, i32 0, i32 1
  %3292 = load i32, ptr %3291, align 8, !tbaa !23
  %3293 = icmp eq i32 %3292, 0
  br i1 %3293, label %3347, label %3294

3294:                                             ; preds = %3286
  br label %3295

3295:                                             ; preds = %3294
  br label %3296

3296:                                             ; preds = %3295
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  %3297 = call ptr @__errno_location() #12
  %3298 = load i32, ptr %3297, align 4, !tbaa !5
  store i32 %3298, ptr %70, align 4, !tbaa !5
  %3299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3300 = call i32 @s2n_print_stacktrace(ptr noundef %3299)
  %3301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3302 = trunc i8 %3301 to i1
  br i1 %3302, label %3303, label %3325

3303:                                             ; preds = %3296
  %3304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3305 = call i32 @fileno(ptr noundef %3304) #11
  %3306 = call i32 @isatty(i32 noundef %3305) #11
  %3307 = icmp ne i32 %3306, 0
  br i1 %3307, label %3308, label %3325

3308:                                             ; preds = %3303
  %3309 = load i32, ptr %70, align 4, !tbaa !5
  %3310 = call ptr @__errno_location() #12
  store i32 %3309, ptr %3310, align 4, !tbaa !5
  %3311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3312 = load i32, ptr @test_count, align 4, !tbaa !5
  %3313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3314 = load i32, ptr %3313, align 4, !tbaa !5
  %3315 = call ptr @s2n_strerror(i32 noundef %3314, ptr noundef @.str.4)
  %3316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3317 = load i32, ptr %3316, align 4, !tbaa !5
  %3318 = call ptr @s2n_strerror_debug(i32 noundef %3317, ptr noundef @.str.4)
  %3319 = call ptr @__errno_location() #12
  %3320 = load i32, ptr %3319, align 4, !tbaa !5
  %3321 = call ptr @strerror(i32 noundef %3320) #11
  %3322 = call ptr @__errno_location() #12
  %3323 = load i32, ptr %3322, align 4, !tbaa !5
  %3324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3311, ptr noundef @.str.2, i32 noundef %3312, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 138, ptr noundef %3315, ptr noundef %3318, ptr noundef %3321, i32 noundef %3323) #11
  br label %3342

3325:                                             ; preds = %3303, %3296
  %3326 = load i32, ptr %70, align 4, !tbaa !5
  %3327 = call ptr @__errno_location() #12
  store i32 %3326, ptr %3327, align 4, !tbaa !5
  %3328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3329 = load i32, ptr @test_count, align 4, !tbaa !5
  %3330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3331 = load i32, ptr %3330, align 4, !tbaa !5
  %3332 = call ptr @s2n_strerror(i32 noundef %3331, ptr noundef @.str.4)
  %3333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3334 = load i32, ptr %3333, align 4, !tbaa !5
  %3335 = call ptr @s2n_strerror_debug(i32 noundef %3334, ptr noundef @.str.4)
  %3336 = call ptr @__errno_location() #12
  %3337 = load i32, ptr %3336, align 4, !tbaa !5
  %3338 = call ptr @strerror(i32 noundef %3337) #11
  %3339 = call ptr @__errno_location() #12
  %3340 = load i32, ptr %3339, align 4, !tbaa !5
  %3341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3328, ptr noundef @.str.5, i32 noundef %3329, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 138, ptr noundef %3332, ptr noundef %3335, ptr noundef %3338, i32 noundef %3340) #11
  br label %3342

3342:                                             ; preds = %3325, %3308
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %3343

3343:                                             ; preds = %3342
  br label %3344

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

3345:                                             ; No predecessors!
  br label %3346

3346:                                             ; preds = %3345
  br label %3347

3347:                                             ; preds = %3346, %3286
  br label %3348

3348:                                             ; preds = %3347
  br label %3349

3349:                                             ; preds = %3348
  br label %3350

3350:                                             ; preds = %3349
  %3351 = load i32, ptr @test_count, align 4, !tbaa !5
  %3352 = add nsw i32 %3351, 1
  store i32 %3352, ptr @test_count, align 4, !tbaa !5
  %3353 = load ptr, ptr %68, align 8, !tbaa !9
  %3354 = getelementptr inbounds [2 x ptr], ptr %44, i64 0, i64 0
  %3355 = call i32 @s2n_connection_set_protocol_preferences(ptr noundef %3353, ptr noundef %3354, i32 noundef 2)
  %3356 = icmp eq i32 %3355, -1
  br i1 %3356, label %3357, label %3410

3357:                                             ; preds = %3350
  br label %3358

3358:                                             ; preds = %3357
  br label %3359

3359:                                             ; preds = %3358
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #11
  %3360 = call ptr @__errno_location() #12
  %3361 = load i32, ptr %3360, align 4, !tbaa !5
  store i32 %3361, ptr %71, align 4, !tbaa !5
  %3362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3363 = call i32 @s2n_print_stacktrace(ptr noundef %3362)
  %3364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3365 = trunc i8 %3364 to i1
  br i1 %3365, label %3366, label %3388

3366:                                             ; preds = %3359
  %3367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3368 = call i32 @fileno(ptr noundef %3367) #11
  %3369 = call i32 @isatty(i32 noundef %3368) #11
  %3370 = icmp ne i32 %3369, 0
  br i1 %3370, label %3371, label %3388

3371:                                             ; preds = %3366
  %3372 = load i32, ptr %71, align 4, !tbaa !5
  %3373 = call ptr @__errno_location() #12
  store i32 %3372, ptr %3373, align 4, !tbaa !5
  %3374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3375 = load i32, ptr @test_count, align 4, !tbaa !5
  %3376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3377 = load i32, ptr %3376, align 4, !tbaa !5
  %3378 = call ptr @s2n_strerror(i32 noundef %3377, ptr noundef @.str.4)
  %3379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3380 = load i32, ptr %3379, align 4, !tbaa !5
  %3381 = call ptr @s2n_strerror_debug(i32 noundef %3380, ptr noundef @.str.4)
  %3382 = call ptr @__errno_location() #12
  %3383 = load i32, ptr %3382, align 4, !tbaa !5
  %3384 = call ptr @strerror(i32 noundef %3383) #11
  %3385 = call ptr @__errno_location() #12
  %3386 = load i32, ptr %3385, align 4, !tbaa !5
  %3387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3374, ptr noundef @.str.2, i32 noundef %3375, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 141, ptr noundef %3378, ptr noundef %3381, ptr noundef %3384, i32 noundef %3386) #11
  br label %3405

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

3405:                                             ; preds = %3388, %3371
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %3406

3406:                                             ; preds = %3405
  br label %3407

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

3408:                                             ; No predecessors!
  br label %3409

3409:                                             ; preds = %3408
  br label %3410

3410:                                             ; preds = %3409, %3350
  br label %3411

3411:                                             ; preds = %3410
  br label %3412

3412:                                             ; preds = %3411
  br label %3413

3413:                                             ; preds = %3412
  %3414 = load i32, ptr @test_count, align 4, !tbaa !5
  %3415 = add nsw i32 %3414, 1
  store i32 %3415, ptr @test_count, align 4, !tbaa !5
  %3416 = load ptr, ptr %68, align 8, !tbaa !9
  %3417 = getelementptr inbounds %struct.s2n_connection, ptr %3416, i32 0, i32 82
  %3418 = getelementptr inbounds %struct.s2n_blob, ptr %3417, i32 0, i32 1
  %3419 = load i32, ptr %3418, align 8, !tbaa !23
  %3420 = zext i32 %3419 to i64
  %3421 = load i64, ptr %10, align 8, !tbaa !15
  %3422 = add i64 1, %3421
  %3423 = add i64 %3422, 1
  %3424 = load i64, ptr %12, align 8, !tbaa !15
  %3425 = add i64 %3423, %3424
  %3426 = icmp eq i64 %3420, %3425
  br i1 %3426, label %3480, label %3427

3427:                                             ; preds = %3413
  br label %3428

3428:                                             ; preds = %3427
  br label %3429

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

3436:                                             ; preds = %3429
  %3437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3438 = call i32 @fileno(ptr noundef %3437) #11
  %3439 = call i32 @isatty(i32 noundef %3438) #11
  %3440 = icmp ne i32 %3439, 0
  br i1 %3440, label %3441, label %3458

3441:                                             ; preds = %3436
  %3442 = load i32, ptr %72, align 4, !tbaa !5
  %3443 = call ptr @__errno_location() #12
  store i32 %3442, ptr %3443, align 4, !tbaa !5
  %3444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3445 = load i32, ptr @test_count, align 4, !tbaa !5
  %3446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3447 = load i32, ptr %3446, align 4, !tbaa !5
  %3448 = call ptr @s2n_strerror(i32 noundef %3447, ptr noundef @.str.4)
  %3449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3450 = load i32, ptr %3449, align 4, !tbaa !5
  %3451 = call ptr @s2n_strerror_debug(i32 noundef %3450, ptr noundef @.str.4)
  %3452 = call ptr @__errno_location() #12
  %3453 = load i32, ptr %3452, align 4, !tbaa !5
  %3454 = call ptr @strerror(i32 noundef %3453) #11
  %3455 = call ptr @__errno_location() #12
  %3456 = load i32, ptr %3455, align 4, !tbaa !5
  %3457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3444, ptr noundef @.str.2, i32 noundef %3445, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 142, ptr noundef %3448, ptr noundef %3451, ptr noundef %3454, i32 noundef %3456) #11
  br label %3475

3458:                                             ; preds = %3436, %3429
  %3459 = load i32, ptr %72, align 4, !tbaa !5
  %3460 = call ptr @__errno_location() #12
  store i32 %3459, ptr %3460, align 4, !tbaa !5
  %3461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3462 = load i32, ptr @test_count, align 4, !tbaa !5
  %3463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3464 = load i32, ptr %3463, align 4, !tbaa !5
  %3465 = call ptr @s2n_strerror(i32 noundef %3464, ptr noundef @.str.4)
  %3466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3467 = load i32, ptr %3466, align 4, !tbaa !5
  %3468 = call ptr @s2n_strerror_debug(i32 noundef %3467, ptr noundef @.str.4)
  %3469 = call ptr @__errno_location() #12
  %3470 = load i32, ptr %3469, align 4, !tbaa !5
  %3471 = call ptr @strerror(i32 noundef %3470) #11
  %3472 = call ptr @__errno_location() #12
  %3473 = load i32, ptr %3472, align 4, !tbaa !5
  %3474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3461, ptr noundef @.str.5, i32 noundef %3462, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 142, ptr noundef %3465, ptr noundef %3468, ptr noundef %3471, i32 noundef %3473) #11
  br label %3475

3475:                                             ; preds = %3458, %3441
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %3476

3476:                                             ; preds = %3475
  br label %3477

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

3478:                                             ; No predecessors!
  br label %3479

3479:                                             ; preds = %3478
  br label %3480

3480:                                             ; preds = %3479, %3413
  br label %3481

3481:                                             ; preds = %3480
  br label %3482

3482:                                             ; preds = %3481
  br label %3483

3483:                                             ; preds = %3482
  %3484 = load i32, ptr @test_count, align 4, !tbaa !5
  %3485 = add nsw i32 %3484, 1
  store i32 %3485, ptr @test_count, align 4, !tbaa !5
  %3486 = load ptr, ptr %68, align 8, !tbaa !9
  %3487 = getelementptr inbounds [2 x ptr], ptr %44, i64 0, i64 0
  %3488 = call i32 @s2n_connection_set_protocol_preferences(ptr noundef %3486, ptr noundef %3487, i32 noundef 1)
  %3489 = icmp eq i32 %3488, -1
  br i1 %3489, label %3490, label %3543

3490:                                             ; preds = %3483
  br label %3491

3491:                                             ; preds = %3490
  br label %3492

3492:                                             ; preds = %3491
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #11
  %3493 = call ptr @__errno_location() #12
  %3494 = load i32, ptr %3493, align 4, !tbaa !5
  store i32 %3494, ptr %73, align 4, !tbaa !5
  %3495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3496 = call i32 @s2n_print_stacktrace(ptr noundef %3495)
  %3497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3498 = trunc i8 %3497 to i1
  br i1 %3498, label %3499, label %3521

3499:                                             ; preds = %3492
  %3500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3501 = call i32 @fileno(ptr noundef %3500) #11
  %3502 = call i32 @isatty(i32 noundef %3501) #11
  %3503 = icmp ne i32 %3502, 0
  br i1 %3503, label %3504, label %3521

3504:                                             ; preds = %3499
  %3505 = load i32, ptr %73, align 4, !tbaa !5
  %3506 = call ptr @__errno_location() #12
  store i32 %3505, ptr %3506, align 4, !tbaa !5
  %3507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3508 = load i32, ptr @test_count, align 4, !tbaa !5
  %3509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3510 = load i32, ptr %3509, align 4, !tbaa !5
  %3511 = call ptr @s2n_strerror(i32 noundef %3510, ptr noundef @.str.4)
  %3512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3513 = load i32, ptr %3512, align 4, !tbaa !5
  %3514 = call ptr @s2n_strerror_debug(i32 noundef %3513, ptr noundef @.str.4)
  %3515 = call ptr @__errno_location() #12
  %3516 = load i32, ptr %3515, align 4, !tbaa !5
  %3517 = call ptr @strerror(i32 noundef %3516) #11
  %3518 = call ptr @__errno_location() #12
  %3519 = load i32, ptr %3518, align 4, !tbaa !5
  %3520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3507, ptr noundef @.str.2, i32 noundef %3508, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 145, ptr noundef %3511, ptr noundef %3514, ptr noundef %3517, i32 noundef %3519) #11
  br label %3538

3521:                                             ; preds = %3499, %3492
  %3522 = load i32, ptr %73, align 4, !tbaa !5
  %3523 = call ptr @__errno_location() #12
  store i32 %3522, ptr %3523, align 4, !tbaa !5
  %3524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3525 = load i32, ptr @test_count, align 4, !tbaa !5
  %3526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3527 = load i32, ptr %3526, align 4, !tbaa !5
  %3528 = call ptr @s2n_strerror(i32 noundef %3527, ptr noundef @.str.4)
  %3529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3530 = load i32, ptr %3529, align 4, !tbaa !5
  %3531 = call ptr @s2n_strerror_debug(i32 noundef %3530, ptr noundef @.str.4)
  %3532 = call ptr @__errno_location() #12
  %3533 = load i32, ptr %3532, align 4, !tbaa !5
  %3534 = call ptr @strerror(i32 noundef %3533) #11
  %3535 = call ptr @__errno_location() #12
  %3536 = load i32, ptr %3535, align 4, !tbaa !5
  %3537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3524, ptr noundef @.str.5, i32 noundef %3525, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 145, ptr noundef %3528, ptr noundef %3531, ptr noundef %3534, i32 noundef %3536) #11
  br label %3538

3538:                                             ; preds = %3521, %3504
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #11
  br label %3539

3539:                                             ; preds = %3538
  br label %3540

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

3541:                                             ; No predecessors!
  br label %3542

3542:                                             ; preds = %3541
  br label %3543

3543:                                             ; preds = %3542, %3483
  br label %3544

3544:                                             ; preds = %3543
  br label %3545

3545:                                             ; preds = %3544
  br label %3546

3546:                                             ; preds = %3545
  %3547 = load i32, ptr @test_count, align 4, !tbaa !5
  %3548 = add nsw i32 %3547, 1
  store i32 %3548, ptr @test_count, align 4, !tbaa !5
  %3549 = load ptr, ptr %68, align 8, !tbaa !9
  %3550 = getelementptr inbounds %struct.s2n_connection, ptr %3549, i32 0, i32 82
  %3551 = getelementptr inbounds %struct.s2n_blob, ptr %3550, i32 0, i32 1
  %3552 = load i32, ptr %3551, align 8, !tbaa !23
  %3553 = zext i32 %3552 to i64
  %3554 = load i64, ptr %10, align 8, !tbaa !15
  %3555 = add i64 1, %3554
  %3556 = icmp eq i64 %3553, %3555
  br i1 %3556, label %3610, label %3557

3557:                                             ; preds = %3546
  br label %3558

3558:                                             ; preds = %3557
  br label %3559

3559:                                             ; preds = %3558
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #11
  %3560 = call ptr @__errno_location() #12
  %3561 = load i32, ptr %3560, align 4, !tbaa !5
  store i32 %3561, ptr %74, align 4, !tbaa !5
  %3562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3563 = call i32 @s2n_print_stacktrace(ptr noundef %3562)
  %3564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3565 = trunc i8 %3564 to i1
  br i1 %3565, label %3566, label %3588

3566:                                             ; preds = %3559
  %3567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3568 = call i32 @fileno(ptr noundef %3567) #11
  %3569 = call i32 @isatty(i32 noundef %3568) #11
  %3570 = icmp ne i32 %3569, 0
  br i1 %3570, label %3571, label %3588

3571:                                             ; preds = %3566
  %3572 = load i32, ptr %74, align 4, !tbaa !5
  %3573 = call ptr @__errno_location() #12
  store i32 %3572, ptr %3573, align 4, !tbaa !5
  %3574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3575 = load i32, ptr @test_count, align 4, !tbaa !5
  %3576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3577 = load i32, ptr %3576, align 4, !tbaa !5
  %3578 = call ptr @s2n_strerror(i32 noundef %3577, ptr noundef @.str.4)
  %3579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3580 = load i32, ptr %3579, align 4, !tbaa !5
  %3581 = call ptr @s2n_strerror_debug(i32 noundef %3580, ptr noundef @.str.4)
  %3582 = call ptr @__errno_location() #12
  %3583 = load i32, ptr %3582, align 4, !tbaa !5
  %3584 = call ptr @strerror(i32 noundef %3583) #11
  %3585 = call ptr @__errno_location() #12
  %3586 = load i32, ptr %3585, align 4, !tbaa !5
  %3587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3574, ptr noundef @.str.2, i32 noundef %3575, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 146, ptr noundef %3578, ptr noundef %3581, ptr noundef %3584, i32 noundef %3586) #11
  br label %3605

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

3605:                                             ; preds = %3588, %3571
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %3606

3606:                                             ; preds = %3605
  br label %3607

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

3608:                                             ; No predecessors!
  br label %3609

3609:                                             ; preds = %3608
  br label %3610

3610:                                             ; preds = %3609, %3546
  br label %3611

3611:                                             ; preds = %3610
  br label %3612

3612:                                             ; preds = %3611
  br label %3613

3613:                                             ; preds = %3612
  %3614 = load i32, ptr @test_count, align 4, !tbaa !5
  %3615 = add nsw i32 %3614, 1
  store i32 %3615, ptr @test_count, align 4, !tbaa !5
  %3616 = load ptr, ptr %68, align 8, !tbaa !9
  %3617 = call i32 @s2n_connection_set_protocol_preferences(ptr noundef %3616, ptr noundef null, i32 noundef 2)
  %3618 = icmp eq i32 %3617, -1
  br i1 %3618, label %3619, label %3672

3619:                                             ; preds = %3613
  br label %3620

3620:                                             ; preds = %3619
  br label %3621

3621:                                             ; preds = %3620
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #11
  %3622 = call ptr @__errno_location() #12
  %3623 = load i32, ptr %3622, align 4, !tbaa !5
  store i32 %3623, ptr %75, align 4, !tbaa !5
  %3624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3625 = call i32 @s2n_print_stacktrace(ptr noundef %3624)
  %3626 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3627 = trunc i8 %3626 to i1
  br i1 %3627, label %3628, label %3650

3628:                                             ; preds = %3621
  %3629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3630 = call i32 @fileno(ptr noundef %3629) #11
  %3631 = call i32 @isatty(i32 noundef %3630) #11
  %3632 = icmp ne i32 %3631, 0
  br i1 %3632, label %3633, label %3650

3633:                                             ; preds = %3628
  %3634 = load i32, ptr %75, align 4, !tbaa !5
  %3635 = call ptr @__errno_location() #12
  store i32 %3634, ptr %3635, align 4, !tbaa !5
  %3636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3637 = load i32, ptr @test_count, align 4, !tbaa !5
  %3638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3639 = load i32, ptr %3638, align 4, !tbaa !5
  %3640 = call ptr @s2n_strerror(i32 noundef %3639, ptr noundef @.str.4)
  %3641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3642 = load i32, ptr %3641, align 4, !tbaa !5
  %3643 = call ptr @s2n_strerror_debug(i32 noundef %3642, ptr noundef @.str.4)
  %3644 = call ptr @__errno_location() #12
  %3645 = load i32, ptr %3644, align 4, !tbaa !5
  %3646 = call ptr @strerror(i32 noundef %3645) #11
  %3647 = call ptr @__errno_location() #12
  %3648 = load i32, ptr %3647, align 4, !tbaa !5
  %3649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3636, ptr noundef @.str.2, i32 noundef %3637, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 149, ptr noundef %3640, ptr noundef %3643, ptr noundef %3646, i32 noundef %3648) #11
  br label %3667

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

3667:                                             ; preds = %3650, %3633
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #11
  br label %3668

3668:                                             ; preds = %3667
  br label %3669

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

3670:                                             ; No predecessors!
  br label %3671

3671:                                             ; preds = %3670
  br label %3672

3672:                                             ; preds = %3671, %3613
  br label %3673

3673:                                             ; preds = %3672
  br label %3674

3674:                                             ; preds = %3673
  br label %3675

3675:                                             ; preds = %3674
  %3676 = load i32, ptr @test_count, align 4, !tbaa !5
  %3677 = add nsw i32 %3676, 1
  store i32 %3677, ptr @test_count, align 4, !tbaa !5
  %3678 = load ptr, ptr %68, align 8, !tbaa !9
  %3679 = getelementptr inbounds %struct.s2n_connection, ptr %3678, i32 0, i32 82
  %3680 = getelementptr inbounds %struct.s2n_blob, ptr %3679, i32 0, i32 1
  %3681 = load i32, ptr %3680, align 8, !tbaa !23
  %3682 = icmp eq i32 %3681, 0
  br i1 %3682, label %3736, label %3683

3683:                                             ; preds = %3675
  br label %3684

3684:                                             ; preds = %3683
  br label %3685

3685:                                             ; preds = %3684
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #11
  %3686 = call ptr @__errno_location() #12
  %3687 = load i32, ptr %3686, align 4, !tbaa !5
  store i32 %3687, ptr %76, align 4, !tbaa !5
  %3688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3689 = call i32 @s2n_print_stacktrace(ptr noundef %3688)
  %3690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3691 = trunc i8 %3690 to i1
  br i1 %3691, label %3692, label %3714

3692:                                             ; preds = %3685
  %3693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3694 = call i32 @fileno(ptr noundef %3693) #11
  %3695 = call i32 @isatty(i32 noundef %3694) #11
  %3696 = icmp ne i32 %3695, 0
  br i1 %3696, label %3697, label %3714

3697:                                             ; preds = %3692
  %3698 = load i32, ptr %76, align 4, !tbaa !5
  %3699 = call ptr @__errno_location() #12
  store i32 %3698, ptr %3699, align 4, !tbaa !5
  %3700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3701 = load i32, ptr @test_count, align 4, !tbaa !5
  %3702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3703 = load i32, ptr %3702, align 4, !tbaa !5
  %3704 = call ptr @s2n_strerror(i32 noundef %3703, ptr noundef @.str.4)
  %3705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3706 = load i32, ptr %3705, align 4, !tbaa !5
  %3707 = call ptr @s2n_strerror_debug(i32 noundef %3706, ptr noundef @.str.4)
  %3708 = call ptr @__errno_location() #12
  %3709 = load i32, ptr %3708, align 4, !tbaa !5
  %3710 = call ptr @strerror(i32 noundef %3709) #11
  %3711 = call ptr @__errno_location() #12
  %3712 = load i32, ptr %3711, align 4, !tbaa !5
  %3713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3700, ptr noundef @.str.2, i32 noundef %3701, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 150, ptr noundef %3704, ptr noundef %3707, ptr noundef %3710, i32 noundef %3712) #11
  br label %3731

3714:                                             ; preds = %3692, %3685
  %3715 = load i32, ptr %76, align 4, !tbaa !5
  %3716 = call ptr @__errno_location() #12
  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() #12
  %3726 = load i32, ptr %3725, align 4, !tbaa !5
  %3727 = call ptr @strerror(i32 noundef %3726) #11
  %3728 = call ptr @__errno_location() #12
  %3729 = load i32, ptr %3728, align 4, !tbaa !5
  %3730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3717, ptr noundef @.str.5, i32 noundef %3718, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 150, ptr noundef %3721, ptr noundef %3724, ptr noundef %3727, i32 noundef %3729) #11
  br label %3731

3731:                                             ; preds = %3714, %3697
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #11
  br label %3732

3732:                                             ; preds = %3731
  br label %3733

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

3734:                                             ; No predecessors!
  br label %3735

3735:                                             ; preds = %3734
  br label %3736

3736:                                             ; preds = %3735, %3675
  br label %3737

3737:                                             ; preds = %3736
  br label %3738

3738:                                             ; preds = %3737
  br label %3739

3739:                                             ; preds = %3738
  %3740 = load i32, ptr @test_count, align 4, !tbaa !5
  %3741 = add nsw i32 %3740, 1
  store i32 %3741, ptr @test_count, align 4, !tbaa !5
  %3742 = load ptr, ptr %68, align 8, !tbaa !9
  %3743 = getelementptr inbounds [2 x ptr], ptr %44, i64 0, i64 0
  %3744 = call i32 @s2n_connection_set_protocol_preferences(ptr noundef %3742, ptr noundef %3743, i32 noundef 2)
  %3745 = icmp eq i32 %3744, -1
  br i1 %3745, label %3746, label %3799

3746:                                             ; preds = %3739
  br label %3747

3747:                                             ; preds = %3746
  br label %3748

3748:                                             ; preds = %3747
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #11
  %3749 = call ptr @__errno_location() #12
  %3750 = load i32, ptr %3749, align 4, !tbaa !5
  store i32 %3750, ptr %77, align 4, !tbaa !5
  %3751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3752 = call i32 @s2n_print_stacktrace(ptr noundef %3751)
  %3753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3754 = trunc i8 %3753 to i1
  br i1 %3754, label %3755, label %3777

3755:                                             ; preds = %3748
  %3756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3757 = call i32 @fileno(ptr noundef %3756) #11
  %3758 = call i32 @isatty(i32 noundef %3757) #11
  %3759 = icmp ne i32 %3758, 0
  br i1 %3759, label %3760, label %3777

3760:                                             ; preds = %3755
  %3761 = load i32, ptr %77, align 4, !tbaa !5
  %3762 = call ptr @__errno_location() #12
  store i32 %3761, ptr %3762, align 4, !tbaa !5
  %3763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3764 = load i32, ptr @test_count, align 4, !tbaa !5
  %3765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3766 = load i32, ptr %3765, align 4, !tbaa !5
  %3767 = call ptr @s2n_strerror(i32 noundef %3766, ptr noundef @.str.4)
  %3768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3769 = load i32, ptr %3768, align 4, !tbaa !5
  %3770 = call ptr @s2n_strerror_debug(i32 noundef %3769, ptr noundef @.str.4)
  %3771 = call ptr @__errno_location() #12
  %3772 = load i32, ptr %3771, align 4, !tbaa !5
  %3773 = call ptr @strerror(i32 noundef %3772) #11
  %3774 = call ptr @__errno_location() #12
  %3775 = load i32, ptr %3774, align 4, !tbaa !5
  %3776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3763, ptr noundef @.str.2, i32 noundef %3764, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 152, ptr noundef %3767, ptr noundef %3770, ptr noundef %3773, i32 noundef %3775) #11
  br label %3794

3777:                                             ; preds = %3755, %3748
  %3778 = load i32, ptr %77, align 4, !tbaa !5
  %3779 = call ptr @__errno_location() #12
  store i32 %3778, ptr %3779, align 4, !tbaa !5
  %3780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3781 = load i32, ptr @test_count, align 4, !tbaa !5
  %3782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3783 = load i32, ptr %3782, align 4, !tbaa !5
  %3784 = call ptr @s2n_strerror(i32 noundef %3783, ptr noundef @.str.4)
  %3785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3786 = load i32, ptr %3785, align 4, !tbaa !5
  %3787 = call ptr @s2n_strerror_debug(i32 noundef %3786, ptr noundef @.str.4)
  %3788 = call ptr @__errno_location() #12
  %3789 = load i32, ptr %3788, align 4, !tbaa !5
  %3790 = call ptr @strerror(i32 noundef %3789) #11
  %3791 = call ptr @__errno_location() #12
  %3792 = load i32, ptr %3791, align 4, !tbaa !5
  %3793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3780, ptr noundef @.str.5, i32 noundef %3781, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 152, ptr noundef %3784, ptr noundef %3787, ptr noundef %3790, i32 noundef %3792) #11
  br label %3794

3794:                                             ; preds = %3777, %3760
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  br label %3795

3795:                                             ; preds = %3794
  br label %3796

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

3797:                                             ; No predecessors!
  br label %3798

3798:                                             ; preds = %3797
  br label %3799

3799:                                             ; preds = %3798, %3739
  br label %3800

3800:                                             ; preds = %3799
  br label %3801

3801:                                             ; preds = %3800
  br label %3802

3802:                                             ; preds = %3801
  %3803 = load i32, ptr @test_count, align 4, !tbaa !5
  %3804 = add nsw i32 %3803, 1
  store i32 %3804, ptr @test_count, align 4, !tbaa !5
  %3805 = load ptr, ptr %68, align 8, !tbaa !9
  %3806 = getelementptr inbounds %struct.s2n_connection, ptr %3805, i32 0, i32 82
  %3807 = getelementptr inbounds %struct.s2n_blob, ptr %3806, i32 0, i32 1
  %3808 = load i32, ptr %3807, align 8, !tbaa !23
  %3809 = zext i32 %3808 to i64
  %3810 = load i64, ptr %10, align 8, !tbaa !15
  %3811 = add i64 1, %3810
  %3812 = add i64 %3811, 1
  %3813 = load i64, ptr %12, align 8, !tbaa !15
  %3814 = add i64 %3812, %3813
  %3815 = icmp eq i64 %3809, %3814
  br i1 %3815, label %3869, label %3816

3816:                                             ; preds = %3802
  br label %3817

3817:                                             ; preds = %3816
  br label %3818

3818:                                             ; preds = %3817
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #11
  %3819 = call ptr @__errno_location() #12
  %3820 = load i32, ptr %3819, align 4, !tbaa !5
  store i32 %3820, ptr %78, align 4, !tbaa !5
  %3821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3822 = call i32 @s2n_print_stacktrace(ptr noundef %3821)
  %3823 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3824 = trunc i8 %3823 to i1
  br i1 %3824, label %3825, label %3847

3825:                                             ; preds = %3818
  %3826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3827 = call i32 @fileno(ptr noundef %3826) #11
  %3828 = call i32 @isatty(i32 noundef %3827) #11
  %3829 = icmp ne i32 %3828, 0
  br i1 %3829, label %3830, label %3847

3830:                                             ; preds = %3825
  %3831 = load i32, ptr %78, align 4, !tbaa !5
  %3832 = call ptr @__errno_location() #12
  store i32 %3831, ptr %3832, align 4, !tbaa !5
  %3833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3834 = load i32, ptr @test_count, align 4, !tbaa !5
  %3835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3836 = load i32, ptr %3835, align 4, !tbaa !5
  %3837 = call ptr @s2n_strerror(i32 noundef %3836, ptr noundef @.str.4)
  %3838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3839 = load i32, ptr %3838, align 4, !tbaa !5
  %3840 = call ptr @s2n_strerror_debug(i32 noundef %3839, ptr noundef @.str.4)
  %3841 = call ptr @__errno_location() #12
  %3842 = load i32, ptr %3841, align 4, !tbaa !5
  %3843 = call ptr @strerror(i32 noundef %3842) #11
  %3844 = call ptr @__errno_location() #12
  %3845 = load i32, ptr %3844, align 4, !tbaa !5
  %3846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3833, ptr noundef @.str.2, i32 noundef %3834, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 153, ptr noundef %3837, ptr noundef %3840, ptr noundef %3843, i32 noundef %3845) #11
  br label %3864

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

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

3865:                                             ; preds = %3864
  br label %3866

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

3867:                                             ; No predecessors!
  br label %3868

3868:                                             ; preds = %3867
  br label %3869

3869:                                             ; preds = %3868, %3802
  br label %3870

3870:                                             ; preds = %3869
  br label %3871

3871:                                             ; preds = %3870
  br label %3872

3872:                                             ; preds = %3871
  %3873 = load i32, ptr @test_count, align 4, !tbaa !5
  %3874 = add nsw i32 %3873, 1
  store i32 %3874, ptr @test_count, align 4, !tbaa !5
  %3875 = load ptr, ptr %68, align 8, !tbaa !9
  %3876 = getelementptr inbounds [2 x ptr], ptr %44, i64 0, i64 0
  %3877 = call i32 @s2n_connection_set_protocol_preferences(ptr noundef %3875, ptr noundef %3876, i32 noundef 0)
  %3878 = icmp eq i32 %3877, -1
  br i1 %3878, label %3879, label %3932

3879:                                             ; preds = %3872
  br label %3880

3880:                                             ; preds = %3879
  br label %3881

3881:                                             ; preds = %3880
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #11
  %3882 = call ptr @__errno_location() #12
  %3883 = load i32, ptr %3882, align 4, !tbaa !5
  store i32 %3883, ptr %79, align 4, !tbaa !5
  %3884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3885 = call i32 @s2n_print_stacktrace(ptr noundef %3884)
  %3886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3887 = trunc i8 %3886 to i1
  br i1 %3887, label %3888, label %3910

3888:                                             ; preds = %3881
  %3889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3890 = call i32 @fileno(ptr noundef %3889) #11
  %3891 = call i32 @isatty(i32 noundef %3890) #11
  %3892 = icmp ne i32 %3891, 0
  br i1 %3892, label %3893, label %3910

3893:                                             ; preds = %3888
  %3894 = load i32, ptr %79, align 4, !tbaa !5
  %3895 = call ptr @__errno_location() #12
  store i32 %3894, ptr %3895, align 4, !tbaa !5
  %3896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3897 = load i32, ptr @test_count, align 4, !tbaa !5
  %3898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3899 = load i32, ptr %3898, align 4, !tbaa !5
  %3900 = call ptr @s2n_strerror(i32 noundef %3899, ptr noundef @.str.4)
  %3901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3902 = load i32, ptr %3901, align 4, !tbaa !5
  %3903 = call ptr @s2n_strerror_debug(i32 noundef %3902, ptr noundef @.str.4)
  %3904 = call ptr @__errno_location() #12
  %3905 = load i32, ptr %3904, align 4, !tbaa !5
  %3906 = call ptr @strerror(i32 noundef %3905) #11
  %3907 = call ptr @__errno_location() #12
  %3908 = load i32, ptr %3907, align 4, !tbaa !5
  %3909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3896, ptr noundef @.str.2, i32 noundef %3897, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 154, ptr noundef %3900, ptr noundef %3903, ptr noundef %3906, i32 noundef %3908) #11
  br label %3927

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

3927:                                             ; preds = %3910, %3893
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %3928

3928:                                             ; preds = %3927
  br label %3929

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

3930:                                             ; No predecessors!
  br label %3931

3931:                                             ; preds = %3930
  br label %3932

3932:                                             ; preds = %3931, %3872
  br label %3933

3933:                                             ; preds = %3932
  br label %3934

3934:                                             ; preds = %3933
  br label %3935

3935:                                             ; preds = %3934
  %3936 = load i32, ptr @test_count, align 4, !tbaa !5
  %3937 = add nsw i32 %3936, 1
  store i32 %3937, ptr @test_count, align 4, !tbaa !5
  %3938 = load ptr, ptr %68, align 8, !tbaa !9
  %3939 = getelementptr inbounds %struct.s2n_connection, ptr %3938, i32 0, i32 82
  %3940 = getelementptr inbounds %struct.s2n_blob, ptr %3939, i32 0, i32 1
  %3941 = load i32, ptr %3940, align 8, !tbaa !23
  %3942 = icmp eq i32 %3941, 0
  br i1 %3942, label %3996, label %3943

3943:                                             ; preds = %3935
  br label %3944

3944:                                             ; preds = %3943
  br label %3945

3945:                                             ; preds = %3944
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #11
  %3946 = call ptr @__errno_location() #12
  %3947 = load i32, ptr %3946, align 4, !tbaa !5
  store i32 %3947, ptr %80, align 4, !tbaa !5
  %3948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3949 = call i32 @s2n_print_stacktrace(ptr noundef %3948)
  %3950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3951 = trunc i8 %3950 to i1
  br i1 %3951, label %3952, label %3974

3952:                                             ; preds = %3945
  %3953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3954 = call i32 @fileno(ptr noundef %3953) #11
  %3955 = call i32 @isatty(i32 noundef %3954) #11
  %3956 = icmp ne i32 %3955, 0
  br i1 %3956, label %3957, label %3974

3957:                                             ; preds = %3952
  %3958 = load i32, ptr %80, align 4, !tbaa !5
  %3959 = call ptr @__errno_location() #12
  store i32 %3958, ptr %3959, align 4, !tbaa !5
  %3960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3961 = load i32, ptr @test_count, align 4, !tbaa !5
  %3962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3963 = load i32, ptr %3962, align 4, !tbaa !5
  %3964 = call ptr @s2n_strerror(i32 noundef %3963, ptr noundef @.str.4)
  %3965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3966 = load i32, ptr %3965, align 4, !tbaa !5
  %3967 = call ptr @s2n_strerror_debug(i32 noundef %3966, ptr noundef @.str.4)
  %3968 = call ptr @__errno_location() #12
  %3969 = load i32, ptr %3968, align 4, !tbaa !5
  %3970 = call ptr @strerror(i32 noundef %3969) #11
  %3971 = call ptr @__errno_location() #12
  %3972 = load i32, ptr %3971, align 4, !tbaa !5
  %3973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3960, ptr noundef @.str.2, i32 noundef %3961, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 155, ptr noundef %3964, ptr noundef %3967, ptr noundef %3970, i32 noundef %3972) #11
  br label %3991

3974:                                             ; preds = %3952, %3945
  %3975 = load i32, ptr %80, align 4, !tbaa !5
  %3976 = call ptr @__errno_location() #12
  store i32 %3975, ptr %3976, align 4, !tbaa !5
  %3977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3978 = load i32, ptr @test_count, align 4, !tbaa !5
  %3979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3980 = load i32, ptr %3979, align 4, !tbaa !5
  %3981 = call ptr @s2n_strerror(i32 noundef %3980, ptr noundef @.str.4)
  %3982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3983 = load i32, ptr %3982, align 4, !tbaa !5
  %3984 = call ptr @s2n_strerror_debug(i32 noundef %3983, ptr noundef @.str.4)
  %3985 = call ptr @__errno_location() #12
  %3986 = load i32, ptr %3985, align 4, !tbaa !5
  %3987 = call ptr @strerror(i32 noundef %3986) #11
  %3988 = call ptr @__errno_location() #12
  %3989 = load i32, ptr %3988, align 4, !tbaa !5
  %3990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3977, ptr noundef @.str.5, i32 noundef %3978, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 155, ptr noundef %3981, ptr noundef %3984, ptr noundef %3987, i32 noundef %3989) #11
  br label %3991

3991:                                             ; preds = %3974, %3957
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %3992

3992:                                             ; preds = %3991
  br label %3993

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

3994:                                             ; No predecessors!
  br label %3995

3995:                                             ; preds = %3994
  br label %3996

3996:                                             ; preds = %3995, %3935
  br label %3997

3997:                                             ; preds = %3996
  br label %3998

3998:                                             ; preds = %3997
  br label %3999

3999:                                             ; preds = %3998
  br label %4000

4000:                                             ; preds = %3999
  %4001 = load i32, ptr @test_count, align 4, !tbaa !5
  %4002 = add nsw i32 %4001, 1
  store i32 %4002, ptr @test_count, align 4, !tbaa !5
  %4003 = load ptr, ptr %68, align 8, !tbaa !9
  %4004 = getelementptr inbounds [1 x ptr], ptr %48, i64 0, i64 0
  %4005 = call i32 @s2n_connection_set_protocol_preferences(ptr noundef %4003, ptr noundef %4004, i32 noundef 1)
  %4006 = icmp eq i32 %4005, -1
  br i1 %4006, label %4060, label %4007

4007:                                             ; preds = %4000
  br label %4008

4008:                                             ; preds = %4007
  br label %4009

4009:                                             ; preds = %4008
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #11
  %4010 = call ptr @__errno_location() #12
  %4011 = load i32, ptr %4010, align 4, !tbaa !5
  store i32 %4011, ptr %81, align 4, !tbaa !5
  %4012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4013 = call i32 @s2n_print_stacktrace(ptr noundef %4012)
  %4014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4015 = trunc i8 %4014 to i1
  br i1 %4015, label %4016, label %4038

4016:                                             ; preds = %4009
  %4017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4018 = call i32 @fileno(ptr noundef %4017) #11
  %4019 = call i32 @isatty(i32 noundef %4018) #11
  %4020 = icmp ne i32 %4019, 0
  br i1 %4020, label %4021, label %4038

4021:                                             ; preds = %4016
  %4022 = load i32, ptr %81, align 4, !tbaa !5
  %4023 = call ptr @__errno_location() #12
  store i32 %4022, ptr %4023, align 4, !tbaa !5
  %4024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4025 = load i32, ptr @test_count, align 4, !tbaa !5
  %4026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4027 = load i32, ptr %4026, align 4, !tbaa !5
  %4028 = call ptr @s2n_strerror(i32 noundef %4027, ptr noundef @.str.4)
  %4029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4030 = load i32, ptr %4029, align 4, !tbaa !5
  %4031 = call ptr @s2n_strerror_debug(i32 noundef %4030, ptr noundef @.str.4)
  %4032 = call ptr @__errno_location() #12
  %4033 = load i32, ptr %4032, align 4, !tbaa !5
  %4034 = call ptr @strerror(i32 noundef %4033) #11
  %4035 = call ptr @__errno_location() #12
  %4036 = load i32, ptr %4035, align 4, !tbaa !5
  %4037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4024, ptr noundef @.str.2, i32 noundef %4025, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 159, ptr noundef %4028, ptr noundef %4031, ptr noundef %4034, i32 noundef %4036) #11
  br label %4055

4038:                                             ; preds = %4016, %4009
  %4039 = load i32, ptr %81, align 4, !tbaa !5
  %4040 = call ptr @__errno_location() #12
  store i32 %4039, ptr %4040, align 4, !tbaa !5
  %4041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4042 = load i32, ptr @test_count, align 4, !tbaa !5
  %4043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4044 = load i32, ptr %4043, align 4, !tbaa !5
  %4045 = call ptr @s2n_strerror(i32 noundef %4044, ptr noundef @.str.4)
  %4046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4047 = load i32, ptr %4046, align 4, !tbaa !5
  %4048 = call ptr @s2n_strerror_debug(i32 noundef %4047, ptr noundef @.str.4)
  %4049 = call ptr @__errno_location() #12
  %4050 = load i32, ptr %4049, align 4, !tbaa !5
  %4051 = call ptr @strerror(i32 noundef %4050) #11
  %4052 = call ptr @__errno_location() #12
  %4053 = load i32, ptr %4052, align 4, !tbaa !5
  %4054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4041, ptr noundef @.str.5, i32 noundef %4042, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 159, ptr noundef %4045, ptr noundef %4048, ptr noundef %4051, i32 noundef %4053) #11
  br label %4055

4055:                                             ; preds = %4038, %4021
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  br label %4056

4056:                                             ; preds = %4055
  br label %4057

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

4058:                                             ; No predecessors!
  br label %4059

4059:                                             ; preds = %4058
  br label %4060

4060:                                             ; preds = %4059, %4000
  br label %4061

4061:                                             ; preds = %4060
  br label %4062

4062:                                             ; preds = %4061
  br label %4063

4063:                                             ; preds = %4062
  %4064 = load i32, ptr @test_count, align 4, !tbaa !5
  %4065 = add nsw i32 %4064, 1
  store i32 %4065, ptr @test_count, align 4, !tbaa !5
  %4066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4067 = load i32, ptr %4066, align 4, !tbaa !5
  %4068 = icmp eq i32 %4067, 0
  br i1 %4068, label %4069, label %4122

4069:                                             ; preds = %4063
  br label %4070

4070:                                             ; preds = %4069
  br label %4071

4071:                                             ; preds = %4070
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #11
  %4072 = call ptr @__errno_location() #12
  %4073 = load i32, ptr %4072, align 4, !tbaa !5
  store i32 %4073, ptr %82, align 4, !tbaa !5
  %4074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4075 = call i32 @s2n_print_stacktrace(ptr noundef %4074)
  %4076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4077 = trunc i8 %4076 to i1
  br i1 %4077, label %4078, label %4100

4078:                                             ; preds = %4071
  %4079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4080 = call i32 @fileno(ptr noundef %4079) #11
  %4081 = call i32 @isatty(i32 noundef %4080) #11
  %4082 = icmp ne i32 %4081, 0
  br i1 %4082, label %4083, label %4100

4083:                                             ; preds = %4078
  %4084 = load i32, ptr %82, align 4, !tbaa !5
  %4085 = call ptr @__errno_location() #12
  store i32 %4084, ptr %4085, align 4, !tbaa !5
  %4086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4087 = load i32, ptr @test_count, align 4, !tbaa !5
  %4088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4089 = load i32, ptr %4088, align 4, !tbaa !5
  %4090 = call ptr @s2n_strerror(i32 noundef %4089, ptr noundef @.str.4)
  %4091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4092 = load i32, ptr %4091, align 4, !tbaa !5
  %4093 = call ptr @s2n_strerror_debug(i32 noundef %4092, ptr noundef @.str.4)
  %4094 = call ptr @__errno_location() #12
  %4095 = load i32, ptr %4094, align 4, !tbaa !5
  %4096 = call ptr @strerror(i32 noundef %4095) #11
  %4097 = call ptr @__errno_location() #12
  %4098 = load i32, ptr %4097, align 4, !tbaa !5
  %4099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4086, ptr noundef @.str.2, i32 noundef %4087, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 159, ptr noundef %4090, ptr noundef %4093, ptr noundef %4096, i32 noundef %4098) #11
  br label %4117

4100:                                             ; preds = %4078, %4071
  %4101 = load i32, ptr %82, align 4, !tbaa !5
  %4102 = call ptr @__errno_location() #12
  store i32 %4101, ptr %4102, align 4, !tbaa !5
  %4103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4104 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4106, ptr noundef @.str.4)
  %4108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4109 = load i32, ptr %4108, align 4, !tbaa !5
  %4110 = call ptr @s2n_strerror_debug(i32 noundef %4109, ptr noundef @.str.4)
  %4111 = call ptr @__errno_location() #12
  %4112 = load i32, ptr %4111, align 4, !tbaa !5
  %4113 = call ptr @strerror(i32 noundef %4112) #11
  %4114 = call ptr @__errno_location() #12
  %4115 = load i32, ptr %4114, align 4, !tbaa !5
  %4116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4103, ptr noundef @.str.5, i32 noundef %4104, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 159, ptr noundef %4107, ptr noundef %4110, ptr noundef %4113, i32 noundef %4115) #11
  br label %4117

4117:                                             ; preds = %4100, %4083
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %4118

4118:                                             ; preds = %4117
  br label %4119

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

4120:                                             ; No predecessors!
  br label %4121

4121:                                             ; preds = %4120
  br label %4122

4122:                                             ; preds = %4121, %4063
  br label %4123

4123:                                             ; preds = %4122
  br label %4124

4124:                                             ; preds = %4123
  br label %4125

4125:                                             ; preds = %4124
  %4126 = load i32, ptr @test_count, align 4, !tbaa !5
  %4127 = add nsw i32 %4126, 1
  store i32 %4127, ptr @test_count, align 4, !tbaa !5
  %4128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4129 = load i32, ptr %4128, align 4, !tbaa !5
  %4130 = call ptr @s2n_strerror_debug(i32 noundef %4129, ptr noundef @.str.4)
  %4131 = icmp eq ptr %4130, null
  br i1 %4131, label %4132, label %4185

4132:                                             ; preds = %4125
  br label %4133

4133:                                             ; preds = %4132
  br label %4134

4134:                                             ; preds = %4133
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #11
  %4135 = call ptr @__errno_location() #12
  %4136 = load i32, ptr %4135, align 4, !tbaa !5
  store i32 %4136, ptr %83, align 4, !tbaa !5
  %4137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4138 = call i32 @s2n_print_stacktrace(ptr noundef %4137)
  %4139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4140 = trunc i8 %4139 to i1
  br i1 %4140, label %4141, label %4163

4141:                                             ; preds = %4134
  %4142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4143 = call i32 @fileno(ptr noundef %4142) #11
  %4144 = call i32 @isatty(i32 noundef %4143) #11
  %4145 = icmp ne i32 %4144, 0
  br i1 %4145, label %4146, label %4163

4146:                                             ; preds = %4141
  %4147 = load i32, ptr %83, align 4, !tbaa !5
  %4148 = call ptr @__errno_location() #12
  store i32 %4147, ptr %4148, align 4, !tbaa !5
  %4149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4150 = load i32, ptr @test_count, align 4, !tbaa !5
  %4151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4152 = load i32, ptr %4151, align 4, !tbaa !5
  %4153 = call ptr @s2n_strerror(i32 noundef %4152, ptr noundef @.str.4)
  %4154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4155 = load i32, ptr %4154, align 4, !tbaa !5
  %4156 = call ptr @s2n_strerror_debug(i32 noundef %4155, ptr noundef @.str.4)
  %4157 = call ptr @__errno_location() #12
  %4158 = load i32, ptr %4157, align 4, !tbaa !5
  %4159 = call ptr @strerror(i32 noundef %4158) #11
  %4160 = call ptr @__errno_location() #12
  %4161 = load i32, ptr %4160, align 4, !tbaa !5
  %4162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4149, ptr noundef @.str.2, i32 noundef %4150, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 159, ptr noundef %4153, ptr noundef %4156, ptr noundef %4159, i32 noundef %4161) #11
  br label %4180

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

4180:                                             ; preds = %4163, %4146
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %4181

4181:                                             ; preds = %4180
  br label %4182

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

4183:                                             ; No predecessors!
  br label %4184

4184:                                             ; preds = %4183
  br label %4185

4185:                                             ; preds = %4184, %4125
  br label %4186

4186:                                             ; preds = %4185
  br label %4187

4187:                                             ; preds = %4186
  br label %4188

4188:                                             ; preds = %4187
  %4189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4189, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4190 = call ptr @__errno_location() #12
  store i32 0, ptr %4190, align 4, !tbaa !5
  br label %4191

4191:                                             ; preds = %4188
  br label %4192

4192:                                             ; preds = %4191
  br label %4193

4193:                                             ; preds = %4192
  br label %4194

4194:                                             ; preds = %4193
  br label %4195

4195:                                             ; preds = %4194
  %4196 = load i32, ptr @test_count, align 4, !tbaa !5
  %4197 = add nsw i32 %4196, 1
  store i32 %4197, ptr @test_count, align 4, !tbaa !5
  %4198 = load ptr, ptr %68, align 8, !tbaa !9
  %4199 = getelementptr inbounds %struct.s2n_connection, ptr %4198, i32 0, i32 82
  %4200 = getelementptr inbounds %struct.s2n_blob, ptr %4199, i32 0, i32 1
  %4201 = load i32, ptr %4200, align 8, !tbaa !23
  %4202 = icmp eq i32 %4201, 0
  br i1 %4202, label %4256, label %4203

4203:                                             ; preds = %4195
  br label %4204

4204:                                             ; preds = %4203
  br label %4205

4205:                                             ; preds = %4204
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #11
  %4206 = call ptr @__errno_location() #12
  %4207 = load i32, ptr %4206, align 4, !tbaa !5
  store i32 %4207, ptr %84, align 4, !tbaa !5
  %4208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4209 = call i32 @s2n_print_stacktrace(ptr noundef %4208)
  %4210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4211 = trunc i8 %4210 to i1
  br i1 %4211, label %4212, label %4234

4212:                                             ; preds = %4205
  %4213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4214 = call i32 @fileno(ptr noundef %4213) #11
  %4215 = call i32 @isatty(i32 noundef %4214) #11
  %4216 = icmp ne i32 %4215, 0
  br i1 %4216, label %4217, label %4234

4217:                                             ; preds = %4212
  %4218 = load i32, ptr %84, align 4, !tbaa !5
  %4219 = call ptr @__errno_location() #12
  store i32 %4218, ptr %4219, align 4, !tbaa !5
  %4220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4221 = load i32, ptr @test_count, align 4, !tbaa !5
  %4222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4223 = load i32, ptr %4222, align 4, !tbaa !5
  %4224 = call ptr @s2n_strerror(i32 noundef %4223, ptr noundef @.str.4)
  %4225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4226 = load i32, ptr %4225, align 4, !tbaa !5
  %4227 = call ptr @s2n_strerror_debug(i32 noundef %4226, ptr noundef @.str.4)
  %4228 = call ptr @__errno_location() #12
  %4229 = load i32, ptr %4228, align 4, !tbaa !5
  %4230 = call ptr @strerror(i32 noundef %4229) #11
  %4231 = call ptr @__errno_location() #12
  %4232 = load i32, ptr %4231, align 4, !tbaa !5
  %4233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4220, ptr noundef @.str.2, i32 noundef %4221, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 160, ptr noundef %4224, ptr noundef %4227, ptr noundef %4230, i32 noundef %4232) #11
  br label %4251

4234:                                             ; preds = %4212, %4205
  %4235 = load i32, ptr %84, align 4, !tbaa !5
  %4236 = call ptr @__errno_location() #12
  store i32 %4235, ptr %4236, align 4, !tbaa !5
  %4237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4238 = load i32, ptr @test_count, align 4, !tbaa !5
  %4239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4240 = load i32, ptr %4239, align 4, !tbaa !5
  %4241 = call ptr @s2n_strerror(i32 noundef %4240, ptr noundef @.str.4)
  %4242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4243 = load i32, ptr %4242, align 4, !tbaa !5
  %4244 = call ptr @s2n_strerror_debug(i32 noundef %4243, ptr noundef @.str.4)
  %4245 = call ptr @__errno_location() #12
  %4246 = load i32, ptr %4245, align 4, !tbaa !5
  %4247 = call ptr @strerror(i32 noundef %4246) #11
  %4248 = call ptr @__errno_location() #12
  %4249 = load i32, ptr %4248, align 4, !tbaa !5
  %4250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4237, ptr noundef @.str.5, i32 noundef %4238, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 160, ptr noundef %4241, ptr noundef %4244, ptr noundef %4247, i32 noundef %4249) #11
  br label %4251

4251:                                             ; preds = %4234, %4217
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #11
  br label %4252

4252:                                             ; preds = %4251
  br label %4253

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

4254:                                             ; No predecessors!
  br label %4255

4255:                                             ; preds = %4254
  br label %4256

4256:                                             ; preds = %4255, %4195
  br label %4257

4257:                                             ; preds = %4256
  br label %4258

4258:                                             ; preds = %4257
  br label %4259

4259:                                             ; preds = %4258
  %4260 = load i32, ptr @test_count, align 4, !tbaa !5
  %4261 = add nsw i32 %4260, 1
  store i32 %4261, ptr @test_count, align 4, !tbaa !5
  %4262 = load ptr, ptr %68, align 8, !tbaa !9
  %4263 = call i32 @s2n_connection_free(ptr noundef %4262)
  %4264 = icmp eq i32 %4263, -1
  br i1 %4264, label %4265, label %4318

4265:                                             ; preds = %4259
  br label %4266

4266:                                             ; preds = %4265
  br label %4267

4267:                                             ; preds = %4266
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #11
  %4268 = call ptr @__errno_location() #12
  %4269 = load i32, ptr %4268, align 4, !tbaa !5
  store i32 %4269, ptr %85, align 4, !tbaa !5
  %4270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4271 = call i32 @s2n_print_stacktrace(ptr noundef %4270)
  %4272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4273 = trunc i8 %4272 to i1
  br i1 %4273, label %4274, label %4296

4274:                                             ; preds = %4267
  %4275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4276 = call i32 @fileno(ptr noundef %4275) #11
  %4277 = call i32 @isatty(i32 noundef %4276) #11
  %4278 = icmp ne i32 %4277, 0
  br i1 %4278, label %4279, label %4296

4279:                                             ; preds = %4274
  %4280 = load i32, ptr %85, align 4, !tbaa !5
  %4281 = call ptr @__errno_location() #12
  store i32 %4280, ptr %4281, align 4, !tbaa !5
  %4282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4283 = load i32, ptr @test_count, align 4, !tbaa !5
  %4284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4285 = load i32, ptr %4284, align 4, !tbaa !5
  %4286 = call ptr @s2n_strerror(i32 noundef %4285, ptr noundef @.str.4)
  %4287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4288 = load i32, ptr %4287, align 4, !tbaa !5
  %4289 = call ptr @s2n_strerror_debug(i32 noundef %4288, ptr noundef @.str.4)
  %4290 = call ptr @__errno_location() #12
  %4291 = load i32, ptr %4290, align 4, !tbaa !5
  %4292 = call ptr @strerror(i32 noundef %4291) #11
  %4293 = call ptr @__errno_location() #12
  %4294 = load i32, ptr %4293, align 4, !tbaa !5
  %4295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4282, ptr noundef @.str.2, i32 noundef %4283, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 162, ptr noundef %4286, ptr noundef %4289, ptr noundef %4292, i32 noundef %4294) #11
  br label %4313

4296:                                             ; preds = %4274, %4267
  %4297 = load i32, ptr %85, align 4, !tbaa !5
  %4298 = call ptr @__errno_location() #12
  store i32 %4297, ptr %4298, align 4, !tbaa !5
  %4299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4300 = load i32, ptr @test_count, align 4, !tbaa !5
  %4301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4302 = load i32, ptr %4301, align 4, !tbaa !5
  %4303 = call ptr @s2n_strerror(i32 noundef %4302, ptr noundef @.str.4)
  %4304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4305 = load i32, ptr %4304, align 4, !tbaa !5
  %4306 = call ptr @s2n_strerror_debug(i32 noundef %4305, ptr noundef @.str.4)
  %4307 = call ptr @__errno_location() #12
  %4308 = load i32, ptr %4307, align 4, !tbaa !5
  %4309 = call ptr @strerror(i32 noundef %4308) #11
  %4310 = call ptr @__errno_location() #12
  %4311 = load i32, ptr %4310, align 4, !tbaa !5
  %4312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4299, ptr noundef @.str.5, i32 noundef %4300, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 162, ptr noundef %4303, ptr noundef %4306, ptr noundef %4309, i32 noundef %4311) #11
  br label %4313

4313:                                             ; preds = %4296, %4279
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  br label %4314

4314:                                             ; preds = %4313
  br label %4315

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

4316:                                             ; No predecessors!
  br label %4317

4317:                                             ; preds = %4316
  br label %4318

4318:                                             ; preds = %4317, %4259
  br label %4319

4319:                                             ; preds = %4318
  br label %4320

4320:                                             ; preds = %4319
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr %86) #11
  call void @llvm.memset.p0.i64(ptr align 8 %86, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %87) #11
  call void @llvm.memset.p0.i64(ptr align 8 %87, i8 0, i64 24, i1 false)
  br label %4321

4321:                                             ; preds = %4320
  br label %4322

4322:                                             ; preds = %4321
  br label %4323

4323:                                             ; preds = %4322
  %4324 = load i32, ptr @test_count, align 4, !tbaa !5
  %4325 = add nsw i32 %4324, 1
  store i32 %4325, ptr @test_count, align 4, !tbaa !5
  %4326 = call i32 @s2n_protocol_preferences_read(ptr noundef null, ptr noundef %87)
  %4327 = getelementptr inbounds %struct.s2n_result, ptr %88, i32 0, i32 0
  store i32 %4326, ptr %4327, align 4
  %4328 = getelementptr inbounds %struct.s2n_result, ptr %88, i32 0, i32 0
  %4329 = load i32, ptr %4328, align 4
  %4330 = call zeroext i1 @s2n_result_is_error(i32 %4329)
  br i1 %4330, label %4384, label %4331

4331:                                             ; preds = %4323
  br label %4332

4332:                                             ; preds = %4331
  br label %4333

4333:                                             ; preds = %4332
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #11
  %4334 = call ptr @__errno_location() #12
  %4335 = load i32, ptr %4334, align 4, !tbaa !5
  store i32 %4335, ptr %89, align 4, !tbaa !5
  %4336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4337 = call i32 @s2n_print_stacktrace(ptr noundef %4336)
  %4338 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4339 = trunc i8 %4338 to i1
  br i1 %4339, label %4340, label %4362

4340:                                             ; preds = %4333
  %4341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4342 = call i32 @fileno(ptr noundef %4341) #11
  %4343 = call i32 @isatty(i32 noundef %4342) #11
  %4344 = icmp ne i32 %4343, 0
  br i1 %4344, label %4345, label %4362

4345:                                             ; preds = %4340
  %4346 = load i32, ptr %89, align 4, !tbaa !5
  %4347 = call ptr @__errno_location() #12
  store i32 %4346, ptr %4347, align 4, !tbaa !5
  %4348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4349 = load i32, ptr @test_count, align 4, !tbaa !5
  %4350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4351 = load i32, ptr %4350, align 4, !tbaa !5
  %4352 = call ptr @s2n_strerror(i32 noundef %4351, ptr noundef @.str.4)
  %4353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4354 = load i32, ptr %4353, align 4, !tbaa !5
  %4355 = call ptr @s2n_strerror_debug(i32 noundef %4354, ptr noundef @.str.4)
  %4356 = call ptr @__errno_location() #12
  %4357 = load i32, ptr %4356, align 4, !tbaa !5
  %4358 = call ptr @strerror(i32 noundef %4357) #11
  %4359 = call ptr @__errno_location() #12
  %4360 = load i32, ptr %4359, align 4, !tbaa !5
  %4361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4348, ptr noundef @.str.2, i32 noundef %4349, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 171, ptr noundef %4352, ptr noundef %4355, ptr noundef %4358, i32 noundef %4360) #11
  br label %4379

4362:                                             ; preds = %4340, %4333
  %4363 = load i32, ptr %89, align 4, !tbaa !5
  %4364 = call ptr @__errno_location() #12
  store i32 %4363, ptr %4364, align 4, !tbaa !5
  %4365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4366 = load i32, ptr @test_count, align 4, !tbaa !5
  %4367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4368 = load i32, ptr %4367, align 4, !tbaa !5
  %4369 = call ptr @s2n_strerror(i32 noundef %4368, ptr noundef @.str.4)
  %4370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4371 = load i32, ptr %4370, align 4, !tbaa !5
  %4372 = call ptr @s2n_strerror_debug(i32 noundef %4371, ptr noundef @.str.4)
  %4373 = call ptr @__errno_location() #12
  %4374 = load i32, ptr %4373, align 4, !tbaa !5
  %4375 = call ptr @strerror(i32 noundef %4374) #11
  %4376 = call ptr @__errno_location() #12
  %4377 = load i32, ptr %4376, align 4, !tbaa !5
  %4378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4365, ptr noundef @.str.5, i32 noundef %4366, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 171, ptr noundef %4369, ptr noundef %4372, ptr noundef %4375, i32 noundef %4377) #11
  br label %4379

4379:                                             ; preds = %4362, %4345
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %4380

4380:                                             ; preds = %4379
  br label %4381

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

4382:                                             ; No predecessors!
  br label %4383

4383:                                             ; preds = %4382
  br label %4384

4384:                                             ; preds = %4383, %4323
  br label %4385

4385:                                             ; preds = %4384
  br label %4386

4386:                                             ; preds = %4385
  br label %4387

4387:                                             ; preds = %4386
  %4388 = load i32, ptr @test_count, align 4, !tbaa !5
  %4389 = add nsw i32 %4388, 1
  store i32 %4389, ptr @test_count, align 4, !tbaa !5
  %4390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4391 = load i32, ptr %4390, align 4, !tbaa !5
  %4392 = icmp eq i32 %4391, 402653193
  br i1 %4392, label %4446, label %4393

4393:                                             ; preds = %4387
  br label %4394

4394:                                             ; preds = %4393
  br label %4395

4395:                                             ; preds = %4394
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  %4396 = call ptr @__errno_location() #12
  %4397 = load i32, ptr %4396, align 4, !tbaa !5
  store i32 %4397, ptr %90, align 4, !tbaa !5
  %4398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4399 = call i32 @s2n_print_stacktrace(ptr noundef %4398)
  %4400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4401 = trunc i8 %4400 to i1
  br i1 %4401, label %4402, label %4424

4402:                                             ; preds = %4395
  %4403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4404 = call i32 @fileno(ptr noundef %4403) #11
  %4405 = call i32 @isatty(i32 noundef %4404) #11
  %4406 = icmp ne i32 %4405, 0
  br i1 %4406, label %4407, label %4424

4407:                                             ; preds = %4402
  %4408 = load i32, ptr %90, align 4, !tbaa !5
  %4409 = call ptr @__errno_location() #12
  store i32 %4408, ptr %4409, align 4, !tbaa !5
  %4410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4411 = load i32, ptr @test_count, align 4, !tbaa !5
  %4412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4413 = load i32, ptr %4412, align 4, !tbaa !5
  %4414 = call ptr @s2n_strerror(i32 noundef %4413, ptr noundef @.str.4)
  %4415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4416 = load i32, ptr %4415, align 4, !tbaa !5
  %4417 = call ptr @s2n_strerror_debug(i32 noundef %4416, ptr noundef @.str.4)
  %4418 = call ptr @__errno_location() #12
  %4419 = load i32, ptr %4418, align 4, !tbaa !5
  %4420 = call ptr @strerror(i32 noundef %4419) #11
  %4421 = call ptr @__errno_location() #12
  %4422 = load i32, ptr %4421, align 4, !tbaa !5
  %4423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4410, ptr noundef @.str.2, i32 noundef %4411, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 171, ptr noundef %4414, ptr noundef %4417, ptr noundef %4420, i32 noundef %4422) #11
  br label %4441

4424:                                             ; preds = %4402, %4395
  %4425 = load i32, ptr %90, align 4, !tbaa !5
  %4426 = call ptr @__errno_location() #12
  store i32 %4425, ptr %4426, align 4, !tbaa !5
  %4427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4428 = load i32, ptr @test_count, align 4, !tbaa !5
  %4429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4430 = load i32, ptr %4429, align 4, !tbaa !5
  %4431 = call ptr @s2n_strerror(i32 noundef %4430, ptr noundef @.str.4)
  %4432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4433 = load i32, ptr %4432, align 4, !tbaa !5
  %4434 = call ptr @s2n_strerror_debug(i32 noundef %4433, ptr noundef @.str.4)
  %4435 = call ptr @__errno_location() #12
  %4436 = load i32, ptr %4435, align 4, !tbaa !5
  %4437 = call ptr @strerror(i32 noundef %4436) #11
  %4438 = call ptr @__errno_location() #12
  %4439 = load i32, ptr %4438, align 4, !tbaa !5
  %4440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4427, ptr noundef @.str.5, i32 noundef %4428, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 171, ptr noundef %4431, ptr noundef %4434, ptr noundef %4437, i32 noundef %4439) #11
  br label %4441

4441:                                             ; preds = %4424, %4407
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %4442

4442:                                             ; preds = %4441
  br label %4443

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

4444:                                             ; No predecessors!
  br label %4445

4445:                                             ; preds = %4444
  br label %4446

4446:                                             ; preds = %4445, %4387
  br label %4447

4447:                                             ; preds = %4446
  br label %4448

4448:                                             ; preds = %4447
  br label %4449

4449:                                             ; preds = %4448
  %4450 = load i32, ptr @test_count, align 4, !tbaa !5
  %4451 = add nsw i32 %4450, 1
  store i32 %4451, ptr @test_count, align 4, !tbaa !5
  %4452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4453 = load i32, ptr %4452, align 4, !tbaa !5
  %4454 = call ptr @s2n_strerror_debug(i32 noundef %4453, ptr noundef @.str.4)
  %4455 = icmp eq ptr %4454, null
  br i1 %4455, label %4456, label %4509

4456:                                             ; preds = %4449
  br label %4457

4457:                                             ; preds = %4456
  br label %4458

4458:                                             ; preds = %4457
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  %4459 = call ptr @__errno_location() #12
  %4460 = load i32, ptr %4459, align 4, !tbaa !5
  store i32 %4460, ptr %91, align 4, !tbaa !5
  %4461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4462 = call i32 @s2n_print_stacktrace(ptr noundef %4461)
  %4463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4464 = trunc i8 %4463 to i1
  br i1 %4464, label %4465, label %4487

4465:                                             ; preds = %4458
  %4466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4467 = call i32 @fileno(ptr noundef %4466) #11
  %4468 = call i32 @isatty(i32 noundef %4467) #11
  %4469 = icmp ne i32 %4468, 0
  br i1 %4469, label %4470, label %4487

4470:                                             ; preds = %4465
  %4471 = load i32, ptr %91, align 4, !tbaa !5
  %4472 = call ptr @__errno_location() #12
  store i32 %4471, ptr %4472, align 4, !tbaa !5
  %4473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4474 = load i32, ptr @test_count, align 4, !tbaa !5
  %4475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4476 = load i32, ptr %4475, align 4, !tbaa !5
  %4477 = call ptr @s2n_strerror(i32 noundef %4476, ptr noundef @.str.4)
  %4478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4479 = load i32, ptr %4478, align 4, !tbaa !5
  %4480 = call ptr @s2n_strerror_debug(i32 noundef %4479, ptr noundef @.str.4)
  %4481 = call ptr @__errno_location() #12
  %4482 = load i32, ptr %4481, align 4, !tbaa !5
  %4483 = call ptr @strerror(i32 noundef %4482) #11
  %4484 = call ptr @__errno_location() #12
  %4485 = load i32, ptr %4484, align 4, !tbaa !5
  %4486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4473, ptr noundef @.str.2, i32 noundef %4474, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 171, ptr noundef %4477, ptr noundef %4480, ptr noundef %4483, i32 noundef %4485) #11
  br label %4504

4487:                                             ; preds = %4465, %4458
  %4488 = load i32, ptr %91, align 4, !tbaa !5
  %4489 = call ptr @__errno_location() #12
  store i32 %4488, ptr %4489, align 4, !tbaa !5
  %4490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4491 = load i32, ptr @test_count, align 4, !tbaa !5
  %4492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4493 = load i32, ptr %4492, align 4, !tbaa !5
  %4494 = call ptr @s2n_strerror(i32 noundef %4493, ptr noundef @.str.4)
  %4495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4496 = load i32, ptr %4495, align 4, !tbaa !5
  %4497 = call ptr @s2n_strerror_debug(i32 noundef %4496, ptr noundef @.str.4)
  %4498 = call ptr @__errno_location() #12
  %4499 = load i32, ptr %4498, align 4, !tbaa !5
  %4500 = call ptr @strerror(i32 noundef %4499) #11
  %4501 = call ptr @__errno_location() #12
  %4502 = load i32, ptr %4501, align 4, !tbaa !5
  %4503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4490, ptr noundef @.str.5, i32 noundef %4491, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 171, ptr noundef %4494, ptr noundef %4497, ptr noundef %4500, i32 noundef %4502) #11
  br label %4504

4504:                                             ; preds = %4487, %4470
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %4505

4505:                                             ; preds = %4504
  br label %4506

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

4507:                                             ; No predecessors!
  br label %4508

4508:                                             ; preds = %4507
  br label %4509

4509:                                             ; preds = %4508, %4449
  br label %4510

4510:                                             ; preds = %4509
  br label %4511

4511:                                             ; preds = %4510
  br label %4512

4512:                                             ; preds = %4511
  br label %4513

4513:                                             ; preds = %4512
  br label %4514

4514:                                             ; preds = %4513
  %4515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4515, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4516 = call ptr @__errno_location() #12
  store i32 0, ptr %4516, align 4, !tbaa !5
  br label %4517

4517:                                             ; preds = %4514
  br label %4518

4518:                                             ; preds = %4517
  br label %4519

4519:                                             ; preds = %4518
  br label %4520

4520:                                             ; preds = %4519
  br label %4521

4521:                                             ; preds = %4520
  br label %4522

4522:                                             ; preds = %4521
  br label %4523

4523:                                             ; preds = %4522
  %4524 = load i32, ptr @test_count, align 4, !tbaa !5
  %4525 = add nsw i32 %4524, 1
  store i32 %4525, ptr @test_count, align 4, !tbaa !5
  %4526 = call i32 @s2n_protocol_preferences_read(ptr noundef %86, ptr noundef null)
  %4527 = getelementptr inbounds %struct.s2n_result, ptr %92, i32 0, i32 0
  store i32 %4526, ptr %4527, align 4
  %4528 = getelementptr inbounds %struct.s2n_result, ptr %92, i32 0, i32 0
  %4529 = load i32, ptr %4528, align 4
  %4530 = call zeroext i1 @s2n_result_is_error(i32 %4529)
  br i1 %4530, label %4584, label %4531

4531:                                             ; preds = %4523
  br label %4532

4532:                                             ; preds = %4531
  br label %4533

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

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

4545:                                             ; preds = %4540
  %4546 = load i32, ptr %93, align 4, !tbaa !5
  %4547 = call ptr @__errno_location() #12
  store i32 %4546, ptr %4547, align 4, !tbaa !5
  %4548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4549 = load i32, ptr @test_count, align 4, !tbaa !5
  %4550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4551 = load i32, ptr %4550, align 4, !tbaa !5
  %4552 = call ptr @s2n_strerror(i32 noundef %4551, ptr noundef @.str.4)
  %4553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4554 = load i32, ptr %4553, align 4, !tbaa !5
  %4555 = call ptr @s2n_strerror_debug(i32 noundef %4554, ptr noundef @.str.4)
  %4556 = call ptr @__errno_location() #12
  %4557 = load i32, ptr %4556, align 4, !tbaa !5
  %4558 = call ptr @strerror(i32 noundef %4557) #11
  %4559 = call ptr @__errno_location() #12
  %4560 = load i32, ptr %4559, align 4, !tbaa !5
  %4561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4548, ptr noundef @.str.2, i32 noundef %4549, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 172, ptr noundef %4552, ptr noundef %4555, ptr noundef %4558, i32 noundef %4560) #11
  br label %4579

4562:                                             ; preds = %4540, %4533
  %4563 = load i32, ptr %93, align 4, !tbaa !5
  %4564 = call ptr @__errno_location() #12
  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() #12
  %4574 = load i32, ptr %4573, align 4, !tbaa !5
  %4575 = call ptr @strerror(i32 noundef %4574) #11
  %4576 = call ptr @__errno_location() #12
  %4577 = load i32, ptr %4576, align 4, !tbaa !5
  %4578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4565, ptr noundef @.str.5, i32 noundef %4566, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 172, ptr noundef %4569, ptr noundef %4572, ptr noundef %4575, i32 noundef %4577) #11
  br label %4579

4579:                                             ; preds = %4562, %4545
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #11
  br label %4580

4580:                                             ; preds = %4579
  br label %4581

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

4582:                                             ; No predecessors!
  br label %4583

4583:                                             ; preds = %4582
  br label %4584

4584:                                             ; preds = %4583, %4523
  br label %4585

4585:                                             ; preds = %4584
  br label %4586

4586:                                             ; preds = %4585
  br label %4587

4587:                                             ; preds = %4586
  %4588 = load i32, ptr @test_count, align 4, !tbaa !5
  %4589 = add nsw i32 %4588, 1
  store i32 %4589, ptr @test_count, align 4, !tbaa !5
  %4590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4591 = load i32, ptr %4590, align 4, !tbaa !5
  %4592 = icmp eq i32 %4591, 402653193
  br i1 %4592, label %4646, label %4593

4593:                                             ; preds = %4587
  br label %4594

4594:                                             ; preds = %4593
  br label %4595

4595:                                             ; preds = %4594
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #11
  %4596 = call ptr @__errno_location() #12
  %4597 = load i32, ptr %4596, align 4, !tbaa !5
  store i32 %4597, ptr %94, align 4, !tbaa !5
  %4598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4599 = call i32 @s2n_print_stacktrace(ptr noundef %4598)
  %4600 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4601 = trunc i8 %4600 to i1
  br i1 %4601, label %4602, label %4624

4602:                                             ; preds = %4595
  %4603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4604 = call i32 @fileno(ptr noundef %4603) #11
  %4605 = call i32 @isatty(i32 noundef %4604) #11
  %4606 = icmp ne i32 %4605, 0
  br i1 %4606, label %4607, label %4624

4607:                                             ; preds = %4602
  %4608 = load i32, ptr %94, align 4, !tbaa !5
  %4609 = call ptr @__errno_location() #12
  store i32 %4608, ptr %4609, align 4, !tbaa !5
  %4610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4611 = load i32, ptr @test_count, align 4, !tbaa !5
  %4612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4613 = load i32, ptr %4612, align 4, !tbaa !5
  %4614 = call ptr @s2n_strerror(i32 noundef %4613, ptr noundef @.str.4)
  %4615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4616 = load i32, ptr %4615, align 4, !tbaa !5
  %4617 = call ptr @s2n_strerror_debug(i32 noundef %4616, ptr noundef @.str.4)
  %4618 = call ptr @__errno_location() #12
  %4619 = load i32, ptr %4618, align 4, !tbaa !5
  %4620 = call ptr @strerror(i32 noundef %4619) #11
  %4621 = call ptr @__errno_location() #12
  %4622 = load i32, ptr %4621, align 4, !tbaa !5
  %4623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4610, ptr noundef @.str.2, i32 noundef %4611, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 172, ptr noundef %4614, ptr noundef %4617, ptr noundef %4620, i32 noundef %4622) #11
  br label %4641

4624:                                             ; preds = %4602, %4595
  %4625 = load i32, ptr %94, align 4, !tbaa !5
  %4626 = call ptr @__errno_location() #12
  store i32 %4625, ptr %4626, align 4, !tbaa !5
  %4627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4628 = load i32, ptr @test_count, align 4, !tbaa !5
  %4629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4630 = load i32, ptr %4629, align 4, !tbaa !5
  %4631 = call ptr @s2n_strerror(i32 noundef %4630, ptr noundef @.str.4)
  %4632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4633 = load i32, ptr %4632, align 4, !tbaa !5
  %4634 = call ptr @s2n_strerror_debug(i32 noundef %4633, ptr noundef @.str.4)
  %4635 = call ptr @__errno_location() #12
  %4636 = load i32, ptr %4635, align 4, !tbaa !5
  %4637 = call ptr @strerror(i32 noundef %4636) #11
  %4638 = call ptr @__errno_location() #12
  %4639 = load i32, ptr %4638, align 4, !tbaa !5
  %4640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4627, ptr noundef @.str.5, i32 noundef %4628, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 172, ptr noundef %4631, ptr noundef %4634, ptr noundef %4637, i32 noundef %4639) #11
  br label %4641

4641:                                             ; preds = %4624, %4607
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %4642

4642:                                             ; preds = %4641
  br label %4643

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

4644:                                             ; No predecessors!
  br label %4645

4645:                                             ; preds = %4644
  br label %4646

4646:                                             ; preds = %4645, %4587
  br label %4647

4647:                                             ; preds = %4646
  br label %4648

4648:                                             ; preds = %4647
  br label %4649

4649:                                             ; preds = %4648
  %4650 = load i32, ptr @test_count, align 4, !tbaa !5
  %4651 = add nsw i32 %4650, 1
  store i32 %4651, ptr @test_count, align 4, !tbaa !5
  %4652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4653 = load i32, ptr %4652, align 4, !tbaa !5
  %4654 = call ptr @s2n_strerror_debug(i32 noundef %4653, ptr noundef @.str.4)
  %4655 = icmp eq ptr %4654, null
  br i1 %4655, label %4656, label %4709

4656:                                             ; preds = %4649
  br label %4657

4657:                                             ; preds = %4656
  br label %4658

4658:                                             ; preds = %4657
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #11
  %4659 = call ptr @__errno_location() #12
  %4660 = load i32, ptr %4659, align 4, !tbaa !5
  store i32 %4660, ptr %95, align 4, !tbaa !5
  %4661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4662 = call i32 @s2n_print_stacktrace(ptr noundef %4661)
  %4663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4664 = trunc i8 %4663 to i1
  br i1 %4664, label %4665, label %4687

4665:                                             ; preds = %4658
  %4666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4667 = call i32 @fileno(ptr noundef %4666) #11
  %4668 = call i32 @isatty(i32 noundef %4667) #11
  %4669 = icmp ne i32 %4668, 0
  br i1 %4669, label %4670, label %4687

4670:                                             ; preds = %4665
  %4671 = load i32, ptr %95, align 4, !tbaa !5
  %4672 = call ptr @__errno_location() #12
  store i32 %4671, ptr %4672, align 4, !tbaa !5
  %4673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4674 = load i32, ptr @test_count, align 4, !tbaa !5
  %4675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4676 = load i32, ptr %4675, align 4, !tbaa !5
  %4677 = call ptr @s2n_strerror(i32 noundef %4676, ptr noundef @.str.4)
  %4678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4679 = load i32, ptr %4678, align 4, !tbaa !5
  %4680 = call ptr @s2n_strerror_debug(i32 noundef %4679, ptr noundef @.str.4)
  %4681 = call ptr @__errno_location() #12
  %4682 = load i32, ptr %4681, align 4, !tbaa !5
  %4683 = call ptr @strerror(i32 noundef %4682) #11
  %4684 = call ptr @__errno_location() #12
  %4685 = load i32, ptr %4684, align 4, !tbaa !5
  %4686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4673, ptr noundef @.str.2, i32 noundef %4674, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 172, ptr noundef %4677, ptr noundef %4680, ptr noundef %4683, i32 noundef %4685) #11
  br label %4704

4687:                                             ; preds = %4665, %4658
  %4688 = load i32, ptr %95, align 4, !tbaa !5
  %4689 = call ptr @__errno_location() #12
  store i32 %4688, ptr %4689, align 4, !tbaa !5
  %4690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4691 = load i32, ptr @test_count, align 4, !tbaa !5
  %4692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4693 = load i32, ptr %4692, align 4, !tbaa !5
  %4694 = call ptr @s2n_strerror(i32 noundef %4693, ptr noundef @.str.4)
  %4695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4696 = load i32, ptr %4695, align 4, !tbaa !5
  %4697 = call ptr @s2n_strerror_debug(i32 noundef %4696, ptr noundef @.str.4)
  %4698 = call ptr @__errno_location() #12
  %4699 = load i32, ptr %4698, align 4, !tbaa !5
  %4700 = call ptr @strerror(i32 noundef %4699) #11
  %4701 = call ptr @__errno_location() #12
  %4702 = load i32, ptr %4701, align 4, !tbaa !5
  %4703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4690, ptr noundef @.str.5, i32 noundef %4691, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 172, ptr noundef %4694, ptr noundef %4697, ptr noundef %4700, i32 noundef %4702) #11
  br label %4704

4704:                                             ; preds = %4687, %4670
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #11
  br label %4705

4705:                                             ; preds = %4704
  br label %4706

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

4707:                                             ; No predecessors!
  br label %4708

4708:                                             ; preds = %4707
  br label %4709

4709:                                             ; preds = %4708, %4649
  br label %4710

4710:                                             ; preds = %4709
  br label %4711

4711:                                             ; preds = %4710
  br label %4712

4712:                                             ; preds = %4711
  br label %4713

4713:                                             ; preds = %4712
  br label %4714

4714:                                             ; preds = %4713
  %4715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4715, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4716 = call ptr @__errno_location() #12
  store i32 0, ptr %4716, align 4, !tbaa !5
  br label %4717

4717:                                             ; preds = %4714
  br label %4718

4718:                                             ; preds = %4717
  br label %4719

4719:                                             ; preds = %4718
  br label %4720

4720:                                             ; preds = %4719
  call void @llvm.lifetime.end.p0(i64 24, ptr %87) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %86) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr %96) #11
  call void @llvm.memset.p0.i64(ptr align 8 %96, i8 0, i64 40, i1 false)
  br label %4721

4721:                                             ; preds = %4720
  %4722 = load i32, ptr @test_count, align 4, !tbaa !5
  %4723 = add nsw i32 %4722, 1
  store i32 %4723, ptr @test_count, align 4, !tbaa !5
  %4724 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %96, i32 noundef 0)
  %4725 = icmp eq i32 %4724, -1
  br i1 %4725, label %4726, label %4779

4726:                                             ; preds = %4721
  br label %4727

4727:                                             ; preds = %4726
  br label %4728

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

4735:                                             ; preds = %4728
  %4736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4737 = call i32 @fileno(ptr noundef %4736) #11
  %4738 = call i32 @isatty(i32 noundef %4737) #11
  %4739 = icmp ne i32 %4738, 0
  br i1 %4739, label %4740, label %4757

4740:                                             ; preds = %4735
  %4741 = load i32, ptr %97, align 4, !tbaa !5
  %4742 = call ptr @__errno_location() #12
  store i32 %4741, ptr %4742, align 4, !tbaa !5
  %4743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4744 = load i32, ptr @test_count, align 4, !tbaa !5
  %4745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4746 = load i32, ptr %4745, align 4, !tbaa !5
  %4747 = call ptr @s2n_strerror(i32 noundef %4746, ptr noundef @.str.4)
  %4748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4749 = load i32, ptr %4748, align 4, !tbaa !5
  %4750 = call ptr @s2n_strerror_debug(i32 noundef %4749, ptr noundef @.str.4)
  %4751 = call ptr @__errno_location() #12
  %4752 = load i32, ptr %4751, align 4, !tbaa !5
  %4753 = call ptr @strerror(i32 noundef %4752) #11
  %4754 = call ptr @__errno_location() #12
  %4755 = load i32, ptr %4754, align 4, !tbaa !5
  %4756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4743, ptr noundef @.str.2, i32 noundef %4744, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 178, ptr noundef %4747, ptr noundef %4750, ptr noundef %4753, i32 noundef %4755) #11
  br label %4774

4757:                                             ; preds = %4735, %4728
  %4758 = load i32, ptr %97, align 4, !tbaa !5
  %4759 = call ptr @__errno_location() #12
  store i32 %4758, ptr %4759, align 4, !tbaa !5
  %4760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4761 = load i32, ptr @test_count, align 4, !tbaa !5
  %4762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4763 = load i32, ptr %4762, align 4, !tbaa !5
  %4764 = call ptr @s2n_strerror(i32 noundef %4763, ptr noundef @.str.4)
  %4765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4766 = load i32, ptr %4765, align 4, !tbaa !5
  %4767 = call ptr @s2n_strerror_debug(i32 noundef %4766, ptr noundef @.str.4)
  %4768 = call ptr @__errno_location() #12
  %4769 = load i32, ptr %4768, align 4, !tbaa !5
  %4770 = call ptr @strerror(i32 noundef %4769) #11
  %4771 = call ptr @__errno_location() #12
  %4772 = load i32, ptr %4771, align 4, !tbaa !5
  %4773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4760, ptr noundef @.str.5, i32 noundef %4761, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 178, ptr noundef %4764, ptr noundef %4767, ptr noundef %4770, i32 noundef %4772) #11
  br label %4774

4774:                                             ; preds = %4757, %4740
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #11
  br label %4775

4775:                                             ; preds = %4774
  br label %4776

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

4777:                                             ; No predecessors!
  br label %4778

4778:                                             ; preds = %4777
  br label %4779

4779:                                             ; preds = %4778, %4721
  br label %4780

4780:                                             ; preds = %4779
  br label %4781

4781:                                             ; preds = %4780
  br label %4782

4782:                                             ; preds = %4781
  %4783 = load i32, ptr @test_count, align 4, !tbaa !5
  %4784 = add nsw i32 %4783, 1
  store i32 %4784, ptr @test_count, align 4, !tbaa !5
  %4785 = call i32 @s2n_stuffer_write_uint8(ptr noundef %96, i8 noundef zeroext 0)
  %4786 = icmp eq i32 %4785, -1
  br i1 %4786, label %4787, label %4840

4787:                                             ; preds = %4782
  br label %4788

4788:                                             ; preds = %4787
  br label %4789

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

4796:                                             ; preds = %4789
  %4797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4798 = call i32 @fileno(ptr noundef %4797) #11
  %4799 = call i32 @isatty(i32 noundef %4798) #11
  %4800 = icmp ne i32 %4799, 0
  br i1 %4800, label %4801, label %4818

4801:                                             ; preds = %4796
  %4802 = load i32, ptr %98, align 4, !tbaa !5
  %4803 = call ptr @__errno_location() #12
  store i32 %4802, ptr %4803, align 4, !tbaa !5
  %4804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4805 = load i32, ptr @test_count, align 4, !tbaa !5
  %4806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4807 = load i32, ptr %4806, align 4, !tbaa !5
  %4808 = call ptr @s2n_strerror(i32 noundef %4807, ptr noundef @.str.4)
  %4809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4810 = load i32, ptr %4809, align 4, !tbaa !5
  %4811 = call ptr @s2n_strerror_debug(i32 noundef %4810, ptr noundef @.str.4)
  %4812 = call ptr @__errno_location() #12
  %4813 = load i32, ptr %4812, align 4, !tbaa !5
  %4814 = call ptr @strerror(i32 noundef %4813) #11
  %4815 = call ptr @__errno_location() #12
  %4816 = load i32, ptr %4815, align 4, !tbaa !5
  %4817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4804, ptr noundef @.str.2, i32 noundef %4805, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 179, ptr noundef %4808, ptr noundef %4811, ptr noundef %4814, i32 noundef %4816) #11
  br label %4835

4818:                                             ; preds = %4796, %4789
  %4819 = load i32, ptr %98, align 4, !tbaa !5
  %4820 = call ptr @__errno_location() #12
  store i32 %4819, ptr %4820, align 4, !tbaa !5
  %4821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4822 = load i32, ptr @test_count, align 4, !tbaa !5
  %4823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4824 = load i32, ptr %4823, align 4, !tbaa !5
  %4825 = call ptr @s2n_strerror(i32 noundef %4824, ptr noundef @.str.4)
  %4826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4827 = load i32, ptr %4826, align 4, !tbaa !5
  %4828 = call ptr @s2n_strerror_debug(i32 noundef %4827, ptr noundef @.str.4)
  %4829 = call ptr @__errno_location() #12
  %4830 = load i32, ptr %4829, align 4, !tbaa !5
  %4831 = call ptr @strerror(i32 noundef %4830) #11
  %4832 = call ptr @__errno_location() #12
  %4833 = load i32, ptr %4832, align 4, !tbaa !5
  %4834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4821, ptr noundef @.str.5, i32 noundef %4822, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 179, ptr noundef %4825, ptr noundef %4828, ptr noundef %4831, i32 noundef %4833) #11
  br label %4835

4835:                                             ; preds = %4818, %4801
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #11
  br label %4836

4836:                                             ; preds = %4835
  br label %4837

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

4838:                                             ; No predecessors!
  br label %4839

4839:                                             ; preds = %4838
  br label %4840

4840:                                             ; preds = %4839, %4782
  br label %4841

4841:                                             ; preds = %4840
  br label %4842

4842:                                             ; preds = %4841
  call void @llvm.lifetime.start.p0(i64 24, ptr %99) #11
  call void @llvm.memset.p0.i64(ptr align 8 %99, i8 0, i64 24, i1 false)
  br label %4843

4843:                                             ; preds = %4842
  br label %4844

4844:                                             ; preds = %4843
  br label %4845

4845:                                             ; preds = %4844
  %4846 = load i32, ptr @test_count, align 4, !tbaa !5
  %4847 = add nsw i32 %4846, 1
  store i32 %4847, ptr @test_count, align 4, !tbaa !5
  %4848 = call i32 @s2n_protocol_preferences_read(ptr noundef %96, ptr noundef %99)
  %4849 = getelementptr inbounds %struct.s2n_result, ptr %100, i32 0, i32 0
  store i32 %4848, ptr %4849, align 4
  %4850 = getelementptr inbounds %struct.s2n_result, ptr %100, i32 0, i32 0
  %4851 = load i32, ptr %4850, align 4
  %4852 = call zeroext i1 @s2n_result_is_error(i32 %4851)
  br i1 %4852, label %4906, label %4853

4853:                                             ; preds = %4845
  br label %4854

4854:                                             ; preds = %4853
  br label %4855

4855:                                             ; preds = %4854
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #11
  %4856 = call ptr @__errno_location() #12
  %4857 = load i32, ptr %4856, align 4, !tbaa !5
  store i32 %4857, ptr %101, align 4, !tbaa !5
  %4858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4859 = call i32 @s2n_print_stacktrace(ptr noundef %4858)
  %4860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4861 = trunc i8 %4860 to i1
  br i1 %4861, label %4862, label %4884

4862:                                             ; preds = %4855
  %4863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4864 = call i32 @fileno(ptr noundef %4863) #11
  %4865 = call i32 @isatty(i32 noundef %4864) #11
  %4866 = icmp ne i32 %4865, 0
  br i1 %4866, label %4867, label %4884

4867:                                             ; preds = %4862
  %4868 = load i32, ptr %101, align 4, !tbaa !5
  %4869 = call ptr @__errno_location() #12
  store i32 %4868, ptr %4869, align 4, !tbaa !5
  %4870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4871 = load i32, ptr @test_count, align 4, !tbaa !5
  %4872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4873 = load i32, ptr %4872, align 4, !tbaa !5
  %4874 = call ptr @s2n_strerror(i32 noundef %4873, ptr noundef @.str.4)
  %4875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4876 = load i32, ptr %4875, align 4, !tbaa !5
  %4877 = call ptr @s2n_strerror_debug(i32 noundef %4876, ptr noundef @.str.4)
  %4878 = call ptr @__errno_location() #12
  %4879 = load i32, ptr %4878, align 4, !tbaa !5
  %4880 = call ptr @strerror(i32 noundef %4879) #11
  %4881 = call ptr @__errno_location() #12
  %4882 = load i32, ptr %4881, align 4, !tbaa !5
  %4883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4870, ptr noundef @.str.2, i32 noundef %4871, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 182, ptr noundef %4874, ptr noundef %4877, ptr noundef %4880, i32 noundef %4882) #11
  br label %4901

4884:                                             ; preds = %4862, %4855
  %4885 = load i32, ptr %101, align 4, !tbaa !5
  %4886 = call ptr @__errno_location() #12
  store i32 %4885, ptr %4886, align 4, !tbaa !5
  %4887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4888 = load i32, ptr @test_count, align 4, !tbaa !5
  %4889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4890 = load i32, ptr %4889, align 4, !tbaa !5
  %4891 = call ptr @s2n_strerror(i32 noundef %4890, ptr noundef @.str.4)
  %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_debug(i32 noundef %4893, ptr noundef @.str.4)
  %4895 = call ptr @__errno_location() #12
  %4896 = load i32, ptr %4895, align 4, !tbaa !5
  %4897 = call ptr @strerror(i32 noundef %4896) #11
  %4898 = call ptr @__errno_location() #12
  %4899 = load i32, ptr %4898, align 4, !tbaa !5
  %4900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4887, ptr noundef @.str.5, i32 noundef %4888, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 182, ptr noundef %4891, ptr noundef %4894, ptr noundef %4897, i32 noundef %4899) #11
  br label %4901

4901:                                             ; preds = %4884, %4867
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %4902

4902:                                             ; preds = %4901
  br label %4903

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

4904:                                             ; No predecessors!
  br label %4905

4905:                                             ; preds = %4904
  br label %4906

4906:                                             ; preds = %4905, %4845
  br label %4907

4907:                                             ; preds = %4906
  br label %4908

4908:                                             ; preds = %4907
  br label %4909

4909:                                             ; preds = %4908
  %4910 = load i32, ptr @test_count, align 4, !tbaa !5
  %4911 = add nsw i32 %4910, 1
  store i32 %4911, ptr @test_count, align 4, !tbaa !5
  %4912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4913 = load i32, ptr %4912, align 4, !tbaa !5
  %4914 = icmp eq i32 %4913, 402653194
  br i1 %4914, label %4968, label %4915

4915:                                             ; preds = %4909
  br label %4916

4916:                                             ; preds = %4915
  br label %4917

4917:                                             ; preds = %4916
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #11
  %4918 = call ptr @__errno_location() #12
  %4919 = load i32, ptr %4918, align 4, !tbaa !5
  store i32 %4919, ptr %102, align 4, !tbaa !5
  %4920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4921 = call i32 @s2n_print_stacktrace(ptr noundef %4920)
  %4922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4923 = trunc i8 %4922 to i1
  br i1 %4923, label %4924, label %4946

4924:                                             ; preds = %4917
  %4925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4926 = call i32 @fileno(ptr noundef %4925) #11
  %4927 = call i32 @isatty(i32 noundef %4926) #11
  %4928 = icmp ne i32 %4927, 0
  br i1 %4928, label %4929, label %4946

4929:                                             ; preds = %4924
  %4930 = load i32, ptr %102, align 4, !tbaa !5
  %4931 = call ptr @__errno_location() #12
  store i32 %4930, ptr %4931, align 4, !tbaa !5
  %4932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4933 = load i32, ptr @test_count, align 4, !tbaa !5
  %4934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4935 = load i32, ptr %4934, align 4, !tbaa !5
  %4936 = call ptr @s2n_strerror(i32 noundef %4935, ptr noundef @.str.4)
  %4937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4938 = load i32, ptr %4937, align 4, !tbaa !5
  %4939 = call ptr @s2n_strerror_debug(i32 noundef %4938, ptr noundef @.str.4)
  %4940 = call ptr @__errno_location() #12
  %4941 = load i32, ptr %4940, align 4, !tbaa !5
  %4942 = call ptr @strerror(i32 noundef %4941) #11
  %4943 = call ptr @__errno_location() #12
  %4944 = load i32, ptr %4943, align 4, !tbaa !5
  %4945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4932, ptr noundef @.str.2, i32 noundef %4933, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 182, ptr noundef %4936, ptr noundef %4939, ptr noundef %4942, i32 noundef %4944) #11
  br label %4963

4946:                                             ; preds = %4924, %4917
  %4947 = load i32, ptr %102, align 4, !tbaa !5
  %4948 = call ptr @__errno_location() #12
  store i32 %4947, ptr %4948, align 4, !tbaa !5
  %4949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4950 = load i32, ptr @test_count, align 4, !tbaa !5
  %4951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4952 = load i32, ptr %4951, align 4, !tbaa !5
  %4953 = call ptr @s2n_strerror(i32 noundef %4952, ptr noundef @.str.4)
  %4954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4955 = load i32, ptr %4954, align 4, !tbaa !5
  %4956 = call ptr @s2n_strerror_debug(i32 noundef %4955, ptr noundef @.str.4)
  %4957 = call ptr @__errno_location() #12
  %4958 = load i32, ptr %4957, align 4, !tbaa !5
  %4959 = call ptr @strerror(i32 noundef %4958) #11
  %4960 = call ptr @__errno_location() #12
  %4961 = load i32, ptr %4960, align 4, !tbaa !5
  %4962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4949, ptr noundef @.str.5, i32 noundef %4950, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 182, ptr noundef %4953, ptr noundef %4956, ptr noundef %4959, i32 noundef %4961) #11
  br label %4963

4963:                                             ; preds = %4946, %4929
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #11
  br label %4964

4964:                                             ; preds = %4963
  br label %4965

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

4966:                                             ; No predecessors!
  br label %4967

4967:                                             ; preds = %4966
  br label %4968

4968:                                             ; preds = %4967, %4909
  br label %4969

4969:                                             ; preds = %4968
  br label %4970

4970:                                             ; preds = %4969
  br label %4971

4971:                                             ; preds = %4970
  %4972 = load i32, ptr @test_count, align 4, !tbaa !5
  %4973 = add nsw i32 %4972, 1
  store i32 %4973, 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_debug(i32 noundef %4975, ptr noundef @.str.4)
  %4977 = icmp eq ptr %4976, null
  br i1 %4977, label %4978, label %5031

4978:                                             ; preds = %4971
  br label %4979

4979:                                             ; preds = %4978
  br label %4980

4980:                                             ; preds = %4979
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #11
  %4981 = call ptr @__errno_location() #12
  %4982 = load i32, ptr %4981, align 4, !tbaa !5
  store i32 %4982, ptr %103, align 4, !tbaa !5
  %4983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4984 = call i32 @s2n_print_stacktrace(ptr noundef %4983)
  %4985 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4986 = trunc i8 %4985 to i1
  br i1 %4986, label %4987, label %5009

4987:                                             ; preds = %4980
  %4988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4989 = call i32 @fileno(ptr noundef %4988) #11
  %4990 = call i32 @isatty(i32 noundef %4989) #11
  %4991 = icmp ne i32 %4990, 0
  br i1 %4991, label %4992, label %5009

4992:                                             ; preds = %4987
  %4993 = load i32, ptr %103, align 4, !tbaa !5
  %4994 = call ptr @__errno_location() #12
  store i32 %4993, ptr %4994, align 4, !tbaa !5
  %4995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4996 = load i32, ptr @test_count, align 4, !tbaa !5
  %4997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4998 = load i32, ptr %4997, align 4, !tbaa !5
  %4999 = call ptr @s2n_strerror(i32 noundef %4998, ptr noundef @.str.4)
  %5000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5001 = load i32, ptr %5000, align 4, !tbaa !5
  %5002 = call ptr @s2n_strerror_debug(i32 noundef %5001, ptr noundef @.str.4)
  %5003 = call ptr @__errno_location() #12
  %5004 = load i32, ptr %5003, align 4, !tbaa !5
  %5005 = call ptr @strerror(i32 noundef %5004) #11
  %5006 = call ptr @__errno_location() #12
  %5007 = load i32, ptr %5006, align 4, !tbaa !5
  %5008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4995, ptr noundef @.str.2, i32 noundef %4996, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 182, ptr noundef %4999, ptr noundef %5002, ptr noundef %5005, i32 noundef %5007) #11
  br label %5026

5009:                                             ; preds = %4987, %4980
  %5010 = load i32, ptr %103, align 4, !tbaa !5
  %5011 = call ptr @__errno_location() #12
  store i32 %5010, ptr %5011, align 4, !tbaa !5
  %5012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5013 = load i32, ptr @test_count, align 4, !tbaa !5
  %5014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5015 = load i32, ptr %5014, align 4, !tbaa !5
  %5016 = call ptr @s2n_strerror(i32 noundef %5015, ptr noundef @.str.4)
  %5017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5018 = load i32, ptr %5017, align 4, !tbaa !5
  %5019 = call ptr @s2n_strerror_debug(i32 noundef %5018, ptr noundef @.str.4)
  %5020 = call ptr @__errno_location() #12
  %5021 = load i32, ptr %5020, align 4, !tbaa !5
  %5022 = call ptr @strerror(i32 noundef %5021) #11
  %5023 = call ptr @__errno_location() #12
  %5024 = load i32, ptr %5023, align 4, !tbaa !5
  %5025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5012, ptr noundef @.str.5, i32 noundef %5013, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 182, ptr noundef %5016, ptr noundef %5019, ptr noundef %5022, i32 noundef %5024) #11
  br label %5026

5026:                                             ; preds = %5009, %4992
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #11
  br label %5027

5027:                                             ; preds = %5026
  br label %5028

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

5029:                                             ; No predecessors!
  br label %5030

5030:                                             ; preds = %5029
  br label %5031

5031:                                             ; preds = %5030, %4971
  br label %5032

5032:                                             ; preds = %5031
  br label %5033

5033:                                             ; preds = %5032
  br label %5034

5034:                                             ; preds = %5033
  br label %5035

5035:                                             ; preds = %5034
  br label %5036

5036:                                             ; preds = %5035
  %5037 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5037, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5038 = call ptr @__errno_location() #12
  store i32 0, ptr %5038, align 4, !tbaa !5
  br label %5039

5039:                                             ; preds = %5036
  br label %5040

5040:                                             ; preds = %5039
  br label %5041

5041:                                             ; preds = %5040
  br label %5042

5042:                                             ; preds = %5041
  br label %5043

5043:                                             ; preds = %5042
  %5044 = load i32, ptr @test_count, align 4, !tbaa !5
  %5045 = add nsw i32 %5044, 1
  store i32 %5045, ptr @test_count, align 4, !tbaa !5
  %5046 = getelementptr inbounds %struct.s2n_blob, ptr %99, i32 0, i32 1
  %5047 = load i32, ptr %5046, align 8, !tbaa !48
  %5048 = icmp eq i32 %5047, 0
  br i1 %5048, label %5102, label %5049

5049:                                             ; preds = %5043
  br label %5050

5050:                                             ; preds = %5049
  br label %5051

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

5058:                                             ; preds = %5051
  %5059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5060 = call i32 @fileno(ptr noundef %5059) #11
  %5061 = call i32 @isatty(i32 noundef %5060) #11
  %5062 = icmp ne i32 %5061, 0
  br i1 %5062, label %5063, label %5080

5063:                                             ; preds = %5058
  %5064 = load i32, ptr %104, align 4, !tbaa !5
  %5065 = call ptr @__errno_location() #12
  store i32 %5064, ptr %5065, align 4, !tbaa !5
  %5066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5067 = load i32, ptr @test_count, align 4, !tbaa !5
  %5068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5069 = load i32, ptr %5068, align 4, !tbaa !5
  %5070 = call ptr @s2n_strerror(i32 noundef %5069, ptr noundef @.str.4)
  %5071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5072 = load i32, ptr %5071, align 4, !tbaa !5
  %5073 = call ptr @s2n_strerror_debug(i32 noundef %5072, ptr noundef @.str.4)
  %5074 = call ptr @__errno_location() #12
  %5075 = load i32, ptr %5074, align 4, !tbaa !5
  %5076 = call ptr @strerror(i32 noundef %5075) #11
  %5077 = call ptr @__errno_location() #12
  %5078 = load i32, ptr %5077, align 4, !tbaa !5
  %5079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5066, ptr noundef @.str.2, i32 noundef %5067, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 183, ptr noundef %5070, ptr noundef %5073, ptr noundef %5076, i32 noundef %5078) #11
  br label %5097

5080:                                             ; preds = %5058, %5051
  %5081 = load i32, ptr %104, align 4, !tbaa !5
  %5082 = call ptr @__errno_location() #12
  store i32 %5081, ptr %5082, align 4, !tbaa !5
  %5083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5084 = load i32, ptr @test_count, align 4, !tbaa !5
  %5085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5086 = load i32, ptr %5085, align 4, !tbaa !5
  %5087 = call ptr @s2n_strerror(i32 noundef %5086, ptr noundef @.str.4)
  %5088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5089 = load i32, ptr %5088, align 4, !tbaa !5
  %5090 = call ptr @s2n_strerror_debug(i32 noundef %5089, ptr noundef @.str.4)
  %5091 = call ptr @__errno_location() #12
  %5092 = load i32, ptr %5091, align 4, !tbaa !5
  %5093 = call ptr @strerror(i32 noundef %5092) #11
  %5094 = call ptr @__errno_location() #12
  %5095 = load i32, ptr %5094, align 4, !tbaa !5
  %5096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5083, ptr noundef @.str.5, i32 noundef %5084, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 183, ptr noundef %5087, ptr noundef %5090, ptr noundef %5093, i32 noundef %5095) #11
  br label %5097

5097:                                             ; preds = %5080, %5063
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #11
  br label %5098

5098:                                             ; preds = %5097
  br label %5099

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

5100:                                             ; No predecessors!
  br label %5101

5101:                                             ; preds = %5100
  br label %5102

5102:                                             ; preds = %5101, %5043
  br label %5103

5103:                                             ; preds = %5102
  br label %5104

5104:                                             ; preds = %5103
  br label %5105

5105:                                             ; preds = %5104
  %5106 = load i32, ptr @test_count, align 4, !tbaa !5
  %5107 = add nsw i32 %5106, 1
  store i32 %5107, ptr @test_count, align 4, !tbaa !5
  %5108 = call i32 @s2n_stuffer_free(ptr noundef %96)
  %5109 = icmp eq i32 %5108, -1
  br i1 %5109, label %5110, label %5163

5110:                                             ; preds = %5105
  br label %5111

5111:                                             ; preds = %5110
  br label %5112

5112:                                             ; preds = %5111
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #11
  %5113 = call ptr @__errno_location() #12
  %5114 = load i32, ptr %5113, align 4, !tbaa !5
  store i32 %5114, ptr %105, align 4, !tbaa !5
  %5115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5116 = call i32 @s2n_print_stacktrace(ptr noundef %5115)
  %5117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5118 = trunc i8 %5117 to i1
  br i1 %5118, label %5119, label %5141

5119:                                             ; preds = %5112
  %5120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5121 = call i32 @fileno(ptr noundef %5120) #11
  %5122 = call i32 @isatty(i32 noundef %5121) #11
  %5123 = icmp ne i32 %5122, 0
  br i1 %5123, label %5124, label %5141

5124:                                             ; preds = %5119
  %5125 = load i32, ptr %105, align 4, !tbaa !5
  %5126 = call ptr @__errno_location() #12
  store i32 %5125, ptr %5126, align 4, !tbaa !5
  %5127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5128 = load i32, ptr @test_count, align 4, !tbaa !5
  %5129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5130 = load i32, ptr %5129, align 4, !tbaa !5
  %5131 = call ptr @s2n_strerror(i32 noundef %5130, ptr noundef @.str.4)
  %5132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5133 = load i32, ptr %5132, align 4, !tbaa !5
  %5134 = call ptr @s2n_strerror_debug(i32 noundef %5133, ptr noundef @.str.4)
  %5135 = call ptr @__errno_location() #12
  %5136 = load i32, ptr %5135, align 4, !tbaa !5
  %5137 = call ptr @strerror(i32 noundef %5136) #11
  %5138 = call ptr @__errno_location() #12
  %5139 = load i32, ptr %5138, align 4, !tbaa !5
  %5140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5127, ptr noundef @.str.2, i32 noundef %5128, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 185, ptr noundef %5131, ptr noundef %5134, ptr noundef %5137, i32 noundef %5139) #11
  br label %5158

5141:                                             ; preds = %5119, %5112
  %5142 = load i32, ptr %105, align 4, !tbaa !5
  %5143 = call ptr @__errno_location() #12
  store i32 %5142, ptr %5143, align 4, !tbaa !5
  %5144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5145 = load i32, ptr @test_count, align 4, !tbaa !5
  %5146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5147 = load i32, ptr %5146, align 4, !tbaa !5
  %5148 = call ptr @s2n_strerror(i32 noundef %5147, ptr noundef @.str.4)
  %5149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5150 = load i32, ptr %5149, align 4, !tbaa !5
  %5151 = call ptr @s2n_strerror_debug(i32 noundef %5150, ptr noundef @.str.4)
  %5152 = call ptr @__errno_location() #12
  %5153 = load i32, ptr %5152, align 4, !tbaa !5
  %5154 = call ptr @strerror(i32 noundef %5153) #11
  %5155 = call ptr @__errno_location() #12
  %5156 = load i32, ptr %5155, align 4, !tbaa !5
  %5157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5144, ptr noundef @.str.5, i32 noundef %5145, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 185, ptr noundef %5148, ptr noundef %5151, ptr noundef %5154, i32 noundef %5156) #11
  br label %5158

5158:                                             ; preds = %5141, %5124
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #11
  br label %5159

5159:                                             ; preds = %5158
  br label %5160

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

5161:                                             ; No predecessors!
  br label %5162

5162:                                             ; preds = %5161
  br label %5163

5163:                                             ; preds = %5162, %5105
  br label %5164

5164:                                             ; preds = %5163
  br label %5165

5165:                                             ; preds = %5164
  call void @llvm.lifetime.end.p0(i64 24, ptr %99) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %96) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr %106) #11
  call void @llvm.memset.p0.i64(ptr align 8 %106, i8 0, i64 40, i1 false)
  br label %5166

5166:                                             ; preds = %5165
  %5167 = load i32, ptr @test_count, align 4, !tbaa !5
  %5168 = add nsw i32 %5167, 1
  store i32 %5168, ptr @test_count, align 4, !tbaa !5
  %5169 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %106, i32 noundef 0)
  %5170 = icmp eq i32 %5169, -1
  br i1 %5170, label %5171, label %5224

5171:                                             ; preds = %5166
  br label %5172

5172:                                             ; preds = %5171
  br label %5173

5173:                                             ; preds = %5172
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #11
  %5174 = call ptr @__errno_location() #12
  %5175 = load i32, ptr %5174, align 4, !tbaa !5
  store i32 %5175, ptr %107, align 4, !tbaa !5
  %5176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5177 = call i32 @s2n_print_stacktrace(ptr noundef %5176)
  %5178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5179 = trunc i8 %5178 to i1
  br i1 %5179, label %5180, label %5202

5180:                                             ; preds = %5173
  %5181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5182 = call i32 @fileno(ptr noundef %5181) #11
  %5183 = call i32 @isatty(i32 noundef %5182) #11
  %5184 = icmp ne i32 %5183, 0
  br i1 %5184, label %5185, label %5202

5185:                                             ; preds = %5180
  %5186 = load i32, ptr %107, align 4, !tbaa !5
  %5187 = call ptr @__errno_location() #12
  store i32 %5186, ptr %5187, align 4, !tbaa !5
  %5188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5189 = load i32, ptr @test_count, align 4, !tbaa !5
  %5190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5191 = load i32, ptr %5190, align 4, !tbaa !5
  %5192 = call ptr @s2n_strerror(i32 noundef %5191, ptr noundef @.str.4)
  %5193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5194 = load i32, ptr %5193, align 4, !tbaa !5
  %5195 = call ptr @s2n_strerror_debug(i32 noundef %5194, ptr noundef @.str.4)
  %5196 = call ptr @__errno_location() #12
  %5197 = load i32, ptr %5196, align 4, !tbaa !5
  %5198 = call ptr @strerror(i32 noundef %5197) #11
  %5199 = call ptr @__errno_location() #12
  %5200 = load i32, ptr %5199, align 4, !tbaa !5
  %5201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5188, ptr noundef @.str.2, i32 noundef %5189, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 191, ptr noundef %5192, ptr noundef %5195, ptr noundef %5198, i32 noundef %5200) #11
  br label %5219

5202:                                             ; preds = %5180, %5173
  %5203 = load i32, ptr %107, align 4, !tbaa !5
  %5204 = call ptr @__errno_location() #12
  store i32 %5203, ptr %5204, align 4, !tbaa !5
  %5205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5206 = load i32, ptr @test_count, align 4, !tbaa !5
  %5207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5208 = load i32, ptr %5207, align 4, !tbaa !5
  %5209 = call ptr @s2n_strerror(i32 noundef %5208, ptr noundef @.str.4)
  %5210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5211 = load i32, ptr %5210, align 4, !tbaa !5
  %5212 = call ptr @s2n_strerror_debug(i32 noundef %5211, ptr noundef @.str.4)
  %5213 = call ptr @__errno_location() #12
  %5214 = load i32, ptr %5213, align 4, !tbaa !5
  %5215 = call ptr @strerror(i32 noundef %5214) #11
  %5216 = call ptr @__errno_location() #12
  %5217 = load i32, ptr %5216, align 4, !tbaa !5
  %5218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5205, ptr noundef @.str.5, i32 noundef %5206, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 191, ptr noundef %5209, ptr noundef %5212, ptr noundef %5215, i32 noundef %5217) #11
  br label %5219

5219:                                             ; preds = %5202, %5185
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #11
  br label %5220

5220:                                             ; preds = %5219
  br label %5221

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

5222:                                             ; No predecessors!
  br label %5223

5223:                                             ; preds = %5222
  br label %5224

5224:                                             ; preds = %5223, %5166
  br label %5225

5225:                                             ; preds = %5224
  br label %5226

5226:                                             ; preds = %5225
  br label %5227

5227:                                             ; preds = %5226
  %5228 = load i32, ptr @test_count, align 4, !tbaa !5
  %5229 = add nsw i32 %5228, 1
  store i32 %5229, ptr @test_count, align 4, !tbaa !5
  %5230 = call i32 @s2n_stuffer_write_uint8(ptr noundef %106, i8 noundef zeroext 10)
  %5231 = icmp eq i32 %5230, -1
  br i1 %5231, label %5232, label %5285

5232:                                             ; preds = %5227
  br label %5233

5233:                                             ; preds = %5232
  br label %5234

5234:                                             ; preds = %5233
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #11
  %5235 = call ptr @__errno_location() #12
  %5236 = load i32, ptr %5235, align 4, !tbaa !5
  store i32 %5236, ptr %108, align 4, !tbaa !5
  %5237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5238 = call i32 @s2n_print_stacktrace(ptr noundef %5237)
  %5239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5240 = trunc i8 %5239 to i1
  br i1 %5240, label %5241, label %5263

5241:                                             ; preds = %5234
  %5242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5243 = call i32 @fileno(ptr noundef %5242) #11
  %5244 = call i32 @isatty(i32 noundef %5243) #11
  %5245 = icmp ne i32 %5244, 0
  br i1 %5245, label %5246, label %5263

5246:                                             ; preds = %5241
  %5247 = load i32, ptr %108, align 4, !tbaa !5
  %5248 = call ptr @__errno_location() #12
  store i32 %5247, ptr %5248, align 4, !tbaa !5
  %5249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5250 = load i32, ptr @test_count, align 4, !tbaa !5
  %5251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5252 = load i32, ptr %5251, align 4, !tbaa !5
  %5253 = call ptr @s2n_strerror(i32 noundef %5252, ptr noundef @.str.4)
  %5254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5255 = load i32, ptr %5254, align 4, !tbaa !5
  %5256 = call ptr @s2n_strerror_debug(i32 noundef %5255, ptr noundef @.str.4)
  %5257 = call ptr @__errno_location() #12
  %5258 = load i32, ptr %5257, align 4, !tbaa !5
  %5259 = call ptr @strerror(i32 noundef %5258) #11
  %5260 = call ptr @__errno_location() #12
  %5261 = load i32, ptr %5260, align 4, !tbaa !5
  %5262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5249, ptr noundef @.str.2, i32 noundef %5250, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 192, ptr noundef %5253, ptr noundef %5256, ptr noundef %5259, i32 noundef %5261) #11
  br label %5280

5263:                                             ; preds = %5241, %5234
  %5264 = load i32, ptr %108, align 4, !tbaa !5
  %5265 = call ptr @__errno_location() #12
  store i32 %5264, ptr %5265, align 4, !tbaa !5
  %5266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5267 = load i32, ptr @test_count, align 4, !tbaa !5
  %5268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5269 = load i32, ptr %5268, align 4, !tbaa !5
  %5270 = call ptr @s2n_strerror(i32 noundef %5269, ptr noundef @.str.4)
  %5271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5272 = load i32, ptr %5271, align 4, !tbaa !5
  %5273 = call ptr @s2n_strerror_debug(i32 noundef %5272, ptr noundef @.str.4)
  %5274 = call ptr @__errno_location() #12
  %5275 = load i32, ptr %5274, align 4, !tbaa !5
  %5276 = call ptr @strerror(i32 noundef %5275) #11
  %5277 = call ptr @__errno_location() #12
  %5278 = load i32, ptr %5277, align 4, !tbaa !5
  %5279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5266, ptr noundef @.str.5, i32 noundef %5267, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 192, ptr noundef %5270, ptr noundef %5273, ptr noundef %5276, i32 noundef %5278) #11
  br label %5280

5280:                                             ; preds = %5263, %5246
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #11
  br label %5281

5281:                                             ; preds = %5280
  br label %5282

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

5283:                                             ; No predecessors!
  br label %5284

5284:                                             ; preds = %5283
  br label %5285

5285:                                             ; preds = %5284, %5227
  br label %5286

5286:                                             ; preds = %5285
  br label %5287

5287:                                             ; preds = %5286
  br label %5288

5288:                                             ; preds = %5287
  %5289 = load i32, ptr @test_count, align 4, !tbaa !5
  %5290 = add nsw i32 %5289, 1
  store i32 %5290, ptr @test_count, align 4, !tbaa !5
  %5291 = getelementptr inbounds [10 x i8], ptr %9, i64 0, i64 0
  %5292 = call i32 @s2n_stuffer_write_bytes(ptr noundef %106, ptr noundef %5291, i32 noundef 10)
  %5293 = icmp eq i32 %5292, -1
  br i1 %5293, label %5294, label %5347

5294:                                             ; preds = %5288
  br label %5295

5295:                                             ; preds = %5294
  br label %5296

5296:                                             ; preds = %5295
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #11
  %5297 = call ptr @__errno_location() #12
  %5298 = load i32, ptr %5297, align 4, !tbaa !5
  store i32 %5298, ptr %109, align 4, !tbaa !5
  %5299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5300 = call i32 @s2n_print_stacktrace(ptr noundef %5299)
  %5301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5302 = trunc i8 %5301 to i1
  br i1 %5302, label %5303, label %5325

5303:                                             ; preds = %5296
  %5304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5305 = call i32 @fileno(ptr noundef %5304) #11
  %5306 = call i32 @isatty(i32 noundef %5305) #11
  %5307 = icmp ne i32 %5306, 0
  br i1 %5307, label %5308, label %5325

5308:                                             ; preds = %5303
  %5309 = load i32, ptr %109, align 4, !tbaa !5
  %5310 = call ptr @__errno_location() #12
  store i32 %5309, ptr %5310, align 4, !tbaa !5
  %5311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5312 = load i32, ptr @test_count, align 4, !tbaa !5
  %5313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5314 = load i32, ptr %5313, align 4, !tbaa !5
  %5315 = call ptr @s2n_strerror(i32 noundef %5314, ptr noundef @.str.4)
  %5316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5317 = load i32, ptr %5316, align 4, !tbaa !5
  %5318 = call ptr @s2n_strerror_debug(i32 noundef %5317, ptr noundef @.str.4)
  %5319 = call ptr @__errno_location() #12
  %5320 = load i32, ptr %5319, align 4, !tbaa !5
  %5321 = call ptr @strerror(i32 noundef %5320) #11
  %5322 = call ptr @__errno_location() #12
  %5323 = load i32, ptr %5322, align 4, !tbaa !5
  %5324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5311, ptr noundef @.str.2, i32 noundef %5312, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 193, ptr noundef %5315, ptr noundef %5318, ptr noundef %5321, i32 noundef %5323) #11
  br label %5342

5325:                                             ; preds = %5303, %5296
  %5326 = load i32, ptr %109, align 4, !tbaa !5
  %5327 = call ptr @__errno_location() #12
  store i32 %5326, ptr %5327, align 4, !tbaa !5
  %5328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5329 = load i32, ptr @test_count, align 4, !tbaa !5
  %5330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5331 = load i32, ptr %5330, align 4, !tbaa !5
  %5332 = call ptr @s2n_strerror(i32 noundef %5331, ptr noundef @.str.4)
  %5333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5334 = load i32, ptr %5333, align 4, !tbaa !5
  %5335 = call ptr @s2n_strerror_debug(i32 noundef %5334, ptr noundef @.str.4)
  %5336 = call ptr @__errno_location() #12
  %5337 = load i32, ptr %5336, align 4, !tbaa !5
  %5338 = call ptr @strerror(i32 noundef %5337) #11
  %5339 = call ptr @__errno_location() #12
  %5340 = load i32, ptr %5339, align 4, !tbaa !5
  %5341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5328, ptr noundef @.str.5, i32 noundef %5329, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 193, ptr noundef %5332, ptr noundef %5335, ptr noundef %5338, i32 noundef %5340) #11
  br label %5342

5342:                                             ; preds = %5325, %5308
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  br label %5343

5343:                                             ; preds = %5342
  br label %5344

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

5345:                                             ; No predecessors!
  br label %5346

5346:                                             ; preds = %5345
  br label %5347

5347:                                             ; preds = %5346, %5288
  br label %5348

5348:                                             ; preds = %5347
  br label %5349

5349:                                             ; preds = %5348
  call void @llvm.lifetime.start.p0(i64 24, ptr %110) #11
  call void @llvm.memset.p0.i64(ptr align 8 %110, i8 0, i64 24, i1 false)
  br label %5350

5350:                                             ; preds = %5349
  %5351 = load i32, ptr @test_count, align 4, !tbaa !5
  %5352 = add nsw i32 %5351, 1
  store i32 %5352, ptr @test_count, align 4, !tbaa !5
  %5353 = call i32 @s2n_protocol_preferences_read(ptr noundef %106, ptr noundef %110)
  %5354 = getelementptr inbounds %struct.s2n_result, ptr %111, i32 0, i32 0
  store i32 %5353, ptr %5354, align 4
  %5355 = getelementptr inbounds %struct.s2n_result, ptr %111, i32 0, i32 0
  %5356 = load i32, ptr %5355, align 4
  %5357 = call zeroext i1 @s2n_result_is_ok(i32 %5356)
  br i1 %5357, label %5411, label %5358

5358:                                             ; preds = %5350
  br label %5359

5359:                                             ; preds = %5358
  br label %5360

5360:                                             ; preds = %5359
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #11
  %5361 = call ptr @__errno_location() #12
  %5362 = load i32, ptr %5361, align 4, !tbaa !5
  store i32 %5362, ptr %112, align 4, !tbaa !5
  %5363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5364 = call i32 @s2n_print_stacktrace(ptr noundef %5363)
  %5365 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5366 = trunc i8 %5365 to i1
  br i1 %5366, label %5367, label %5389

5367:                                             ; preds = %5360
  %5368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5369 = call i32 @fileno(ptr noundef %5368) #11
  %5370 = call i32 @isatty(i32 noundef %5369) #11
  %5371 = icmp ne i32 %5370, 0
  br i1 %5371, label %5372, label %5389

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

5389:                                             ; preds = %5367, %5360
  %5390 = load i32, ptr %112, align 4, !tbaa !5
  %5391 = call ptr @__errno_location() #12
  store i32 %5390, ptr %5391, align 4, !tbaa !5
  %5392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5393 = load i32, ptr @test_count, align 4, !tbaa !5
  %5394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5395 = load i32, ptr %5394, align 4, !tbaa !5
  %5396 = call ptr @s2n_strerror(i32 noundef %5395, ptr noundef @.str.4)
  %5397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5398 = load i32, ptr %5397, align 4, !tbaa !5
  %5399 = call ptr @s2n_strerror_debug(i32 noundef %5398, ptr noundef @.str.4)
  %5400 = call ptr @__errno_location() #12
  %5401 = load i32, ptr %5400, align 4, !tbaa !5
  %5402 = call ptr @strerror(i32 noundef %5401) #11
  %5403 = call ptr @__errno_location() #12
  %5404 = load i32, ptr %5403, align 4, !tbaa !5
  %5405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5392, ptr noundef @.str.5, i32 noundef %5393, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 196, ptr noundef %5396, ptr noundef %5399, ptr noundef %5402, i32 noundef %5404) #11
  br label %5406

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

5407:                                             ; preds = %5406
  br label %5408

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

5409:                                             ; No predecessors!
  br label %5410

5410:                                             ; preds = %5409
  br label %5411

5411:                                             ; preds = %5410, %5350
  br label %5412

5412:                                             ; preds = %5411
  br label %5413

5413:                                             ; preds = %5412
  br label %5414

5414:                                             ; preds = %5413
  %5415 = load i32, ptr @test_count, align 4, !tbaa !5
  %5416 = add nsw i32 %5415, 1
  store i32 %5416, ptr @test_count, align 4, !tbaa !5
  %5417 = getelementptr inbounds %struct.s2n_blob, ptr %110, i32 0, i32 1
  %5418 = load i32, ptr %5417, align 8, !tbaa !48
  %5419 = zext i32 %5418 to i64
  %5420 = icmp eq i64 %5419, 10
  br i1 %5420, label %5474, label %5421

5421:                                             ; preds = %5414
  br label %5422

5422:                                             ; preds = %5421
  br label %5423

5423:                                             ; preds = %5422
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #11
  %5424 = call ptr @__errno_location() #12
  %5425 = load i32, ptr %5424, align 4, !tbaa !5
  store i32 %5425, ptr %113, align 4, !tbaa !5
  %5426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5427 = call i32 @s2n_print_stacktrace(ptr noundef %5426)
  %5428 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5429 = trunc i8 %5428 to i1
  br i1 %5429, label %5430, label %5452

5430:                                             ; preds = %5423
  %5431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5432 = call i32 @fileno(ptr noundef %5431) #11
  %5433 = call i32 @isatty(i32 noundef %5432) #11
  %5434 = icmp ne i32 %5433, 0
  br i1 %5434, label %5435, label %5452

5435:                                             ; preds = %5430
  %5436 = load i32, ptr %113, align 4, !tbaa !5
  %5437 = call ptr @__errno_location() #12
  store i32 %5436, ptr %5437, align 4, !tbaa !5
  %5438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5439 = load i32, ptr @test_count, align 4, !tbaa !5
  %5440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5441 = load i32, ptr %5440, align 4, !tbaa !5
  %5442 = call ptr @s2n_strerror(i32 noundef %5441, ptr noundef @.str.4)
  %5443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5444 = load i32, ptr %5443, align 4, !tbaa !5
  %5445 = call ptr @s2n_strerror_debug(i32 noundef %5444, ptr noundef @.str.4)
  %5446 = call ptr @__errno_location() #12
  %5447 = load i32, ptr %5446, align 4, !tbaa !5
  %5448 = call ptr @strerror(i32 noundef %5447) #11
  %5449 = call ptr @__errno_location() #12
  %5450 = load i32, ptr %5449, align 4, !tbaa !5
  %5451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5438, ptr noundef @.str.2, i32 noundef %5439, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 197, ptr noundef %5442, ptr noundef %5445, ptr noundef %5448, i32 noundef %5450) #11
  br label %5469

5452:                                             ; preds = %5430, %5423
  %5453 = load i32, ptr %113, align 4, !tbaa !5
  %5454 = call ptr @__errno_location() #12
  store i32 %5453, ptr %5454, align 4, !tbaa !5
  %5455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5456 = load i32, ptr @test_count, align 4, !tbaa !5
  %5457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5458 = load i32, ptr %5457, align 4, !tbaa !5
  %5459 = call ptr @s2n_strerror(i32 noundef %5458, ptr noundef @.str.4)
  %5460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5461 = load i32, ptr %5460, align 4, !tbaa !5
  %5462 = call ptr @s2n_strerror_debug(i32 noundef %5461, ptr noundef @.str.4)
  %5463 = call ptr @__errno_location() #12
  %5464 = load i32, ptr %5463, align 4, !tbaa !5
  %5465 = call ptr @strerror(i32 noundef %5464) #11
  %5466 = call ptr @__errno_location() #12
  %5467 = load i32, ptr %5466, align 4, !tbaa !5
  %5468 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5455, ptr noundef @.str.5, i32 noundef %5456, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 197, ptr noundef %5459, ptr noundef %5462, ptr noundef %5465, i32 noundef %5467) #11
  br label %5469

5469:                                             ; preds = %5452, %5435
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %5470

5470:                                             ; preds = %5469
  br label %5471

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

5472:                                             ; No predecessors!
  br label %5473

5473:                                             ; preds = %5472
  br label %5474

5474:                                             ; preds = %5473, %5414
  br label %5475

5475:                                             ; preds = %5474
  br label %5476

5476:                                             ; preds = %5475
  br label %5477

5477:                                             ; preds = %5476
  br label %5478

5478:                                             ; preds = %5477
  %5479 = load i32, ptr @test_count, align 4, !tbaa !5
  %5480 = add nsw i32 %5479, 1
  store i32 %5480, ptr @test_count, align 4, !tbaa !5
  %5481 = getelementptr inbounds %struct.s2n_blob, ptr %110, i32 0, i32 0
  %5482 = load ptr, ptr %5481, align 8, !tbaa !49
  %5483 = getelementptr inbounds [10 x i8], ptr %9, i64 0, i64 0
  %5484 = call i32 @memcmp(ptr noundef %5482, ptr noundef %5483, i64 noundef 10) #14
  %5485 = icmp eq i32 %5484, 0
  br i1 %5485, label %5539, label %5486

5486:                                             ; preds = %5478
  br label %5487

5487:                                             ; preds = %5486
  br label %5488

5488:                                             ; preds = %5487
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #11
  %5489 = call ptr @__errno_location() #12
  %5490 = load i32, ptr %5489, align 4, !tbaa !5
  store i32 %5490, ptr %114, align 4, !tbaa !5
  %5491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5492 = call i32 @s2n_print_stacktrace(ptr noundef %5491)
  %5493 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5494 = trunc i8 %5493 to i1
  br i1 %5494, label %5495, label %5517

5495:                                             ; preds = %5488
  %5496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5497 = call i32 @fileno(ptr noundef %5496) #11
  %5498 = call i32 @isatty(i32 noundef %5497) #11
  %5499 = icmp ne i32 %5498, 0
  br i1 %5499, label %5500, label %5517

5500:                                             ; preds = %5495
  %5501 = load i32, ptr %114, align 4, !tbaa !5
  %5502 = call ptr @__errno_location() #12
  store i32 %5501, ptr %5502, align 4, !tbaa !5
  %5503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5504 = load i32, ptr @test_count, align 4, !tbaa !5
  %5505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5506 = load i32, ptr %5505, align 4, !tbaa !5
  %5507 = call ptr @s2n_strerror(i32 noundef %5506, ptr noundef @.str.4)
  %5508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5509 = load i32, ptr %5508, align 4, !tbaa !5
  %5510 = call ptr @s2n_strerror_debug(i32 noundef %5509, ptr noundef @.str.4)
  %5511 = call ptr @__errno_location() #12
  %5512 = load i32, ptr %5511, align 4, !tbaa !5
  %5513 = call ptr @strerror(i32 noundef %5512) #11
  %5514 = call ptr @__errno_location() #12
  %5515 = load i32, ptr %5514, align 4, !tbaa !5
  %5516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5503, ptr noundef @.str.2, i32 noundef %5504, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 198, ptr noundef %5507, ptr noundef %5510, ptr noundef %5513, i32 noundef %5515) #11
  br label %5534

5517:                                             ; preds = %5495, %5488
  %5518 = load i32, ptr %114, align 4, !tbaa !5
  %5519 = call ptr @__errno_location() #12
  store i32 %5518, ptr %5519, align 4, !tbaa !5
  %5520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5521 = load i32, ptr @test_count, align 4, !tbaa !5
  %5522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5523 = load i32, ptr %5522, align 4, !tbaa !5
  %5524 = call ptr @s2n_strerror(i32 noundef %5523, ptr noundef @.str.4)
  %5525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5526 = load i32, ptr %5525, align 4, !tbaa !5
  %5527 = call ptr @s2n_strerror_debug(i32 noundef %5526, ptr noundef @.str.4)
  %5528 = call ptr @__errno_location() #12
  %5529 = load i32, ptr %5528, align 4, !tbaa !5
  %5530 = call ptr @strerror(i32 noundef %5529) #11
  %5531 = call ptr @__errno_location() #12
  %5532 = load i32, ptr %5531, align 4, !tbaa !5
  %5533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5520, ptr noundef @.str.5, i32 noundef %5521, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 198, ptr noundef %5524, ptr noundef %5527, ptr noundef %5530, i32 noundef %5532) #11
  br label %5534

5534:                                             ; preds = %5517, %5500
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  br label %5535

5535:                                             ; preds = %5534
  br label %5536

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

5537:                                             ; No predecessors!
  br label %5538

5538:                                             ; preds = %5537
  br label %5539

5539:                                             ; preds = %5538, %5478
  br label %5540

5540:                                             ; preds = %5539
  br label %5541

5541:                                             ; preds = %5540
  br label %5542

5542:                                             ; preds = %5541
  br label %5543

5543:                                             ; preds = %5542
  br label %5544

5544:                                             ; preds = %5543
  %5545 = load i32, ptr @test_count, align 4, !tbaa !5
  %5546 = add nsw i32 %5545, 1
  store i32 %5546, ptr @test_count, align 4, !tbaa !5
  %5547 = call i32 @s2n_stuffer_free(ptr noundef %106)
  %5548 = icmp eq i32 %5547, -1
  br i1 %5548, label %5549, label %5602

5549:                                             ; preds = %5544
  br label %5550

5550:                                             ; preds = %5549
  br label %5551

5551:                                             ; preds = %5550
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #11
  %5552 = call ptr @__errno_location() #12
  %5553 = load i32, ptr %5552, align 4, !tbaa !5
  store i32 %5553, ptr %115, align 4, !tbaa !5
  %5554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5555 = call i32 @s2n_print_stacktrace(ptr noundef %5554)
  %5556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5557 = trunc i8 %5556 to i1
  br i1 %5557, label %5558, label %5580

5558:                                             ; preds = %5551
  %5559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5560 = call i32 @fileno(ptr noundef %5559) #11
  %5561 = call i32 @isatty(i32 noundef %5560) #11
  %5562 = icmp ne i32 %5561, 0
  br i1 %5562, label %5563, label %5580

5563:                                             ; preds = %5558
  %5564 = load i32, ptr %115, align 4, !tbaa !5
  %5565 = call ptr @__errno_location() #12
  store i32 %5564, ptr %5565, align 4, !tbaa !5
  %5566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5567 = load i32, ptr @test_count, align 4, !tbaa !5
  %5568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5569 = load i32, ptr %5568, align 4, !tbaa !5
  %5570 = call ptr @s2n_strerror(i32 noundef %5569, ptr noundef @.str.4)
  %5571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5572 = load i32, ptr %5571, align 4, !tbaa !5
  %5573 = call ptr @s2n_strerror_debug(i32 noundef %5572, ptr noundef @.str.4)
  %5574 = call ptr @__errno_location() #12
  %5575 = load i32, ptr %5574, align 4, !tbaa !5
  %5576 = call ptr @strerror(i32 noundef %5575) #11
  %5577 = call ptr @__errno_location() #12
  %5578 = load i32, ptr %5577, align 4, !tbaa !5
  %5579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5566, ptr noundef @.str.2, i32 noundef %5567, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 200, ptr noundef %5570, ptr noundef %5573, ptr noundef %5576, i32 noundef %5578) #11
  br label %5597

5580:                                             ; preds = %5558, %5551
  %5581 = load i32, ptr %115, align 4, !tbaa !5
  %5582 = call ptr @__errno_location() #12
  store i32 %5581, ptr %5582, align 4, !tbaa !5
  %5583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5584 = load i32, ptr @test_count, align 4, !tbaa !5
  %5585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5586 = load i32, ptr %5585, align 4, !tbaa !5
  %5587 = call ptr @s2n_strerror(i32 noundef %5586, ptr noundef @.str.4)
  %5588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5589 = load i32, ptr %5588, align 4, !tbaa !5
  %5590 = call ptr @s2n_strerror_debug(i32 noundef %5589, ptr noundef @.str.4)
  %5591 = call ptr @__errno_location() #12
  %5592 = load i32, ptr %5591, align 4, !tbaa !5
  %5593 = call ptr @strerror(i32 noundef %5592) #11
  %5594 = call ptr @__errno_location() #12
  %5595 = load i32, ptr %5594, align 4, !tbaa !5
  %5596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5583, ptr noundef @.str.5, i32 noundef %5584, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 200, ptr noundef %5587, ptr noundef %5590, ptr noundef %5593, i32 noundef %5595) #11
  br label %5597

5597:                                             ; preds = %5580, %5563
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %5598

5598:                                             ; preds = %5597
  br label %5599

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

5600:                                             ; No predecessors!
  br label %5601

5601:                                             ; preds = %5600
  br label %5602

5602:                                             ; preds = %5601, %5544
  br label %5603

5603:                                             ; preds = %5602
  br label %5604

5604:                                             ; preds = %5603
  call void @llvm.lifetime.end.p0(i64 24, ptr %110) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %106) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #11
  %5605 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5605, ptr %116, align 8, !tbaa !9
  br label %5606

5606:                                             ; preds = %5604
  %5607 = load i32, ptr @test_count, align 4, !tbaa !5
  %5608 = add nsw i32 %5607, 1
  store i32 %5608, ptr @test_count, align 4, !tbaa !5
  %5609 = load ptr, ptr %116, align 8, !tbaa !9
  %5610 = icmp eq ptr %5609, null
  br i1 %5610, label %5611, label %5664

5611:                                             ; preds = %5606
  br label %5612

5612:                                             ; preds = %5611
  br label %5613

5613:                                             ; preds = %5612
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #11
  %5614 = call ptr @__errno_location() #12
  %5615 = load i32, ptr %5614, align 4, !tbaa !5
  store i32 %5615, ptr %117, align 4, !tbaa !5
  %5616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5617 = call i32 @s2n_print_stacktrace(ptr noundef %5616)
  %5618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5619 = trunc i8 %5618 to i1
  br i1 %5619, label %5620, label %5642

5620:                                             ; preds = %5613
  %5621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5622 = call i32 @fileno(ptr noundef %5621) #11
  %5623 = call i32 @isatty(i32 noundef %5622) #11
  %5624 = icmp ne i32 %5623, 0
  br i1 %5624, label %5625, label %5642

5625:                                             ; preds = %5620
  %5626 = load i32, ptr %117, align 4, !tbaa !5
  %5627 = call ptr @__errno_location() #12
  store i32 %5626, ptr %5627, align 4, !tbaa !5
  %5628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5629 = load i32, ptr @test_count, align 4, !tbaa !5
  %5630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5631 = load i32, ptr %5630, align 4, !tbaa !5
  %5632 = call ptr @s2n_strerror(i32 noundef %5631, ptr noundef @.str.4)
  %5633 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5634 = load i32, ptr %5633, align 4, !tbaa !5
  %5635 = call ptr @s2n_strerror_debug(i32 noundef %5634, ptr noundef @.str.4)
  %5636 = call ptr @__errno_location() #12
  %5637 = load i32, ptr %5636, align 4, !tbaa !5
  %5638 = call ptr @strerror(i32 noundef %5637) #11
  %5639 = call ptr @__errno_location() #12
  %5640 = load i32, ptr %5639, align 4, !tbaa !5
  %5641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5628, ptr noundef @.str.2, i32 noundef %5629, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 206, ptr noundef %5632, ptr noundef %5635, ptr noundef %5638, i32 noundef %5640) #11
  br label %5659

5642:                                             ; preds = %5620, %5613
  %5643 = load i32, ptr %117, align 4, !tbaa !5
  %5644 = call ptr @__errno_location() #12
  store i32 %5643, ptr %5644, align 4, !tbaa !5
  %5645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5646 = load i32, ptr @test_count, align 4, !tbaa !5
  %5647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5648 = load i32, ptr %5647, align 4, !tbaa !5
  %5649 = call ptr @s2n_strerror(i32 noundef %5648, ptr noundef @.str.4)
  %5650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5651 = load i32, ptr %5650, align 4, !tbaa !5
  %5652 = call ptr @s2n_strerror_debug(i32 noundef %5651, ptr noundef @.str.4)
  %5653 = call ptr @__errno_location() #12
  %5654 = load i32, ptr %5653, align 4, !tbaa !5
  %5655 = call ptr @strerror(i32 noundef %5654) #11
  %5656 = call ptr @__errno_location() #12
  %5657 = load i32, ptr %5656, align 4, !tbaa !5
  %5658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5645, ptr noundef @.str.5, i32 noundef %5646, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 206, ptr noundef %5649, ptr noundef %5652, ptr noundef %5655, i32 noundef %5657) #11
  br label %5659

5659:                                             ; preds = %5642, %5625
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %5660

5660:                                             ; preds = %5659
  br label %5661

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

5662:                                             ; No predecessors!
  br label %5663

5663:                                             ; preds = %5662
  br label %5664

5664:                                             ; preds = %5663, %5606
  br label %5665

5665:                                             ; preds = %5664
  br label %5666

5666:                                             ; preds = %5665
  br label %5667

5667:                                             ; preds = %5666
  %5668 = load i32, ptr @test_count, align 4, !tbaa !5
  %5669 = add nsw i32 %5668, 1
  store i32 %5669, ptr @test_count, align 4, !tbaa !5
  %5670 = load ptr, ptr %116, align 8, !tbaa !9
  %5671 = getelementptr inbounds [10 x i8], ptr %9, i64 0, i64 0
  %5672 = call i32 @s2n_connection_append_protocol_preference(ptr noundef %5670, ptr noundef %5671, i8 noundef zeroext 10)
  %5673 = icmp eq i32 %5672, -1
  br i1 %5673, label %5674, label %5727

5674:                                             ; preds = %5667
  br label %5675

5675:                                             ; preds = %5674
  br label %5676

5676:                                             ; preds = %5675
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #11
  %5677 = call ptr @__errno_location() #12
  %5678 = load i32, ptr %5677, align 4, !tbaa !5
  store i32 %5678, ptr %118, align 4, !tbaa !5
  %5679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5680 = call i32 @s2n_print_stacktrace(ptr noundef %5679)
  %5681 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5682 = trunc i8 %5681 to i1
  br i1 %5682, label %5683, label %5705

5683:                                             ; preds = %5676
  %5684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5685 = call i32 @fileno(ptr noundef %5684) #11
  %5686 = call i32 @isatty(i32 noundef %5685) #11
  %5687 = icmp ne i32 %5686, 0
  br i1 %5687, label %5688, label %5705

5688:                                             ; preds = %5683
  %5689 = load i32, ptr %118, align 4, !tbaa !5
  %5690 = call ptr @__errno_location() #12
  store i32 %5689, ptr %5690, align 4, !tbaa !5
  %5691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5692 = load i32, ptr @test_count, align 4, !tbaa !5
  %5693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5694 = load i32, ptr %5693, align 4, !tbaa !5
  %5695 = call ptr @s2n_strerror(i32 noundef %5694, ptr noundef @.str.4)
  %5696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5697 = load i32, ptr %5696, align 4, !tbaa !5
  %5698 = call ptr @s2n_strerror_debug(i32 noundef %5697, ptr noundef @.str.4)
  %5699 = call ptr @__errno_location() #12
  %5700 = load i32, ptr %5699, align 4, !tbaa !5
  %5701 = call ptr @strerror(i32 noundef %5700) #11
  %5702 = call ptr @__errno_location() #12
  %5703 = load i32, ptr %5702, align 4, !tbaa !5
  %5704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5691, ptr noundef @.str.2, i32 noundef %5692, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 208, ptr noundef %5695, ptr noundef %5698, ptr noundef %5701, i32 noundef %5703) #11
  br label %5722

5705:                                             ; preds = %5683, %5676
  %5706 = load i32, ptr %118, align 4, !tbaa !5
  %5707 = call ptr @__errno_location() #12
  store i32 %5706, ptr %5707, align 4, !tbaa !5
  %5708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5709 = load i32, ptr @test_count, align 4, !tbaa !5
  %5710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5711 = load i32, ptr %5710, align 4, !tbaa !5
  %5712 = call ptr @s2n_strerror(i32 noundef %5711, ptr noundef @.str.4)
  %5713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5714 = load i32, ptr %5713, align 4, !tbaa !5
  %5715 = call ptr @s2n_strerror_debug(i32 noundef %5714, ptr noundef @.str.4)
  %5716 = call ptr @__errno_location() #12
  %5717 = load i32, ptr %5716, align 4, !tbaa !5
  %5718 = call ptr @strerror(i32 noundef %5717) #11
  %5719 = call ptr @__errno_location() #12
  %5720 = load i32, ptr %5719, align 4, !tbaa !5
  %5721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5708, ptr noundef @.str.5, i32 noundef %5709, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 208, ptr noundef %5712, ptr noundef %5715, ptr noundef %5718, i32 noundef %5720) #11
  br label %5722

5722:                                             ; preds = %5705, %5688
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %5723

5723:                                             ; preds = %5722
  br label %5724

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

5725:                                             ; No predecessors!
  br label %5726

5726:                                             ; preds = %5725
  br label %5727

5727:                                             ; preds = %5726, %5667
  br label %5728

5728:                                             ; preds = %5727
  br label %5729

5729:                                             ; preds = %5728
  br label %5730

5730:                                             ; preds = %5729
  %5731 = load i32, ptr @test_count, align 4, !tbaa !5
  %5732 = add nsw i32 %5731, 1
  store i32 %5732, ptr @test_count, align 4, !tbaa !5
  %5733 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_alpn_extension, i32 0, i32 3), align 8, !tbaa !50
  %5734 = load ptr, ptr %116, align 8, !tbaa !9
  %5735 = load ptr, ptr %116, align 8, !tbaa !9
  %5736 = getelementptr inbounds %struct.s2n_connection, ptr %5735, i32 0, i32 52
  %5737 = getelementptr inbounds %struct.s2n_handshake, ptr %5736, i32 0, i32 0
  %5738 = call i32 %5733(ptr noundef %5734, ptr noundef %5737)
  %5739 = icmp eq i32 %5738, -1
  br i1 %5739, label %5740, label %5793

5740:                                             ; preds = %5730
  br label %5741

5741:                                             ; preds = %5740
  br label %5742

5742:                                             ; preds = %5741
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #11
  %5743 = call ptr @__errno_location() #12
  %5744 = load i32, ptr %5743, align 4, !tbaa !5
  store i32 %5744, ptr %119, align 4, !tbaa !5
  %5745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5746 = call i32 @s2n_print_stacktrace(ptr noundef %5745)
  %5747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5748 = trunc i8 %5747 to i1
  br i1 %5748, label %5749, label %5771

5749:                                             ; preds = %5742
  %5750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5751 = call i32 @fileno(ptr noundef %5750) #11
  %5752 = call i32 @isatty(i32 noundef %5751) #11
  %5753 = icmp ne i32 %5752, 0
  br i1 %5753, label %5754, label %5771

5754:                                             ; preds = %5749
  %5755 = load i32, ptr %119, align 4, !tbaa !5
  %5756 = call ptr @__errno_location() #12
  store i32 %5755, ptr %5756, align 4, !tbaa !5
  %5757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5758 = load i32, ptr @test_count, align 4, !tbaa !5
  %5759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5760 = load i32, ptr %5759, align 4, !tbaa !5
  %5761 = call ptr @s2n_strerror(i32 noundef %5760, ptr noundef @.str.4)
  %5762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5763 = load i32, ptr %5762, align 4, !tbaa !5
  %5764 = call ptr @s2n_strerror_debug(i32 noundef %5763, ptr noundef @.str.4)
  %5765 = call ptr @__errno_location() #12
  %5766 = load i32, ptr %5765, align 4, !tbaa !5
  %5767 = call ptr @strerror(i32 noundef %5766) #11
  %5768 = call ptr @__errno_location() #12
  %5769 = load i32, ptr %5768, align 4, !tbaa !5
  %5770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5757, ptr noundef @.str.2, i32 noundef %5758, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 209, ptr noundef %5761, ptr noundef %5764, ptr noundef %5767, i32 noundef %5769) #11
  br label %5788

5771:                                             ; preds = %5749, %5742
  %5772 = load i32, ptr %119, align 4, !tbaa !5
  %5773 = call ptr @__errno_location() #12
  store i32 %5772, ptr %5773, align 4, !tbaa !5
  %5774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5775 = load i32, ptr @test_count, align 4, !tbaa !5
  %5776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5777 = load i32, ptr %5776, align 4, !tbaa !5
  %5778 = call ptr @s2n_strerror(i32 noundef %5777, ptr noundef @.str.4)
  %5779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5780 = load i32, ptr %5779, align 4, !tbaa !5
  %5781 = call ptr @s2n_strerror_debug(i32 noundef %5780, ptr noundef @.str.4)
  %5782 = call ptr @__errno_location() #12
  %5783 = load i32, ptr %5782, align 4, !tbaa !5
  %5784 = call ptr @strerror(i32 noundef %5783) #11
  %5785 = call ptr @__errno_location() #12
  %5786 = load i32, ptr %5785, align 4, !tbaa !5
  %5787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5774, ptr noundef @.str.5, i32 noundef %5775, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 209, ptr noundef %5778, ptr noundef %5781, ptr noundef %5784, i32 noundef %5786) #11
  br label %5788

5788:                                             ; preds = %5771, %5754
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #11
  br label %5789

5789:                                             ; preds = %5788
  br label %5790

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

5791:                                             ; No predecessors!
  br label %5792

5792:                                             ; preds = %5791
  br label %5793

5793:                                             ; preds = %5792, %5730
  br label %5794

5794:                                             ; preds = %5793
  br label %5795

5795:                                             ; preds = %5794
  br label %5796

5796:                                             ; preds = %5795
  %5797 = load i32, ptr @test_count, align 4, !tbaa !5
  %5798 = add nsw i32 %5797, 1
  store i32 %5798, ptr @test_count, align 4, !tbaa !5
  %5799 = load ptr, ptr %116, align 8, !tbaa !9
  %5800 = getelementptr inbounds %struct.s2n_connection, ptr %5799, i32 0, i32 52
  %5801 = getelementptr inbounds %struct.s2n_handshake, ptr %5800, i32 0, i32 0
  %5802 = call i32 @s2n_stuffer_skip_read(ptr noundef %5801, i32 noundef 2)
  %5803 = icmp eq i32 %5802, -1
  br i1 %5803, label %5804, label %5857

5804:                                             ; preds = %5796
  br label %5805

5805:                                             ; preds = %5804
  br label %5806

5806:                                             ; preds = %5805
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #11
  %5807 = call ptr @__errno_location() #12
  %5808 = load i32, ptr %5807, align 4, !tbaa !5
  store i32 %5808, ptr %120, align 4, !tbaa !5
  %5809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5810 = call i32 @s2n_print_stacktrace(ptr noundef %5809)
  %5811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5812 = trunc i8 %5811 to i1
  br i1 %5812, label %5813, label %5835

5813:                                             ; preds = %5806
  %5814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5815 = call i32 @fileno(ptr noundef %5814) #11
  %5816 = call i32 @isatty(i32 noundef %5815) #11
  %5817 = icmp ne i32 %5816, 0
  br i1 %5817, label %5818, label %5835

5818:                                             ; preds = %5813
  %5819 = load i32, ptr %120, align 4, !tbaa !5
  %5820 = call ptr @__errno_location() #12
  store i32 %5819, ptr %5820, align 4, !tbaa !5
  %5821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5822 = load i32, ptr @test_count, align 4, !tbaa !5
  %5823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5824 = load i32, ptr %5823, align 4, !tbaa !5
  %5825 = call ptr @s2n_strerror(i32 noundef %5824, ptr noundef @.str.4)
  %5826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5827 = load i32, ptr %5826, align 4, !tbaa !5
  %5828 = call ptr @s2n_strerror_debug(i32 noundef %5827, ptr noundef @.str.4)
  %5829 = call ptr @__errno_location() #12
  %5830 = load i32, ptr %5829, align 4, !tbaa !5
  %5831 = call ptr @strerror(i32 noundef %5830) #11
  %5832 = call ptr @__errno_location() #12
  %5833 = load i32, ptr %5832, align 4, !tbaa !5
  %5834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5821, ptr noundef @.str.2, i32 noundef %5822, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 212, ptr noundef %5825, ptr noundef %5828, ptr noundef %5831, i32 noundef %5833) #11
  br label %5852

5835:                                             ; preds = %5813, %5806
  %5836 = load i32, ptr %120, align 4, !tbaa !5
  %5837 = call ptr @__errno_location() #12
  store i32 %5836, ptr %5837, align 4, !tbaa !5
  %5838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5839 = load i32, ptr @test_count, align 4, !tbaa !5
  %5840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5841 = load i32, ptr %5840, align 4, !tbaa !5
  %5842 = call ptr @s2n_strerror(i32 noundef %5841, ptr noundef @.str.4)
  %5843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5844 = load i32, ptr %5843, align 4, !tbaa !5
  %5845 = call ptr @s2n_strerror_debug(i32 noundef %5844, ptr noundef @.str.4)
  %5846 = call ptr @__errno_location() #12
  %5847 = load i32, ptr %5846, align 4, !tbaa !5
  %5848 = call ptr @strerror(i32 noundef %5847) #11
  %5849 = call ptr @__errno_location() #12
  %5850 = load i32, ptr %5849, align 4, !tbaa !5
  %5851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5838, ptr noundef @.str.5, i32 noundef %5839, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 212, ptr noundef %5842, ptr noundef %5845, ptr noundef %5848, i32 noundef %5850) #11
  br label %5852

5852:                                             ; preds = %5835, %5818
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #11
  br label %5853

5853:                                             ; preds = %5852
  br label %5854

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

5855:                                             ; No predecessors!
  br label %5856

5856:                                             ; preds = %5855
  br label %5857

5857:                                             ; preds = %5856, %5796
  br label %5858

5858:                                             ; preds = %5857
  br label %5859

5859:                                             ; preds = %5858
  call void @llvm.lifetime.start.p0(i64 24, ptr %121) #11
  call void @llvm.memset.p0.i64(ptr align 8 %121, i8 0, i64 24, i1 false)
  br label %5860

5860:                                             ; preds = %5859
  %5861 = load i32, ptr @test_count, align 4, !tbaa !5
  %5862 = add nsw i32 %5861, 1
  store i32 %5862, ptr @test_count, align 4, !tbaa !5
  %5863 = load ptr, ptr %116, align 8, !tbaa !9
  %5864 = getelementptr inbounds %struct.s2n_connection, ptr %5863, i32 0, i32 52
  %5865 = getelementptr inbounds %struct.s2n_handshake, ptr %5864, i32 0, i32 0
  %5866 = call i32 @s2n_protocol_preferences_read(ptr noundef %5865, ptr noundef %121)
  %5867 = getelementptr inbounds %struct.s2n_result, ptr %122, i32 0, i32 0
  store i32 %5866, ptr %5867, align 4
  %5868 = getelementptr inbounds %struct.s2n_result, ptr %122, i32 0, i32 0
  %5869 = load i32, ptr %5868, align 4
  %5870 = call zeroext i1 @s2n_result_is_ok(i32 %5869)
  br i1 %5870, label %5924, label %5871

5871:                                             ; preds = %5860
  br label %5872

5872:                                             ; preds = %5871
  br label %5873

5873:                                             ; preds = %5872
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #11
  %5874 = call ptr @__errno_location() #12
  %5875 = load i32, ptr %5874, align 4, !tbaa !5
  store i32 %5875, ptr %123, align 4, !tbaa !5
  %5876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5877 = call i32 @s2n_print_stacktrace(ptr noundef %5876)
  %5878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5879 = trunc i8 %5878 to i1
  br i1 %5879, label %5880, label %5902

5880:                                             ; preds = %5873
  %5881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5882 = call i32 @fileno(ptr noundef %5881) #11
  %5883 = call i32 @isatty(i32 noundef %5882) #11
  %5884 = icmp ne i32 %5883, 0
  br i1 %5884, label %5885, label %5902

5885:                                             ; preds = %5880
  %5886 = load i32, ptr %123, align 4, !tbaa !5
  %5887 = call ptr @__errno_location() #12
  store i32 %5886, ptr %5887, align 4, !tbaa !5
  %5888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5889 = load i32, ptr @test_count, align 4, !tbaa !5
  %5890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5891 = load i32, ptr %5890, align 4, !tbaa !5
  %5892 = call ptr @s2n_strerror(i32 noundef %5891, ptr noundef @.str.4)
  %5893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5894 = load i32, ptr %5893, align 4, !tbaa !5
  %5895 = call ptr @s2n_strerror_debug(i32 noundef %5894, ptr noundef @.str.4)
  %5896 = call ptr @__errno_location() #12
  %5897 = load i32, ptr %5896, align 4, !tbaa !5
  %5898 = call ptr @strerror(i32 noundef %5897) #11
  %5899 = call ptr @__errno_location() #12
  %5900 = load i32, ptr %5899, align 4, !tbaa !5
  %5901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5888, ptr noundef @.str.2, i32 noundef %5889, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 215, ptr noundef %5892, ptr noundef %5895, ptr noundef %5898, i32 noundef %5900) #11
  br label %5919

5902:                                             ; preds = %5880, %5873
  %5903 = load i32, ptr %123, align 4, !tbaa !5
  %5904 = call ptr @__errno_location() #12
  store i32 %5903, ptr %5904, align 4, !tbaa !5
  %5905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5906 = load i32, ptr @test_count, align 4, !tbaa !5
  %5907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5908 = load i32, ptr %5907, align 4, !tbaa !5
  %5909 = call ptr @s2n_strerror(i32 noundef %5908, ptr noundef @.str.4)
  %5910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5911 = load i32, ptr %5910, align 4, !tbaa !5
  %5912 = call ptr @s2n_strerror_debug(i32 noundef %5911, ptr noundef @.str.4)
  %5913 = call ptr @__errno_location() #12
  %5914 = load i32, ptr %5913, align 4, !tbaa !5
  %5915 = call ptr @strerror(i32 noundef %5914) #11
  %5916 = call ptr @__errno_location() #12
  %5917 = load i32, ptr %5916, align 4, !tbaa !5
  %5918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5905, ptr noundef @.str.5, i32 noundef %5906, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 215, ptr noundef %5909, ptr noundef %5912, ptr noundef %5915, i32 noundef %5917) #11
  br label %5919

5919:                                             ; preds = %5902, %5885
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #11
  br label %5920

5920:                                             ; preds = %5919
  br label %5921

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

5922:                                             ; No predecessors!
  br label %5923

5923:                                             ; preds = %5922
  br label %5924

5924:                                             ; preds = %5923, %5860
  br label %5925

5925:                                             ; preds = %5924
  br label %5926

5926:                                             ; preds = %5925
  br label %5927

5927:                                             ; preds = %5926
  %5928 = load i32, ptr @test_count, align 4, !tbaa !5
  %5929 = add nsw i32 %5928, 1
  store i32 %5929, ptr @test_count, align 4, !tbaa !5
  %5930 = getelementptr inbounds %struct.s2n_blob, ptr %121, i32 0, i32 1
  %5931 = load i32, ptr %5930, align 8, !tbaa !48
  %5932 = zext i32 %5931 to i64
  %5933 = icmp eq i64 %5932, 10
  br i1 %5933, label %5987, label %5934

5934:                                             ; preds = %5927
  br label %5935

5935:                                             ; preds = %5934
  br label %5936

5936:                                             ; preds = %5935
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #11
  %5937 = call ptr @__errno_location() #12
  %5938 = load i32, ptr %5937, align 4, !tbaa !5
  store i32 %5938, ptr %124, align 4, !tbaa !5
  %5939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5940 = call i32 @s2n_print_stacktrace(ptr noundef %5939)
  %5941 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5942 = trunc i8 %5941 to i1
  br i1 %5942, label %5943, label %5965

5943:                                             ; preds = %5936
  %5944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5945 = call i32 @fileno(ptr noundef %5944) #11
  %5946 = call i32 @isatty(i32 noundef %5945) #11
  %5947 = icmp ne i32 %5946, 0
  br i1 %5947, label %5948, label %5965

5948:                                             ; preds = %5943
  %5949 = load i32, ptr %124, align 4, !tbaa !5
  %5950 = call ptr @__errno_location() #12
  store i32 %5949, ptr %5950, align 4, !tbaa !5
  %5951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5952 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %5954, ptr noundef @.str.4)
  %5956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5957 = load i32, ptr %5956, align 4, !tbaa !5
  %5958 = call ptr @s2n_strerror_debug(i32 noundef %5957, ptr noundef @.str.4)
  %5959 = call ptr @__errno_location() #12
  %5960 = load i32, ptr %5959, align 4, !tbaa !5
  %5961 = call ptr @strerror(i32 noundef %5960) #11
  %5962 = call ptr @__errno_location() #12
  %5963 = load i32, ptr %5962, align 4, !tbaa !5
  %5964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5951, ptr noundef @.str.2, i32 noundef %5952, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 216, ptr noundef %5955, ptr noundef %5958, ptr noundef %5961, i32 noundef %5963) #11
  br label %5982

5965:                                             ; preds = %5943, %5936
  %5966 = load i32, ptr %124, align 4, !tbaa !5
  %5967 = call ptr @__errno_location() #12
  store i32 %5966, ptr %5967, align 4, !tbaa !5
  %5968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5969 = load i32, ptr @test_count, align 4, !tbaa !5
  %5970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5971 = load i32, ptr %5970, align 4, !tbaa !5
  %5972 = call ptr @s2n_strerror(i32 noundef %5971, ptr noundef @.str.4)
  %5973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5974 = load i32, ptr %5973, align 4, !tbaa !5
  %5975 = call ptr @s2n_strerror_debug(i32 noundef %5974, ptr noundef @.str.4)
  %5976 = call ptr @__errno_location() #12
  %5977 = load i32, ptr %5976, align 4, !tbaa !5
  %5978 = call ptr @strerror(i32 noundef %5977) #11
  %5979 = call ptr @__errno_location() #12
  %5980 = load i32, ptr %5979, align 4, !tbaa !5
  %5981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5968, ptr noundef @.str.5, i32 noundef %5969, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 216, ptr noundef %5972, ptr noundef %5975, ptr noundef %5978, i32 noundef %5980) #11
  br label %5982

5982:                                             ; preds = %5965, %5948
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #11
  br label %5983

5983:                                             ; preds = %5982
  br label %5984

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

5985:                                             ; No predecessors!
  br label %5986

5986:                                             ; preds = %5985
  br label %5987

5987:                                             ; preds = %5986, %5927
  br label %5988

5988:                                             ; preds = %5987
  br label %5989

5989:                                             ; preds = %5988
  br label %5990

5990:                                             ; preds = %5989
  br label %5991

5991:                                             ; preds = %5990
  %5992 = load i32, ptr @test_count, align 4, !tbaa !5
  %5993 = add nsw i32 %5992, 1
  store i32 %5993, ptr @test_count, align 4, !tbaa !5
  %5994 = getelementptr inbounds %struct.s2n_blob, ptr %121, i32 0, i32 0
  %5995 = load ptr, ptr %5994, align 8, !tbaa !49
  %5996 = getelementptr inbounds [10 x i8], ptr %9, i64 0, i64 0
  %5997 = call i32 @memcmp(ptr noundef %5995, ptr noundef %5996, i64 noundef 10) #14
  %5998 = icmp eq i32 %5997, 0
  br i1 %5998, label %6052, label %5999

5999:                                             ; preds = %5991
  br label %6000

6000:                                             ; preds = %5999
  br label %6001

6001:                                             ; preds = %6000
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #11
  %6002 = call ptr @__errno_location() #12
  %6003 = load i32, ptr %6002, align 4, !tbaa !5
  store i32 %6003, ptr %125, align 4, !tbaa !5
  %6004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6005 = call i32 @s2n_print_stacktrace(ptr noundef %6004)
  %6006 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6007 = trunc i8 %6006 to i1
  br i1 %6007, label %6008, label %6030

6008:                                             ; preds = %6001
  %6009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6010 = call i32 @fileno(ptr noundef %6009) #11
  %6011 = call i32 @isatty(i32 noundef %6010) #11
  %6012 = icmp ne i32 %6011, 0
  br i1 %6012, label %6013, label %6030

6013:                                             ; preds = %6008
  %6014 = load i32, ptr %125, align 4, !tbaa !5
  %6015 = call ptr @__errno_location() #12
  store i32 %6014, ptr %6015, align 4, !tbaa !5
  %6016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6017 = load i32, ptr @test_count, align 4, !tbaa !5
  %6018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6019 = load i32, ptr %6018, align 4, !tbaa !5
  %6020 = call ptr @s2n_strerror(i32 noundef %6019, ptr noundef @.str.4)
  %6021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6022 = load i32, ptr %6021, align 4, !tbaa !5
  %6023 = call ptr @s2n_strerror_debug(i32 noundef %6022, ptr noundef @.str.4)
  %6024 = call ptr @__errno_location() #12
  %6025 = load i32, ptr %6024, align 4, !tbaa !5
  %6026 = call ptr @strerror(i32 noundef %6025) #11
  %6027 = call ptr @__errno_location() #12
  %6028 = load i32, ptr %6027, align 4, !tbaa !5
  %6029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6016, ptr noundef @.str.2, i32 noundef %6017, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 217, ptr noundef %6020, ptr noundef %6023, ptr noundef %6026, i32 noundef %6028) #11
  br label %6047

6030:                                             ; preds = %6008, %6001
  %6031 = load i32, ptr %125, align 4, !tbaa !5
  %6032 = call ptr @__errno_location() #12
  store i32 %6031, ptr %6032, align 4, !tbaa !5
  %6033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6034 = load i32, ptr @test_count, align 4, !tbaa !5
  %6035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6036 = load i32, ptr %6035, align 4, !tbaa !5
  %6037 = call ptr @s2n_strerror(i32 noundef %6036, ptr noundef @.str.4)
  %6038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6039 = load i32, ptr %6038, align 4, !tbaa !5
  %6040 = call ptr @s2n_strerror_debug(i32 noundef %6039, ptr noundef @.str.4)
  %6041 = call ptr @__errno_location() #12
  %6042 = load i32, ptr %6041, align 4, !tbaa !5
  %6043 = call ptr @strerror(i32 noundef %6042) #11
  %6044 = call ptr @__errno_location() #12
  %6045 = load i32, ptr %6044, align 4, !tbaa !5
  %6046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6033, ptr noundef @.str.5, i32 noundef %6034, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 217, ptr noundef %6037, ptr noundef %6040, ptr noundef %6043, i32 noundef %6045) #11
  br label %6047

6047:                                             ; preds = %6030, %6013
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #11
  br label %6048

6048:                                             ; preds = %6047
  br label %6049

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

6050:                                             ; No predecessors!
  br label %6051

6051:                                             ; preds = %6050
  br label %6052

6052:                                             ; preds = %6051, %5991
  br label %6053

6053:                                             ; preds = %6052
  br label %6054

6054:                                             ; preds = %6053
  br label %6055

6055:                                             ; preds = %6054
  br label %6056

6056:                                             ; preds = %6055
  br label %6057

6057:                                             ; preds = %6056
  %6058 = load i32, ptr @test_count, align 4, !tbaa !5
  %6059 = add nsw i32 %6058, 1
  store i32 %6059, ptr @test_count, align 4, !tbaa !5
  %6060 = load ptr, ptr %116, align 8, !tbaa !9
  %6061 = call i32 @s2n_connection_free(ptr noundef %6060)
  %6062 = icmp eq i32 %6061, -1
  br i1 %6062, label %6063, label %6116

6063:                                             ; preds = %6057
  br label %6064

6064:                                             ; preds = %6063
  br label %6065

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

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

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

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

6111:                                             ; preds = %6094, %6077
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #11
  br label %6112

6112:                                             ; preds = %6111
  br label %6113

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

6114:                                             ; No predecessors!
  br label %6115

6115:                                             ; preds = %6114
  br label %6116

6116:                                             ; preds = %6115, %6057
  br label %6117

6117:                                             ; preds = %6116
  br label %6118

6118:                                             ; preds = %6117
  call void @llvm.lifetime.end.p0(i64 24, ptr %121) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #11
  call void @llvm.lifetime.start.p0(i64 10, ptr %127) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %127, ptr align 1 @__const.main.protocol3, i64 10, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %128) #11
  call void @llvm.memset.p0.i64(ptr align 8 %128, i8 0, i64 24, i1 false)
  br label %6119

6119:                                             ; preds = %6118
  %6120 = load i32, ptr @test_count, align 4, !tbaa !5
  %6121 = add nsw i32 %6120, 1
  store i32 %6121, ptr @test_count, align 4, !tbaa !5
  %6122 = getelementptr inbounds [10 x i8], ptr %127, i64 0, i64 0
  %6123 = call i32 @s2n_blob_init(ptr noundef %128, ptr noundef %6122, i32 noundef 10)
  %6124 = icmp eq i32 %6123, -1
  br i1 %6124, label %6125, label %6178

6125:                                             ; preds = %6119
  br label %6126

6126:                                             ; preds = %6125
  br label %6127

6127:                                             ; preds = %6126
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #11
  %6128 = call ptr @__errno_location() #12
  %6129 = load i32, ptr %6128, align 4, !tbaa !5
  store i32 %6129, ptr %129, align 4, !tbaa !5
  %6130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6131 = call i32 @s2n_print_stacktrace(ptr noundef %6130)
  %6132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6133 = trunc i8 %6132 to i1
  br i1 %6133, label %6134, label %6156

6134:                                             ; preds = %6127
  %6135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6136 = call i32 @fileno(ptr noundef %6135) #11
  %6137 = call i32 @isatty(i32 noundef %6136) #11
  %6138 = icmp ne i32 %6137, 0
  br i1 %6138, label %6139, label %6156

6139:                                             ; preds = %6134
  %6140 = load i32, ptr %129, align 4, !tbaa !5
  %6141 = call ptr @__errno_location() #12
  store i32 %6140, ptr %6141, align 4, !tbaa !5
  %6142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6143 = load i32, ptr @test_count, align 4, !tbaa !5
  %6144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6145 = load i32, ptr %6144, align 4, !tbaa !5
  %6146 = call ptr @s2n_strerror(i32 noundef %6145, ptr noundef @.str.4)
  %6147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6148 = load i32, ptr %6147, align 4, !tbaa !5
  %6149 = call ptr @s2n_strerror_debug(i32 noundef %6148, ptr noundef @.str.4)
  %6150 = call ptr @__errno_location() #12
  %6151 = load i32, ptr %6150, align 4, !tbaa !5
  %6152 = call ptr @strerror(i32 noundef %6151) #11
  %6153 = call ptr @__errno_location() #12
  %6154 = load i32, ptr %6153, align 4, !tbaa !5
  %6155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6142, ptr noundef @.str.2, i32 noundef %6143, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 227, ptr noundef %6146, ptr noundef %6149, ptr noundef %6152, i32 noundef %6154) #11
  br label %6173

6156:                                             ; preds = %6134, %6127
  %6157 = load i32, ptr %129, align 4, !tbaa !5
  %6158 = call ptr @__errno_location() #12
  store i32 %6157, ptr %6158, align 4, !tbaa !5
  %6159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6160 = load i32, ptr @test_count, align 4, !tbaa !5
  %6161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6162 = load i32, ptr %6161, align 4, !tbaa !5
  %6163 = call ptr @s2n_strerror(i32 noundef %6162, ptr noundef @.str.4)
  %6164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6165 = load i32, ptr %6164, align 4, !tbaa !5
  %6166 = call ptr @s2n_strerror_debug(i32 noundef %6165, ptr noundef @.str.4)
  %6167 = call ptr @__errno_location() #12
  %6168 = load i32, ptr %6167, align 4, !tbaa !5
  %6169 = call ptr @strerror(i32 noundef %6168) #11
  %6170 = call ptr @__errno_location() #12
  %6171 = load i32, ptr %6170, align 4, !tbaa !5
  %6172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6159, ptr noundef @.str.5, i32 noundef %6160, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 227, ptr noundef %6163, ptr noundef %6166, ptr noundef %6169, i32 noundef %6171) #11
  br label %6173

6173:                                             ; preds = %6156, %6139
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #11
  br label %6174

6174:                                             ; preds = %6173
  br label %6175

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

6176:                                             ; No predecessors!
  br label %6177

6177:                                             ; preds = %6176
  br label %6178

6178:                                             ; preds = %6177, %6119
  br label %6179

6179:                                             ; preds = %6178
  br label %6180

6180:                                             ; preds = %6179
  call void @llvm.lifetime.start.p0(i64 24, ptr %130) #11
  call void @llvm.memset.p0.i64(ptr align 8 %130, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %131) #11
  store i8 0, ptr %131, align 1, !tbaa !11
  br label %6181

6181:                                             ; preds = %6180
  br label %6182

6182:                                             ; preds = %6181
  br label %6183

6183:                                             ; preds = %6182
  %6184 = load i32, ptr @test_count, align 4, !tbaa !5
  %6185 = add nsw i32 %6184, 1
  store i32 %6185, ptr @test_count, align 4, !tbaa !5
  %6186 = call i32 @s2n_protocol_preferences_contain(ptr noundef null, ptr noundef %130, ptr noundef %131)
  %6187 = getelementptr inbounds %struct.s2n_result, ptr %132, i32 0, i32 0
  store i32 %6186, ptr %6187, align 4
  %6188 = getelementptr inbounds %struct.s2n_result, ptr %132, i32 0, i32 0
  %6189 = load i32, ptr %6188, align 4
  %6190 = call zeroext i1 @s2n_result_is_error(i32 %6189)
  br i1 %6190, label %6244, label %6191

6191:                                             ; preds = %6183
  br label %6192

6192:                                             ; preds = %6191
  br label %6193

6193:                                             ; preds = %6192
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #11
  %6194 = call ptr @__errno_location() #12
  %6195 = load i32, ptr %6194, align 4, !tbaa !5
  store i32 %6195, ptr %133, align 4, !tbaa !5
  %6196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6197 = call i32 @s2n_print_stacktrace(ptr noundef %6196)
  %6198 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6199 = trunc i8 %6198 to i1
  br i1 %6199, label %6200, label %6222

6200:                                             ; preds = %6193
  %6201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6202 = call i32 @fileno(ptr noundef %6201) #11
  %6203 = call i32 @isatty(i32 noundef %6202) #11
  %6204 = icmp ne i32 %6203, 0
  br i1 %6204, label %6205, label %6222

6205:                                             ; preds = %6200
  %6206 = load i32, ptr %133, align 4, !tbaa !5
  %6207 = call ptr @__errno_location() #12
  store i32 %6206, ptr %6207, align 4, !tbaa !5
  %6208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6209 = load i32, ptr @test_count, align 4, !tbaa !5
  %6210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6211 = load i32, ptr %6210, align 4, !tbaa !5
  %6212 = call ptr @s2n_strerror(i32 noundef %6211, ptr noundef @.str.4)
  %6213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6214 = load i32, ptr %6213, align 4, !tbaa !5
  %6215 = call ptr @s2n_strerror_debug(i32 noundef %6214, ptr noundef @.str.4)
  %6216 = call ptr @__errno_location() #12
  %6217 = load i32, ptr %6216, align 4, !tbaa !5
  %6218 = call ptr @strerror(i32 noundef %6217) #11
  %6219 = call ptr @__errno_location() #12
  %6220 = load i32, ptr %6219, align 4, !tbaa !5
  %6221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6208, ptr noundef @.str.2, i32 noundef %6209, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 233, ptr noundef %6212, ptr noundef %6215, ptr noundef %6218, i32 noundef %6220) #11
  br label %6239

6222:                                             ; preds = %6200, %6193
  %6223 = load i32, ptr %133, align 4, !tbaa !5
  %6224 = call ptr @__errno_location() #12
  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() #12
  %6234 = load i32, ptr %6233, align 4, !tbaa !5
  %6235 = call ptr @strerror(i32 noundef %6234) #11
  %6236 = call ptr @__errno_location() #12
  %6237 = load i32, ptr %6236, align 4, !tbaa !5
  %6238 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6225, ptr noundef @.str.5, i32 noundef %6226, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 233, ptr noundef %6229, ptr noundef %6232, ptr noundef %6235, i32 noundef %6237) #11
  br label %6239

6239:                                             ; preds = %6222, %6205
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #11
  br label %6240

6240:                                             ; preds = %6239
  br label %6241

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

6242:                                             ; No predecessors!
  br label %6243

6243:                                             ; preds = %6242
  br label %6244

6244:                                             ; preds = %6243, %6183
  br label %6245

6245:                                             ; preds = %6244
  br label %6246

6246:                                             ; preds = %6245
  br label %6247

6247:                                             ; preds = %6246
  %6248 = load i32, ptr @test_count, align 4, !tbaa !5
  %6249 = add nsw i32 %6248, 1
  store i32 %6249, ptr @test_count, align 4, !tbaa !5
  %6250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6251 = load i32, ptr %6250, align 4, !tbaa !5
  %6252 = icmp eq i32 %6251, 402653193
  br i1 %6252, label %6306, label %6253

6253:                                             ; preds = %6247
  br label %6254

6254:                                             ; preds = %6253
  br label %6255

6255:                                             ; preds = %6254
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #11
  %6256 = call ptr @__errno_location() #12
  %6257 = load i32, ptr %6256, align 4, !tbaa !5
  store i32 %6257, ptr %134, align 4, !tbaa !5
  %6258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6259 = call i32 @s2n_print_stacktrace(ptr noundef %6258)
  %6260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6261 = trunc i8 %6260 to i1
  br i1 %6261, label %6262, label %6284

6262:                                             ; preds = %6255
  %6263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6264 = call i32 @fileno(ptr noundef %6263) #11
  %6265 = call i32 @isatty(i32 noundef %6264) #11
  %6266 = icmp ne i32 %6265, 0
  br i1 %6266, label %6267, label %6284

6267:                                             ; preds = %6262
  %6268 = load i32, ptr %134, align 4, !tbaa !5
  %6269 = call ptr @__errno_location() #12
  store i32 %6268, ptr %6269, align 4, !tbaa !5
  %6270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6271 = load i32, ptr @test_count, align 4, !tbaa !5
  %6272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6273 = load i32, ptr %6272, align 4, !tbaa !5
  %6274 = call ptr @s2n_strerror(i32 noundef %6273, ptr noundef @.str.4)
  %6275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6276 = load i32, ptr %6275, align 4, !tbaa !5
  %6277 = call ptr @s2n_strerror_debug(i32 noundef %6276, ptr noundef @.str.4)
  %6278 = call ptr @__errno_location() #12
  %6279 = load i32, ptr %6278, align 4, !tbaa !5
  %6280 = call ptr @strerror(i32 noundef %6279) #11
  %6281 = call ptr @__errno_location() #12
  %6282 = load i32, ptr %6281, align 4, !tbaa !5
  %6283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6270, ptr noundef @.str.2, i32 noundef %6271, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 233, ptr noundef %6274, ptr noundef %6277, ptr noundef %6280, i32 noundef %6282) #11
  br label %6301

6284:                                             ; preds = %6262, %6255
  %6285 = load i32, ptr %134, align 4, !tbaa !5
  %6286 = call ptr @__errno_location() #12
  store i32 %6285, ptr %6286, align 4, !tbaa !5
  %6287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6288 = load i32, ptr @test_count, align 4, !tbaa !5
  %6289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6290 = load i32, ptr %6289, align 4, !tbaa !5
  %6291 = call ptr @s2n_strerror(i32 noundef %6290, ptr noundef @.str.4)
  %6292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6293 = load i32, ptr %6292, align 4, !tbaa !5
  %6294 = call ptr @s2n_strerror_debug(i32 noundef %6293, ptr noundef @.str.4)
  %6295 = call ptr @__errno_location() #12
  %6296 = load i32, ptr %6295, align 4, !tbaa !5
  %6297 = call ptr @strerror(i32 noundef %6296) #11
  %6298 = call ptr @__errno_location() #12
  %6299 = load i32, ptr %6298, align 4, !tbaa !5
  %6300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6287, ptr noundef @.str.5, i32 noundef %6288, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 233, ptr noundef %6291, ptr noundef %6294, ptr noundef %6297, i32 noundef %6299) #11
  br label %6301

6301:                                             ; preds = %6284, %6267
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #11
  br label %6302

6302:                                             ; preds = %6301
  br label %6303

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

6304:                                             ; No predecessors!
  br label %6305

6305:                                             ; preds = %6304
  br label %6306

6306:                                             ; preds = %6305, %6247
  br label %6307

6307:                                             ; preds = %6306
  br label %6308

6308:                                             ; preds = %6307
  br label %6309

6309:                                             ; preds = %6308
  %6310 = load i32, ptr @test_count, align 4, !tbaa !5
  %6311 = add nsw i32 %6310, 1
  store i32 %6311, ptr @test_count, align 4, !tbaa !5
  %6312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6313 = load i32, ptr %6312, align 4, !tbaa !5
  %6314 = call ptr @s2n_strerror_debug(i32 noundef %6313, ptr noundef @.str.4)
  %6315 = icmp eq ptr %6314, null
  br i1 %6315, label %6316, label %6369

6316:                                             ; preds = %6309
  br label %6317

6317:                                             ; preds = %6316
  br label %6318

6318:                                             ; preds = %6317
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #11
  %6319 = call ptr @__errno_location() #12
  %6320 = load i32, ptr %6319, align 4, !tbaa !5
  store i32 %6320, ptr %135, align 4, !tbaa !5
  %6321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6322 = call i32 @s2n_print_stacktrace(ptr noundef %6321)
  %6323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6324 = trunc i8 %6323 to i1
  br i1 %6324, label %6325, label %6347

6325:                                             ; preds = %6318
  %6326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6327 = call i32 @fileno(ptr noundef %6326) #11
  %6328 = call i32 @isatty(i32 noundef %6327) #11
  %6329 = icmp ne i32 %6328, 0
  br i1 %6329, label %6330, label %6347

6330:                                             ; preds = %6325
  %6331 = load i32, ptr %135, align 4, !tbaa !5
  %6332 = call ptr @__errno_location() #12
  store i32 %6331, ptr %6332, align 4, !tbaa !5
  %6333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6334 = load i32, ptr @test_count, align 4, !tbaa !5
  %6335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6336 = load i32, ptr %6335, align 4, !tbaa !5
  %6337 = call ptr @s2n_strerror(i32 noundef %6336, ptr noundef @.str.4)
  %6338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6339 = load i32, ptr %6338, align 4, !tbaa !5
  %6340 = call ptr @s2n_strerror_debug(i32 noundef %6339, ptr noundef @.str.4)
  %6341 = call ptr @__errno_location() #12
  %6342 = load i32, ptr %6341, align 4, !tbaa !5
  %6343 = call ptr @strerror(i32 noundef %6342) #11
  %6344 = call ptr @__errno_location() #12
  %6345 = load i32, ptr %6344, align 4, !tbaa !5
  %6346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6333, ptr noundef @.str.2, i32 noundef %6334, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 233, ptr noundef %6337, ptr noundef %6340, ptr noundef %6343, i32 noundef %6345) #11
  br label %6364

6347:                                             ; preds = %6325, %6318
  %6348 = load i32, ptr %135, align 4, !tbaa !5
  %6349 = call ptr @__errno_location() #12
  store i32 %6348, ptr %6349, align 4, !tbaa !5
  %6350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6351 = load i32, ptr @test_count, align 4, !tbaa !5
  %6352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6353 = load i32, ptr %6352, align 4, !tbaa !5
  %6354 = call ptr @s2n_strerror(i32 noundef %6353, ptr noundef @.str.4)
  %6355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6356 = load i32, ptr %6355, align 4, !tbaa !5
  %6357 = call ptr @s2n_strerror_debug(i32 noundef %6356, ptr noundef @.str.4)
  %6358 = call ptr @__errno_location() #12
  %6359 = load i32, ptr %6358, align 4, !tbaa !5
  %6360 = call ptr @strerror(i32 noundef %6359) #11
  %6361 = call ptr @__errno_location() #12
  %6362 = load i32, ptr %6361, align 4, !tbaa !5
  %6363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6350, ptr noundef @.str.5, i32 noundef %6351, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 233, ptr noundef %6354, ptr noundef %6357, ptr noundef %6360, i32 noundef %6362) #11
  br label %6364

6364:                                             ; preds = %6347, %6330
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #11
  br label %6365

6365:                                             ; preds = %6364
  br label %6366

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

6367:                                             ; No predecessors!
  br label %6368

6368:                                             ; preds = %6367
  br label %6369

6369:                                             ; preds = %6368, %6309
  br label %6370

6370:                                             ; preds = %6369
  br label %6371

6371:                                             ; preds = %6370
  br label %6372

6372:                                             ; preds = %6371
  br label %6373

6373:                                             ; preds = %6372
  br label %6374

6374:                                             ; preds = %6373
  %6375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6375, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6376 = call ptr @__errno_location() #12
  store i32 0, ptr %6376, align 4, !tbaa !5
  br label %6377

6377:                                             ; preds = %6374
  br label %6378

6378:                                             ; preds = %6377
  br label %6379

6379:                                             ; preds = %6378
  br label %6380

6380:                                             ; preds = %6379
  br label %6381

6381:                                             ; preds = %6380
  br label %6382

6382:                                             ; preds = %6381
  br label %6383

6383:                                             ; preds = %6382
  %6384 = load i32, ptr @test_count, align 4, !tbaa !5
  %6385 = add nsw i32 %6384, 1
  store i32 %6385, ptr @test_count, align 4, !tbaa !5
  %6386 = call i32 @s2n_protocol_preferences_contain(ptr noundef %130, ptr noundef null, ptr noundef %131)
  %6387 = getelementptr inbounds %struct.s2n_result, ptr %136, i32 0, i32 0
  store i32 %6386, ptr %6387, align 4
  %6388 = getelementptr inbounds %struct.s2n_result, ptr %136, i32 0, i32 0
  %6389 = load i32, ptr %6388, align 4
  %6390 = call zeroext i1 @s2n_result_is_error(i32 %6389)
  br i1 %6390, label %6444, label %6391

6391:                                             ; preds = %6383
  br label %6392

6392:                                             ; preds = %6391
  br label %6393

6393:                                             ; preds = %6392
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #11
  %6394 = call ptr @__errno_location() #12
  %6395 = load i32, ptr %6394, align 4, !tbaa !5
  store i32 %6395, ptr %137, align 4, !tbaa !5
  %6396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6397 = call i32 @s2n_print_stacktrace(ptr noundef %6396)
  %6398 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6399 = trunc i8 %6398 to i1
  br i1 %6399, label %6400, label %6422

6400:                                             ; preds = %6393
  %6401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6402 = call i32 @fileno(ptr noundef %6401) #11
  %6403 = call i32 @isatty(i32 noundef %6402) #11
  %6404 = icmp ne i32 %6403, 0
  br i1 %6404, label %6405, label %6422

6405:                                             ; preds = %6400
  %6406 = load i32, ptr %137, align 4, !tbaa !5
  %6407 = call ptr @__errno_location() #12
  store i32 %6406, ptr %6407, align 4, !tbaa !5
  %6408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6409 = load i32, ptr @test_count, align 4, !tbaa !5
  %6410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6411 = load i32, ptr %6410, align 4, !tbaa !5
  %6412 = call ptr @s2n_strerror(i32 noundef %6411, ptr noundef @.str.4)
  %6413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6414 = load i32, ptr %6413, align 4, !tbaa !5
  %6415 = call ptr @s2n_strerror_debug(i32 noundef %6414, ptr noundef @.str.4)
  %6416 = call ptr @__errno_location() #12
  %6417 = load i32, ptr %6416, align 4, !tbaa !5
  %6418 = call ptr @strerror(i32 noundef %6417) #11
  %6419 = call ptr @__errno_location() #12
  %6420 = load i32, ptr %6419, align 4, !tbaa !5
  %6421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6408, ptr noundef @.str.2, i32 noundef %6409, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 234, ptr noundef %6412, ptr noundef %6415, ptr noundef %6418, i32 noundef %6420) #11
  br label %6439

6422:                                             ; preds = %6400, %6393
  %6423 = load i32, ptr %137, align 4, !tbaa !5
  %6424 = call ptr @__errno_location() #12
  store i32 %6423, ptr %6424, align 4, !tbaa !5
  %6425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6426 = load i32, ptr @test_count, align 4, !tbaa !5
  %6427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6428 = load i32, ptr %6427, align 4, !tbaa !5
  %6429 = call ptr @s2n_strerror(i32 noundef %6428, ptr noundef @.str.4)
  %6430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6431 = load i32, ptr %6430, align 4, !tbaa !5
  %6432 = call ptr @s2n_strerror_debug(i32 noundef %6431, ptr noundef @.str.4)
  %6433 = call ptr @__errno_location() #12
  %6434 = load i32, ptr %6433, align 4, !tbaa !5
  %6435 = call ptr @strerror(i32 noundef %6434) #11
  %6436 = call ptr @__errno_location() #12
  %6437 = load i32, ptr %6436, align 4, !tbaa !5
  %6438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6425, ptr noundef @.str.5, i32 noundef %6426, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 234, ptr noundef %6429, ptr noundef %6432, ptr noundef %6435, i32 noundef %6437) #11
  br label %6439

6439:                                             ; preds = %6422, %6405
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #11
  br label %6440

6440:                                             ; preds = %6439
  br label %6441

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

6442:                                             ; No predecessors!
  br label %6443

6443:                                             ; preds = %6442
  br label %6444

6444:                                             ; preds = %6443, %6383
  br label %6445

6445:                                             ; preds = %6444
  br label %6446

6446:                                             ; preds = %6445
  br label %6447

6447:                                             ; preds = %6446
  %6448 = load i32, ptr @test_count, align 4, !tbaa !5
  %6449 = add nsw i32 %6448, 1
  store i32 %6449, ptr @test_count, align 4, !tbaa !5
  %6450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6451 = load i32, ptr %6450, align 4, !tbaa !5
  %6452 = icmp eq i32 %6451, 402653193
  br i1 %6452, label %6506, label %6453

6453:                                             ; preds = %6447
  br label %6454

6454:                                             ; preds = %6453
  br label %6455

6455:                                             ; preds = %6454
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #11
  %6456 = call ptr @__errno_location() #12
  %6457 = load i32, ptr %6456, align 4, !tbaa !5
  store i32 %6457, ptr %138, align 4, !tbaa !5
  %6458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6459 = call i32 @s2n_print_stacktrace(ptr noundef %6458)
  %6460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6461 = trunc i8 %6460 to i1
  br i1 %6461, label %6462, label %6484

6462:                                             ; preds = %6455
  %6463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6464 = call i32 @fileno(ptr noundef %6463) #11
  %6465 = call i32 @isatty(i32 noundef %6464) #11
  %6466 = icmp ne i32 %6465, 0
  br i1 %6466, label %6467, label %6484

6467:                                             ; preds = %6462
  %6468 = load i32, ptr %138, align 4, !tbaa !5
  %6469 = call ptr @__errno_location() #12
  store i32 %6468, ptr %6469, align 4, !tbaa !5
  %6470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6471 = load i32, ptr @test_count, align 4, !tbaa !5
  %6472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6473 = load i32, ptr %6472, align 4, !tbaa !5
  %6474 = call ptr @s2n_strerror(i32 noundef %6473, ptr noundef @.str.4)
  %6475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6476 = load i32, ptr %6475, align 4, !tbaa !5
  %6477 = call ptr @s2n_strerror_debug(i32 noundef %6476, ptr noundef @.str.4)
  %6478 = call ptr @__errno_location() #12
  %6479 = load i32, ptr %6478, align 4, !tbaa !5
  %6480 = call ptr @strerror(i32 noundef %6479) #11
  %6481 = call ptr @__errno_location() #12
  %6482 = load i32, ptr %6481, align 4, !tbaa !5
  %6483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6470, ptr noundef @.str.2, i32 noundef %6471, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 234, ptr noundef %6474, ptr noundef %6477, ptr noundef %6480, i32 noundef %6482) #11
  br label %6501

6484:                                             ; preds = %6462, %6455
  %6485 = load i32, ptr %138, align 4, !tbaa !5
  %6486 = call ptr @__errno_location() #12
  store i32 %6485, ptr %6486, align 4, !tbaa !5
  %6487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6488 = load i32, ptr @test_count, align 4, !tbaa !5
  %6489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6490 = load i32, ptr %6489, align 4, !tbaa !5
  %6491 = call ptr @s2n_strerror(i32 noundef %6490, ptr noundef @.str.4)
  %6492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6493 = load i32, ptr %6492, align 4, !tbaa !5
  %6494 = call ptr @s2n_strerror_debug(i32 noundef %6493, ptr noundef @.str.4)
  %6495 = call ptr @__errno_location() #12
  %6496 = load i32, ptr %6495, align 4, !tbaa !5
  %6497 = call ptr @strerror(i32 noundef %6496) #11
  %6498 = call ptr @__errno_location() #12
  %6499 = load i32, ptr %6498, align 4, !tbaa !5
  %6500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6487, ptr noundef @.str.5, i32 noundef %6488, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 234, ptr noundef %6491, ptr noundef %6494, ptr noundef %6497, i32 noundef %6499) #11
  br label %6501

6501:                                             ; preds = %6484, %6467
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  br label %6502

6502:                                             ; preds = %6501
  br label %6503

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

6504:                                             ; No predecessors!
  br label %6505

6505:                                             ; preds = %6504
  br label %6506

6506:                                             ; preds = %6505, %6447
  br label %6507

6507:                                             ; preds = %6506
  br label %6508

6508:                                             ; preds = %6507
  br label %6509

6509:                                             ; preds = %6508
  %6510 = load i32, ptr @test_count, align 4, !tbaa !5
  %6511 = add nsw i32 %6510, 1
  store i32 %6511, ptr @test_count, align 4, !tbaa !5
  %6512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6513 = load i32, ptr %6512, align 4, !tbaa !5
  %6514 = call ptr @s2n_strerror_debug(i32 noundef %6513, ptr noundef @.str.4)
  %6515 = icmp eq ptr %6514, null
  br i1 %6515, label %6516, label %6569

6516:                                             ; preds = %6509
  br label %6517

6517:                                             ; preds = %6516
  br label %6518

6518:                                             ; preds = %6517
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #11
  %6519 = call ptr @__errno_location() #12
  %6520 = load i32, ptr %6519, align 4, !tbaa !5
  store i32 %6520, ptr %139, align 4, !tbaa !5
  %6521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6522 = call i32 @s2n_print_stacktrace(ptr noundef %6521)
  %6523 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6524 = trunc i8 %6523 to i1
  br i1 %6524, label %6525, label %6547

6525:                                             ; preds = %6518
  %6526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6527 = call i32 @fileno(ptr noundef %6526) #11
  %6528 = call i32 @isatty(i32 noundef %6527) #11
  %6529 = icmp ne i32 %6528, 0
  br i1 %6529, label %6530, label %6547

6530:                                             ; preds = %6525
  %6531 = load i32, ptr %139, align 4, !tbaa !5
  %6532 = call ptr @__errno_location() #12
  store i32 %6531, ptr %6532, align 4, !tbaa !5
  %6533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6534 = load i32, ptr @test_count, align 4, !tbaa !5
  %6535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6536 = load i32, ptr %6535, align 4, !tbaa !5
  %6537 = call ptr @s2n_strerror(i32 noundef %6536, ptr noundef @.str.4)
  %6538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6539 = load i32, ptr %6538, align 4, !tbaa !5
  %6540 = call ptr @s2n_strerror_debug(i32 noundef %6539, ptr noundef @.str.4)
  %6541 = call ptr @__errno_location() #12
  %6542 = load i32, ptr %6541, align 4, !tbaa !5
  %6543 = call ptr @strerror(i32 noundef %6542) #11
  %6544 = call ptr @__errno_location() #12
  %6545 = load i32, ptr %6544, align 4, !tbaa !5
  %6546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6533, ptr noundef @.str.2, i32 noundef %6534, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 234, ptr noundef %6537, ptr noundef %6540, ptr noundef %6543, i32 noundef %6545) #11
  br label %6564

6547:                                             ; preds = %6525, %6518
  %6548 = load i32, ptr %139, align 4, !tbaa !5
  %6549 = call ptr @__errno_location() #12
  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() #12
  %6559 = load i32, ptr %6558, align 4, !tbaa !5
  %6560 = call ptr @strerror(i32 noundef %6559) #11
  %6561 = call ptr @__errno_location() #12
  %6562 = load i32, ptr %6561, align 4, !tbaa !5
  %6563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6550, ptr noundef @.str.5, i32 noundef %6551, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 234, ptr noundef %6554, ptr noundef %6557, ptr noundef %6560, i32 noundef %6562) #11
  br label %6564

6564:                                             ; preds = %6547, %6530
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #11
  br label %6565

6565:                                             ; preds = %6564
  br label %6566

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

6567:                                             ; No predecessors!
  br label %6568

6568:                                             ; preds = %6567
  br label %6569

6569:                                             ; preds = %6568, %6509
  br label %6570

6570:                                             ; preds = %6569
  br label %6571

6571:                                             ; preds = %6570
  br label %6572

6572:                                             ; preds = %6571
  br label %6573

6573:                                             ; preds = %6572
  br label %6574

6574:                                             ; preds = %6573
  %6575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6575, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6576 = call ptr @__errno_location() #12
  store i32 0, ptr %6576, align 4, !tbaa !5
  br label %6577

6577:                                             ; preds = %6574
  br label %6578

6578:                                             ; preds = %6577
  br label %6579

6579:                                             ; preds = %6578
  br label %6580

6580:                                             ; preds = %6579
  br label %6581

6581:                                             ; preds = %6580
  br label %6582

6582:                                             ; preds = %6581
  br label %6583

6583:                                             ; preds = %6582
  %6584 = load i32, ptr @test_count, align 4, !tbaa !5
  %6585 = add nsw i32 %6584, 1
  store i32 %6585, ptr @test_count, align 4, !tbaa !5
  %6586 = call i32 @s2n_protocol_preferences_contain(ptr noundef %130, ptr noundef %130, ptr noundef null)
  %6587 = getelementptr inbounds %struct.s2n_result, ptr %140, i32 0, i32 0
  store i32 %6586, ptr %6587, align 4
  %6588 = getelementptr inbounds %struct.s2n_result, ptr %140, i32 0, i32 0
  %6589 = load i32, ptr %6588, align 4
  %6590 = call zeroext i1 @s2n_result_is_error(i32 %6589)
  br i1 %6590, label %6644, label %6591

6591:                                             ; preds = %6583
  br label %6592

6592:                                             ; preds = %6591
  br label %6593

6593:                                             ; preds = %6592
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #11
  %6594 = call ptr @__errno_location() #12
  %6595 = load i32, ptr %6594, align 4, !tbaa !5
  store i32 %6595, ptr %141, align 4, !tbaa !5
  %6596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6597 = call i32 @s2n_print_stacktrace(ptr noundef %6596)
  %6598 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6599 = trunc i8 %6598 to i1
  br i1 %6599, label %6600, label %6622

6600:                                             ; preds = %6593
  %6601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6602 = call i32 @fileno(ptr noundef %6601) #11
  %6603 = call i32 @isatty(i32 noundef %6602) #11
  %6604 = icmp ne i32 %6603, 0
  br i1 %6604, label %6605, label %6622

6605:                                             ; preds = %6600
  %6606 = load i32, ptr %141, align 4, !tbaa !5
  %6607 = call ptr @__errno_location() #12
  store i32 %6606, ptr %6607, align 4, !tbaa !5
  %6608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6609 = load i32, ptr @test_count, align 4, !tbaa !5
  %6610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6611 = load i32, ptr %6610, align 4, !tbaa !5
  %6612 = call ptr @s2n_strerror(i32 noundef %6611, ptr noundef @.str.4)
  %6613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6614 = load i32, ptr %6613, align 4, !tbaa !5
  %6615 = call ptr @s2n_strerror_debug(i32 noundef %6614, ptr noundef @.str.4)
  %6616 = call ptr @__errno_location() #12
  %6617 = load i32, ptr %6616, align 4, !tbaa !5
  %6618 = call ptr @strerror(i32 noundef %6617) #11
  %6619 = call ptr @__errno_location() #12
  %6620 = load i32, ptr %6619, align 4, !tbaa !5
  %6621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6608, ptr noundef @.str.2, i32 noundef %6609, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 235, ptr noundef %6612, ptr noundef %6615, ptr noundef %6618, i32 noundef %6620) #11
  br label %6639

6622:                                             ; preds = %6600, %6593
  %6623 = load i32, ptr %141, align 4, !tbaa !5
  %6624 = call ptr @__errno_location() #12
  store i32 %6623, ptr %6624, align 4, !tbaa !5
  %6625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6626 = load i32, ptr @test_count, align 4, !tbaa !5
  %6627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6628 = load i32, ptr %6627, align 4, !tbaa !5
  %6629 = call ptr @s2n_strerror(i32 noundef %6628, ptr noundef @.str.4)
  %6630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6631 = load i32, ptr %6630, align 4, !tbaa !5
  %6632 = call ptr @s2n_strerror_debug(i32 noundef %6631, ptr noundef @.str.4)
  %6633 = call ptr @__errno_location() #12
  %6634 = load i32, ptr %6633, align 4, !tbaa !5
  %6635 = call ptr @strerror(i32 noundef %6634) #11
  %6636 = call ptr @__errno_location() #12
  %6637 = load i32, ptr %6636, align 4, !tbaa !5
  %6638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6625, ptr noundef @.str.5, i32 noundef %6626, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 235, ptr noundef %6629, ptr noundef %6632, ptr noundef %6635, i32 noundef %6637) #11
  br label %6639

6639:                                             ; preds = %6622, %6605
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #11
  br label %6640

6640:                                             ; preds = %6639
  br label %6641

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

6642:                                             ; No predecessors!
  br label %6643

6643:                                             ; preds = %6642
  br label %6644

6644:                                             ; preds = %6643, %6583
  br label %6645

6645:                                             ; preds = %6644
  br label %6646

6646:                                             ; preds = %6645
  br label %6647

6647:                                             ; preds = %6646
  %6648 = load i32, ptr @test_count, align 4, !tbaa !5
  %6649 = add nsw i32 %6648, 1
  store i32 %6649, ptr @test_count, align 4, !tbaa !5
  %6650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6651 = load i32, ptr %6650, align 4, !tbaa !5
  %6652 = icmp eq i32 %6651, 402653193
  br i1 %6652, label %6706, label %6653

6653:                                             ; preds = %6647
  br label %6654

6654:                                             ; preds = %6653
  br label %6655

6655:                                             ; preds = %6654
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #11
  %6656 = call ptr @__errno_location() #12
  %6657 = load i32, ptr %6656, align 4, !tbaa !5
  store i32 %6657, ptr %142, align 4, !tbaa !5
  %6658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6659 = call i32 @s2n_print_stacktrace(ptr noundef %6658)
  %6660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6661 = trunc i8 %6660 to i1
  br i1 %6661, label %6662, label %6684

6662:                                             ; preds = %6655
  %6663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6664 = call i32 @fileno(ptr noundef %6663) #11
  %6665 = call i32 @isatty(i32 noundef %6664) #11
  %6666 = icmp ne i32 %6665, 0
  br i1 %6666, label %6667, label %6684

6667:                                             ; preds = %6662
  %6668 = load i32, ptr %142, align 4, !tbaa !5
  %6669 = call ptr @__errno_location() #12
  store i32 %6668, ptr %6669, align 4, !tbaa !5
  %6670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6671 = load i32, ptr @test_count, align 4, !tbaa !5
  %6672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6673 = load i32, ptr %6672, align 4, !tbaa !5
  %6674 = call ptr @s2n_strerror(i32 noundef %6673, ptr noundef @.str.4)
  %6675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6676 = load i32, ptr %6675, align 4, !tbaa !5
  %6677 = call ptr @s2n_strerror_debug(i32 noundef %6676, ptr noundef @.str.4)
  %6678 = call ptr @__errno_location() #12
  %6679 = load i32, ptr %6678, align 4, !tbaa !5
  %6680 = call ptr @strerror(i32 noundef %6679) #11
  %6681 = call ptr @__errno_location() #12
  %6682 = load i32, ptr %6681, align 4, !tbaa !5
  %6683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6670, ptr noundef @.str.2, i32 noundef %6671, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 235, ptr noundef %6674, ptr noundef %6677, ptr noundef %6680, i32 noundef %6682) #11
  br label %6701

6684:                                             ; preds = %6662, %6655
  %6685 = load i32, ptr %142, align 4, !tbaa !5
  %6686 = call ptr @__errno_location() #12
  store i32 %6685, ptr %6686, align 4, !tbaa !5
  %6687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6688 = load i32, ptr @test_count, align 4, !tbaa !5
  %6689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6690 = load i32, ptr %6689, align 4, !tbaa !5
  %6691 = call ptr @s2n_strerror(i32 noundef %6690, ptr noundef @.str.4)
  %6692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6693 = load i32, ptr %6692, align 4, !tbaa !5
  %6694 = call ptr @s2n_strerror_debug(i32 noundef %6693, ptr noundef @.str.4)
  %6695 = call ptr @__errno_location() #12
  %6696 = load i32, ptr %6695, align 4, !tbaa !5
  %6697 = call ptr @strerror(i32 noundef %6696) #11
  %6698 = call ptr @__errno_location() #12
  %6699 = load i32, ptr %6698, align 4, !tbaa !5
  %6700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6687, ptr noundef @.str.5, i32 noundef %6688, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 235, ptr noundef %6691, ptr noundef %6694, ptr noundef %6697, i32 noundef %6699) #11
  br label %6701

6701:                                             ; preds = %6684, %6667
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #11
  br label %6702

6702:                                             ; preds = %6701
  br label %6703

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

6704:                                             ; No predecessors!
  br label %6705

6705:                                             ; preds = %6704
  br label %6706

6706:                                             ; preds = %6705, %6647
  br label %6707

6707:                                             ; preds = %6706
  br label %6708

6708:                                             ; preds = %6707
  br label %6709

6709:                                             ; preds = %6708
  %6710 = load i32, ptr @test_count, align 4, !tbaa !5
  %6711 = add nsw i32 %6710, 1
  store i32 %6711, ptr @test_count, align 4, !tbaa !5
  %6712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6713 = load i32, ptr %6712, align 4, !tbaa !5
  %6714 = call ptr @s2n_strerror_debug(i32 noundef %6713, ptr noundef @.str.4)
  %6715 = icmp eq ptr %6714, null
  br i1 %6715, label %6716, label %6769

6716:                                             ; preds = %6709
  br label %6717

6717:                                             ; preds = %6716
  br label %6718

6718:                                             ; preds = %6717
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #11
  %6719 = call ptr @__errno_location() #12
  %6720 = load i32, ptr %6719, align 4, !tbaa !5
  store i32 %6720, ptr %143, align 4, !tbaa !5
  %6721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6722 = call i32 @s2n_print_stacktrace(ptr noundef %6721)
  %6723 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6724 = trunc i8 %6723 to i1
  br i1 %6724, label %6725, label %6747

6725:                                             ; preds = %6718
  %6726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6727 = call i32 @fileno(ptr noundef %6726) #11
  %6728 = call i32 @isatty(i32 noundef %6727) #11
  %6729 = icmp ne i32 %6728, 0
  br i1 %6729, label %6730, label %6747

6730:                                             ; preds = %6725
  %6731 = load i32, ptr %143, align 4, !tbaa !5
  %6732 = call ptr @__errno_location() #12
  store i32 %6731, ptr %6732, align 4, !tbaa !5
  %6733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6734 = load i32, ptr @test_count, align 4, !tbaa !5
  %6735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6736 = load i32, ptr %6735, align 4, !tbaa !5
  %6737 = call ptr @s2n_strerror(i32 noundef %6736, ptr noundef @.str.4)
  %6738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6739 = load i32, ptr %6738, align 4, !tbaa !5
  %6740 = call ptr @s2n_strerror_debug(i32 noundef %6739, ptr noundef @.str.4)
  %6741 = call ptr @__errno_location() #12
  %6742 = load i32, ptr %6741, align 4, !tbaa !5
  %6743 = call ptr @strerror(i32 noundef %6742) #11
  %6744 = call ptr @__errno_location() #12
  %6745 = load i32, ptr %6744, align 4, !tbaa !5
  %6746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6733, ptr noundef @.str.2, i32 noundef %6734, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 235, ptr noundef %6737, ptr noundef %6740, ptr noundef %6743, i32 noundef %6745) #11
  br label %6764

6747:                                             ; preds = %6725, %6718
  %6748 = load i32, ptr %143, align 4, !tbaa !5
  %6749 = call ptr @__errno_location() #12
  store i32 %6748, ptr %6749, align 4, !tbaa !5
  %6750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6751 = load i32, ptr @test_count, align 4, !tbaa !5
  %6752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6753 = load i32, ptr %6752, align 4, !tbaa !5
  %6754 = call ptr @s2n_strerror(i32 noundef %6753, ptr noundef @.str.4)
  %6755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6756 = load i32, ptr %6755, align 4, !tbaa !5
  %6757 = call ptr @s2n_strerror_debug(i32 noundef %6756, ptr noundef @.str.4)
  %6758 = call ptr @__errno_location() #12
  %6759 = load i32, ptr %6758, align 4, !tbaa !5
  %6760 = call ptr @strerror(i32 noundef %6759) #11
  %6761 = call ptr @__errno_location() #12
  %6762 = load i32, ptr %6761, align 4, !tbaa !5
  %6763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6750, ptr noundef @.str.5, i32 noundef %6751, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 235, ptr noundef %6754, ptr noundef %6757, ptr noundef %6760, i32 noundef %6762) #11
  br label %6764

6764:                                             ; preds = %6747, %6730
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #11
  br label %6765

6765:                                             ; preds = %6764
  br label %6766

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

6767:                                             ; No predecessors!
  br label %6768

6768:                                             ; preds = %6767
  br label %6769

6769:                                             ; preds = %6768, %6709
  br label %6770

6770:                                             ; preds = %6769
  br label %6771

6771:                                             ; preds = %6770
  br label %6772

6772:                                             ; preds = %6771
  br label %6773

6773:                                             ; preds = %6772
  br label %6774

6774:                                             ; preds = %6773
  %6775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6775, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6776 = call ptr @__errno_location() #12
  store i32 0, ptr %6776, align 4, !tbaa !5
  br label %6777

6777:                                             ; preds = %6774
  br label %6778

6778:                                             ; preds = %6777
  br label %6779

6779:                                             ; preds = %6778
  br label %6780

6780:                                             ; preds = %6779
  call void @llvm.lifetime.end.p0(i64 1, ptr %131) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %130) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %144) #11
  %6781 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6781, ptr %144, align 8, !tbaa !9
  br label %6782

6782:                                             ; preds = %6780
  %6783 = load i32, ptr @test_count, align 4, !tbaa !5
  %6784 = add nsw i32 %6783, 1
  store i32 %6784, ptr @test_count, align 4, !tbaa !5
  %6785 = load ptr, ptr %144, align 8, !tbaa !9
  %6786 = icmp eq ptr %6785, null
  br i1 %6786, label %6787, label %6840

6787:                                             ; preds = %6782
  br label %6788

6788:                                             ; preds = %6787
  br label %6789

6789:                                             ; preds = %6788
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #11
  %6790 = call ptr @__errno_location() #12
  %6791 = load i32, ptr %6790, align 4, !tbaa !5
  store i32 %6791, ptr %145, align 4, !tbaa !5
  %6792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6793 = call i32 @s2n_print_stacktrace(ptr noundef %6792)
  %6794 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6795 = trunc i8 %6794 to i1
  br i1 %6795, label %6796, label %6818

6796:                                             ; preds = %6789
  %6797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6798 = call i32 @fileno(ptr noundef %6797) #11
  %6799 = call i32 @isatty(i32 noundef %6798) #11
  %6800 = icmp ne i32 %6799, 0
  br i1 %6800, label %6801, label %6818

6801:                                             ; preds = %6796
  %6802 = load i32, ptr %145, align 4, !tbaa !5
  %6803 = call ptr @__errno_location() #12
  store i32 %6802, ptr %6803, align 4, !tbaa !5
  %6804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6805 = load i32, ptr @test_count, align 4, !tbaa !5
  %6806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6807 = load i32, ptr %6806, align 4, !tbaa !5
  %6808 = call ptr @s2n_strerror(i32 noundef %6807, ptr noundef @.str.4)
  %6809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6810 = load i32, ptr %6809, align 4, !tbaa !5
  %6811 = call ptr @s2n_strerror_debug(i32 noundef %6810, ptr noundef @.str.4)
  %6812 = call ptr @__errno_location() #12
  %6813 = load i32, ptr %6812, align 4, !tbaa !5
  %6814 = call ptr @strerror(i32 noundef %6813) #11
  %6815 = call ptr @__errno_location() #12
  %6816 = load i32, ptr %6815, align 4, !tbaa !5
  %6817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6804, ptr noundef @.str.2, i32 noundef %6805, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 241, ptr noundef %6808, ptr noundef %6811, ptr noundef %6814, i32 noundef %6816) #11
  br label %6835

6818:                                             ; preds = %6796, %6789
  %6819 = load i32, ptr %145, align 4, !tbaa !5
  %6820 = call ptr @__errno_location() #12
  store i32 %6819, ptr %6820, align 4, !tbaa !5
  %6821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6822 = load i32, ptr @test_count, align 4, !tbaa !5
  %6823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6824 = load i32, ptr %6823, align 4, !tbaa !5
  %6825 = call ptr @s2n_strerror(i32 noundef %6824, ptr noundef @.str.4)
  %6826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6827 = load i32, ptr %6826, align 4, !tbaa !5
  %6828 = call ptr @s2n_strerror_debug(i32 noundef %6827, ptr noundef @.str.4)
  %6829 = call ptr @__errno_location() #12
  %6830 = load i32, ptr %6829, align 4, !tbaa !5
  %6831 = call ptr @strerror(i32 noundef %6830) #11
  %6832 = call ptr @__errno_location() #12
  %6833 = load i32, ptr %6832, align 4, !tbaa !5
  %6834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6821, ptr noundef @.str.5, i32 noundef %6822, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 241, ptr noundef %6825, ptr noundef %6828, ptr noundef %6831, i32 noundef %6833) #11
  br label %6835

6835:                                             ; preds = %6818, %6801
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #11
  br label %6836

6836:                                             ; preds = %6835
  br label %6837

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

6838:                                             ; No predecessors!
  br label %6839

6839:                                             ; preds = %6838
  br label %6840

6840:                                             ; preds = %6839, %6782
  br label %6841

6841:                                             ; preds = %6840
  br label %6842

6842:                                             ; preds = %6841
  call void @llvm.lifetime.start.p0(i64 1, ptr %146) #11
  store i8 1, ptr %146, align 1, !tbaa !11
  br label %6843

6843:                                             ; preds = %6842
  %6844 = load i32, ptr @test_count, align 4, !tbaa !5
  %6845 = add nsw i32 %6844, 1
  store i32 %6845, ptr @test_count, align 4, !tbaa !5
  %6846 = load ptr, ptr %144, align 8, !tbaa !9
  %6847 = getelementptr inbounds %struct.s2n_connection, ptr %6846, i32 0, i32 82
  %6848 = call i32 @s2n_protocol_preferences_contain(ptr noundef %6847, ptr noundef %128, ptr noundef %146)
  %6849 = getelementptr inbounds %struct.s2n_result, ptr %147, i32 0, i32 0
  store i32 %6848, ptr %6849, align 4
  %6850 = getelementptr inbounds %struct.s2n_result, ptr %147, i32 0, i32 0
  %6851 = load i32, ptr %6850, align 4
  %6852 = call zeroext i1 @s2n_result_is_ok(i32 %6851)
  br i1 %6852, label %6906, label %6853

6853:                                             ; preds = %6843
  br label %6854

6854:                                             ; preds = %6853
  br label %6855

6855:                                             ; preds = %6854
  call void @llvm.lifetime.start.p0(i64 4, ptr %148) #11
  %6856 = call ptr @__errno_location() #12
  %6857 = load i32, ptr %6856, align 4, !tbaa !5
  store i32 %6857, ptr %148, align 4, !tbaa !5
  %6858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6859 = call i32 @s2n_print_stacktrace(ptr noundef %6858)
  %6860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6861 = trunc i8 %6860 to i1
  br i1 %6861, label %6862, label %6884

6862:                                             ; preds = %6855
  %6863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6864 = call i32 @fileno(ptr noundef %6863) #11
  %6865 = call i32 @isatty(i32 noundef %6864) #11
  %6866 = icmp ne i32 %6865, 0
  br i1 %6866, label %6867, label %6884

6867:                                             ; preds = %6862
  %6868 = load i32, ptr %148, align 4, !tbaa !5
  %6869 = call ptr @__errno_location() #12
  store i32 %6868, ptr %6869, align 4, !tbaa !5
  %6870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6871 = load i32, ptr @test_count, align 4, !tbaa !5
  %6872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6873 = load i32, ptr %6872, align 4, !tbaa !5
  %6874 = call ptr @s2n_strerror(i32 noundef %6873, ptr noundef @.str.4)
  %6875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6876 = load i32, ptr %6875, align 4, !tbaa !5
  %6877 = call ptr @s2n_strerror_debug(i32 noundef %6876, ptr noundef @.str.4)
  %6878 = call ptr @__errno_location() #12
  %6879 = load i32, ptr %6878, align 4, !tbaa !5
  %6880 = call ptr @strerror(i32 noundef %6879) #11
  %6881 = call ptr @__errno_location() #12
  %6882 = load i32, ptr %6881, align 4, !tbaa !5
  %6883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6870, ptr noundef @.str.2, i32 noundef %6871, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 244, ptr noundef %6874, ptr noundef %6877, ptr noundef %6880, i32 noundef %6882) #11
  br label %6901

6884:                                             ; preds = %6862, %6855
  %6885 = load i32, ptr %148, align 4, !tbaa !5
  %6886 = call ptr @__errno_location() #12
  store i32 %6885, ptr %6886, align 4, !tbaa !5
  %6887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6888 = load i32, ptr @test_count, align 4, !tbaa !5
  %6889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6890 = load i32, ptr %6889, align 4, !tbaa !5
  %6891 = call ptr @s2n_strerror(i32 noundef %6890, ptr noundef @.str.4)
  %6892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6893 = load i32, ptr %6892, align 4, !tbaa !5
  %6894 = call ptr @s2n_strerror_debug(i32 noundef %6893, ptr noundef @.str.4)
  %6895 = call ptr @__errno_location() #12
  %6896 = load i32, ptr %6895, align 4, !tbaa !5
  %6897 = call ptr @strerror(i32 noundef %6896) #11
  %6898 = call ptr @__errno_location() #12
  %6899 = load i32, ptr %6898, align 4, !tbaa !5
  %6900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6887, ptr noundef @.str.5, i32 noundef %6888, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 244, ptr noundef %6891, ptr noundef %6894, ptr noundef %6897, i32 noundef %6899) #11
  br label %6901

6901:                                             ; preds = %6884, %6867
  call void @llvm.lifetime.end.p0(i64 4, ptr %148) #11
  br label %6902

6902:                                             ; preds = %6901
  br label %6903

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

6904:                                             ; No predecessors!
  br label %6905

6905:                                             ; preds = %6904
  br label %6906

6906:                                             ; preds = %6905, %6843
  br label %6907

6907:                                             ; preds = %6906
  br label %6908

6908:                                             ; preds = %6907
  br label %6909

6909:                                             ; preds = %6908
  %6910 = load i32, ptr @test_count, align 4, !tbaa !5
  %6911 = add nsw i32 %6910, 1
  store i32 %6911, ptr @test_count, align 4, !tbaa !5
  %6912 = load i8, ptr %146, align 1, !tbaa !11, !range !13, !noundef !14
  %6913 = trunc i8 %6912 to i1
  br i1 %6913, label %6914, label %6967

6914:                                             ; preds = %6909
  br label %6915

6915:                                             ; preds = %6914
  br label %6916

6916:                                             ; preds = %6915
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #11
  %6917 = call ptr @__errno_location() #12
  %6918 = load i32, ptr %6917, align 4, !tbaa !5
  store i32 %6918, ptr %149, align 4, !tbaa !5
  %6919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6920 = call i32 @s2n_print_stacktrace(ptr noundef %6919)
  %6921 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6922 = trunc i8 %6921 to i1
  br i1 %6922, label %6923, label %6945

6923:                                             ; preds = %6916
  %6924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6925 = call i32 @fileno(ptr noundef %6924) #11
  %6926 = call i32 @isatty(i32 noundef %6925) #11
  %6927 = icmp ne i32 %6926, 0
  br i1 %6927, label %6928, label %6945

6928:                                             ; preds = %6923
  %6929 = load i32, ptr %149, align 4, !tbaa !5
  %6930 = call ptr @__errno_location() #12
  store i32 %6929, ptr %6930, align 4, !tbaa !5
  %6931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6932 = load i32, ptr @test_count, align 4, !tbaa !5
  %6933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6934 = load i32, ptr %6933, align 4, !tbaa !5
  %6935 = call ptr @s2n_strerror(i32 noundef %6934, ptr noundef @.str.4)
  %6936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6937 = load i32, ptr %6936, align 4, !tbaa !5
  %6938 = call ptr @s2n_strerror_debug(i32 noundef %6937, ptr noundef @.str.4)
  %6939 = call ptr @__errno_location() #12
  %6940 = load i32, ptr %6939, align 4, !tbaa !5
  %6941 = call ptr @strerror(i32 noundef %6940) #11
  %6942 = call ptr @__errno_location() #12
  %6943 = load i32, ptr %6942, align 4, !tbaa !5
  %6944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6931, ptr noundef @.str.2, i32 noundef %6932, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 245, ptr noundef %6935, ptr noundef %6938, ptr noundef %6941, i32 noundef %6943) #11
  br label %6962

6945:                                             ; preds = %6923, %6916
  %6946 = load i32, ptr %149, align 4, !tbaa !5
  %6947 = call ptr @__errno_location() #12
  store i32 %6946, ptr %6947, align 4, !tbaa !5
  %6948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6949 = load i32, ptr @test_count, align 4, !tbaa !5
  %6950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6951 = load i32, ptr %6950, align 4, !tbaa !5
  %6952 = call ptr @s2n_strerror(i32 noundef %6951, ptr noundef @.str.4)
  %6953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6954 = load i32, ptr %6953, align 4, !tbaa !5
  %6955 = call ptr @s2n_strerror_debug(i32 noundef %6954, ptr noundef @.str.4)
  %6956 = call ptr @__errno_location() #12
  %6957 = load i32, ptr %6956, align 4, !tbaa !5
  %6958 = call ptr @strerror(i32 noundef %6957) #11
  %6959 = call ptr @__errno_location() #12
  %6960 = load i32, ptr %6959, align 4, !tbaa !5
  %6961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6948, ptr noundef @.str.5, i32 noundef %6949, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 245, ptr noundef %6952, ptr noundef %6955, ptr noundef %6958, i32 noundef %6960) #11
  br label %6962

6962:                                             ; preds = %6945, %6928
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #11
  br label %6963

6963:                                             ; preds = %6962
  br label %6964

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

6965:                                             ; No predecessors!
  br label %6966

6966:                                             ; preds = %6965
  br label %6967

6967:                                             ; preds = %6966, %6909
  br label %6968

6968:                                             ; preds = %6967
  br label %6969

6969:                                             ; preds = %6968
  br label %6970

6970:                                             ; preds = %6969
  %6971 = load i32, ptr @test_count, align 4, !tbaa !5
  %6972 = add nsw i32 %6971, 1
  store i32 %6972, ptr @test_count, align 4, !tbaa !5
  %6973 = load ptr, ptr %144, align 8, !tbaa !9
  %6974 = call i32 @s2n_connection_free(ptr noundef %6973)
  %6975 = icmp eq i32 %6974, -1
  br i1 %6975, label %6976, label %7029

6976:                                             ; preds = %6970
  br label %6977

6977:                                             ; preds = %6976
  br label %6978

6978:                                             ; preds = %6977
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #11
  %6979 = call ptr @__errno_location() #12
  %6980 = load i32, ptr %6979, align 4, !tbaa !5
  store i32 %6980, ptr %150, align 4, !tbaa !5
  %6981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6982 = call i32 @s2n_print_stacktrace(ptr noundef %6981)
  %6983 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6984 = trunc i8 %6983 to i1
  br i1 %6984, label %6985, label %7007

6985:                                             ; preds = %6978
  %6986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6987 = call i32 @fileno(ptr noundef %6986) #11
  %6988 = call i32 @isatty(i32 noundef %6987) #11
  %6989 = icmp ne i32 %6988, 0
  br i1 %6989, label %6990, label %7007

6990:                                             ; preds = %6985
  %6991 = load i32, ptr %150, align 4, !tbaa !5
  %6992 = call ptr @__errno_location() #12
  store i32 %6991, ptr %6992, align 4, !tbaa !5
  %6993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6994 = load i32, ptr @test_count, align 4, !tbaa !5
  %6995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6996 = load i32, ptr %6995, align 4, !tbaa !5
  %6997 = call ptr @s2n_strerror(i32 noundef %6996, ptr noundef @.str.4)
  %6998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6999 = load i32, ptr %6998, align 4, !tbaa !5
  %7000 = call ptr @s2n_strerror_debug(i32 noundef %6999, ptr noundef @.str.4)
  %7001 = call ptr @__errno_location() #12
  %7002 = load i32, ptr %7001, align 4, !tbaa !5
  %7003 = call ptr @strerror(i32 noundef %7002) #11
  %7004 = call ptr @__errno_location() #12
  %7005 = load i32, ptr %7004, align 4, !tbaa !5
  %7006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6993, ptr noundef @.str.2, i32 noundef %6994, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 247, ptr noundef %6997, ptr noundef %7000, ptr noundef %7003, i32 noundef %7005) #11
  br label %7024

7007:                                             ; preds = %6985, %6978
  %7008 = load i32, ptr %150, align 4, !tbaa !5
  %7009 = call ptr @__errno_location() #12
  store i32 %7008, ptr %7009, align 4, !tbaa !5
  %7010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7011 = load i32, ptr @test_count, align 4, !tbaa !5
  %7012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7013 = load i32, ptr %7012, align 4, !tbaa !5
  %7014 = call ptr @s2n_strerror(i32 noundef %7013, ptr noundef @.str.4)
  %7015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7016 = load i32, ptr %7015, align 4, !tbaa !5
  %7017 = call ptr @s2n_strerror_debug(i32 noundef %7016, ptr noundef @.str.4)
  %7018 = call ptr @__errno_location() #12
  %7019 = load i32, ptr %7018, align 4, !tbaa !5
  %7020 = call ptr @strerror(i32 noundef %7019) #11
  %7021 = call ptr @__errno_location() #12
  %7022 = load i32, ptr %7021, align 4, !tbaa !5
  %7023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7010, ptr noundef @.str.5, i32 noundef %7011, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 247, ptr noundef %7014, ptr noundef %7017, ptr noundef %7020, i32 noundef %7022) #11
  br label %7024

7024:                                             ; preds = %7007, %6990
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #11
  br label %7025

7025:                                             ; preds = %7024
  br label %7026

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

7027:                                             ; No predecessors!
  br label %7028

7028:                                             ; preds = %7027
  br label %7029

7029:                                             ; preds = %7028, %6970
  br label %7030

7030:                                             ; preds = %7029
  br label %7031

7031:                                             ; preds = %7030
  call void @llvm.lifetime.end.p0(i64 1, ptr %146) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %144) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #11
  %7032 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7032, ptr %151, align 8, !tbaa !9
  br label %7033

7033:                                             ; preds = %7031
  %7034 = load i32, ptr @test_count, align 4, !tbaa !5
  %7035 = add nsw i32 %7034, 1
  store i32 %7035, ptr @test_count, align 4, !tbaa !5
  %7036 = load ptr, ptr %151, align 8, !tbaa !9
  %7037 = icmp eq ptr %7036, null
  br i1 %7037, label %7038, label %7091

7038:                                             ; preds = %7033
  br label %7039

7039:                                             ; preds = %7038
  br label %7040

7040:                                             ; preds = %7039
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #11
  %7041 = call ptr @__errno_location() #12
  %7042 = load i32, ptr %7041, align 4, !tbaa !5
  store i32 %7042, ptr %152, align 4, !tbaa !5
  %7043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7044 = call i32 @s2n_print_stacktrace(ptr noundef %7043)
  %7045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7046 = trunc i8 %7045 to i1
  br i1 %7046, label %7047, label %7069

7047:                                             ; preds = %7040
  %7048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7049 = call i32 @fileno(ptr noundef %7048) #11
  %7050 = call i32 @isatty(i32 noundef %7049) #11
  %7051 = icmp ne i32 %7050, 0
  br i1 %7051, label %7052, label %7069

7052:                                             ; preds = %7047
  %7053 = load i32, ptr %152, align 4, !tbaa !5
  %7054 = call ptr @__errno_location() #12
  store i32 %7053, ptr %7054, align 4, !tbaa !5
  %7055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7056 = load i32, ptr @test_count, align 4, !tbaa !5
  %7057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7058 = load i32, ptr %7057, align 4, !tbaa !5
  %7059 = call ptr @s2n_strerror(i32 noundef %7058, ptr noundef @.str.4)
  %7060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7061 = load i32, ptr %7060, align 4, !tbaa !5
  %7062 = call ptr @s2n_strerror_debug(i32 noundef %7061, ptr noundef @.str.4)
  %7063 = call ptr @__errno_location() #12
  %7064 = load i32, ptr %7063, align 4, !tbaa !5
  %7065 = call ptr @strerror(i32 noundef %7064) #11
  %7066 = call ptr @__errno_location() #12
  %7067 = load i32, ptr %7066, align 4, !tbaa !5
  %7068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7055, ptr noundef @.str.2, i32 noundef %7056, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 253, ptr noundef %7059, ptr noundef %7062, ptr noundef %7065, i32 noundef %7067) #11
  br label %7086

7069:                                             ; preds = %7047, %7040
  %7070 = load i32, ptr %152, align 4, !tbaa !5
  %7071 = call ptr @__errno_location() #12
  store i32 %7070, ptr %7071, align 4, !tbaa !5
  %7072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7073 = load i32, ptr @test_count, align 4, !tbaa !5
  %7074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7075 = load i32, ptr %7074, align 4, !tbaa !5
  %7076 = call ptr @s2n_strerror(i32 noundef %7075, ptr noundef @.str.4)
  %7077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7078 = load i32, ptr %7077, align 4, !tbaa !5
  %7079 = call ptr @s2n_strerror_debug(i32 noundef %7078, ptr noundef @.str.4)
  %7080 = call ptr @__errno_location() #12
  %7081 = load i32, ptr %7080, align 4, !tbaa !5
  %7082 = call ptr @strerror(i32 noundef %7081) #11
  %7083 = call ptr @__errno_location() #12
  %7084 = load i32, ptr %7083, align 4, !tbaa !5
  %7085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7072, ptr noundef @.str.5, i32 noundef %7073, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 253, ptr noundef %7076, ptr noundef %7079, ptr noundef %7082, i32 noundef %7084) #11
  br label %7086

7086:                                             ; preds = %7069, %7052
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #11
  br label %7087

7087:                                             ; preds = %7086
  br label %7088

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

7089:                                             ; No predecessors!
  br label %7090

7090:                                             ; preds = %7089
  br label %7091

7091:                                             ; preds = %7090, %7033
  br label %7092

7092:                                             ; preds = %7091
  br label %7093

7093:                                             ; preds = %7092
  br label %7094

7094:                                             ; preds = %7093
  %7095 = load i32, ptr @test_count, align 4, !tbaa !5
  %7096 = add nsw i32 %7095, 1
  store i32 %7096, ptr @test_count, align 4, !tbaa !5
  %7097 = load ptr, ptr %151, align 8, !tbaa !9
  %7098 = getelementptr inbounds [10 x i8], ptr %9, i64 0, i64 0
  %7099 = call i32 @s2n_connection_append_protocol_preference(ptr noundef %7097, ptr noundef %7098, i8 noundef zeroext 10)
  %7100 = icmp eq i32 %7099, -1
  br i1 %7100, label %7101, label %7154

7101:                                             ; preds = %7094
  br label %7102

7102:                                             ; preds = %7101
  br label %7103

7103:                                             ; preds = %7102
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #11
  %7104 = call ptr @__errno_location() #12
  %7105 = load i32, ptr %7104, align 4, !tbaa !5
  store i32 %7105, ptr %153, align 4, !tbaa !5
  %7106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7107 = call i32 @s2n_print_stacktrace(ptr noundef %7106)
  %7108 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7109 = trunc i8 %7108 to i1
  br i1 %7109, label %7110, label %7132

7110:                                             ; preds = %7103
  %7111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7112 = call i32 @fileno(ptr noundef %7111) #11
  %7113 = call i32 @isatty(i32 noundef %7112) #11
  %7114 = icmp ne i32 %7113, 0
  br i1 %7114, label %7115, label %7132

7115:                                             ; preds = %7110
  %7116 = load i32, ptr %153, align 4, !tbaa !5
  %7117 = call ptr @__errno_location() #12
  store i32 %7116, ptr %7117, align 4, !tbaa !5
  %7118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7119 = load i32, ptr @test_count, align 4, !tbaa !5
  %7120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7121 = load i32, ptr %7120, align 4, !tbaa !5
  %7122 = call ptr @s2n_strerror(i32 noundef %7121, ptr noundef @.str.4)
  %7123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7124 = load i32, ptr %7123, align 4, !tbaa !5
  %7125 = call ptr @s2n_strerror_debug(i32 noundef %7124, ptr noundef @.str.4)
  %7126 = call ptr @__errno_location() #12
  %7127 = load i32, ptr %7126, align 4, !tbaa !5
  %7128 = call ptr @strerror(i32 noundef %7127) #11
  %7129 = call ptr @__errno_location() #12
  %7130 = load i32, ptr %7129, align 4, !tbaa !5
  %7131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7118, ptr noundef @.str.2, i32 noundef %7119, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 255, ptr noundef %7122, ptr noundef %7125, ptr noundef %7128, i32 noundef %7130) #11
  br label %7149

7132:                                             ; preds = %7110, %7103
  %7133 = load i32, ptr %153, align 4, !tbaa !5
  %7134 = call ptr @__errno_location() #12
  store i32 %7133, ptr %7134, align 4, !tbaa !5
  %7135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7136 = load i32, ptr @test_count, align 4, !tbaa !5
  %7137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7138 = load i32, ptr %7137, align 4, !tbaa !5
  %7139 = call ptr @s2n_strerror(i32 noundef %7138, ptr noundef @.str.4)
  %7140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7141 = load i32, ptr %7140, align 4, !tbaa !5
  %7142 = call ptr @s2n_strerror_debug(i32 noundef %7141, ptr noundef @.str.4)
  %7143 = call ptr @__errno_location() #12
  %7144 = load i32, ptr %7143, align 4, !tbaa !5
  %7145 = call ptr @strerror(i32 noundef %7144) #11
  %7146 = call ptr @__errno_location() #12
  %7147 = load i32, ptr %7146, align 4, !tbaa !5
  %7148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7135, ptr noundef @.str.5, i32 noundef %7136, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 255, ptr noundef %7139, ptr noundef %7142, ptr noundef %7145, i32 noundef %7147) #11
  br label %7149

7149:                                             ; preds = %7132, %7115
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #11
  br label %7150

7150:                                             ; preds = %7149
  br label %7151

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

7152:                                             ; No predecessors!
  br label %7153

7153:                                             ; preds = %7152
  br label %7154

7154:                                             ; preds = %7153, %7094
  br label %7155

7155:                                             ; preds = %7154
  br label %7156

7156:                                             ; preds = %7155
  br label %7157

7157:                                             ; preds = %7156
  %7158 = load i32, ptr @test_count, align 4, !tbaa !5
  %7159 = add nsw i32 %7158, 1
  store i32 %7159, ptr @test_count, align 4, !tbaa !5
  %7160 = load ptr, ptr %151, align 8, !tbaa !9
  %7161 = getelementptr inbounds [15 x i8], ptr %11, i64 0, i64 0
  %7162 = call i32 @s2n_connection_append_protocol_preference(ptr noundef %7160, ptr noundef %7161, i8 noundef zeroext 15)
  %7163 = icmp eq i32 %7162, -1
  br i1 %7163, label %7164, label %7217

7164:                                             ; preds = %7157
  br label %7165

7165:                                             ; preds = %7164
  br label %7166

7166:                                             ; preds = %7165
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #11
  %7167 = call ptr @__errno_location() #12
  %7168 = load i32, ptr %7167, align 4, !tbaa !5
  store i32 %7168, ptr %154, align 4, !tbaa !5
  %7169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7170 = call i32 @s2n_print_stacktrace(ptr noundef %7169)
  %7171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7172 = trunc i8 %7171 to i1
  br i1 %7172, label %7173, label %7195

7173:                                             ; preds = %7166
  %7174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7175 = call i32 @fileno(ptr noundef %7174) #11
  %7176 = call i32 @isatty(i32 noundef %7175) #11
  %7177 = icmp ne i32 %7176, 0
  br i1 %7177, label %7178, label %7195

7178:                                             ; preds = %7173
  %7179 = load i32, ptr %154, align 4, !tbaa !5
  %7180 = call ptr @__errno_location() #12
  store i32 %7179, ptr %7180, align 4, !tbaa !5
  %7181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7182 = load i32, ptr @test_count, align 4, !tbaa !5
  %7183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7184 = load i32, ptr %7183, align 4, !tbaa !5
  %7185 = call ptr @s2n_strerror(i32 noundef %7184, ptr noundef @.str.4)
  %7186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7187 = load i32, ptr %7186, align 4, !tbaa !5
  %7188 = call ptr @s2n_strerror_debug(i32 noundef %7187, ptr noundef @.str.4)
  %7189 = call ptr @__errno_location() #12
  %7190 = load i32, ptr %7189, align 4, !tbaa !5
  %7191 = call ptr @strerror(i32 noundef %7190) #11
  %7192 = call ptr @__errno_location() #12
  %7193 = load i32, ptr %7192, align 4, !tbaa !5
  %7194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7181, ptr noundef @.str.2, i32 noundef %7182, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 256, ptr noundef %7185, ptr noundef %7188, ptr noundef %7191, i32 noundef %7193) #11
  br label %7212

7195:                                             ; preds = %7173, %7166
  %7196 = load i32, ptr %154, align 4, !tbaa !5
  %7197 = call ptr @__errno_location() #12
  store i32 %7196, ptr %7197, align 4, !tbaa !5
  %7198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7199 = load i32, ptr @test_count, align 4, !tbaa !5
  %7200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7201 = load i32, ptr %7200, align 4, !tbaa !5
  %7202 = call ptr @s2n_strerror(i32 noundef %7201, ptr noundef @.str.4)
  %7203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7204 = load i32, ptr %7203, align 4, !tbaa !5
  %7205 = call ptr @s2n_strerror_debug(i32 noundef %7204, ptr noundef @.str.4)
  %7206 = call ptr @__errno_location() #12
  %7207 = load i32, ptr %7206, align 4, !tbaa !5
  %7208 = call ptr @strerror(i32 noundef %7207) #11
  %7209 = call ptr @__errno_location() #12
  %7210 = load i32, ptr %7209, align 4, !tbaa !5
  %7211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7198, ptr noundef @.str.5, i32 noundef %7199, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 256, ptr noundef %7202, ptr noundef %7205, ptr noundef %7208, i32 noundef %7210) #11
  br label %7212

7212:                                             ; preds = %7195, %7178
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #11
  br label %7213

7213:                                             ; preds = %7212
  br label %7214

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

7215:                                             ; No predecessors!
  br label %7216

7216:                                             ; preds = %7215
  br label %7217

7217:                                             ; preds = %7216, %7157
  br label %7218

7218:                                             ; preds = %7217
  br label %7219

7219:                                             ; preds = %7218
  call void @llvm.lifetime.start.p0(i64 1, ptr %155) #11
  store i8 1, ptr %155, align 1, !tbaa !11
  br label %7220

7220:                                             ; preds = %7219
  %7221 = load i32, ptr @test_count, align 4, !tbaa !5
  %7222 = add nsw i32 %7221, 1
  store i32 %7222, ptr @test_count, align 4, !tbaa !5
  %7223 = load ptr, ptr %151, align 8, !tbaa !9
  %7224 = getelementptr inbounds %struct.s2n_connection, ptr %7223, i32 0, i32 82
  %7225 = call i32 @s2n_protocol_preferences_contain(ptr noundef %7224, ptr noundef %128, ptr noundef %155)
  %7226 = getelementptr inbounds %struct.s2n_result, ptr %156, i32 0, i32 0
  store i32 %7225, ptr %7226, align 4
  %7227 = getelementptr inbounds %struct.s2n_result, ptr %156, i32 0, i32 0
  %7228 = load i32, ptr %7227, align 4
  %7229 = call zeroext i1 @s2n_result_is_ok(i32 %7228)
  br i1 %7229, label %7283, label %7230

7230:                                             ; preds = %7220
  br label %7231

7231:                                             ; preds = %7230
  br label %7232

7232:                                             ; preds = %7231
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #11
  %7233 = call ptr @__errno_location() #12
  %7234 = load i32, ptr %7233, align 4, !tbaa !5
  store i32 %7234, ptr %157, align 4, !tbaa !5
  %7235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7236 = call i32 @s2n_print_stacktrace(ptr noundef %7235)
  %7237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7238 = trunc i8 %7237 to i1
  br i1 %7238, label %7239, label %7261

7239:                                             ; preds = %7232
  %7240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7241 = call i32 @fileno(ptr noundef %7240) #11
  %7242 = call i32 @isatty(i32 noundef %7241) #11
  %7243 = icmp ne i32 %7242, 0
  br i1 %7243, label %7244, label %7261

7244:                                             ; preds = %7239
  %7245 = load i32, ptr %157, align 4, !tbaa !5
  %7246 = call ptr @__errno_location() #12
  store i32 %7245, ptr %7246, align 4, !tbaa !5
  %7247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7248 = load i32, ptr @test_count, align 4, !tbaa !5
  %7249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7250 = load i32, ptr %7249, align 4, !tbaa !5
  %7251 = call ptr @s2n_strerror(i32 noundef %7250, ptr noundef @.str.4)
  %7252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7253 = load i32, ptr %7252, align 4, !tbaa !5
  %7254 = call ptr @s2n_strerror_debug(i32 noundef %7253, ptr noundef @.str.4)
  %7255 = call ptr @__errno_location() #12
  %7256 = load i32, ptr %7255, align 4, !tbaa !5
  %7257 = call ptr @strerror(i32 noundef %7256) #11
  %7258 = call ptr @__errno_location() #12
  %7259 = load i32, ptr %7258, align 4, !tbaa !5
  %7260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7247, ptr noundef @.str.2, i32 noundef %7248, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 259, ptr noundef %7251, ptr noundef %7254, ptr noundef %7257, i32 noundef %7259) #11
  br label %7278

7261:                                             ; preds = %7239, %7232
  %7262 = load i32, ptr %157, align 4, !tbaa !5
  %7263 = call ptr @__errno_location() #12
  store i32 %7262, ptr %7263, align 4, !tbaa !5
  %7264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7265 = load i32, ptr @test_count, align 4, !tbaa !5
  %7266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7267 = load i32, ptr %7266, align 4, !tbaa !5
  %7268 = call ptr @s2n_strerror(i32 noundef %7267, ptr noundef @.str.4)
  %7269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7270 = load i32, ptr %7269, align 4, !tbaa !5
  %7271 = call ptr @s2n_strerror_debug(i32 noundef %7270, ptr noundef @.str.4)
  %7272 = call ptr @__errno_location() #12
  %7273 = load i32, ptr %7272, align 4, !tbaa !5
  %7274 = call ptr @strerror(i32 noundef %7273) #11
  %7275 = call ptr @__errno_location() #12
  %7276 = load i32, ptr %7275, align 4, !tbaa !5
  %7277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7264, ptr noundef @.str.5, i32 noundef %7265, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 259, ptr noundef %7268, ptr noundef %7271, ptr noundef %7274, i32 noundef %7276) #11
  br label %7278

7278:                                             ; preds = %7261, %7244
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #11
  br label %7279

7279:                                             ; preds = %7278
  br label %7280

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

7281:                                             ; No predecessors!
  br label %7282

7282:                                             ; preds = %7281
  br label %7283

7283:                                             ; preds = %7282, %7220
  br label %7284

7284:                                             ; preds = %7283
  br label %7285

7285:                                             ; preds = %7284
  br label %7286

7286:                                             ; preds = %7285
  %7287 = load i32, ptr @test_count, align 4, !tbaa !5
  %7288 = add nsw i32 %7287, 1
  store i32 %7288, ptr @test_count, align 4, !tbaa !5
  %7289 = load i8, ptr %155, align 1, !tbaa !11, !range !13, !noundef !14
  %7290 = trunc i8 %7289 to i1
  br i1 %7290, label %7291, label %7344

7291:                                             ; preds = %7286
  br label %7292

7292:                                             ; preds = %7291
  br label %7293

7293:                                             ; preds = %7292
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #11
  %7294 = call ptr @__errno_location() #12
  %7295 = load i32, ptr %7294, align 4, !tbaa !5
  store i32 %7295, ptr %158, align 4, !tbaa !5
  %7296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7297 = call i32 @s2n_print_stacktrace(ptr noundef %7296)
  %7298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7299 = trunc i8 %7298 to i1
  br i1 %7299, label %7300, label %7322

7300:                                             ; preds = %7293
  %7301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7302 = call i32 @fileno(ptr noundef %7301) #11
  %7303 = call i32 @isatty(i32 noundef %7302) #11
  %7304 = icmp ne i32 %7303, 0
  br i1 %7304, label %7305, label %7322

7305:                                             ; preds = %7300
  %7306 = load i32, ptr %158, align 4, !tbaa !5
  %7307 = call ptr @__errno_location() #12
  store i32 %7306, ptr %7307, align 4, !tbaa !5
  %7308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7309 = load i32, ptr @test_count, align 4, !tbaa !5
  %7310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7311 = load i32, ptr %7310, align 4, !tbaa !5
  %7312 = call ptr @s2n_strerror(i32 noundef %7311, ptr noundef @.str.4)
  %7313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7314 = load i32, ptr %7313, align 4, !tbaa !5
  %7315 = call ptr @s2n_strerror_debug(i32 noundef %7314, ptr noundef @.str.4)
  %7316 = call ptr @__errno_location() #12
  %7317 = load i32, ptr %7316, align 4, !tbaa !5
  %7318 = call ptr @strerror(i32 noundef %7317) #11
  %7319 = call ptr @__errno_location() #12
  %7320 = load i32, ptr %7319, align 4, !tbaa !5
  %7321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7308, ptr noundef @.str.2, i32 noundef %7309, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 260, ptr noundef %7312, ptr noundef %7315, ptr noundef %7318, i32 noundef %7320) #11
  br label %7339

7322:                                             ; preds = %7300, %7293
  %7323 = load i32, ptr %158, align 4, !tbaa !5
  %7324 = call ptr @__errno_location() #12
  store i32 %7323, ptr %7324, align 4, !tbaa !5
  %7325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7326 = load i32, ptr @test_count, align 4, !tbaa !5
  %7327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7328 = load i32, ptr %7327, align 4, !tbaa !5
  %7329 = call ptr @s2n_strerror(i32 noundef %7328, ptr noundef @.str.4)
  %7330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7331 = load i32, ptr %7330, align 4, !tbaa !5
  %7332 = call ptr @s2n_strerror_debug(i32 noundef %7331, ptr noundef @.str.4)
  %7333 = call ptr @__errno_location() #12
  %7334 = load i32, ptr %7333, align 4, !tbaa !5
  %7335 = call ptr @strerror(i32 noundef %7334) #11
  %7336 = call ptr @__errno_location() #12
  %7337 = load i32, ptr %7336, align 4, !tbaa !5
  %7338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7325, ptr noundef @.str.5, i32 noundef %7326, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 260, ptr noundef %7329, ptr noundef %7332, ptr noundef %7335, i32 noundef %7337) #11
  br label %7339

7339:                                             ; preds = %7322, %7305
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #11
  br label %7340

7340:                                             ; preds = %7339
  br label %7341

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

7342:                                             ; No predecessors!
  br label %7343

7343:                                             ; preds = %7342
  br label %7344

7344:                                             ; preds = %7343, %7286
  br label %7345

7345:                                             ; preds = %7344
  br label %7346

7346:                                             ; preds = %7345
  br label %7347

7347:                                             ; preds = %7346
  %7348 = load i32, ptr @test_count, align 4, !tbaa !5
  %7349 = add nsw i32 %7348, 1
  store i32 %7349, ptr @test_count, align 4, !tbaa !5
  %7350 = load ptr, ptr %151, align 8, !tbaa !9
  %7351 = call i32 @s2n_connection_free(ptr noundef %7350)
  %7352 = icmp eq i32 %7351, -1
  br i1 %7352, label %7353, label %7406

7353:                                             ; preds = %7347
  br label %7354

7354:                                             ; preds = %7353
  br label %7355

7355:                                             ; preds = %7354
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #11
  %7356 = call ptr @__errno_location() #12
  %7357 = load i32, ptr %7356, align 4, !tbaa !5
  store i32 %7357, ptr %159, align 4, !tbaa !5
  %7358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7359 = call i32 @s2n_print_stacktrace(ptr noundef %7358)
  %7360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7361 = trunc i8 %7360 to i1
  br i1 %7361, label %7362, label %7384

7362:                                             ; preds = %7355
  %7363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7364 = call i32 @fileno(ptr noundef %7363) #11
  %7365 = call i32 @isatty(i32 noundef %7364) #11
  %7366 = icmp ne i32 %7365, 0
  br i1 %7366, label %7367, label %7384

7367:                                             ; preds = %7362
  %7368 = load i32, ptr %159, align 4, !tbaa !5
  %7369 = call ptr @__errno_location() #12
  store i32 %7368, ptr %7369, align 4, !tbaa !5
  %7370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7371 = load i32, ptr @test_count, align 4, !tbaa !5
  %7372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7373 = load i32, ptr %7372, align 4, !tbaa !5
  %7374 = call ptr @s2n_strerror(i32 noundef %7373, ptr noundef @.str.4)
  %7375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7376 = load i32, ptr %7375, align 4, !tbaa !5
  %7377 = call ptr @s2n_strerror_debug(i32 noundef %7376, ptr noundef @.str.4)
  %7378 = call ptr @__errno_location() #12
  %7379 = load i32, ptr %7378, align 4, !tbaa !5
  %7380 = call ptr @strerror(i32 noundef %7379) #11
  %7381 = call ptr @__errno_location() #12
  %7382 = load i32, ptr %7381, align 4, !tbaa !5
  %7383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7370, ptr noundef @.str.2, i32 noundef %7371, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 262, ptr noundef %7374, ptr noundef %7377, ptr noundef %7380, i32 noundef %7382) #11
  br label %7401

7384:                                             ; preds = %7362, %7355
  %7385 = load i32, ptr %159, align 4, !tbaa !5
  %7386 = call ptr @__errno_location() #12
  store i32 %7385, ptr %7386, align 4, !tbaa !5
  %7387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7388 = load i32, ptr @test_count, align 4, !tbaa !5
  %7389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7390 = load i32, ptr %7389, align 4, !tbaa !5
  %7391 = call ptr @s2n_strerror(i32 noundef %7390, ptr noundef @.str.4)
  %7392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7393 = load i32, ptr %7392, align 4, !tbaa !5
  %7394 = call ptr @s2n_strerror_debug(i32 noundef %7393, ptr noundef @.str.4)
  %7395 = call ptr @__errno_location() #12
  %7396 = load i32, ptr %7395, align 4, !tbaa !5
  %7397 = call ptr @strerror(i32 noundef %7396) #11
  %7398 = call ptr @__errno_location() #12
  %7399 = load i32, ptr %7398, align 4, !tbaa !5
  %7400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7387, ptr noundef @.str.5, i32 noundef %7388, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 262, ptr noundef %7391, ptr noundef %7394, ptr noundef %7397, i32 noundef %7399) #11
  br label %7401

7401:                                             ; preds = %7384, %7367
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #11
  br label %7402

7402:                                             ; preds = %7401
  br label %7403

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

7404:                                             ; No predecessors!
  br label %7405

7405:                                             ; preds = %7404
  br label %7406

7406:                                             ; preds = %7405, %7347
  br label %7407

7407:                                             ; preds = %7406
  br label %7408

7408:                                             ; preds = %7407
  call void @llvm.lifetime.end.p0(i64 1, ptr %155) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %160) #11
  %7409 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %7409, ptr %160, align 8, !tbaa !9
  br label %7410

7410:                                             ; preds = %7408
  %7411 = load i32, ptr @test_count, align 4, !tbaa !5
  %7412 = add nsw i32 %7411, 1
  store i32 %7412, ptr @test_count, align 4, !tbaa !5
  %7413 = load ptr, ptr %160, align 8, !tbaa !9
  %7414 = icmp eq ptr %7413, null
  br i1 %7414, label %7415, label %7468

7415:                                             ; preds = %7410
  br label %7416

7416:                                             ; preds = %7415
  br label %7417

7417:                                             ; preds = %7416
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #11
  %7418 = call ptr @__errno_location() #12
  %7419 = load i32, ptr %7418, align 4, !tbaa !5
  store i32 %7419, ptr %161, align 4, !tbaa !5
  %7420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7421 = call i32 @s2n_print_stacktrace(ptr noundef %7420)
  %7422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7423 = trunc i8 %7422 to i1
  br i1 %7423, label %7424, label %7446

7424:                                             ; preds = %7417
  %7425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7426 = call i32 @fileno(ptr noundef %7425) #11
  %7427 = call i32 @isatty(i32 noundef %7426) #11
  %7428 = icmp ne i32 %7427, 0
  br i1 %7428, label %7429, label %7446

7429:                                             ; preds = %7424
  %7430 = load i32, ptr %161, align 4, !tbaa !5
  %7431 = call ptr @__errno_location() #12
  store i32 %7430, ptr %7431, align 4, !tbaa !5
  %7432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7433 = load i32, ptr @test_count, align 4, !tbaa !5
  %7434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7435 = load i32, ptr %7434, align 4, !tbaa !5
  %7436 = call ptr @s2n_strerror(i32 noundef %7435, ptr noundef @.str.4)
  %7437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7438 = load i32, ptr %7437, align 4, !tbaa !5
  %7439 = call ptr @s2n_strerror_debug(i32 noundef %7438, ptr noundef @.str.4)
  %7440 = call ptr @__errno_location() #12
  %7441 = load i32, ptr %7440, align 4, !tbaa !5
  %7442 = call ptr @strerror(i32 noundef %7441) #11
  %7443 = call ptr @__errno_location() #12
  %7444 = load i32, ptr %7443, align 4, !tbaa !5
  %7445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7432, ptr noundef @.str.2, i32 noundef %7433, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 268, ptr noundef %7436, ptr noundef %7439, ptr noundef %7442, i32 noundef %7444) #11
  br label %7463

7446:                                             ; preds = %7424, %7417
  %7447 = load i32, ptr %161, align 4, !tbaa !5
  %7448 = call ptr @__errno_location() #12
  store i32 %7447, ptr %7448, align 4, !tbaa !5
  %7449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7450 = load i32, ptr @test_count, align 4, !tbaa !5
  %7451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7452 = load i32, ptr %7451, align 4, !tbaa !5
  %7453 = call ptr @s2n_strerror(i32 noundef %7452, ptr noundef @.str.4)
  %7454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7455 = load i32, ptr %7454, align 4, !tbaa !5
  %7456 = call ptr @s2n_strerror_debug(i32 noundef %7455, ptr noundef @.str.4)
  %7457 = call ptr @__errno_location() #12
  %7458 = load i32, ptr %7457, align 4, !tbaa !5
  %7459 = call ptr @strerror(i32 noundef %7458) #11
  %7460 = call ptr @__errno_location() #12
  %7461 = load i32, ptr %7460, align 4, !tbaa !5
  %7462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7449, ptr noundef @.str.5, i32 noundef %7450, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 268, ptr noundef %7453, ptr noundef %7456, ptr noundef %7459, i32 noundef %7461) #11
  br label %7463

7463:                                             ; preds = %7446, %7429
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #11
  br label %7464

7464:                                             ; preds = %7463
  br label %7465

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

7466:                                             ; No predecessors!
  br label %7467

7467:                                             ; preds = %7466
  br label %7468

7468:                                             ; preds = %7467, %7410
  br label %7469

7469:                                             ; preds = %7468
  br label %7470

7470:                                             ; preds = %7469
  br label %7471

7471:                                             ; preds = %7470
  %7472 = load i32, ptr @test_count, align 4, !tbaa !5
  %7473 = add nsw i32 %7472, 1
  store i32 %7473, ptr @test_count, align 4, !tbaa !5
  %7474 = load ptr, ptr %160, align 8, !tbaa !9
  %7475 = getelementptr inbounds [10 x i8], ptr %9, i64 0, i64 0
  %7476 = call i32 @s2n_connection_append_protocol_preference(ptr noundef %7474, ptr noundef %7475, i8 noundef zeroext 10)
  %7477 = icmp eq i32 %7476, -1
  br i1 %7477, label %7478, label %7531

7478:                                             ; preds = %7471
  br label %7479

7479:                                             ; preds = %7478
  br label %7480

7480:                                             ; preds = %7479
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #11
  %7481 = call ptr @__errno_location() #12
  %7482 = load i32, ptr %7481, align 4, !tbaa !5
  store i32 %7482, ptr %162, align 4, !tbaa !5
  %7483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7484 = call i32 @s2n_print_stacktrace(ptr noundef %7483)
  %7485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7486 = trunc i8 %7485 to i1
  br i1 %7486, label %7487, label %7509

7487:                                             ; preds = %7480
  %7488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7489 = call i32 @fileno(ptr noundef %7488) #11
  %7490 = call i32 @isatty(i32 noundef %7489) #11
  %7491 = icmp ne i32 %7490, 0
  br i1 %7491, label %7492, label %7509

7492:                                             ; preds = %7487
  %7493 = load i32, ptr %162, align 4, !tbaa !5
  %7494 = call ptr @__errno_location() #12
  store i32 %7493, ptr %7494, align 4, !tbaa !5
  %7495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7496 = load i32, ptr @test_count, align 4, !tbaa !5
  %7497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7498 = load i32, ptr %7497, align 4, !tbaa !5
  %7499 = call ptr @s2n_strerror(i32 noundef %7498, ptr noundef @.str.4)
  %7500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7501 = load i32, ptr %7500, align 4, !tbaa !5
  %7502 = call ptr @s2n_strerror_debug(i32 noundef %7501, ptr noundef @.str.4)
  %7503 = call ptr @__errno_location() #12
  %7504 = load i32, ptr %7503, align 4, !tbaa !5
  %7505 = call ptr @strerror(i32 noundef %7504) #11
  %7506 = call ptr @__errno_location() #12
  %7507 = load i32, ptr %7506, align 4, !tbaa !5
  %7508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7495, ptr noundef @.str.2, i32 noundef %7496, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 270, ptr noundef %7499, ptr noundef %7502, ptr noundef %7505, i32 noundef %7507) #11
  br label %7526

7509:                                             ; preds = %7487, %7480
  %7510 = load i32, ptr %162, align 4, !tbaa !5
  %7511 = call ptr @__errno_location() #12
  store i32 %7510, ptr %7511, align 4, !tbaa !5
  %7512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7513 = load i32, ptr @test_count, align 4, !tbaa !5
  %7514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7515 = load i32, ptr %7514, align 4, !tbaa !5
  %7516 = call ptr @s2n_strerror(i32 noundef %7515, ptr noundef @.str.4)
  %7517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7518 = load i32, ptr %7517, align 4, !tbaa !5
  %7519 = call ptr @s2n_strerror_debug(i32 noundef %7518, ptr noundef @.str.4)
  %7520 = call ptr @__errno_location() #12
  %7521 = load i32, ptr %7520, align 4, !tbaa !5
  %7522 = call ptr @strerror(i32 noundef %7521) #11
  %7523 = call ptr @__errno_location() #12
  %7524 = load i32, ptr %7523, align 4, !tbaa !5
  %7525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7512, ptr noundef @.str.5, i32 noundef %7513, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 270, ptr noundef %7516, ptr noundef %7519, ptr noundef %7522, i32 noundef %7524) #11
  br label %7526

7526:                                             ; preds = %7509, %7492
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #11
  br label %7527

7527:                                             ; preds = %7526
  br label %7528

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

7529:                                             ; No predecessors!
  br label %7530

7530:                                             ; preds = %7529
  br label %7531

7531:                                             ; preds = %7530, %7471
  br label %7532

7532:                                             ; preds = %7531
  br label %7533

7533:                                             ; preds = %7532
  br label %7534

7534:                                             ; preds = %7533
  %7535 = load i32, ptr @test_count, align 4, !tbaa !5
  %7536 = add nsw i32 %7535, 1
  store i32 %7536, ptr @test_count, align 4, !tbaa !5
  %7537 = load ptr, ptr %160, align 8, !tbaa !9
  %7538 = getelementptr inbounds [15 x i8], ptr %11, i64 0, i64 0
  %7539 = call i32 @s2n_connection_append_protocol_preference(ptr noundef %7537, ptr noundef %7538, i8 noundef zeroext 15)
  %7540 = icmp eq i32 %7539, -1
  br i1 %7540, label %7541, label %7594

7541:                                             ; preds = %7534
  br label %7542

7542:                                             ; preds = %7541
  br label %7543

7543:                                             ; preds = %7542
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #11
  %7544 = call ptr @__errno_location() #12
  %7545 = load i32, ptr %7544, align 4, !tbaa !5
  store i32 %7545, ptr %163, align 4, !tbaa !5
  %7546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7547 = call i32 @s2n_print_stacktrace(ptr noundef %7546)
  %7548 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7549 = trunc i8 %7548 to i1
  br i1 %7549, label %7550, label %7572

7550:                                             ; preds = %7543
  %7551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7552 = call i32 @fileno(ptr noundef %7551) #11
  %7553 = call i32 @isatty(i32 noundef %7552) #11
  %7554 = icmp ne i32 %7553, 0
  br i1 %7554, label %7555, label %7572

7555:                                             ; preds = %7550
  %7556 = load i32, ptr %163, align 4, !tbaa !5
  %7557 = call ptr @__errno_location() #12
  store i32 %7556, ptr %7557, align 4, !tbaa !5
  %7558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7559 = load i32, ptr @test_count, align 4, !tbaa !5
  %7560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7561 = load i32, ptr %7560, align 4, !tbaa !5
  %7562 = call ptr @s2n_strerror(i32 noundef %7561, ptr noundef @.str.4)
  %7563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7564 = load i32, ptr %7563, align 4, !tbaa !5
  %7565 = call ptr @s2n_strerror_debug(i32 noundef %7564, ptr noundef @.str.4)
  %7566 = call ptr @__errno_location() #12
  %7567 = load i32, ptr %7566, align 4, !tbaa !5
  %7568 = call ptr @strerror(i32 noundef %7567) #11
  %7569 = call ptr @__errno_location() #12
  %7570 = load i32, ptr %7569, align 4, !tbaa !5
  %7571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7558, ptr noundef @.str.2, i32 noundef %7559, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 271, ptr noundef %7562, ptr noundef %7565, ptr noundef %7568, i32 noundef %7570) #11
  br label %7589

7572:                                             ; preds = %7550, %7543
  %7573 = load i32, ptr %163, align 4, !tbaa !5
  %7574 = call ptr @__errno_location() #12
  store i32 %7573, ptr %7574, align 4, !tbaa !5
  %7575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7576 = load i32, ptr @test_count, align 4, !tbaa !5
  %7577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7578 = load i32, ptr %7577, align 4, !tbaa !5
  %7579 = call ptr @s2n_strerror(i32 noundef %7578, ptr noundef @.str.4)
  %7580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7581 = load i32, ptr %7580, align 4, !tbaa !5
  %7582 = call ptr @s2n_strerror_debug(i32 noundef %7581, ptr noundef @.str.4)
  %7583 = call ptr @__errno_location() #12
  %7584 = load i32, ptr %7583, align 4, !tbaa !5
  %7585 = call ptr @strerror(i32 noundef %7584) #11
  %7586 = call ptr @__errno_location() #12
  %7587 = load i32, ptr %7586, align 4, !tbaa !5
  %7588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7575, ptr noundef @.str.5, i32 noundef %7576, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 271, ptr noundef %7579, ptr noundef %7582, ptr noundef %7585, i32 noundef %7587) #11
  br label %7589

7589:                                             ; preds = %7572, %7555
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #11
  br label %7590

7590:                                             ; preds = %7589
  br label %7591

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

7592:                                             ; No predecessors!
  br label %7593

7593:                                             ; preds = %7592
  br label %7594

7594:                                             ; preds = %7593, %7534
  br label %7595

7595:                                             ; preds = %7594
  br label %7596

7596:                                             ; preds = %7595
  br label %7597

7597:                                             ; preds = %7596
  %7598 = load i32, ptr @test_count, align 4, !tbaa !5
  %7599 = add nsw i32 %7598, 1
  store i32 %7599, ptr @test_count, align 4, !tbaa !5
  %7600 = load ptr, ptr %160, align 8, !tbaa !9
  %7601 = getelementptr inbounds [10 x i8], ptr %127, i64 0, i64 0
  %7602 = call i32 @s2n_connection_append_protocol_preference(ptr noundef %7600, ptr noundef %7601, i8 noundef zeroext 10)
  %7603 = icmp eq i32 %7602, -1
  br i1 %7603, label %7604, label %7657

7604:                                             ; preds = %7597
  br label %7605

7605:                                             ; preds = %7604
  br label %7606

7606:                                             ; preds = %7605
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #11
  %7607 = call ptr @__errno_location() #12
  %7608 = load i32, ptr %7607, align 4, !tbaa !5
  store i32 %7608, ptr %164, align 4, !tbaa !5
  %7609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7610 = call i32 @s2n_print_stacktrace(ptr noundef %7609)
  %7611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7612 = trunc i8 %7611 to i1
  br i1 %7612, label %7613, label %7635

7613:                                             ; preds = %7606
  %7614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7615 = call i32 @fileno(ptr noundef %7614) #11
  %7616 = call i32 @isatty(i32 noundef %7615) #11
  %7617 = icmp ne i32 %7616, 0
  br i1 %7617, label %7618, label %7635

7618:                                             ; preds = %7613
  %7619 = load i32, ptr %164, align 4, !tbaa !5
  %7620 = call ptr @__errno_location() #12
  store i32 %7619, ptr %7620, align 4, !tbaa !5
  %7621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7622 = load i32, ptr @test_count, align 4, !tbaa !5
  %7623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7624 = load i32, ptr %7623, align 4, !tbaa !5
  %7625 = call ptr @s2n_strerror(i32 noundef %7624, ptr noundef @.str.4)
  %7626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7627 = load i32, ptr %7626, align 4, !tbaa !5
  %7628 = call ptr @s2n_strerror_debug(i32 noundef %7627, ptr noundef @.str.4)
  %7629 = call ptr @__errno_location() #12
  %7630 = load i32, ptr %7629, align 4, !tbaa !5
  %7631 = call ptr @strerror(i32 noundef %7630) #11
  %7632 = call ptr @__errno_location() #12
  %7633 = load i32, ptr %7632, align 4, !tbaa !5
  %7634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7621, ptr noundef @.str.2, i32 noundef %7622, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 272, ptr noundef %7625, ptr noundef %7628, ptr noundef %7631, i32 noundef %7633) #11
  br label %7652

7635:                                             ; preds = %7613, %7606
  %7636 = load i32, ptr %164, align 4, !tbaa !5
  %7637 = call ptr @__errno_location() #12
  store i32 %7636, ptr %7637, align 4, !tbaa !5
  %7638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7639 = load i32, ptr @test_count, align 4, !tbaa !5
  %7640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7641 = load i32, ptr %7640, align 4, !tbaa !5
  %7642 = call ptr @s2n_strerror(i32 noundef %7641, ptr noundef @.str.4)
  %7643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7644 = load i32, ptr %7643, align 4, !tbaa !5
  %7645 = call ptr @s2n_strerror_debug(i32 noundef %7644, ptr noundef @.str.4)
  %7646 = call ptr @__errno_location() #12
  %7647 = load i32, ptr %7646, align 4, !tbaa !5
  %7648 = call ptr @strerror(i32 noundef %7647) #11
  %7649 = call ptr @__errno_location() #12
  %7650 = load i32, ptr %7649, align 4, !tbaa !5
  %7651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7638, ptr noundef @.str.5, i32 noundef %7639, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 272, ptr noundef %7642, ptr noundef %7645, ptr noundef %7648, i32 noundef %7650) #11
  br label %7652

7652:                                             ; preds = %7635, %7618
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #11
  br label %7653

7653:                                             ; preds = %7652
  br label %7654

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

7655:                                             ; No predecessors!
  br label %7656

7656:                                             ; preds = %7655
  br label %7657

7657:                                             ; preds = %7656, %7597
  br label %7658

7658:                                             ; preds = %7657
  br label %7659

7659:                                             ; preds = %7658
  call void @llvm.lifetime.start.p0(i64 1, ptr %165) #11
  store i8 0, ptr %165, align 1, !tbaa !11
  br label %7660

7660:                                             ; preds = %7659
  %7661 = load i32, ptr @test_count, align 4, !tbaa !5
  %7662 = add nsw i32 %7661, 1
  store i32 %7662, ptr @test_count, align 4, !tbaa !5
  %7663 = load ptr, ptr %160, align 8, !tbaa !9
  %7664 = getelementptr inbounds %struct.s2n_connection, ptr %7663, i32 0, i32 82
  %7665 = call i32 @s2n_protocol_preferences_contain(ptr noundef %7664, ptr noundef %128, ptr noundef %165)
  %7666 = getelementptr inbounds %struct.s2n_result, ptr %166, i32 0, i32 0
  store i32 %7665, ptr %7666, align 4
  %7667 = getelementptr inbounds %struct.s2n_result, ptr %166, i32 0, i32 0
  %7668 = load i32, ptr %7667, align 4
  %7669 = call zeroext i1 @s2n_result_is_ok(i32 %7668)
  br i1 %7669, label %7723, label %7670

7670:                                             ; preds = %7660
  br label %7671

7671:                                             ; preds = %7670
  br label %7672

7672:                                             ; preds = %7671
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #11
  %7673 = call ptr @__errno_location() #12
  %7674 = load i32, ptr %7673, align 4, !tbaa !5
  store i32 %7674, ptr %167, align 4, !tbaa !5
  %7675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7676 = call i32 @s2n_print_stacktrace(ptr noundef %7675)
  %7677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7678 = trunc i8 %7677 to i1
  br i1 %7678, label %7679, label %7701

7679:                                             ; preds = %7672
  %7680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7681 = call i32 @fileno(ptr noundef %7680) #11
  %7682 = call i32 @isatty(i32 noundef %7681) #11
  %7683 = icmp ne i32 %7682, 0
  br i1 %7683, label %7684, label %7701

7684:                                             ; preds = %7679
  %7685 = load i32, ptr %167, align 4, !tbaa !5
  %7686 = call ptr @__errno_location() #12
  store i32 %7685, ptr %7686, align 4, !tbaa !5
  %7687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7688 = load i32, ptr @test_count, align 4, !tbaa !5
  %7689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7690 = load i32, ptr %7689, align 4, !tbaa !5
  %7691 = call ptr @s2n_strerror(i32 noundef %7690, ptr noundef @.str.4)
  %7692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7693 = load i32, ptr %7692, align 4, !tbaa !5
  %7694 = call ptr @s2n_strerror_debug(i32 noundef %7693, ptr noundef @.str.4)
  %7695 = call ptr @__errno_location() #12
  %7696 = load i32, ptr %7695, align 4, !tbaa !5
  %7697 = call ptr @strerror(i32 noundef %7696) #11
  %7698 = call ptr @__errno_location() #12
  %7699 = load i32, ptr %7698, align 4, !tbaa !5
  %7700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7687, ptr noundef @.str.2, i32 noundef %7688, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 275, ptr noundef %7691, ptr noundef %7694, ptr noundef %7697, i32 noundef %7699) #11
  br label %7718

7701:                                             ; preds = %7679, %7672
  %7702 = load i32, ptr %167, align 4, !tbaa !5
  %7703 = call ptr @__errno_location() #12
  store i32 %7702, ptr %7703, align 4, !tbaa !5
  %7704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7705 = load i32, ptr @test_count, align 4, !tbaa !5
  %7706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7707 = load i32, ptr %7706, align 4, !tbaa !5
  %7708 = call ptr @s2n_strerror(i32 noundef %7707, ptr noundef @.str.4)
  %7709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7710 = load i32, ptr %7709, align 4, !tbaa !5
  %7711 = call ptr @s2n_strerror_debug(i32 noundef %7710, ptr noundef @.str.4)
  %7712 = call ptr @__errno_location() #12
  %7713 = load i32, ptr %7712, align 4, !tbaa !5
  %7714 = call ptr @strerror(i32 noundef %7713) #11
  %7715 = call ptr @__errno_location() #12
  %7716 = load i32, ptr %7715, align 4, !tbaa !5
  %7717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7704, ptr noundef @.str.5, i32 noundef %7705, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 275, ptr noundef %7708, ptr noundef %7711, ptr noundef %7714, i32 noundef %7716) #11
  br label %7718

7718:                                             ; preds = %7701, %7684
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #11
  br label %7719

7719:                                             ; preds = %7718
  br label %7720

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

7721:                                             ; No predecessors!
  br label %7722

7722:                                             ; preds = %7721
  br label %7723

7723:                                             ; preds = %7722, %7660
  br label %7724

7724:                                             ; preds = %7723
  br label %7725

7725:                                             ; preds = %7724
  br label %7726

7726:                                             ; preds = %7725
  %7727 = load i32, ptr @test_count, align 4, !tbaa !5
  %7728 = add nsw i32 %7727, 1
  store i32 %7728, ptr @test_count, align 4, !tbaa !5
  %7729 = load i8, ptr %165, align 1, !tbaa !11, !range !13, !noundef !14
  %7730 = trunc i8 %7729 to i1
  br i1 %7730, label %7784, label %7731

7731:                                             ; preds = %7726
  br label %7732

7732:                                             ; preds = %7731
  br label %7733

7733:                                             ; preds = %7732
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #11
  %7734 = call ptr @__errno_location() #12
  %7735 = load i32, ptr %7734, align 4, !tbaa !5
  store i32 %7735, ptr %168, align 4, !tbaa !5
  %7736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7737 = call i32 @s2n_print_stacktrace(ptr noundef %7736)
  %7738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7739 = trunc i8 %7738 to i1
  br i1 %7739, label %7740, label %7762

7740:                                             ; preds = %7733
  %7741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7742 = call i32 @fileno(ptr noundef %7741) #11
  %7743 = call i32 @isatty(i32 noundef %7742) #11
  %7744 = icmp ne i32 %7743, 0
  br i1 %7744, label %7745, label %7762

7745:                                             ; preds = %7740
  %7746 = load i32, ptr %168, align 4, !tbaa !5
  %7747 = call ptr @__errno_location() #12
  store i32 %7746, ptr %7747, align 4, !tbaa !5
  %7748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7749 = load i32, ptr @test_count, align 4, !tbaa !5
  %7750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7751 = load i32, ptr %7750, align 4, !tbaa !5
  %7752 = call ptr @s2n_strerror(i32 noundef %7751, ptr noundef @.str.4)
  %7753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7754 = load i32, ptr %7753, align 4, !tbaa !5
  %7755 = call ptr @s2n_strerror_debug(i32 noundef %7754, ptr noundef @.str.4)
  %7756 = call ptr @__errno_location() #12
  %7757 = load i32, ptr %7756, align 4, !tbaa !5
  %7758 = call ptr @strerror(i32 noundef %7757) #11
  %7759 = call ptr @__errno_location() #12
  %7760 = load i32, ptr %7759, align 4, !tbaa !5
  %7761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7748, ptr noundef @.str.2, i32 noundef %7749, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 276, ptr noundef %7752, ptr noundef %7755, ptr noundef %7758, i32 noundef %7760) #11
  br label %7779

7762:                                             ; preds = %7740, %7733
  %7763 = load i32, ptr %168, align 4, !tbaa !5
  %7764 = call ptr @__errno_location() #12
  store i32 %7763, ptr %7764, align 4, !tbaa !5
  %7765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7766 = load i32, ptr @test_count, align 4, !tbaa !5
  %7767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7768 = load i32, ptr %7767, align 4, !tbaa !5
  %7769 = call ptr @s2n_strerror(i32 noundef %7768, ptr noundef @.str.4)
  %7770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7771 = load i32, ptr %7770, align 4, !tbaa !5
  %7772 = call ptr @s2n_strerror_debug(i32 noundef %7771, ptr noundef @.str.4)
  %7773 = call ptr @__errno_location() #12
  %7774 = load i32, ptr %7773, align 4, !tbaa !5
  %7775 = call ptr @strerror(i32 noundef %7774) #11
  %7776 = call ptr @__errno_location() #12
  %7777 = load i32, ptr %7776, align 4, !tbaa !5
  %7778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7765, ptr noundef @.str.5, i32 noundef %7766, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 276, ptr noundef %7769, ptr noundef %7772, ptr noundef %7775, i32 noundef %7777) #11
  br label %7779

7779:                                             ; preds = %7762, %7745
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #11
  br label %7780

7780:                                             ; preds = %7779
  br label %7781

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

7782:                                             ; No predecessors!
  br label %7783

7783:                                             ; preds = %7782
  br label %7784

7784:                                             ; preds = %7783, %7726
  br label %7785

7785:                                             ; preds = %7784
  br label %7786

7786:                                             ; preds = %7785
  br label %7787

7787:                                             ; preds = %7786
  %7788 = load i32, ptr @test_count, align 4, !tbaa !5
  %7789 = add nsw i32 %7788, 1
  store i32 %7789, ptr @test_count, align 4, !tbaa !5
  %7790 = load ptr, ptr %160, align 8, !tbaa !9
  %7791 = call i32 @s2n_connection_free(ptr noundef %7790)
  %7792 = icmp eq i32 %7791, -1
  br i1 %7792, label %7793, label %7846

7793:                                             ; preds = %7787
  br label %7794

7794:                                             ; preds = %7793
  br label %7795

7795:                                             ; preds = %7794
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #11
  %7796 = call ptr @__errno_location() #12
  %7797 = load i32, ptr %7796, align 4, !tbaa !5
  store i32 %7797, ptr %169, align 4, !tbaa !5
  %7798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7799 = call i32 @s2n_print_stacktrace(ptr noundef %7798)
  %7800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7801 = trunc i8 %7800 to i1
  br i1 %7801, label %7802, label %7824

7802:                                             ; preds = %7795
  %7803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7804 = call i32 @fileno(ptr noundef %7803) #11
  %7805 = call i32 @isatty(i32 noundef %7804) #11
  %7806 = icmp ne i32 %7805, 0
  br i1 %7806, label %7807, label %7824

7807:                                             ; preds = %7802
  %7808 = load i32, ptr %169, align 4, !tbaa !5
  %7809 = call ptr @__errno_location() #12
  store i32 %7808, ptr %7809, align 4, !tbaa !5
  %7810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7811 = load i32, ptr @test_count, align 4, !tbaa !5
  %7812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7813 = load i32, ptr %7812, align 4, !tbaa !5
  %7814 = call ptr @s2n_strerror(i32 noundef %7813, ptr noundef @.str.4)
  %7815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7816 = load i32, ptr %7815, align 4, !tbaa !5
  %7817 = call ptr @s2n_strerror_debug(i32 noundef %7816, ptr noundef @.str.4)
  %7818 = call ptr @__errno_location() #12
  %7819 = load i32, ptr %7818, align 4, !tbaa !5
  %7820 = call ptr @strerror(i32 noundef %7819) #11
  %7821 = call ptr @__errno_location() #12
  %7822 = load i32, ptr %7821, align 4, !tbaa !5
  %7823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7810, ptr noundef @.str.2, i32 noundef %7811, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 278, ptr noundef %7814, ptr noundef %7817, ptr noundef %7820, i32 noundef %7822) #11
  br label %7841

7824:                                             ; preds = %7802, %7795
  %7825 = load i32, ptr %169, align 4, !tbaa !5
  %7826 = call ptr @__errno_location() #12
  store i32 %7825, ptr %7826, align 4, !tbaa !5
  %7827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7828 = load i32, ptr @test_count, align 4, !tbaa !5
  %7829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7830 = load i32, ptr %7829, align 4, !tbaa !5
  %7831 = call ptr @s2n_strerror(i32 noundef %7830, ptr noundef @.str.4)
  %7832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7833 = load i32, ptr %7832, align 4, !tbaa !5
  %7834 = call ptr @s2n_strerror_debug(i32 noundef %7833, ptr noundef @.str.4)
  %7835 = call ptr @__errno_location() #12
  %7836 = load i32, ptr %7835, align 4, !tbaa !5
  %7837 = call ptr @strerror(i32 noundef %7836) #11
  %7838 = call ptr @__errno_location() #12
  %7839 = load i32, ptr %7838, align 4, !tbaa !5
  %7840 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7827, ptr noundef @.str.5, i32 noundef %7828, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 278, ptr noundef %7831, ptr noundef %7834, ptr noundef %7837, i32 noundef %7839) #11
  br label %7841

7841:                                             ; preds = %7824, %7807
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #11
  br label %7842

7842:                                             ; preds = %7841
  br label %7843

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

7844:                                             ; No predecessors!
  br label %7845

7845:                                             ; preds = %7844
  br label %7846

7846:                                             ; preds = %7845, %7787
  br label %7847

7847:                                             ; preds = %7846
  br label %7848

7848:                                             ; preds = %7847
  call void @llvm.lifetime.end.p0(i64 1, ptr %165) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %160) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %128) #11
  call void @llvm.lifetime.end.p0(i64 10, ptr %127) #11
  br label %7849

7849:                                             ; preds = %7848
  br label %7850

7850:                                             ; preds = %7849
  %7851 = call i32 @s2n_cleanup()
  %7852 = icmp eq i32 %7851, -1
  br i1 %7852, label %7853, label %7906

7853:                                             ; preds = %7850
  br label %7854

7854:                                             ; preds = %7853
  br label %7855

7855:                                             ; preds = %7854
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #11
  %7856 = call ptr @__errno_location() #12
  %7857 = load i32, ptr %7856, align 4, !tbaa !5
  store i32 %7857, ptr %170, align 4, !tbaa !5
  %7858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7859 = call i32 @s2n_print_stacktrace(ptr noundef %7858)
  %7860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7861 = trunc i8 %7860 to i1
  br i1 %7861, label %7862, label %7884

7862:                                             ; preds = %7855
  %7863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7864 = call i32 @fileno(ptr noundef %7863) #11
  %7865 = call i32 @isatty(i32 noundef %7864) #11
  %7866 = icmp ne i32 %7865, 0
  br i1 %7866, label %7867, label %7884

7867:                                             ; preds = %7862
  %7868 = load i32, ptr %170, align 4, !tbaa !5
  %7869 = call ptr @__errno_location() #12
  store i32 %7868, ptr %7869, align 4, !tbaa !5
  %7870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7871 = load i32, ptr @test_count, align 4, !tbaa !5
  %7872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7873 = load i32, ptr %7872, align 4, !tbaa !5
  %7874 = call ptr @s2n_strerror(i32 noundef %7873, ptr noundef @.str.4)
  %7875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7876 = load i32, ptr %7875, align 4, !tbaa !5
  %7877 = call ptr @s2n_strerror_debug(i32 noundef %7876, ptr noundef @.str.4)
  %7878 = call ptr @__errno_location() #12
  %7879 = load i32, ptr %7878, align 4, !tbaa !5
  %7880 = call ptr @strerror(i32 noundef %7879) #11
  %7881 = call ptr @__errno_location() #12
  %7882 = load i32, ptr %7881, align 4, !tbaa !5
  %7883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7870, ptr noundef @.str.2, i32 noundef %7871, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 282, ptr noundef %7874, ptr noundef %7877, ptr noundef %7880, i32 noundef %7882) #11
  br label %7901

7884:                                             ; preds = %7862, %7855
  %7885 = load i32, ptr %170, align 4, !tbaa !5
  %7886 = call ptr @__errno_location() #12
  store i32 %7885, ptr %7886, align 4, !tbaa !5
  %7887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7888 = load i32, ptr @test_count, align 4, !tbaa !5
  %7889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7890 = load i32, ptr %7889, align 4, !tbaa !5
  %7891 = call ptr @s2n_strerror(i32 noundef %7890, ptr noundef @.str.4)
  %7892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7893 = load i32, ptr %7892, align 4, !tbaa !5
  %7894 = call ptr @s2n_strerror_debug(i32 noundef %7893, ptr noundef @.str.4)
  %7895 = call ptr @__errno_location() #12
  %7896 = load i32, ptr %7895, align 4, !tbaa !5
  %7897 = call ptr @strerror(i32 noundef %7896) #11
  %7898 = call ptr @__errno_location() #12
  %7899 = load i32, ptr %7898, align 4, !tbaa !5
  %7900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7887, ptr noundef @.str.5, i32 noundef %7888, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 282, ptr noundef %7891, ptr noundef %7894, ptr noundef %7897, i32 noundef %7899) #11
  br label %7901

7901:                                             ; preds = %7884, %7867
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #11
  br label %7902

7902:                                             ; preds = %7901
  br label %7903

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

7904:                                             ; No predecessors!
  br label %7905

7905:                                             ; preds = %7904
  br label %7906

7906:                                             ; preds = %7905, %7850
  br label %7907

7907:                                             ; preds = %7906
  br label %7908

7908:                                             ; preds = %7907
  br label %7909

7909:                                             ; preds = %7908
  br label %7910

7910:                                             ; preds = %7909
  %7911 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %7912 = icmp eq i32 %7911, -1
  br i1 %7912, label %7913, label %7966

7913:                                             ; preds = %7910
  br label %7914

7914:                                             ; preds = %7913
  br label %7915

7915:                                             ; preds = %7914
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #11
  %7916 = call ptr @__errno_location() #12
  %7917 = load i32, ptr %7916, align 4, !tbaa !5
  store i32 %7917, ptr %171, align 4, !tbaa !5
  %7918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7919 = call i32 @s2n_print_stacktrace(ptr noundef %7918)
  %7920 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7921 = trunc i8 %7920 to i1
  br i1 %7921, label %7922, label %7944

7922:                                             ; preds = %7915
  %7923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7924 = call i32 @fileno(ptr noundef %7923) #11
  %7925 = call i32 @isatty(i32 noundef %7924) #11
  %7926 = icmp ne i32 %7925, 0
  br i1 %7926, label %7927, label %7944

7927:                                             ; preds = %7922
  %7928 = load i32, ptr %171, align 4, !tbaa !5
  %7929 = call ptr @__errno_location() #12
  store i32 %7928, ptr %7929, align 4, !tbaa !5
  %7930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7931 = load i32, ptr @test_count, align 4, !tbaa !5
  %7932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7933 = load i32, ptr %7932, align 4, !tbaa !5
  %7934 = call ptr @s2n_strerror(i32 noundef %7933, ptr noundef @.str.4)
  %7935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7936 = load i32, ptr %7935, align 4, !tbaa !5
  %7937 = call ptr @s2n_strerror_debug(i32 noundef %7936, ptr noundef @.str.4)
  %7938 = call ptr @__errno_location() #12
  %7939 = load i32, ptr %7938, align 4, !tbaa !5
  %7940 = call ptr @strerror(i32 noundef %7939) #11
  %7941 = call ptr @__errno_location() #12
  %7942 = load i32, ptr %7941, align 4, !tbaa !5
  %7943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7930, ptr noundef @.str.2, i32 noundef %7931, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 282, ptr noundef %7934, ptr noundef %7937, ptr noundef %7940, i32 noundef %7942) #11
  br label %7961

7944:                                             ; preds = %7922, %7915
  %7945 = load i32, ptr %171, align 4, !tbaa !5
  %7946 = call ptr @__errno_location() #12
  store i32 %7945, ptr %7946, align 4, !tbaa !5
  %7947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7948 = load i32, ptr @test_count, align 4, !tbaa !5
  %7949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7950 = load i32, ptr %7949, align 4, !tbaa !5
  %7951 = call ptr @s2n_strerror(i32 noundef %7950, ptr noundef @.str.4)
  %7952 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7953 = load i32, ptr %7952, align 4, !tbaa !5
  %7954 = call ptr @s2n_strerror_debug(i32 noundef %7953, ptr noundef @.str.4)
  %7955 = call ptr @__errno_location() #12
  %7956 = load i32, ptr %7955, align 4, !tbaa !5
  %7957 = call ptr @strerror(i32 noundef %7956) #11
  %7958 = call ptr @__errno_location() #12
  %7959 = load i32, ptr %7958, align 4, !tbaa !5
  %7960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7947, ptr noundef @.str.5, i32 noundef %7948, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 282, ptr noundef %7951, ptr noundef %7954, ptr noundef %7957, i32 noundef %7959) #11
  br label %7961

7961:                                             ; preds = %7944, %7927
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #11
  br label %7962

7962:                                             ; preds = %7961
  br label %7963

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

7964:                                             ; No predecessors!
  br label %7965

7965:                                             ; preds = %7964
  br label %7966

7966:                                             ; preds = %7965, %7910
  br label %7967

7967:                                             ; preds = %7966
  br label %7968

7968:                                             ; preds = %7967
  %7969 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7970 = trunc i8 %7969 to i1
  br i1 %7970, label %7971, label %7987

7971:                                             ; preds = %7968
  %7972 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7973 = call i32 @fileno(ptr noundef %7972) #11
  %7974 = call i32 @isatty(i32 noundef %7973) #11
  %7975 = icmp ne i32 %7974, 0
  br i1 %7975, label %7976, label %7987

7976:                                             ; preds = %7971
  %7977 = load i32, ptr @test_count, align 4, !tbaa !5
  %7978 = icmp ne i32 %7977, 0
  br i1 %7978, label %7979, label %7983

7979:                                             ; preds = %7976
  %7980 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7981 = load i32, ptr @test_count, align 4, !tbaa !5
  %7982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7980, ptr noundef @.str.75, i32 noundef %7981) #11
  br label %7986

7983:                                             ; preds = %7976
  %7984 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7984, ptr noundef @.str.76) #11
  br label %7986

7986:                                             ; preds = %7983, %7979
  br label %7998

7987:                                             ; preds = %7971, %7968
  %7988 = load i32, ptr @test_count, align 4, !tbaa !5
  %7989 = icmp ne i32 %7988, 0
  br i1 %7989, label %7990, label %7994

7990:                                             ; preds = %7987
  %7991 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7992 = load i32, ptr @test_count, align 4, !tbaa !5
  %7993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7991, ptr noundef @.str.77, i32 noundef %7992) #11
  br label %7997

7994:                                             ; preds = %7987
  %7995 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7995, ptr noundef @.str.78) #11
  br label %7997

7997:                                             ; preds = %7994, %7990
  br label %7998

7998:                                             ; preds = %7997, %7986
  store i32 0, ptr %3, align 4
  store i32 1, ptr %172, align 4
  br label %8003

7999:                                             ; No predecessors!
  br label %8000

8000:                                             ; preds = %7999
  br label %8001

8001:                                             ; preds = %8000
  br label %8002

8002:                                             ; preds = %8001
  store i32 0, ptr %172, align 4
  br label %8003

8003:                                             ; preds = %8002, %7998
  call void @llvm.lifetime.end.p0(i64 1, ptr %49) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #11
  call void @llvm.lifetime.end.p0(i64 257, ptr %46) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %45) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %44) #11
  call void @llvm.lifetime.end.p0(i64 255, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 15, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 10, ptr %9) #11
  %8004 = load i32, ptr %172, align 4
  switch i32 %8004, label %8007 [
    i32 0, label %8005
    i32 1, label %8005
  ]

8005:                                             ; preds = %8003, %8003
  %8006 = load i32, ptr %3, align 4
  ret i32 %8006

8007:                                             ; preds = %8003
  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

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

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

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

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_append_protocol_preference(ptr noundef, ptr noundef, i8 noundef zeroext) #2

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_config_free(ptr noundef) #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_append_protocol_preference(ptr noundef, ptr noundef, i8 noundef zeroext) #2

declare i32 @s2n_connection_free(ptr noundef) #2

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

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

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

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

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

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) #2

declare i32 @s2n_stuffer_free(ptr noundef) #2

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

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

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

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

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

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

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

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


; 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 }

@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 [88 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@__const.main.protocol1 = external hidden unnamed_addr constant [10 x i8], align 1
@__const.main.protocol2 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [110 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [39 x i8], align 1
@s2n_client_alpn_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.62 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [91 x i8], align 1
@__const.main.protocol3 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [131 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.78 = 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 [10 x i8], align 1
  %4 = alloca [15 x i8], align 1
  %5 = alloca [255 x i8], align 16
  %6 = alloca [2 x ptr], align 16
  %7 = alloca [257 x i8], align 16
  %8 = alloca [1 x ptr], align 8
  %9 = alloca %struct.s2n_stuffer, align 8
  %10 = alloca %struct.s2n_blob, align 8
  %11 = alloca %struct.s2n_stuffer, align 8
  %12 = alloca %struct.s2n_blob, align 8
  %13 = alloca %struct.s2n_stuffer, align 8
  %14 = alloca %struct.s2n_blob, align 8
  %15 = alloca %struct.s2n_blob, align 8
  %16 = alloca [10 x i8], align 1
  %17 = alloca %struct.s2n_blob, align 8
  %18 = alloca %struct.s2n_blob, align 8
  %19 = alloca i8, align 1
  %20 = alloca i8, align 1
  %21 = alloca i8, align 1
  %22 = alloca i8, align 1
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %23 = load ptr, ptr @stdout, align 8, !tbaa !9
  %24 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #13
  %25 = load ptr, ptr @stdout, align 8, !tbaa !9
  %26 = tail call i32 @fflush(ptr noundef %25)
  %27 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #13
  %28 = icmp eq i32 %27, -1
  br i1 %28, label %29, label %53

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

36:                                               ; preds = %29
  %37 = load ptr, ptr @stderr, align 8, !tbaa !9
  %38 = tail call i32 @fileno(ptr noundef %37) #13
  %39 = tail call i32 @isatty(i32 noundef %38) #13
  %.not483 = icmp eq i32 %39, 0
  br i1 %.not483, label %40, label %41

40:                                               ; preds = %36, %29
  br label %41

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

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

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

65:                                               ; preds = %58
  %66 = load ptr, ptr @stderr, align 8, !tbaa !9
  %67 = tail call i32 @fileno(ptr noundef %66) #13
  %68 = tail call i32 @isatty(i32 noundef %67) #13
  %.not482 = icmp eq i32 %68, 0
  br i1 %.not482, label %69, label %70

69:                                               ; preds = %65, %58
  br label %70

70:                                               ; preds = %65, %69
  %.str.5.sink494 = phi ptr [ @.str.5, %69 ], [ @.str.2, %65 ]
  store i32 %60, ptr %59, align 4, !tbaa !5
  %71 = load ptr, ptr @stderr, align 8, !tbaa !9
  %72 = load i32, ptr @test_count, align 4, !tbaa !5
  %73 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %74 = load i32, ptr %73, align 4, !tbaa !5
  %75 = tail call ptr @s2n_strerror(i32 noundef %74, ptr noundef nonnull @.str.4) #13
  %76 = load i32, ptr %73, align 4, !tbaa !5
  %77 = tail call ptr @s2n_strerror_debug(i32 noundef %76, ptr noundef nonnull @.str.4) #13
  %78 = load i32, ptr %59, align 4, !tbaa !5
  %79 = tail call ptr @strerror(i32 noundef %78) #13
  %80 = load i32, ptr %59, align 4, !tbaa !5
  %81 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %71, ptr noundef nonnull %.str.5.sink494, i32 noundef %72, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 27, ptr noundef %75, ptr noundef %77, ptr noundef %79, i32 noundef %80) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

82:                                               ; preds = %53
  %83 = tail call i32 @s2n_init() #13
  %84 = icmp eq i32 %83, -1
  br i1 %84, label %85, label %109

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

92:                                               ; preds = %85
  %93 = load ptr, ptr @stderr, align 8, !tbaa !9
  %94 = tail call i32 @fileno(ptr noundef %93) #13
  %95 = tail call i32 @isatty(i32 noundef %94) #13
  %.not481 = icmp eq i32 %95, 0
  br i1 %.not481, label %96, label %97

96:                                               ; preds = %92, %85
  br label %97

97:                                               ; preds = %92, %96
  %.str.5.sink505 = phi ptr [ @.str.5, %96 ], [ @.str.2, %92 ]
  store i32 %87, ptr %86, align 4, !tbaa !5
  %98 = load ptr, ptr @stderr, align 8, !tbaa !9
  %99 = load i32, ptr @test_count, align 4, !tbaa !5
  %100 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %101 = load i32, ptr %100, align 4, !tbaa !5
  %102 = tail call ptr @s2n_strerror(i32 noundef %101, ptr noundef nonnull @.str.4) #13
  %103 = load i32, ptr %100, align 4, !tbaa !5
  %104 = tail call ptr @s2n_strerror_debug(i32 noundef %103, ptr noundef nonnull @.str.4) #13
  %105 = load i32, ptr %86, align 4, !tbaa !5
  %106 = tail call ptr @strerror(i32 noundef %105) #13
  %107 = load i32, ptr %86, align 4, !tbaa !5
  %108 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %98, ptr noundef nonnull %.str.5.sink505, i32 noundef %99, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 27, ptr noundef %102, ptr noundef %104, ptr noundef %106, i32 noundef %107) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

109:                                              ; preds = %82
  call void @llvm.lifetime.start.p0(i64 10, ptr nonnull %3) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(10) %3, ptr noundef nonnull align 1 dereferenceable(10) @__const.main.protocol1, i64 10, i1 false)
  %110 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #17
  call void @llvm.lifetime.start.p0(i64 15, ptr nonnull %4) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(15) %4, ptr noundef nonnull align 1 dereferenceable(15) @__const.main.protocol2, i64 15, i1 false)
  %111 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %4) #17
  call void @llvm.lifetime.start.p0(i64 255, ptr nonnull %5) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(255) %5, i8 0, i64 255, i1 false)
  %112 = load i32, ptr @test_count, align 4, !tbaa !5
  %113 = add nsw i32 %112, 1
  store i32 %113, ptr @test_count, align 4, !tbaa !5
  %114 = tail call ptr @s2n_config_new() #13
  %115 = icmp eq ptr %114, null
  br i1 %115, label %116, label %140

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

123:                                              ; preds = %116
  %124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %125 = tail call i32 @fileno(ptr noundef %124) #13
  %126 = tail call i32 @isatty(i32 noundef %125) #13
  %.not480 = icmp eq i32 %126, 0
  br i1 %.not480, label %127, label %128

127:                                              ; preds = %123, %116
  br label %128

128:                                              ; preds = %123, %127
  %.str.5.sink516 = phi ptr [ @.str.5, %127 ], [ @.str.2, %123 ]
  store i32 %118, ptr %117, align 4, !tbaa !5
  %129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %130 = load i32, ptr @test_count, align 4, !tbaa !5
  %131 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %132 = load i32, ptr %131, align 4, !tbaa !5
  %133 = tail call ptr @s2n_strerror(i32 noundef %132, ptr noundef nonnull @.str.4) #13
  %134 = load i32, ptr %131, align 4, !tbaa !5
  %135 = tail call ptr @s2n_strerror_debug(i32 noundef %134, ptr noundef nonnull @.str.4) #13
  %136 = load i32, ptr %117, align 4, !tbaa !5
  %137 = tail call ptr @strerror(i32 noundef %136) #13
  %138 = load i32, ptr %117, align 4, !tbaa !5
  %139 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %129, ptr noundef nonnull %.str.5.sink516, i32 noundef %130, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 40, ptr noundef %133, ptr noundef %135, ptr noundef %137, i32 noundef %138) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

140:                                              ; preds = %109
  %141 = load i32, ptr @test_count, align 4, !tbaa !5
  %142 = add nsw i32 %141, 1
  store i32 %142, ptr @test_count, align 4, !tbaa !5
  %143 = getelementptr inbounds i8, ptr %114, i64 64
  %144 = load i32, ptr %143, align 8, !tbaa !15
  %145 = icmp eq i32 %144, 0
  br i1 %145, label %170, label %146

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

153:                                              ; preds = %146
  %154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %155 = tail call i32 @fileno(ptr noundef %154) #13
  %156 = tail call i32 @isatty(i32 noundef %155) #13
  %.not = icmp eq i32 %156, 0
  br i1 %.not, label %157, label %158

157:                                              ; preds = %153, %146
  br label %158

158:                                              ; preds = %153, %157
  %.str.5.sink527 = phi ptr [ @.str.5, %157 ], [ @.str.2, %153 ]
  store i32 %148, ptr %147, align 4, !tbaa !5
  %159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %160 = load i32, ptr @test_count, align 4, !tbaa !5
  %161 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %162 = load i32, ptr %161, align 4, !tbaa !5
  %163 = tail call ptr @s2n_strerror(i32 noundef %162, ptr noundef nonnull @.str.4) #13
  %164 = load i32, ptr %161, align 4, !tbaa !5
  %165 = tail call ptr @s2n_strerror_debug(i32 noundef %164, ptr noundef nonnull @.str.4) #13
  %166 = load i32, ptr %147, align 4, !tbaa !5
  %167 = tail call ptr @strerror(i32 noundef %166) #13
  %168 = load i32, ptr %147, align 4, !tbaa !5
  %169 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %159, ptr noundef nonnull %.str.5.sink527, i32 noundef %160, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 41, ptr noundef %163, ptr noundef %165, ptr noundef %167, i32 noundef %168) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

170:                                              ; preds = %140
  %171 = add nsw i32 %141, 2
  store i32 %171, ptr @test_count, align 4, !tbaa !5
  %172 = call i32 @s2n_config_append_protocol_preference(ptr noundef nonnull %114, ptr noundef nonnull %3, i8 noundef zeroext 10) #13
  %173 = icmp eq i32 %172, -1
  br i1 %173, label %174, label %198

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

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

185:                                              ; preds = %181, %174
  br label %186

186:                                              ; preds = %181, %185
  %.str.5.sink538 = phi ptr [ @.str.5, %185 ], [ @.str.2, %181 ]
  store i32 %176, ptr %175, align 4, !tbaa !5
  %187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %188 = load i32, ptr @test_count, align 4, !tbaa !5
  %189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %190 = load i32, ptr %189, align 4, !tbaa !5
  %191 = call ptr @s2n_strerror(i32 noundef %190, ptr noundef nonnull @.str.4) #13
  %192 = load i32, ptr %189, align 4, !tbaa !5
  %193 = call ptr @s2n_strerror_debug(i32 noundef %192, ptr noundef nonnull @.str.4) #13
  %194 = load i32, ptr %175, align 4, !tbaa !5
  %195 = call ptr @strerror(i32 noundef %194) #13
  %196 = load i32, ptr %175, align 4, !tbaa !5
  %197 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %187, ptr noundef nonnull %.str.5.sink538, i32 noundef %188, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 45, ptr noundef %191, ptr noundef %193, ptr noundef %195, i32 noundef %196) #15
  call void @exit(i32 noundef 1) #16
  unreachable

198:                                              ; preds = %170
  %199 = load i32, ptr @test_count, align 4, !tbaa !5
  %200 = add nsw i32 %199, 1
  store i32 %200, ptr @test_count, align 4, !tbaa !5
  %201 = load i32, ptr %143, align 8, !tbaa !15
  %202 = icmp eq i32 %201, 11
  br i1 %202, label %227, label %203

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

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

214:                                              ; preds = %210, %203
  br label %215

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

227:                                              ; preds = %198
  %228 = add nsw i32 %199, 2
  store i32 %228, ptr @test_count, align 4, !tbaa !5
  %229 = call i32 @s2n_config_append_protocol_preference(ptr noundef nonnull %114, ptr noundef nonnull %4, i8 noundef zeroext 15) #13
  %230 = icmp eq i32 %229, -1
  br i1 %230, label %231, label %255

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

238:                                              ; preds = %231
  %239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %240 = call i32 @fileno(ptr noundef %239) #13
  %241 = call i32 @isatty(i32 noundef %240) #13
  %.not478 = icmp eq i32 %241, 0
  br i1 %.not478, label %242, label %243

242:                                              ; preds = %238, %231
  br label %243

243:                                              ; preds = %238, %242
  %.str.5.sink560 = phi ptr [ @.str.5, %242 ], [ @.str.2, %238 ]
  store i32 %233, ptr %232, align 4, !tbaa !5
  %244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %245 = load i32, ptr @test_count, align 4, !tbaa !5
  %246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %247 = load i32, ptr %246, align 4, !tbaa !5
  %248 = call ptr @s2n_strerror(i32 noundef %247, ptr noundef nonnull @.str.4) #13
  %249 = load i32, ptr %246, align 4, !tbaa !5
  %250 = call ptr @s2n_strerror_debug(i32 noundef %249, ptr noundef nonnull @.str.4) #13
  %251 = load i32, ptr %232, align 4, !tbaa !5
  %252 = call ptr @strerror(i32 noundef %251) #13
  %253 = load i32, ptr %232, align 4, !tbaa !5
  %254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %244, ptr noundef nonnull %.str.5.sink560, i32 noundef %245, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %248, ptr noundef %250, ptr noundef %252, i32 noundef %253) #15
  call void @exit(i32 noundef 1) #16
  unreachable

255:                                              ; preds = %227
  %256 = load i32, ptr @test_count, align 4, !tbaa !5
  %257 = add nsw i32 %256, 1
  store i32 %257, ptr @test_count, align 4, !tbaa !5
  %258 = load i32, ptr %143, align 8, !tbaa !15
  %259 = icmp eq i32 %258, 27
  br i1 %259, label %284, label %260

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

267:                                              ; preds = %260
  %268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %269 = call i32 @fileno(ptr noundef %268) #13
  %270 = call i32 @isatty(i32 noundef %269) #13
  %.not361 = icmp eq i32 %270, 0
  br i1 %.not361, label %271, label %272

271:                                              ; preds = %267, %260
  br label %272

272:                                              ; preds = %267, %271
  %.str.5.sink571 = phi ptr [ @.str.5, %271 ], [ @.str.2, %267 ]
  store i32 %262, ptr %261, align 4, !tbaa !5
  %273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %274 = load i32, ptr @test_count, align 4, !tbaa !5
  %275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %276 = load i32, ptr %275, align 4, !tbaa !5
  %277 = call ptr @s2n_strerror(i32 noundef %276, ptr noundef nonnull @.str.4) #13
  %278 = load i32, ptr %275, align 4, !tbaa !5
  %279 = call ptr @s2n_strerror_debug(i32 noundef %278, ptr noundef nonnull @.str.4) #13
  %280 = load i32, ptr %261, align 4, !tbaa !5
  %281 = call ptr @strerror(i32 noundef %280) #13
  %282 = load i32, ptr %261, align 4, !tbaa !5
  %283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %273, ptr noundef nonnull %.str.5.sink571, i32 noundef %274, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %277, ptr noundef %279, ptr noundef %281, i32 noundef %282) #15
  call void @exit(i32 noundef 1) #16
  unreachable

284:                                              ; preds = %255
  %285 = add nsw i32 %256, 2
  store i32 %285, ptr @test_count, align 4, !tbaa !5
  %286 = call i32 @s2n_config_append_protocol_preference(ptr noundef nonnull %114, ptr noundef nonnull %5, i8 noundef zeroext -1) #13
  %287 = icmp eq i32 %286, -1
  br i1 %287, label %288, label %312

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

295:                                              ; preds = %288
  %296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %297 = call i32 @fileno(ptr noundef %296) #13
  %298 = call i32 @isatty(i32 noundef %297) #13
  %.not477 = icmp eq i32 %298, 0
  br i1 %.not477, label %299, label %300

299:                                              ; preds = %295, %288
  br label %300

300:                                              ; preds = %295, %299
  %.str.5.sink582 = phi ptr [ @.str.5, %299 ], [ @.str.2, %295 ]
  store i32 %290, ptr %289, align 4, !tbaa !5
  %301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %302 = load i32, ptr @test_count, align 4, !tbaa !5
  %303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %304 = load i32, ptr %303, align 4, !tbaa !5
  %305 = call ptr @s2n_strerror(i32 noundef %304, ptr noundef nonnull @.str.4) #13
  %306 = load i32, ptr %303, align 4, !tbaa !5
  %307 = call ptr @s2n_strerror_debug(i32 noundef %306, ptr noundef nonnull @.str.4) #13
  %308 = load i32, ptr %289, align 4, !tbaa !5
  %309 = call ptr @strerror(i32 noundef %308) #13
  %310 = load i32, ptr %289, align 4, !tbaa !5
  %311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %301, ptr noundef nonnull %.str.5.sink582, i32 noundef %302, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %305, ptr noundef %307, ptr noundef %309, i32 noundef %310) #15
  call void @exit(i32 noundef 1) #16
  unreachable

312:                                              ; preds = %284
  %313 = load i32, ptr @test_count, align 4, !tbaa !5
  %314 = add nsw i32 %313, 1
  store i32 %314, ptr @test_count, align 4, !tbaa !5
  %315 = load i32, ptr %143, align 8, !tbaa !15
  %316 = icmp eq i32 %315, 283
  br i1 %316, label %341, label %317

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

324:                                              ; preds = %317
  %325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %326 = call i32 @fileno(ptr noundef %325) #13
  %327 = call i32 @isatty(i32 noundef %326) #13
  %.not362 = icmp eq i32 %327, 0
  br i1 %.not362, label %328, label %329

328:                                              ; preds = %324, %317
  br label %329

329:                                              ; preds = %324, %328
  %.str.5.sink593 = phi ptr [ @.str.5, %328 ], [ @.str.2, %324 ]
  store i32 %319, ptr %318, align 4, !tbaa !5
  %330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %331 = load i32, ptr @test_count, align 4, !tbaa !5
  %332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %333 = load i32, ptr %332, align 4, !tbaa !5
  %334 = call ptr @s2n_strerror(i32 noundef %333, ptr noundef nonnull @.str.4) #13
  %335 = load i32, ptr %332, align 4, !tbaa !5
  %336 = call ptr @s2n_strerror_debug(i32 noundef %335, ptr noundef nonnull @.str.4) #13
  %337 = load i32, ptr %318, align 4, !tbaa !5
  %338 = call ptr @strerror(i32 noundef %337) #13
  %339 = load i32, ptr %318, align 4, !tbaa !5
  %340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %330, ptr noundef nonnull %.str.5.sink593, i32 noundef %331, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 56, ptr noundef %334, ptr noundef %336, ptr noundef %338, i32 noundef %339) #15
  call void @exit(i32 noundef 1) #16
  unreachable

341:                                              ; preds = %312
  %342 = add nsw i32 %313, 2
  store i32 %342, ptr @test_count, align 4, !tbaa !5
  %343 = call i32 @s2n_config_append_protocol_preference(ptr noundef nonnull %114, ptr noundef nonnull %5, i8 noundef zeroext 0) #13
  %344 = icmp eq i32 %343, -1
  br i1 %344, label %369, label %345

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

352:                                              ; preds = %345
  %353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %354 = call i32 @fileno(ptr noundef %353) #13
  %355 = call i32 @isatty(i32 noundef %354) #13
  %.not363 = icmp eq i32 %355, 0
  br i1 %.not363, label %356, label %357

356:                                              ; preds = %352, %345
  br label %357

357:                                              ; preds = %352, %356
  %.str.5.sink604 = phi ptr [ @.str.5, %356 ], [ @.str.2, %352 ]
  store i32 %347, ptr %346, align 4, !tbaa !5
  %358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %359 = load i32, ptr @test_count, align 4, !tbaa !5
  %360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = call ptr @s2n_strerror(i32 noundef %361, ptr noundef nonnull @.str.4) #13
  %363 = load i32, ptr %360, align 4, !tbaa !5
  %364 = call ptr @s2n_strerror_debug(i32 noundef %363, ptr noundef nonnull @.str.4) #13
  %365 = load i32, ptr %346, align 4, !tbaa !5
  %366 = call ptr @strerror(i32 noundef %365) #13
  %367 = load i32, ptr %346, align 4, !tbaa !5
  %368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %358, ptr noundef nonnull %.str.5.sink604, i32 noundef %359, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %362, ptr noundef %364, ptr noundef %366, i32 noundef %367) #15
  call void @exit(i32 noundef 1) #16
  unreachable

369:                                              ; preds = %341
  %370 = load i32, ptr @test_count, align 4, !tbaa !5
  %371 = add nsw i32 %370, 1
  store i32 %371, ptr @test_count, align 4, !tbaa !5
  %372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %373 = load i32, ptr %372, align 4, !tbaa !5
  %374 = icmp eq i32 %373, 0
  br i1 %374, label %375, label %398

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

382:                                              ; preds = %375
  %383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %384 = call i32 @fileno(ptr noundef %383) #13
  %385 = call i32 @isatty(i32 noundef %384) #13
  %.not476 = icmp eq i32 %385, 0
  br i1 %.not476, label %386, label %387

386:                                              ; preds = %382, %375
  br label %387

387:                                              ; preds = %382, %386
  %.str.5.sink615 = phi ptr [ @.str.5, %386 ], [ @.str.2, %382 ]
  store i32 %377, ptr %376, align 4, !tbaa !5
  %388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %389 = load i32, ptr @test_count, align 4, !tbaa !5
  %390 = load i32, ptr %372, align 4, !tbaa !5
  %391 = call ptr @s2n_strerror(i32 noundef %390, ptr noundef nonnull @.str.4) #13
  %392 = load i32, ptr %372, align 4, !tbaa !5
  %393 = call ptr @s2n_strerror_debug(i32 noundef %392, ptr noundef nonnull @.str.4) #13
  %394 = load i32, ptr %376, align 4, !tbaa !5
  %395 = call ptr @strerror(i32 noundef %394) #13
  %396 = load i32, ptr %376, align 4, !tbaa !5
  %397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %388, ptr noundef nonnull %.str.5.sink615, i32 noundef %389, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %391, ptr noundef %393, ptr noundef %395, i32 noundef %396) #15
  call void @exit(i32 noundef 1) #16
  unreachable

398:                                              ; preds = %369
  %399 = add nsw i32 %370, 2
  store i32 %399, ptr @test_count, align 4, !tbaa !5
  %400 = call ptr @s2n_strerror_debug(i32 noundef %373, ptr noundef nonnull @.str.4) #13
  %401 = icmp eq ptr %400, null
  br i1 %401, label %402, label %425

402:                                              ; preds = %398
  %403 = tail call ptr @__errno_location() #14
  %404 = load i32, ptr %403, align 4, !tbaa !5
  %405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %406 = call i32 @s2n_print_stacktrace(ptr noundef %405) #13
  %407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %408 = trunc nuw i8 %407 to i1
  br i1 %408, label %409, label %413

409:                                              ; preds = %402
  %410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %411 = call i32 @fileno(ptr noundef %410) #13
  %412 = call i32 @isatty(i32 noundef %411) #13
  %.not475 = icmp eq i32 %412, 0
  br i1 %.not475, label %413, label %414

413:                                              ; preds = %409, %402
  br label %414

414:                                              ; preds = %409, %413
  %.str.5.sink624 = phi ptr [ @.str.5, %413 ], [ @.str.2, %409 ]
  store i32 %404, ptr %403, align 4, !tbaa !5
  %415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %416 = load i32, ptr @test_count, align 4, !tbaa !5
  %417 = load i32, ptr %372, align 4, !tbaa !5
  %418 = call ptr @s2n_strerror(i32 noundef %417, ptr noundef nonnull @.str.4) #13
  %419 = load i32, ptr %372, align 4, !tbaa !5
  %420 = call ptr @s2n_strerror_debug(i32 noundef %419, ptr noundef nonnull @.str.4) #13
  %421 = load i32, ptr %403, align 4, !tbaa !5
  %422 = call ptr @strerror(i32 noundef %421) #13
  %423 = load i32, ptr %403, align 4, !tbaa !5
  %424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %415, ptr noundef nonnull %.str.5.sink624, i32 noundef %416, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %418, ptr noundef %420, ptr noundef %422, i32 noundef %423) #15
  call void @exit(i32 noundef 1) #16
  unreachable

425:                                              ; preds = %398
  store i32 0, ptr %372, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  %426 = tail call ptr @__errno_location() #14
  store i32 0, ptr %426, align 4, !tbaa !5
  %427 = load i32, ptr @test_count, align 4, !tbaa !5
  %428 = add nsw i32 %427, 1
  store i32 %428, ptr @test_count, align 4, !tbaa !5
  %429 = load i32, ptr %143, align 8, !tbaa !15
  %430 = icmp eq i32 %429, 283
  br i1 %430, label %453, label %431

431:                                              ; preds = %425
  %432 = load i32, ptr %426, align 4, !tbaa !5
  %433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %434 = call i32 @s2n_print_stacktrace(ptr noundef %433) #13
  %435 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %436 = trunc nuw i8 %435 to i1
  br i1 %436, label %437, label %441

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

441:                                              ; preds = %437, %431
  br label %442

442:                                              ; preds = %437, %441
  %.str.5.sink633 = phi ptr [ @.str.5, %441 ], [ @.str.2, %437 ]
  store i32 %432, ptr %426, align 4, !tbaa !5
  %443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %444 = load i32, ptr @test_count, align 4, !tbaa !5
  %445 = load i32, ptr %372, align 4, !tbaa !5
  %446 = call ptr @s2n_strerror(i32 noundef %445, ptr noundef nonnull @.str.4) #13
  %447 = load i32, ptr %372, align 4, !tbaa !5
  %448 = call ptr @s2n_strerror_debug(i32 noundef %447, ptr noundef nonnull @.str.4) #13
  %449 = load i32, ptr %426, align 4, !tbaa !5
  %450 = call ptr @strerror(i32 noundef %449) #13
  %451 = load i32, ptr %426, align 4, !tbaa !5
  %452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %443, ptr noundef nonnull %.str.5.sink633, i32 noundef %444, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %446, ptr noundef %448, ptr noundef %450, i32 noundef %451) #15
  call void @exit(i32 noundef 1) #16
  unreachable

453:                                              ; preds = %425
  %454 = add nsw i32 %427, 2
  store i32 %454, ptr @test_count, align 4, !tbaa !5
  %455 = call i32 @s2n_config_free(ptr noundef nonnull %114) #13
  %456 = icmp eq i32 %455, -1
  br i1 %456, label %457, label %479

457:                                              ; preds = %453
  %458 = load i32, ptr %426, align 4, !tbaa !5
  %459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %460 = call i32 @s2n_print_stacktrace(ptr noundef %459) #13
  %461 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %462 = trunc nuw i8 %461 to i1
  br i1 %462, label %463, label %467

463:                                              ; preds = %457
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = call i32 @fileno(ptr noundef %464) #13
  %466 = call i32 @isatty(i32 noundef %465) #13
  %.not474 = icmp eq i32 %466, 0
  br i1 %.not474, label %467, label %468

467:                                              ; preds = %463, %457
  br label %468

468:                                              ; preds = %463, %467
  %.str.5.sink642 = phi ptr [ @.str.5, %467 ], [ @.str.2, %463 ]
  store i32 %458, ptr %426, align 4, !tbaa !5
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = load i32, ptr @test_count, align 4, !tbaa !5
  %471 = load i32, ptr %372, align 4, !tbaa !5
  %472 = call ptr @s2n_strerror(i32 noundef %471, ptr noundef nonnull @.str.4) #13
  %473 = load i32, ptr %372, align 4, !tbaa !5
  %474 = call ptr @s2n_strerror_debug(i32 noundef %473, ptr noundef nonnull @.str.4) #13
  %475 = load i32, ptr %426, align 4, !tbaa !5
  %476 = call ptr @strerror(i32 noundef %475) #13
  %477 = load i32, ptr %426, align 4, !tbaa !5
  %478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %469, ptr noundef nonnull %.str.5.sink642, i32 noundef %470, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %472, ptr noundef %474, ptr noundef %476, i32 noundef %477) #15
  call void @exit(i32 noundef 1) #16
  unreachable

479:                                              ; preds = %453
  %480 = load i32, ptr @test_count, align 4, !tbaa !5
  %481 = add nsw i32 %480, 1
  store i32 %481, ptr @test_count, align 4, !tbaa !5
  %482 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %483 = icmp eq ptr %482, null
  br i1 %483, label %484, label %506

484:                                              ; preds = %479
  %485 = load i32, ptr %426, align 4, !tbaa !5
  %486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %487 = call i32 @s2n_print_stacktrace(ptr noundef %486) #13
  %488 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %489 = trunc nuw i8 %488 to i1
  br i1 %489, label %490, label %494

490:                                              ; preds = %484
  %491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %492 = call i32 @fileno(ptr noundef %491) #13
  %493 = call i32 @isatty(i32 noundef %492) #13
  %.not473 = icmp eq i32 %493, 0
  br i1 %.not473, label %494, label %495

494:                                              ; preds = %490, %484
  br label %495

495:                                              ; preds = %490, %494
  %.str.5.sink651 = phi ptr [ @.str.5, %494 ], [ @.str.2, %490 ]
  store i32 %485, ptr %426, align 4, !tbaa !5
  %496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %497 = load i32, ptr @test_count, align 4, !tbaa !5
  %498 = load i32, ptr %372, align 4, !tbaa !5
  %499 = call ptr @s2n_strerror(i32 noundef %498, ptr noundef nonnull @.str.4) #13
  %500 = load i32, ptr %372, align 4, !tbaa !5
  %501 = call ptr @s2n_strerror_debug(i32 noundef %500, ptr noundef nonnull @.str.4) #13
  %502 = load i32, ptr %426, align 4, !tbaa !5
  %503 = call ptr @strerror(i32 noundef %502) #13
  %504 = load i32, ptr %426, align 4, !tbaa !5
  %505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %496, ptr noundef nonnull %.str.5.sink651, i32 noundef %497, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %499, ptr noundef %501, ptr noundef %503, i32 noundef %504) #15
  call void @exit(i32 noundef 1) #16
  unreachable

506:                                              ; preds = %479
  %507 = load i32, ptr @test_count, align 4, !tbaa !5
  %508 = add nsw i32 %507, 1
  store i32 %508, ptr @test_count, align 4, !tbaa !5
  %509 = getelementptr inbounds i8, ptr %482, i64 4040
  %510 = load i32, ptr %509, align 8, !tbaa !22
  %511 = icmp eq i32 %510, 0
  br i1 %511, label %534, label %512

512:                                              ; preds = %506
  %513 = load i32, ptr %426, align 4, !tbaa !5
  %514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %515 = call i32 @s2n_print_stacktrace(ptr noundef %514) #13
  %516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %517 = trunc nuw i8 %516 to i1
  br i1 %517, label %518, label %522

518:                                              ; preds = %512
  %519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %520 = call i32 @fileno(ptr noundef %519) #13
  %521 = call i32 @isatty(i32 noundef %520) #13
  %.not365 = icmp eq i32 %521, 0
  br i1 %.not365, label %522, label %523

522:                                              ; preds = %518, %512
  br label %523

523:                                              ; preds = %518, %522
  %.str.5.sink660 = phi ptr [ @.str.5, %522 ], [ @.str.2, %518 ]
  store i32 %513, ptr %426, align 4, !tbaa !5
  %524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %525 = load i32, ptr @test_count, align 4, !tbaa !5
  %526 = load i32, ptr %372, align 4, !tbaa !5
  %527 = call ptr @s2n_strerror(i32 noundef %526, ptr noundef nonnull @.str.4) #13
  %528 = load i32, ptr %372, align 4, !tbaa !5
  %529 = call ptr @s2n_strerror_debug(i32 noundef %528, ptr noundef nonnull @.str.4) #13
  %530 = load i32, ptr %426, align 4, !tbaa !5
  %531 = call ptr @strerror(i32 noundef %530) #13
  %532 = load i32, ptr %426, align 4, !tbaa !5
  %533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %524, ptr noundef nonnull %.str.5.sink660, i32 noundef %525, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %527, ptr noundef %529, ptr noundef %531, i32 noundef %532) #15
  call void @exit(i32 noundef 1) #16
  unreachable

534:                                              ; preds = %506
  %535 = add nsw i32 %507, 2
  store i32 %535, ptr @test_count, align 4, !tbaa !5
  %536 = call i32 @s2n_connection_append_protocol_preference(ptr noundef nonnull %482, ptr noundef nonnull %3, i8 noundef zeroext 10) #13
  %537 = icmp eq i32 %536, -1
  br i1 %537, label %538, label %560

538:                                              ; preds = %534
  %539 = load i32, ptr %426, align 4, !tbaa !5
  %540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %541 = call i32 @s2n_print_stacktrace(ptr noundef %540) #13
  %542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %543 = trunc nuw i8 %542 to i1
  br i1 %543, label %544, label %548

544:                                              ; preds = %538
  %545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %546 = call i32 @fileno(ptr noundef %545) #13
  %547 = call i32 @isatty(i32 noundef %546) #13
  %.not472 = icmp eq i32 %547, 0
  br i1 %.not472, label %548, label %549

548:                                              ; preds = %544, %538
  br label %549

549:                                              ; preds = %544, %548
  %.str.5.sink669 = phi ptr [ @.str.5, %548 ], [ @.str.2, %544 ]
  store i32 %539, ptr %426, align 4, !tbaa !5
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = load i32, ptr @test_count, align 4, !tbaa !5
  %552 = load i32, ptr %372, align 4, !tbaa !5
  %553 = call ptr @s2n_strerror(i32 noundef %552, ptr noundef nonnull @.str.4) #13
  %554 = load i32, ptr %372, align 4, !tbaa !5
  %555 = call ptr @s2n_strerror_debug(i32 noundef %554, ptr noundef nonnull @.str.4) #13
  %556 = load i32, ptr %426, align 4, !tbaa !5
  %557 = call ptr @strerror(i32 noundef %556) #13
  %558 = load i32, ptr %426, align 4, !tbaa !5
  %559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %550, ptr noundef nonnull %.str.5.sink669, i32 noundef %551, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %553, ptr noundef %555, ptr noundef %557, i32 noundef %558) #15
  call void @exit(i32 noundef 1) #16
  unreachable

560:                                              ; preds = %534
  %561 = load i32, ptr @test_count, align 4, !tbaa !5
  %562 = add nsw i32 %561, 1
  store i32 %562, ptr @test_count, align 4, !tbaa !5
  %563 = load i32, ptr %509, align 8, !tbaa !22
  %564 = icmp eq i32 %563, 11
  br i1 %564, label %587, label %565

565:                                              ; preds = %560
  %566 = load i32, ptr %426, align 4, !tbaa !5
  %567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %568 = call i32 @s2n_print_stacktrace(ptr noundef %567) #13
  %569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %570 = trunc nuw i8 %569 to i1
  br i1 %570, label %571, label %575

571:                                              ; preds = %565
  %572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %573 = call i32 @fileno(ptr noundef %572) #13
  %574 = call i32 @isatty(i32 noundef %573) #13
  %.not366 = icmp eq i32 %574, 0
  br i1 %.not366, label %575, label %576

575:                                              ; preds = %571, %565
  br label %576

576:                                              ; preds = %571, %575
  %.str.5.sink678 = phi ptr [ @.str.5, %575 ], [ @.str.2, %571 ]
  store i32 %566, ptr %426, align 4, !tbaa !5
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = load i32, ptr @test_count, align 4, !tbaa !5
  %579 = load i32, ptr %372, align 4, !tbaa !5
  %580 = call ptr @s2n_strerror(i32 noundef %579, ptr noundef nonnull @.str.4) #13
  %581 = load i32, ptr %372, align 4, !tbaa !5
  %582 = call ptr @s2n_strerror_debug(i32 noundef %581, ptr noundef nonnull @.str.4) #13
  %583 = load i32, ptr %426, align 4, !tbaa !5
  %584 = call ptr @strerror(i32 noundef %583) #13
  %585 = load i32, ptr %426, align 4, !tbaa !5
  %586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %577, ptr noundef nonnull %.str.5.sink678, i32 noundef %578, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 75, ptr noundef %580, ptr noundef %582, ptr noundef %584, i32 noundef %585) #15
  call void @exit(i32 noundef 1) #16
  unreachable

587:                                              ; preds = %560
  %588 = add nsw i32 %561, 2
  store i32 %588, ptr @test_count, align 4, !tbaa !5
  %589 = call i32 @s2n_connection_append_protocol_preference(ptr noundef nonnull %482, ptr noundef nonnull %4, i8 noundef zeroext 15) #13
  %590 = icmp eq i32 %589, -1
  br i1 %590, label %591, label %613

591:                                              ; preds = %587
  %592 = load i32, ptr %426, align 4, !tbaa !5
  %593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %594 = call i32 @s2n_print_stacktrace(ptr noundef %593) #13
  %595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %596 = trunc nuw i8 %595 to i1
  br i1 %596, label %597, label %601

597:                                              ; preds = %591
  %598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %599 = call i32 @fileno(ptr noundef %598) #13
  %600 = call i32 @isatty(i32 noundef %599) #13
  %.not471 = icmp eq i32 %600, 0
  br i1 %.not471, label %601, label %602

601:                                              ; preds = %597, %591
  br label %602

602:                                              ; preds = %597, %601
  %.str.5.sink687 = phi ptr [ @.str.5, %601 ], [ @.str.2, %597 ]
  store i32 %592, ptr %426, align 4, !tbaa !5
  %603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %604 = load i32, ptr @test_count, align 4, !tbaa !5
  %605 = load i32, ptr %372, align 4, !tbaa !5
  %606 = call ptr @s2n_strerror(i32 noundef %605, ptr noundef nonnull @.str.4) #13
  %607 = load i32, ptr %372, align 4, !tbaa !5
  %608 = call ptr @s2n_strerror_debug(i32 noundef %607, ptr noundef nonnull @.str.4) #13
  %609 = load i32, ptr %426, align 4, !tbaa !5
  %610 = call ptr @strerror(i32 noundef %609) #13
  %611 = load i32, ptr %426, align 4, !tbaa !5
  %612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %603, ptr noundef nonnull %.str.5.sink687, i32 noundef %604, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef %606, ptr noundef %608, ptr noundef %610, i32 noundef %611) #15
  call void @exit(i32 noundef 1) #16
  unreachable

613:                                              ; preds = %587
  %614 = load i32, ptr @test_count, align 4, !tbaa !5
  %615 = add nsw i32 %614, 1
  store i32 %615, ptr @test_count, align 4, !tbaa !5
  %616 = load i32, ptr %509, align 8, !tbaa !22
  %617 = icmp eq i32 %616, 27
  br i1 %617, label %640, label %618

618:                                              ; preds = %613
  %619 = load i32, ptr %426, align 4, !tbaa !5
  %620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %621 = call i32 @s2n_print_stacktrace(ptr noundef %620) #13
  %622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %623 = trunc nuw i8 %622 to i1
  br i1 %623, label %624, label %628

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

628:                                              ; preds = %624, %618
  br label %629

629:                                              ; preds = %624, %628
  %.str.5.sink696 = phi ptr [ @.str.5, %628 ], [ @.str.2, %624 ]
  store i32 %619, ptr %426, align 4, !tbaa !5
  %630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %631 = load i32, ptr @test_count, align 4, !tbaa !5
  %632 = load i32, ptr %372, align 4, !tbaa !5
  %633 = call ptr @s2n_strerror(i32 noundef %632, ptr noundef nonnull @.str.4) #13
  %634 = load i32, ptr %372, align 4, !tbaa !5
  %635 = call ptr @s2n_strerror_debug(i32 noundef %634, ptr noundef nonnull @.str.4) #13
  %636 = load i32, ptr %426, align 4, !tbaa !5
  %637 = call ptr @strerror(i32 noundef %636) #13
  %638 = load i32, ptr %426, align 4, !tbaa !5
  %639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %630, ptr noundef nonnull %.str.5.sink696, i32 noundef %631, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 80, ptr noundef %633, ptr noundef %635, ptr noundef %637, i32 noundef %638) #15
  call void @exit(i32 noundef 1) #16
  unreachable

640:                                              ; preds = %613
  %641 = add nsw i32 %614, 2
  store i32 %641, ptr @test_count, align 4, !tbaa !5
  %642 = call i32 @s2n_connection_append_protocol_preference(ptr noundef nonnull %482, ptr noundef nonnull %5, i8 noundef zeroext -1) #13
  %643 = icmp eq i32 %642, -1
  br i1 %643, label %644, label %666

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

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

654:                                              ; preds = %650, %644
  br label %655

655:                                              ; preds = %650, %654
  %.str.5.sink705 = phi ptr [ @.str.5, %654 ], [ @.str.2, %650 ]
  store i32 %645, ptr %426, align 4, !tbaa !5
  %656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %657 = load i32, ptr @test_count, align 4, !tbaa !5
  %658 = load i32, ptr %372, align 4, !tbaa !5
  %659 = call ptr @s2n_strerror(i32 noundef %658, ptr noundef nonnull @.str.4) #13
  %660 = load i32, ptr %372, align 4, !tbaa !5
  %661 = call ptr @s2n_strerror_debug(i32 noundef %660, ptr noundef nonnull @.str.4) #13
  %662 = load i32, ptr %426, align 4, !tbaa !5
  %663 = call ptr @strerror(i32 noundef %662) #13
  %664 = load i32, ptr %426, align 4, !tbaa !5
  %665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %656, ptr noundef nonnull %.str.5.sink705, i32 noundef %657, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %659, ptr noundef %661, ptr noundef %663, i32 noundef %664) #15
  call void @exit(i32 noundef 1) #16
  unreachable

666:                                              ; preds = %640
  %667 = load i32, ptr @test_count, align 4, !tbaa !5
  %668 = add nsw i32 %667, 1
  store i32 %668, ptr @test_count, align 4, !tbaa !5
  %669 = load i32, ptr %509, align 8, !tbaa !22
  %670 = icmp eq i32 %669, 283
  br i1 %670, label %693, label %671

671:                                              ; preds = %666
  %672 = load i32, ptr %426, align 4, !tbaa !5
  %673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %674 = call i32 @s2n_print_stacktrace(ptr noundef %673) #13
  %675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %676 = trunc nuw i8 %675 to i1
  br i1 %676, label %677, label %681

677:                                              ; preds = %671
  %678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %679 = call i32 @fileno(ptr noundef %678) #13
  %680 = call i32 @isatty(i32 noundef %679) #13
  %.not368 = icmp eq i32 %680, 0
  br i1 %.not368, label %681, label %682

681:                                              ; preds = %677, %671
  br label %682

682:                                              ; preds = %677, %681
  %.str.5.sink714 = phi ptr [ @.str.5, %681 ], [ @.str.2, %677 ]
  store i32 %672, ptr %426, align 4, !tbaa !5
  %683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %684 = load i32, ptr @test_count, align 4, !tbaa !5
  %685 = load i32, ptr %372, align 4, !tbaa !5
  %686 = call ptr @s2n_strerror(i32 noundef %685, ptr noundef nonnull @.str.4) #13
  %687 = load i32, ptr %372, align 4, !tbaa !5
  %688 = call ptr @s2n_strerror_debug(i32 noundef %687, ptr noundef nonnull @.str.4) #13
  %689 = load i32, ptr %426, align 4, !tbaa !5
  %690 = call ptr @strerror(i32 noundef %689) #13
  %691 = load i32, ptr %426, align 4, !tbaa !5
  %692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %683, ptr noundef nonnull %.str.5.sink714, i32 noundef %684, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %686, ptr noundef %688, ptr noundef %690, i32 noundef %691) #15
  call void @exit(i32 noundef 1) #16
  unreachable

693:                                              ; preds = %666
  %694 = add nsw i32 %667, 2
  store i32 %694, ptr @test_count, align 4, !tbaa !5
  %695 = call i32 @s2n_connection_append_protocol_preference(ptr noundef nonnull %482, ptr noundef nonnull %5, i8 noundef zeroext 0) #13
  %696 = icmp eq i32 %695, -1
  br i1 %696, label %719, label %697

697:                                              ; preds = %693
  %698 = load i32, ptr %426, align 4, !tbaa !5
  %699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %700 = call i32 @s2n_print_stacktrace(ptr noundef %699) #13
  %701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %702 = trunc nuw i8 %701 to i1
  br i1 %702, label %703, label %707

703:                                              ; preds = %697
  %704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %705 = call i32 @fileno(ptr noundef %704) #13
  %706 = call i32 @isatty(i32 noundef %705) #13
  %.not369 = icmp eq i32 %706, 0
  br i1 %.not369, label %707, label %708

707:                                              ; preds = %703, %697
  br label %708

708:                                              ; preds = %703, %707
  %.str.5.sink723 = phi ptr [ @.str.5, %707 ], [ @.str.2, %703 ]
  store i32 %698, ptr %426, align 4, !tbaa !5
  %709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %710 = load i32, ptr @test_count, align 4, !tbaa !5
  %711 = load i32, ptr %372, align 4, !tbaa !5
  %712 = call ptr @s2n_strerror(i32 noundef %711, ptr noundef nonnull @.str.4) #13
  %713 = load i32, ptr %372, align 4, !tbaa !5
  %714 = call ptr @s2n_strerror_debug(i32 noundef %713, ptr noundef nonnull @.str.4) #13
  %715 = load i32, ptr %426, align 4, !tbaa !5
  %716 = call ptr @strerror(i32 noundef %715) #13
  %717 = load i32, ptr %426, align 4, !tbaa !5
  %718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %709, ptr noundef nonnull %.str.5.sink723, i32 noundef %710, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %712, ptr noundef %714, ptr noundef %716, i32 noundef %717) #15
  call void @exit(i32 noundef 1) #16
  unreachable

719:                                              ; preds = %693
  %720 = load i32, ptr @test_count, align 4, !tbaa !5
  %721 = add nsw i32 %720, 1
  store i32 %721, ptr @test_count, align 4, !tbaa !5
  %722 = load i32, ptr %372, align 4, !tbaa !5
  %723 = icmp eq i32 %722, 0
  br i1 %723, label %724, label %746

724:                                              ; preds = %719
  %725 = load i32, ptr %426, align 4, !tbaa !5
  %726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %727 = call i32 @s2n_print_stacktrace(ptr noundef %726) #13
  %728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %729 = trunc nuw i8 %728 to i1
  br i1 %729, label %730, label %734

730:                                              ; preds = %724
  %731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %732 = call i32 @fileno(ptr noundef %731) #13
  %733 = call i32 @isatty(i32 noundef %732) #13
  %.not469 = icmp eq i32 %733, 0
  br i1 %.not469, label %734, label %735

734:                                              ; preds = %730, %724
  br label %735

735:                                              ; preds = %730, %734
  %.str.5.sink732 = phi ptr [ @.str.5, %734 ], [ @.str.2, %730 ]
  store i32 %725, ptr %426, align 4, !tbaa !5
  %736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %737 = load i32, ptr @test_count, align 4, !tbaa !5
  %738 = load i32, ptr %372, align 4, !tbaa !5
  %739 = call ptr @s2n_strerror(i32 noundef %738, ptr noundef nonnull @.str.4) #13
  %740 = load i32, ptr %372, align 4, !tbaa !5
  %741 = call ptr @s2n_strerror_debug(i32 noundef %740, ptr noundef nonnull @.str.4) #13
  %742 = load i32, ptr %426, align 4, !tbaa !5
  %743 = call ptr @strerror(i32 noundef %742) #13
  %744 = load i32, ptr %426, align 4, !tbaa !5
  %745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %736, ptr noundef nonnull %.str.5.sink732, i32 noundef %737, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %739, ptr noundef %741, ptr noundef %743, i32 noundef %744) #15
  call void @exit(i32 noundef 1) #16
  unreachable

746:                                              ; preds = %719
  %747 = add nsw i32 %720, 2
  store i32 %747, ptr @test_count, align 4, !tbaa !5
  %748 = call ptr @s2n_strerror_debug(i32 noundef %722, ptr noundef nonnull @.str.4) #13
  %749 = icmp eq ptr %748, null
  br i1 %749, label %750, label %772

750:                                              ; preds = %746
  %751 = load i32, ptr %426, align 4, !tbaa !5
  %752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %753 = call i32 @s2n_print_stacktrace(ptr noundef %752) #13
  %754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %755 = trunc nuw i8 %754 to i1
  br i1 %755, label %756, label %760

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

760:                                              ; preds = %756, %750
  br label %761

761:                                              ; preds = %756, %760
  %.str.5.sink741 = phi ptr [ @.str.5, %760 ], [ @.str.2, %756 ]
  store i32 %751, ptr %426, align 4, !tbaa !5
  %762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %763 = load i32, ptr @test_count, align 4, !tbaa !5
  %764 = load i32, ptr %372, align 4, !tbaa !5
  %765 = call ptr @s2n_strerror(i32 noundef %764, ptr noundef nonnull @.str.4) #13
  %766 = load i32, ptr %372, align 4, !tbaa !5
  %767 = call ptr @s2n_strerror_debug(i32 noundef %766, ptr noundef nonnull @.str.4) #13
  %768 = load i32, ptr %426, align 4, !tbaa !5
  %769 = call ptr @strerror(i32 noundef %768) #13
  %770 = load i32, ptr %426, align 4, !tbaa !5
  %771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %762, ptr noundef nonnull %.str.5.sink741, i32 noundef %763, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %765, ptr noundef %767, ptr noundef %769, i32 noundef %770) #15
  call void @exit(i32 noundef 1) #16
  unreachable

772:                                              ; preds = %746
  store i32 0, ptr %372, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %426, align 4, !tbaa !5
  %773 = load i32, ptr @test_count, align 4, !tbaa !5
  %774 = add nsw i32 %773, 1
  store i32 %774, ptr @test_count, align 4, !tbaa !5
  %775 = load i32, ptr %509, align 8, !tbaa !22
  %776 = icmp eq i32 %775, 283
  br i1 %776, label %799, label %777

777:                                              ; preds = %772
  %778 = load i32, ptr %426, align 4, !tbaa !5
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = call i32 @s2n_print_stacktrace(ptr noundef %779) #13
  %781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %782 = trunc nuw i8 %781 to i1
  br i1 %782, label %783, label %787

783:                                              ; preds = %777
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = call i32 @fileno(ptr noundef %784) #13
  %786 = call i32 @isatty(i32 noundef %785) #13
  %.not370 = icmp eq i32 %786, 0
  br i1 %.not370, label %787, label %788

787:                                              ; preds = %783, %777
  br label %788

788:                                              ; preds = %783, %787
  %.str.5.sink750 = phi ptr [ @.str.5, %787 ], [ @.str.2, %783 ]
  store i32 %778, ptr %426, align 4, !tbaa !5
  %789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %790 = load i32, ptr @test_count, align 4, !tbaa !5
  %791 = load i32, ptr %372, align 4, !tbaa !5
  %792 = call ptr @s2n_strerror(i32 noundef %791, ptr noundef nonnull @.str.4) #13
  %793 = load i32, ptr %372, align 4, !tbaa !5
  %794 = call ptr @s2n_strerror_debug(i32 noundef %793, ptr noundef nonnull @.str.4) #13
  %795 = load i32, ptr %426, align 4, !tbaa !5
  %796 = call ptr @strerror(i32 noundef %795) #13
  %797 = load i32, ptr %426, align 4, !tbaa !5
  %798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %789, ptr noundef nonnull %.str.5.sink750, i32 noundef %790, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 90, ptr noundef %792, ptr noundef %794, ptr noundef %796, i32 noundef %797) #15
  call void @exit(i32 noundef 1) #16
  unreachable

799:                                              ; preds = %772
  %800 = add nsw i32 %773, 2
  store i32 %800, ptr @test_count, align 4, !tbaa !5
  %801 = call i32 @s2n_connection_free(ptr noundef nonnull %482) #13
  %802 = icmp eq i32 %801, -1
  br i1 %802, label %803, label %825

803:                                              ; preds = %799
  %804 = load i32, ptr %426, align 4, !tbaa !5
  %805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %806 = call i32 @s2n_print_stacktrace(ptr noundef %805) #13
  %807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %808 = trunc nuw i8 %807 to i1
  br i1 %808, label %809, label %813

809:                                              ; preds = %803
  %810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %811 = call i32 @fileno(ptr noundef %810) #13
  %812 = call i32 @isatty(i32 noundef %811) #13
  %.not467 = icmp eq i32 %812, 0
  br i1 %.not467, label %813, label %814

813:                                              ; preds = %809, %803
  br label %814

814:                                              ; preds = %809, %813
  %.str.5.sink759 = phi ptr [ @.str.5, %813 ], [ @.str.2, %809 ]
  store i32 %804, ptr %426, align 4, !tbaa !5
  %815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %816 = load i32, ptr @test_count, align 4, !tbaa !5
  %817 = load i32, ptr %372, align 4, !tbaa !5
  %818 = call ptr @s2n_strerror(i32 noundef %817, ptr noundef nonnull @.str.4) #13
  %819 = load i32, ptr %372, align 4, !tbaa !5
  %820 = call ptr @s2n_strerror_debug(i32 noundef %819, ptr noundef nonnull @.str.4) #13
  %821 = load i32, ptr %426, align 4, !tbaa !5
  %822 = call ptr @strerror(i32 noundef %821) #13
  %823 = load i32, ptr %426, align 4, !tbaa !5
  %824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %815, ptr noundef nonnull %.str.5.sink759, i32 noundef %816, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef %818, ptr noundef %820, ptr noundef %822, i32 noundef %823) #15
  call void @exit(i32 noundef 1) #16
  unreachable

825:                                              ; preds = %799
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #13
  store ptr %3, ptr %6, align 16, !tbaa !9
  %826 = getelementptr inbounds i8, ptr %6, i64 8
  store ptr %4, ptr %826, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 257, ptr nonnull %7) #13
  %827 = getelementptr inbounds i8, ptr %7, i64 256
  store i8 0, ptr %827, align 16
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(256) %7, i8 1, i64 256, i1 false)
  %828 = load i32, ptr @test_count, align 4, !tbaa !5
  %829 = add nsw i32 %828, 1
  store i32 %829, ptr @test_count, align 4, !tbaa !5
  %830 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %7) #17
  %831 = icmp eq i64 %830, 256
  br i1 %831, label %854, label %832

832:                                              ; preds = %825
  %833 = load i32, ptr %426, align 4, !tbaa !5
  %834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %835 = call i32 @s2n_print_stacktrace(ptr noundef %834) #13
  %836 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %837 = trunc nuw i8 %836 to i1
  br i1 %837, label %838, label %842

838:                                              ; preds = %832
  %839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %840 = call i32 @fileno(ptr noundef %839) #13
  %841 = call i32 @isatty(i32 noundef %840) #13
  %.not371 = icmp eq i32 %841, 0
  br i1 %.not371, label %842, label %843

842:                                              ; preds = %838, %832
  br label %843

843:                                              ; preds = %838, %842
  %.str.5.sink768 = phi ptr [ @.str.5, %842 ], [ @.str.2, %838 ]
  store i32 %833, ptr %426, align 4, !tbaa !5
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = load i32, ptr @test_count, align 4, !tbaa !5
  %846 = load i32, ptr %372, align 4, !tbaa !5
  %847 = call ptr @s2n_strerror(i32 noundef %846, ptr noundef nonnull @.str.4) #13
  %848 = load i32, ptr %372, align 4, !tbaa !5
  %849 = call ptr @s2n_strerror_debug(i32 noundef %848, ptr noundef nonnull @.str.4) #13
  %850 = load i32, ptr %426, align 4, !tbaa !5
  %851 = call ptr @strerror(i32 noundef %850) #13
  %852 = load i32, ptr %426, align 4, !tbaa !5
  %853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %844, ptr noundef nonnull %.str.5.sink768, i32 noundef %845, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef %847, ptr noundef %849, ptr noundef %851, i32 noundef %852) #15
  call void @exit(i32 noundef 1) #16
  unreachable

854:                                              ; preds = %825
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #13
  store ptr %7, ptr %8, align 8, !tbaa !9
  %855 = add nsw i32 %828, 2
  store i32 %855, ptr @test_count, align 4, !tbaa !5
  %856 = call ptr @s2n_config_new() #13
  %857 = icmp eq ptr %856, null
  br i1 %857, label %858, label %880

858:                                              ; preds = %854
  %859 = load i32, ptr %426, align 4, !tbaa !5
  %860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %861 = call i32 @s2n_print_stacktrace(ptr noundef %860) #13
  %862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %863 = trunc nuw i8 %862 to i1
  br i1 %863, label %864, label %868

864:                                              ; preds = %858
  %865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %866 = call i32 @fileno(ptr noundef %865) #13
  %867 = call i32 @isatty(i32 noundef %866) #13
  %.not466 = icmp eq i32 %867, 0
  br i1 %.not466, label %868, label %869

868:                                              ; preds = %864, %858
  br label %869

869:                                              ; preds = %864, %868
  %.str.5.sink777 = phi ptr [ @.str.5, %868 ], [ @.str.2, %864 ]
  store i32 %859, ptr %426, align 4, !tbaa !5
  %870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %871 = load i32, ptr @test_count, align 4, !tbaa !5
  %872 = load i32, ptr %372, align 4, !tbaa !5
  %873 = call ptr @s2n_strerror(i32 noundef %872, ptr noundef nonnull @.str.4) #13
  %874 = load i32, ptr %372, align 4, !tbaa !5
  %875 = call ptr @s2n_strerror_debug(i32 noundef %874, ptr noundef nonnull @.str.4) #13
  %876 = load i32, ptr %426, align 4, !tbaa !5
  %877 = call ptr @strerror(i32 noundef %876) #13
  %878 = load i32, ptr %426, align 4, !tbaa !5
  %879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %870, ptr noundef nonnull %.str.5.sink777, i32 noundef %871, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %873, ptr noundef %875, ptr noundef %877, i32 noundef %878) #15
  call void @exit(i32 noundef 1) #16
  unreachable

880:                                              ; preds = %854
  %881 = load i32, ptr @test_count, align 4, !tbaa !5
  %882 = add nsw i32 %881, 1
  store i32 %882, ptr @test_count, align 4, !tbaa !5
  %883 = getelementptr inbounds i8, ptr %856, i64 64
  %884 = load i32, ptr %883, align 8, !tbaa !15
  %885 = icmp eq i32 %884, 0
  br i1 %885, label %908, label %886

886:                                              ; preds = %880
  %887 = load i32, ptr %426, align 4, !tbaa !5
  %888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %889 = call i32 @s2n_print_stacktrace(ptr noundef %888) #13
  %890 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %891 = trunc nuw i8 %890 to i1
  br i1 %891, label %892, label %896

892:                                              ; preds = %886
  %893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %894 = call i32 @fileno(ptr noundef %893) #13
  %895 = call i32 @isatty(i32 noundef %894) #13
  %.not372 = icmp eq i32 %895, 0
  br i1 %.not372, label %896, label %897

896:                                              ; preds = %892, %886
  br label %897

897:                                              ; preds = %892, %896
  %.str.5.sink786 = phi ptr [ @.str.5, %896 ], [ @.str.2, %892 ]
  store i32 %887, ptr %426, align 4, !tbaa !5
  %898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %899 = load i32, ptr @test_count, align 4, !tbaa !5
  %900 = load i32, ptr %372, align 4, !tbaa !5
  %901 = call ptr @s2n_strerror(i32 noundef %900, ptr noundef nonnull @.str.4) #13
  %902 = load i32, ptr %372, align 4, !tbaa !5
  %903 = call ptr @s2n_strerror_debug(i32 noundef %902, ptr noundef nonnull @.str.4) #13
  %904 = load i32, ptr %426, align 4, !tbaa !5
  %905 = call ptr @strerror(i32 noundef %904) #13
  %906 = load i32, ptr %426, align 4, !tbaa !5
  %907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %898, ptr noundef nonnull %.str.5.sink786, i32 noundef %899, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 108, ptr noundef %901, ptr noundef %903, ptr noundef %905, i32 noundef %906) #15
  call void @exit(i32 noundef 1) #16
  unreachable

908:                                              ; preds = %880
  %909 = add nsw i32 %881, 2
  store i32 %909, ptr @test_count, align 4, !tbaa !5
  %910 = call i32 @s2n_config_set_protocol_preferences(ptr noundef nonnull %856, ptr noundef nonnull %6, i32 noundef 2) #13
  %911 = icmp eq i32 %910, -1
  br i1 %911, label %912, label %934

912:                                              ; preds = %908
  %913 = load i32, ptr %426, align 4, !tbaa !5
  %914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %915 = call i32 @s2n_print_stacktrace(ptr noundef %914) #13
  %916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %917 = trunc nuw i8 %916 to i1
  br i1 %917, label %918, label %922

918:                                              ; preds = %912
  %919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %920 = call i32 @fileno(ptr noundef %919) #13
  %921 = call i32 @isatty(i32 noundef %920) #13
  %.not465 = icmp eq i32 %921, 0
  br i1 %.not465, label %922, label %923

922:                                              ; preds = %918, %912
  br label %923

923:                                              ; preds = %918, %922
  %.str.5.sink795 = phi ptr [ @.str.5, %922 ], [ @.str.2, %918 ]
  store i32 %913, ptr %426, align 4, !tbaa !5
  %924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %925 = load i32, ptr @test_count, align 4, !tbaa !5
  %926 = load i32, ptr %372, align 4, !tbaa !5
  %927 = call ptr @s2n_strerror(i32 noundef %926, ptr noundef nonnull @.str.4) #13
  %928 = load i32, ptr %372, align 4, !tbaa !5
  %929 = call ptr @s2n_strerror_debug(i32 noundef %928, ptr noundef nonnull @.str.4) #13
  %930 = load i32, ptr %426, align 4, !tbaa !5
  %931 = call ptr @strerror(i32 noundef %930) #13
  %932 = load i32, ptr %426, align 4, !tbaa !5
  %933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %924, ptr noundef nonnull %.str.5.sink795, i32 noundef %925, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %927, ptr noundef %929, ptr noundef %931, i32 noundef %932) #15
  call void @exit(i32 noundef 1) #16
  unreachable

934:                                              ; preds = %908
  %935 = load i32, ptr @test_count, align 4, !tbaa !5
  %936 = add nsw i32 %935, 1
  store i32 %936, ptr @test_count, align 4, !tbaa !5
  %937 = load i32, ptr %883, align 8, !tbaa !15
  %938 = zext i32 %937 to i64
  %939 = add i64 %110, 1
  %940 = add i64 %110, 2
  %941 = add i64 %940, %111
  %942 = icmp eq i64 %941, %938
  br i1 %942, label %965, label %943

943:                                              ; preds = %934
  %944 = load i32, ptr %426, align 4, !tbaa !5
  %945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %946 = call i32 @s2n_print_stacktrace(ptr noundef %945) #13
  %947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %948 = trunc nuw i8 %947 to i1
  br i1 %948, label %949, label %953

949:                                              ; preds = %943
  %950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %951 = call i32 @fileno(ptr noundef %950) #13
  %952 = call i32 @isatty(i32 noundef %951) #13
  %.not373 = icmp eq i32 %952, 0
  br i1 %.not373, label %953, label %954

953:                                              ; preds = %949, %943
  br label %954

954:                                              ; preds = %949, %953
  %.str.5.sink804 = phi ptr [ @.str.5, %953 ], [ @.str.2, %949 ]
  store i32 %944, ptr %426, align 4, !tbaa !5
  %955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %956 = load i32, ptr @test_count, align 4, !tbaa !5
  %957 = load i32, ptr %372, align 4, !tbaa !5
  %958 = call ptr @s2n_strerror(i32 noundef %957, ptr noundef nonnull @.str.4) #13
  %959 = load i32, ptr %372, align 4, !tbaa !5
  %960 = call ptr @s2n_strerror_debug(i32 noundef %959, ptr noundef nonnull @.str.4) #13
  %961 = load i32, ptr %426, align 4, !tbaa !5
  %962 = call ptr @strerror(i32 noundef %961) #13
  %963 = load i32, ptr %426, align 4, !tbaa !5
  %964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %955, ptr noundef nonnull %.str.5.sink804, i32 noundef %956, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %958, ptr noundef %960, ptr noundef %962, i32 noundef %963) #15
  call void @exit(i32 noundef 1) #16
  unreachable

965:                                              ; preds = %934
  %966 = add nsw i32 %935, 2
  store i32 %966, ptr @test_count, align 4, !tbaa !5
  %967 = call i32 @s2n_config_set_protocol_preferences(ptr noundef nonnull %856, ptr noundef nonnull %6, i32 noundef 1) #13
  %968 = icmp eq i32 %967, -1
  br i1 %968, label %969, label %991

969:                                              ; preds = %965
  %970 = load i32, ptr %426, align 4, !tbaa !5
  %971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %972 = call i32 @s2n_print_stacktrace(ptr noundef %971) #13
  %973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %974 = trunc nuw i8 %973 to i1
  br i1 %974, label %975, label %979

975:                                              ; preds = %969
  %976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %977 = call i32 @fileno(ptr noundef %976) #13
  %978 = call i32 @isatty(i32 noundef %977) #13
  %.not464 = icmp eq i32 %978, 0
  br i1 %.not464, label %979, label %980

979:                                              ; preds = %975, %969
  br label %980

980:                                              ; preds = %975, %979
  %.str.5.sink813 = phi ptr [ @.str.5, %979 ], [ @.str.2, %975 ]
  store i32 %970, ptr %426, align 4, !tbaa !5
  %981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %982 = load i32, ptr @test_count, align 4, !tbaa !5
  %983 = load i32, ptr %372, align 4, !tbaa !5
  %984 = call ptr @s2n_strerror(i32 noundef %983, ptr noundef nonnull @.str.4) #13
  %985 = load i32, ptr %372, align 4, !tbaa !5
  %986 = call ptr @s2n_strerror_debug(i32 noundef %985, ptr noundef nonnull @.str.4) #13
  %987 = load i32, ptr %426, align 4, !tbaa !5
  %988 = call ptr @strerror(i32 noundef %987) #13
  %989 = load i32, ptr %426, align 4, !tbaa !5
  %990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %981, ptr noundef nonnull %.str.5.sink813, i32 noundef %982, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %984, ptr noundef %986, ptr noundef %988, i32 noundef %989) #15
  call void @exit(i32 noundef 1) #16
  unreachable

991:                                              ; preds = %965
  %992 = load i32, ptr @test_count, align 4, !tbaa !5
  %993 = add nsw i32 %992, 1
  store i32 %993, ptr @test_count, align 4, !tbaa !5
  %994 = load i32, ptr %883, align 8, !tbaa !15
  %995 = zext i32 %994 to i64
  %996 = icmp eq i64 %939, %995
  br i1 %996, label %1019, label %997

997:                                              ; preds = %991
  %998 = load i32, ptr %426, align 4, !tbaa !5
  %999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1000 = call i32 @s2n_print_stacktrace(ptr noundef %999) #13
  %1001 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1002 = trunc nuw i8 %1001 to i1
  br i1 %1002, label %1003, label %1007

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

1007:                                             ; preds = %1003, %997
  br label %1008

1008:                                             ; preds = %1003, %1007
  %.str.5.sink822 = phi ptr [ @.str.5, %1007 ], [ @.str.2, %1003 ]
  store i32 %998, ptr %426, align 4, !tbaa !5
  %1009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1010 = load i32, ptr @test_count, align 4, !tbaa !5
  %1011 = load i32, ptr %372, align 4, !tbaa !5
  %1012 = call ptr @s2n_strerror(i32 noundef %1011, ptr noundef nonnull @.str.4) #13
  %1013 = load i32, ptr %372, align 4, !tbaa !5
  %1014 = call ptr @s2n_strerror_debug(i32 noundef %1013, ptr noundef nonnull @.str.4) #13
  %1015 = load i32, ptr %426, align 4, !tbaa !5
  %1016 = call ptr @strerror(i32 noundef %1015) #13
  %1017 = load i32, ptr %426, align 4, !tbaa !5
  %1018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1009, ptr noundef nonnull %.str.5.sink822, i32 noundef %1010, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %1012, ptr noundef %1014, ptr noundef %1016, i32 noundef %1017) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1019:                                             ; preds = %991
  %1020 = add nsw i32 %992, 2
  store i32 %1020, ptr @test_count, align 4, !tbaa !5
  %1021 = call i32 @s2n_config_set_protocol_preferences(ptr noundef nonnull %856, ptr noundef null, i32 noundef 2) #13
  %1022 = icmp eq i32 %1021, -1
  br i1 %1022, label %1023, label %1045

1023:                                             ; preds = %1019
  %1024 = load i32, ptr %426, align 4, !tbaa !5
  %1025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1026 = call i32 @s2n_print_stacktrace(ptr noundef %1025) #13
  %1027 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1028 = trunc nuw i8 %1027 to i1
  br i1 %1028, label %1029, label %1033

1029:                                             ; preds = %1023
  %1030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1031 = call i32 @fileno(ptr noundef %1030) #13
  %1032 = call i32 @isatty(i32 noundef %1031) #13
  %.not463 = icmp eq i32 %1032, 0
  br i1 %.not463, label %1033, label %1034

1033:                                             ; preds = %1029, %1023
  br label %1034

1034:                                             ; preds = %1029, %1033
  %.str.5.sink831 = phi ptr [ @.str.5, %1033 ], [ @.str.2, %1029 ]
  store i32 %1024, ptr %426, align 4, !tbaa !5
  %1035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1036 = load i32, ptr @test_count, align 4, !tbaa !5
  %1037 = load i32, ptr %372, align 4, !tbaa !5
  %1038 = call ptr @s2n_strerror(i32 noundef %1037, ptr noundef nonnull @.str.4) #13
  %1039 = load i32, ptr %372, align 4, !tbaa !5
  %1040 = call ptr @s2n_strerror_debug(i32 noundef %1039, ptr noundef nonnull @.str.4) #13
  %1041 = load i32, ptr %426, align 4, !tbaa !5
  %1042 = call ptr @strerror(i32 noundef %1041) #13
  %1043 = load i32, ptr %426, align 4, !tbaa !5
  %1044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1035, ptr noundef nonnull %.str.5.sink831, i32 noundef %1036, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 119, ptr noundef %1038, ptr noundef %1040, ptr noundef %1042, i32 noundef %1043) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1045:                                             ; preds = %1019
  %1046 = load i32, ptr @test_count, align 4, !tbaa !5
  %1047 = add nsw i32 %1046, 1
  store i32 %1047, ptr @test_count, align 4, !tbaa !5
  %1048 = load i32, ptr %883, align 8, !tbaa !15
  %1049 = icmp eq i32 %1048, 0
  br i1 %1049, label %1072, label %1050

1050:                                             ; preds = %1045
  %1051 = load i32, ptr %426, align 4, !tbaa !5
  %1052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1053 = call i32 @s2n_print_stacktrace(ptr noundef %1052) #13
  %1054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1055 = trunc nuw i8 %1054 to i1
  br i1 %1055, label %1056, label %1060

1056:                                             ; preds = %1050
  %1057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1058 = call i32 @fileno(ptr noundef %1057) #13
  %1059 = call i32 @isatty(i32 noundef %1058) #13
  %.not375 = icmp eq i32 %1059, 0
  br i1 %.not375, label %1060, label %1061

1060:                                             ; preds = %1056, %1050
  br label %1061

1061:                                             ; preds = %1056, %1060
  %.str.5.sink840 = phi ptr [ @.str.5, %1060 ], [ @.str.2, %1056 ]
  store i32 %1051, ptr %426, align 4, !tbaa !5
  %1062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1063 = load i32, ptr @test_count, align 4, !tbaa !5
  %1064 = load i32, ptr %372, align 4, !tbaa !5
  %1065 = call ptr @s2n_strerror(i32 noundef %1064, ptr noundef nonnull @.str.4) #13
  %1066 = load i32, ptr %372, align 4, !tbaa !5
  %1067 = call ptr @s2n_strerror_debug(i32 noundef %1066, ptr noundef nonnull @.str.4) #13
  %1068 = load i32, ptr %426, align 4, !tbaa !5
  %1069 = call ptr @strerror(i32 noundef %1068) #13
  %1070 = load i32, ptr %426, align 4, !tbaa !5
  %1071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1062, ptr noundef nonnull %.str.5.sink840, i32 noundef %1063, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef %1065, ptr noundef %1067, ptr noundef %1069, i32 noundef %1070) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1072:                                             ; preds = %1045
  %1073 = add nsw i32 %1046, 2
  store i32 %1073, ptr @test_count, align 4, !tbaa !5
  %1074 = call i32 @s2n_config_set_protocol_preferences(ptr noundef nonnull %856, ptr noundef nonnull %6, i32 noundef 2) #13
  %1075 = icmp eq i32 %1074, -1
  br i1 %1075, label %1076, label %1098

1076:                                             ; preds = %1072
  %1077 = load i32, ptr %426, align 4, !tbaa !5
  %1078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1079 = call i32 @s2n_print_stacktrace(ptr noundef %1078) #13
  %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) #13
  %1085 = call i32 @isatty(i32 noundef %1084) #13
  %.not462 = icmp eq i32 %1085, 0
  br i1 %.not462, label %1086, label %1087

1086:                                             ; preds = %1082, %1076
  br label %1087

1087:                                             ; preds = %1082, %1086
  %.str.5.sink849 = phi ptr [ @.str.5, %1086 ], [ @.str.2, %1082 ]
  store i32 %1077, ptr %426, 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 %372, align 4, !tbaa !5
  %1091 = call ptr @s2n_strerror(i32 noundef %1090, ptr noundef nonnull @.str.4) #13
  %1092 = load i32, ptr %372, align 4, !tbaa !5
  %1093 = call ptr @s2n_strerror_debug(i32 noundef %1092, ptr noundef nonnull @.str.4) #13
  %1094 = load i32, ptr %426, align 4, !tbaa !5
  %1095 = call ptr @strerror(i32 noundef %1094) #13
  %1096 = load i32, ptr %426, align 4, !tbaa !5
  %1097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1088, ptr noundef nonnull %.str.5.sink849, i32 noundef %1089, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %1091, ptr noundef %1093, ptr noundef %1095, i32 noundef %1096) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1098:                                             ; preds = %1072
  %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 = load i32, ptr %883, align 8, !tbaa !15
  %1102 = icmp eq i32 %937, %1101
  br i1 %1102, label %1125, label %1103

1103:                                             ; preds = %1098
  %1104 = load i32, ptr %426, align 4, !tbaa !5
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1106 = call i32 @s2n_print_stacktrace(ptr noundef %1105) #13
  %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) #13
  %1112 = call i32 @isatty(i32 noundef %1111) #13
  %.not376 = icmp eq i32 %1112, 0
  br i1 %.not376, label %1113, label %1114

1113:                                             ; preds = %1109, %1103
  br label %1114

1114:                                             ; preds = %1109, %1113
  %.str.5.sink858 = phi ptr [ @.str.5, %1113 ], [ @.str.2, %1109 ]
  store i32 %1104, ptr %426, 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 %372, align 4, !tbaa !5
  %1118 = call ptr @s2n_strerror(i32 noundef %1117, ptr noundef nonnull @.str.4) #13
  %1119 = load i32, ptr %372, align 4, !tbaa !5
  %1120 = call ptr @s2n_strerror_debug(i32 noundef %1119, ptr noundef nonnull @.str.4) #13
  %1121 = load i32, ptr %426, align 4, !tbaa !5
  %1122 = call ptr @strerror(i32 noundef %1121) #13
  %1123 = load i32, ptr %426, align 4, !tbaa !5
  %1124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1115, ptr noundef nonnull %.str.5.sink858, i32 noundef %1116, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %1118, ptr noundef %1120, ptr noundef %1122, i32 noundef %1123) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1125:                                             ; preds = %1098
  %1126 = add nsw i32 %1099, 2
  store i32 %1126, ptr @test_count, align 4, !tbaa !5
  %1127 = call i32 @s2n_config_set_protocol_preferences(ptr noundef nonnull %856, ptr noundef nonnull %6, i32 noundef 0) #13
  %1128 = icmp eq i32 %1127, -1
  br i1 %1128, label %1129, label %1151

1129:                                             ; preds = %1125
  %1130 = load i32, ptr %426, align 4, !tbaa !5
  %1131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1132 = call i32 @s2n_print_stacktrace(ptr noundef %1131) #13
  %1133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1134 = trunc nuw i8 %1133 to i1
  br i1 %1134, label %1135, label %1139

1135:                                             ; preds = %1129
  %1136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1137 = call i32 @fileno(ptr noundef %1136) #13
  %1138 = call i32 @isatty(i32 noundef %1137) #13
  %.not461 = icmp eq i32 %1138, 0
  br i1 %.not461, label %1139, label %1140

1139:                                             ; preds = %1135, %1129
  br label %1140

1140:                                             ; preds = %1135, %1139
  %.str.5.sink867 = phi ptr [ @.str.5, %1139 ], [ @.str.2, %1135 ]
  store i32 %1130, ptr %426, align 4, !tbaa !5
  %1141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1142 = load i32, ptr @test_count, align 4, !tbaa !5
  %1143 = load i32, ptr %372, align 4, !tbaa !5
  %1144 = call ptr @s2n_strerror(i32 noundef %1143, ptr noundef nonnull @.str.4) #13
  %1145 = load i32, ptr %372, align 4, !tbaa !5
  %1146 = call ptr @s2n_strerror_debug(i32 noundef %1145, ptr noundef nonnull @.str.4) #13
  %1147 = load i32, ptr %426, align 4, !tbaa !5
  %1148 = call ptr @strerror(i32 noundef %1147) #13
  %1149 = load i32, ptr %426, align 4, !tbaa !5
  %1150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1141, ptr noundef nonnull %.str.5.sink867, i32 noundef %1142, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %1144, ptr noundef %1146, ptr noundef %1148, i32 noundef %1149) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1151:                                             ; preds = %1125
  %1152 = load i32, ptr @test_count, align 4, !tbaa !5
  %1153 = add nsw i32 %1152, 1
  store i32 %1153, ptr @test_count, align 4, !tbaa !5
  %1154 = load i32, ptr %883, align 8, !tbaa !15
  %1155 = icmp eq i32 %1154, 0
  br i1 %1155, label %1178, label %1156

1156:                                             ; preds = %1151
  %1157 = load i32, ptr %426, align 4, !tbaa !5
  %1158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1159 = call i32 @s2n_print_stacktrace(ptr noundef %1158) #13
  %1160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1161 = trunc nuw i8 %1160 to i1
  br i1 %1161, label %1162, label %1166

1162:                                             ; preds = %1156
  %1163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1164 = call i32 @fileno(ptr noundef %1163) #13
  %1165 = call i32 @isatty(i32 noundef %1164) #13
  %.not377 = icmp eq i32 %1165, 0
  br i1 %.not377, label %1166, label %1167

1166:                                             ; preds = %1162, %1156
  br label %1167

1167:                                             ; preds = %1162, %1166
  %.str.5.sink876 = phi ptr [ @.str.5, %1166 ], [ @.str.2, %1162 ]
  store i32 %1157, ptr %426, align 4, !tbaa !5
  %1168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1169 = load i32, ptr @test_count, align 4, !tbaa !5
  %1170 = load i32, ptr %372, align 4, !tbaa !5
  %1171 = call ptr @s2n_strerror(i32 noundef %1170, ptr noundef nonnull @.str.4) #13
  %1172 = load i32, ptr %372, align 4, !tbaa !5
  %1173 = call ptr @s2n_strerror_debug(i32 noundef %1172, ptr noundef nonnull @.str.4) #13
  %1174 = load i32, ptr %426, align 4, !tbaa !5
  %1175 = call ptr @strerror(i32 noundef %1174) #13
  %1176 = load i32, ptr %426, align 4, !tbaa !5
  %1177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1168, ptr noundef nonnull %.str.5.sink876, i32 noundef %1169, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %1171, ptr noundef %1173, ptr noundef %1175, i32 noundef %1176) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1178:                                             ; preds = %1151
  %1179 = add nsw i32 %1152, 2
  store i32 %1179, ptr @test_count, align 4, !tbaa !5
  %1180 = call i32 @s2n_config_set_protocol_preferences(ptr noundef nonnull %856, ptr noundef nonnull %8, i32 noundef 1) #13
  %1181 = icmp eq i32 %1180, -1
  br i1 %1181, label %1204, label %1182

1182:                                             ; preds = %1178
  %1183 = load i32, ptr %426, align 4, !tbaa !5
  %1184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1185 = call i32 @s2n_print_stacktrace(ptr noundef %1184) #13
  %1186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1187 = trunc nuw i8 %1186 to i1
  br i1 %1187, label %1188, label %1192

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

1192:                                             ; preds = %1188, %1182
  br label %1193

1193:                                             ; preds = %1188, %1192
  %.str.5.sink885 = phi ptr [ @.str.5, %1192 ], [ @.str.2, %1188 ]
  store i32 %1183, ptr %426, align 4, !tbaa !5
  %1194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1195 = load i32, ptr @test_count, align 4, !tbaa !5
  %1196 = load i32, ptr %372, align 4, !tbaa !5
  %1197 = call ptr @s2n_strerror(i32 noundef %1196, ptr noundef nonnull @.str.4) #13
  %1198 = load i32, ptr %372, align 4, !tbaa !5
  %1199 = call ptr @s2n_strerror_debug(i32 noundef %1198, ptr noundef nonnull @.str.4) #13
  %1200 = load i32, ptr %426, align 4, !tbaa !5
  %1201 = call ptr @strerror(i32 noundef %1200) #13
  %1202 = load i32, ptr %426, align 4, !tbaa !5
  %1203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1194, ptr noundef nonnull %.str.5.sink885, i32 noundef %1195, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1197, ptr noundef %1199, ptr noundef %1201, i32 noundef %1202) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1204:                                             ; preds = %1178
  %1205 = load i32, ptr @test_count, align 4, !tbaa !5
  %1206 = add nsw i32 %1205, 1
  store i32 %1206, ptr @test_count, align 4, !tbaa !5
  %1207 = load i32, ptr %372, align 4, !tbaa !5
  %1208 = icmp eq i32 %1207, 0
  br i1 %1208, label %1209, label %1231

1209:                                             ; preds = %1204
  %1210 = load i32, ptr %426, align 4, !tbaa !5
  %1211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1212 = call i32 @s2n_print_stacktrace(ptr noundef %1211) #13
  %1213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1214 = trunc nuw i8 %1213 to i1
  br i1 %1214, label %1215, label %1219

1215:                                             ; preds = %1209
  %1216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1217 = call i32 @fileno(ptr noundef %1216) #13
  %1218 = call i32 @isatty(i32 noundef %1217) #13
  %.not460 = icmp eq i32 %1218, 0
  br i1 %.not460, label %1219, label %1220

1219:                                             ; preds = %1215, %1209
  br label %1220

1220:                                             ; preds = %1215, %1219
  %.str.5.sink894 = phi ptr [ @.str.5, %1219 ], [ @.str.2, %1215 ]
  store i32 %1210, ptr %426, align 4, !tbaa !5
  %1221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1222 = load i32, ptr @test_count, align 4, !tbaa !5
  %1223 = load i32, ptr %372, align 4, !tbaa !5
  %1224 = call ptr @s2n_strerror(i32 noundef %1223, ptr noundef nonnull @.str.4) #13
  %1225 = load i32, ptr %372, align 4, !tbaa !5
  %1226 = call ptr @s2n_strerror_debug(i32 noundef %1225, ptr noundef nonnull @.str.4) #13
  %1227 = load i32, ptr %426, align 4, !tbaa !5
  %1228 = call ptr @strerror(i32 noundef %1227) #13
  %1229 = load i32, ptr %426, align 4, !tbaa !5
  %1230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1221, ptr noundef nonnull %.str.5.sink894, i32 noundef %1222, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1224, ptr noundef %1226, ptr noundef %1228, i32 noundef %1229) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1231:                                             ; preds = %1204
  %1232 = add nsw i32 %1205, 2
  store i32 %1232, ptr @test_count, align 4, !tbaa !5
  %1233 = call ptr @s2n_strerror_debug(i32 noundef %1207, ptr noundef nonnull @.str.4) #13
  %1234 = icmp eq ptr %1233, null
  br i1 %1234, label %1235, label %1257

1235:                                             ; preds = %1231
  %1236 = load i32, ptr %426, align 4, !tbaa !5
  %1237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1238 = call i32 @s2n_print_stacktrace(ptr noundef %1237) #13
  %1239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1240 = trunc nuw i8 %1239 to i1
  br i1 %1240, label %1241, label %1245

1241:                                             ; preds = %1235
  %1242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1243 = call i32 @fileno(ptr noundef %1242) #13
  %1244 = call i32 @isatty(i32 noundef %1243) #13
  %.not459 = icmp eq i32 %1244, 0
  br i1 %.not459, label %1245, label %1246

1245:                                             ; preds = %1241, %1235
  br label %1246

1246:                                             ; preds = %1241, %1245
  %.str.5.sink903 = phi ptr [ @.str.5, %1245 ], [ @.str.2, %1241 ]
  store i32 %1236, ptr %426, align 4, !tbaa !5
  %1247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1248 = load i32, ptr @test_count, align 4, !tbaa !5
  %1249 = load i32, ptr %372, align 4, !tbaa !5
  %1250 = call ptr @s2n_strerror(i32 noundef %1249, ptr noundef nonnull @.str.4) #13
  %1251 = load i32, ptr %372, align 4, !tbaa !5
  %1252 = call ptr @s2n_strerror_debug(i32 noundef %1251, ptr noundef nonnull @.str.4) #13
  %1253 = load i32, ptr %426, align 4, !tbaa !5
  %1254 = call ptr @strerror(i32 noundef %1253) #13
  %1255 = load i32, ptr %426, align 4, !tbaa !5
  %1256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1247, ptr noundef nonnull %.str.5.sink903, i32 noundef %1248, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1250, ptr noundef %1252, ptr noundef %1254, i32 noundef %1255) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1257:                                             ; preds = %1231
  store i32 0, ptr %372, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %426, align 4, !tbaa !5
  %1258 = load i32, ptr @test_count, align 4, !tbaa !5
  %1259 = add nsw i32 %1258, 1
  store i32 %1259, ptr @test_count, align 4, !tbaa !5
  %1260 = load i32, ptr %883, align 8, !tbaa !15
  %1261 = icmp eq i32 %1260, 0
  br i1 %1261, label %1284, label %1262

1262:                                             ; preds = %1257
  %1263 = load i32, ptr %426, align 4, !tbaa !5
  %1264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1265 = call i32 @s2n_print_stacktrace(ptr noundef %1264) #13
  %1266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1267 = trunc nuw i8 %1266 to i1
  br i1 %1267, label %1268, label %1272

1268:                                             ; preds = %1262
  %1269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1270 = call i32 @fileno(ptr noundef %1269) #13
  %1271 = call i32 @isatty(i32 noundef %1270) #13
  %.not379 = icmp eq i32 %1271, 0
  br i1 %.not379, label %1272, label %1273

1272:                                             ; preds = %1268, %1262
  br label %1273

1273:                                             ; preds = %1268, %1272
  %.str.5.sink912 = phi ptr [ @.str.5, %1272 ], [ @.str.2, %1268 ]
  store i32 %1263, ptr %426, align 4, !tbaa !5
  %1274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1275 = load i32, ptr @test_count, align 4, !tbaa !5
  %1276 = load i32, ptr %372, align 4, !tbaa !5
  %1277 = call ptr @s2n_strerror(i32 noundef %1276, ptr noundef nonnull @.str.4) #13
  %1278 = load i32, ptr %372, align 4, !tbaa !5
  %1279 = call ptr @s2n_strerror_debug(i32 noundef %1278, ptr noundef nonnull @.str.4) #13
  %1280 = load i32, ptr %426, align 4, !tbaa !5
  %1281 = call ptr @strerror(i32 noundef %1280) #13
  %1282 = load i32, ptr %426, align 4, !tbaa !5
  %1283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1274, ptr noundef nonnull %.str.5.sink912, i32 noundef %1275, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %1277, ptr noundef %1279, ptr noundef %1281, i32 noundef %1282) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1284:                                             ; preds = %1257
  %1285 = add nsw i32 %1258, 2
  store i32 %1285, ptr @test_count, align 4, !tbaa !5
  %1286 = call i32 @s2n_config_free(ptr noundef nonnull %856) #13
  %1287 = icmp eq i32 %1286, -1
  br i1 %1287, label %1288, label %1310

1288:                                             ; preds = %1284
  %1289 = load i32, ptr %426, align 4, !tbaa !5
  %1290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1291 = call i32 @s2n_print_stacktrace(ptr noundef %1290) #13
  %1292 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1293 = trunc nuw i8 %1292 to i1
  br i1 %1293, label %1294, label %1298

1294:                                             ; preds = %1288
  %1295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1296 = call i32 @fileno(ptr noundef %1295) #13
  %1297 = call i32 @isatty(i32 noundef %1296) #13
  %.not458 = icmp eq i32 %1297, 0
  br i1 %.not458, label %1298, label %1299

1298:                                             ; preds = %1294, %1288
  br label %1299

1299:                                             ; preds = %1294, %1298
  %.str.5.sink921 = phi ptr [ @.str.5, %1298 ], [ @.str.2, %1294 ]
  store i32 %1289, ptr %426, align 4, !tbaa !5
  %1300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1301 = load i32, ptr @test_count, align 4, !tbaa !5
  %1302 = load i32, ptr %372, align 4, !tbaa !5
  %1303 = call ptr @s2n_strerror(i32 noundef %1302, ptr noundef nonnull @.str.4) #13
  %1304 = load i32, ptr %372, align 4, !tbaa !5
  %1305 = call ptr @s2n_strerror_debug(i32 noundef %1304, ptr noundef nonnull @.str.4) #13
  %1306 = load i32, ptr %426, align 4, !tbaa !5
  %1307 = call ptr @strerror(i32 noundef %1306) #13
  %1308 = load i32, ptr %426, align 4, !tbaa !5
  %1309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1300, ptr noundef nonnull %.str.5.sink921, i32 noundef %1301, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 131, ptr noundef %1303, ptr noundef %1305, ptr noundef %1307, i32 noundef %1308) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1310:                                             ; preds = %1284
  %1311 = load i32, ptr @test_count, align 4, !tbaa !5
  %1312 = add nsw i32 %1311, 1
  store i32 %1312, ptr @test_count, align 4, !tbaa !5
  %1313 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %1314 = icmp eq ptr %1313, null
  br i1 %1314, label %1315, label %1337

1315:                                             ; preds = %1310
  %1316 = load i32, ptr %426, align 4, !tbaa !5
  %1317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1318 = call i32 @s2n_print_stacktrace(ptr noundef %1317) #13
  %1319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1320 = trunc nuw i8 %1319 to i1
  br i1 %1320, label %1321, label %1325

1321:                                             ; preds = %1315
  %1322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1323 = call i32 @fileno(ptr noundef %1322) #13
  %1324 = call i32 @isatty(i32 noundef %1323) #13
  %.not457 = icmp eq i32 %1324, 0
  br i1 %.not457, label %1325, label %1326

1325:                                             ; preds = %1321, %1315
  br label %1326

1326:                                             ; preds = %1321, %1325
  %.str.5.sink930 = phi ptr [ @.str.5, %1325 ], [ @.str.2, %1321 ]
  store i32 %1316, ptr %426, align 4, !tbaa !5
  %1327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1328 = load i32, ptr @test_count, align 4, !tbaa !5
  %1329 = load i32, ptr %372, align 4, !tbaa !5
  %1330 = call ptr @s2n_strerror(i32 noundef %1329, ptr noundef nonnull @.str.4) #13
  %1331 = load i32, ptr %372, align 4, !tbaa !5
  %1332 = call ptr @s2n_strerror_debug(i32 noundef %1331, ptr noundef nonnull @.str.4) #13
  %1333 = load i32, ptr %426, align 4, !tbaa !5
  %1334 = call ptr @strerror(i32 noundef %1333) #13
  %1335 = load i32, ptr %426, align 4, !tbaa !5
  %1336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1327, ptr noundef nonnull %.str.5.sink930, i32 noundef %1328, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef %1330, ptr noundef %1332, ptr noundef %1334, i32 noundef %1335) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1337:                                             ; preds = %1310
  %1338 = load i32, ptr @test_count, align 4, !tbaa !5
  %1339 = add nsw i32 %1338, 1
  store i32 %1339, ptr @test_count, align 4, !tbaa !5
  %1340 = getelementptr inbounds i8, ptr %1313, i64 4040
  %1341 = load i32, ptr %1340, align 8, !tbaa !22
  %1342 = icmp eq i32 %1341, 0
  br i1 %1342, label %1365, label %1343

1343:                                             ; preds = %1337
  %1344 = load i32, ptr %426, align 4, !tbaa !5
  %1345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1346 = call i32 @s2n_print_stacktrace(ptr noundef %1345) #13
  %1347 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1348 = trunc nuw i8 %1347 to i1
  br i1 %1348, label %1349, label %1353

1349:                                             ; preds = %1343
  %1350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1351 = call i32 @fileno(ptr noundef %1350) #13
  %1352 = call i32 @isatty(i32 noundef %1351) #13
  %.not380 = icmp eq i32 %1352, 0
  br i1 %.not380, label %1353, label %1354

1353:                                             ; preds = %1349, %1343
  br label %1354

1354:                                             ; preds = %1349, %1353
  %.str.5.sink939 = phi ptr [ @.str.5, %1353 ], [ @.str.2, %1349 ]
  store i32 %1344, ptr %426, align 4, !tbaa !5
  %1355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1356 = load i32, ptr @test_count, align 4, !tbaa !5
  %1357 = load i32, ptr %372, align 4, !tbaa !5
  %1358 = call ptr @s2n_strerror(i32 noundef %1357, ptr noundef nonnull @.str.4) #13
  %1359 = load i32, ptr %372, align 4, !tbaa !5
  %1360 = call ptr @s2n_strerror_debug(i32 noundef %1359, ptr noundef nonnull @.str.4) #13
  %1361 = load i32, ptr %426, align 4, !tbaa !5
  %1362 = call ptr @strerror(i32 noundef %1361) #13
  %1363 = load i32, ptr %426, align 4, !tbaa !5
  %1364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1355, ptr noundef nonnull %.str.5.sink939, i32 noundef %1356, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %1358, ptr noundef %1360, ptr noundef %1362, i32 noundef %1363) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1365:                                             ; preds = %1337
  %1366 = add nsw i32 %1338, 2
  store i32 %1366, ptr @test_count, align 4, !tbaa !5
  %1367 = call i32 @s2n_connection_set_protocol_preferences(ptr noundef nonnull %1313, ptr noundef nonnull %6, i32 noundef 2) #13
  %1368 = icmp eq i32 %1367, -1
  br i1 %1368, label %1369, label %1391

1369:                                             ; preds = %1365
  %1370 = load i32, ptr %426, align 4, !tbaa !5
  %1371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1372 = call i32 @s2n_print_stacktrace(ptr noundef %1371) #13
  %1373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1374 = trunc nuw i8 %1373 to i1
  br i1 %1374, label %1375, label %1379

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

1379:                                             ; preds = %1375, %1369
  br label %1380

1380:                                             ; preds = %1375, %1379
  %.str.5.sink948 = phi ptr [ @.str.5, %1379 ], [ @.str.2, %1375 ]
  store i32 %1370, ptr %426, align 4, !tbaa !5
  %1381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1382 = load i32, ptr @test_count, align 4, !tbaa !5
  %1383 = load i32, ptr %372, align 4, !tbaa !5
  %1384 = call ptr @s2n_strerror(i32 noundef %1383, ptr noundef nonnull @.str.4) #13
  %1385 = load i32, ptr %372, align 4, !tbaa !5
  %1386 = call ptr @s2n_strerror_debug(i32 noundef %1385, ptr noundef nonnull @.str.4) #13
  %1387 = load i32, ptr %426, align 4, !tbaa !5
  %1388 = call ptr @strerror(i32 noundef %1387) #13
  %1389 = load i32, ptr %426, align 4, !tbaa !5
  %1390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1381, ptr noundef nonnull %.str.5.sink948, i32 noundef %1382, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %1384, ptr noundef %1386, ptr noundef %1388, i32 noundef %1389) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1391:                                             ; preds = %1365
  %1392 = load i32, ptr @test_count, align 4, !tbaa !5
  %1393 = add nsw i32 %1392, 1
  store i32 %1393, ptr @test_count, align 4, !tbaa !5
  %1394 = load i32, ptr %1340, align 8, !tbaa !22
  %1395 = icmp eq i32 %937, %1394
  br i1 %1395, label %1418, label %1396

1396:                                             ; preds = %1391
  %1397 = load i32, ptr %426, align 4, !tbaa !5
  %1398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1399 = call i32 @s2n_print_stacktrace(ptr noundef %1398) #13
  %1400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1401 = trunc nuw i8 %1400 to i1
  br i1 %1401, label %1402, label %1406

1402:                                             ; preds = %1396
  %1403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1404 = call i32 @fileno(ptr noundef %1403) #13
  %1405 = call i32 @isatty(i32 noundef %1404) #13
  %.not381 = icmp eq i32 %1405, 0
  br i1 %.not381, label %1406, label %1407

1406:                                             ; preds = %1402, %1396
  br label %1407

1407:                                             ; preds = %1402, %1406
  %.str.5.sink957 = phi ptr [ @.str.5, %1406 ], [ @.str.2, %1402 ]
  store i32 %1397, ptr %426, align 4, !tbaa !5
  %1408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1409 = load i32, ptr @test_count, align 4, !tbaa !5
  %1410 = load i32, ptr %372, align 4, !tbaa !5
  %1411 = call ptr @s2n_strerror(i32 noundef %1410, ptr noundef nonnull @.str.4) #13
  %1412 = load i32, ptr %372, align 4, !tbaa !5
  %1413 = call ptr @s2n_strerror_debug(i32 noundef %1412, ptr noundef nonnull @.str.4) #13
  %1414 = load i32, ptr %426, align 4, !tbaa !5
  %1415 = call ptr @strerror(i32 noundef %1414) #13
  %1416 = load i32, ptr %426, align 4, !tbaa !5
  %1417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1408, ptr noundef nonnull %.str.5.sink957, i32 noundef %1409, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 142, ptr noundef %1411, ptr noundef %1413, ptr noundef %1415, i32 noundef %1416) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1418:                                             ; preds = %1391
  %1419 = add nsw i32 %1392, 2
  store i32 %1419, ptr @test_count, align 4, !tbaa !5
  %1420 = call i32 @s2n_connection_set_protocol_preferences(ptr noundef nonnull %1313, ptr noundef nonnull %6, i32 noundef 1) #13
  %1421 = icmp eq i32 %1420, -1
  br i1 %1421, label %1422, label %1444

1422:                                             ; preds = %1418
  %1423 = load i32, ptr %426, align 4, !tbaa !5
  %1424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1425 = call i32 @s2n_print_stacktrace(ptr noundef %1424) #13
  %1426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1427 = trunc nuw i8 %1426 to i1
  br i1 %1427, label %1428, label %1432

1428:                                             ; preds = %1422
  %1429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1430 = call i32 @fileno(ptr noundef %1429) #13
  %1431 = call i32 @isatty(i32 noundef %1430) #13
  %.not455 = icmp eq i32 %1431, 0
  br i1 %.not455, label %1432, label %1433

1432:                                             ; preds = %1428, %1422
  br label %1433

1433:                                             ; preds = %1428, %1432
  %.str.5.sink966 = phi ptr [ @.str.5, %1432 ], [ @.str.2, %1428 ]
  store i32 %1423, ptr %426, align 4, !tbaa !5
  %1434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1435 = load i32, ptr @test_count, align 4, !tbaa !5
  %1436 = load i32, ptr %372, align 4, !tbaa !5
  %1437 = call ptr @s2n_strerror(i32 noundef %1436, ptr noundef nonnull @.str.4) #13
  %1438 = load i32, ptr %372, align 4, !tbaa !5
  %1439 = call ptr @s2n_strerror_debug(i32 noundef %1438, ptr noundef nonnull @.str.4) #13
  %1440 = load i32, ptr %426, align 4, !tbaa !5
  %1441 = call ptr @strerror(i32 noundef %1440) #13
  %1442 = load i32, ptr %426, align 4, !tbaa !5
  %1443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1434, ptr noundef nonnull %.str.5.sink966, i32 noundef %1435, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 145, ptr noundef %1437, ptr noundef %1439, ptr noundef %1441, i32 noundef %1442) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1444:                                             ; preds = %1418
  %1445 = load i32, ptr @test_count, align 4, !tbaa !5
  %1446 = add nsw i32 %1445, 1
  store i32 %1446, ptr @test_count, align 4, !tbaa !5
  %1447 = load i32, ptr %1340, align 8, !tbaa !22
  %1448 = zext i32 %1447 to i64
  %1449 = icmp eq i64 %939, %1448
  br i1 %1449, label %1472, label %1450

1450:                                             ; preds = %1444
  %1451 = load i32, ptr %426, align 4, !tbaa !5
  %1452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1453 = call i32 @s2n_print_stacktrace(ptr noundef %1452) #13
  %1454 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1455 = trunc nuw i8 %1454 to i1
  br i1 %1455, label %1456, label %1460

1456:                                             ; preds = %1450
  %1457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1458 = call i32 @fileno(ptr noundef %1457) #13
  %1459 = call i32 @isatty(i32 noundef %1458) #13
  %.not382 = icmp eq i32 %1459, 0
  br i1 %.not382, label %1460, label %1461

1460:                                             ; preds = %1456, %1450
  br label %1461

1461:                                             ; preds = %1456, %1460
  %.str.5.sink975 = phi ptr [ @.str.5, %1460 ], [ @.str.2, %1456 ]
  store i32 %1451, ptr %426, align 4, !tbaa !5
  %1462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1463 = load i32, ptr @test_count, align 4, !tbaa !5
  %1464 = load i32, ptr %372, align 4, !tbaa !5
  %1465 = call ptr @s2n_strerror(i32 noundef %1464, ptr noundef nonnull @.str.4) #13
  %1466 = load i32, ptr %372, align 4, !tbaa !5
  %1467 = call ptr @s2n_strerror_debug(i32 noundef %1466, ptr noundef nonnull @.str.4) #13
  %1468 = load i32, ptr %426, align 4, !tbaa !5
  %1469 = call ptr @strerror(i32 noundef %1468) #13
  %1470 = load i32, ptr %426, align 4, !tbaa !5
  %1471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1462, ptr noundef nonnull %.str.5.sink975, i32 noundef %1463, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 146, ptr noundef %1465, ptr noundef %1467, ptr noundef %1469, i32 noundef %1470) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1472:                                             ; preds = %1444
  %1473 = add nsw i32 %1445, 2
  store i32 %1473, ptr @test_count, align 4, !tbaa !5
  %1474 = call i32 @s2n_connection_set_protocol_preferences(ptr noundef nonnull %1313, ptr noundef null, i32 noundef 2) #13
  %1475 = icmp eq i32 %1474, -1
  br i1 %1475, label %1476, label %1498

1476:                                             ; preds = %1472
  %1477 = load i32, ptr %426, align 4, !tbaa !5
  %1478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1479 = call i32 @s2n_print_stacktrace(ptr noundef %1478) #13
  %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) #13
  %1485 = call i32 @isatty(i32 noundef %1484) #13
  %.not454 = icmp eq i32 %1485, 0
  br i1 %.not454, label %1486, label %1487

1486:                                             ; preds = %1482, %1476
  br label %1487

1487:                                             ; preds = %1482, %1486
  %.str.5.sink984 = phi ptr [ @.str.5, %1486 ], [ @.str.2, %1482 ]
  store i32 %1477, ptr %426, 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 %372, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror(i32 noundef %1490, ptr noundef nonnull @.str.4) #13
  %1492 = load i32, ptr %372, align 4, !tbaa !5
  %1493 = call ptr @s2n_strerror_debug(i32 noundef %1492, ptr noundef nonnull @.str.4) #13
  %1494 = load i32, ptr %426, align 4, !tbaa !5
  %1495 = call ptr @strerror(i32 noundef %1494) #13
  %1496 = load i32, ptr %426, align 4, !tbaa !5
  %1497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1488, ptr noundef nonnull %.str.5.sink984, i32 noundef %1489, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef %1491, ptr noundef %1493, ptr noundef %1495, i32 noundef %1496) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1498:                                             ; preds = %1472
  %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 i32, ptr %1340, align 8, !tbaa !22
  %1502 = icmp eq i32 %1501, 0
  br i1 %1502, label %1525, label %1503

1503:                                             ; preds = %1498
  %1504 = load i32, ptr %426, align 4, !tbaa !5
  %1505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1506 = call i32 @s2n_print_stacktrace(ptr noundef %1505) #13
  %1507 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1508 = trunc nuw i8 %1507 to i1
  br i1 %1508, label %1509, label %1513

1509:                                             ; preds = %1503
  %1510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1511 = call i32 @fileno(ptr noundef %1510) #13
  %1512 = call i32 @isatty(i32 noundef %1511) #13
  %.not383 = icmp eq i32 %1512, 0
  br i1 %.not383, label %1513, label %1514

1513:                                             ; preds = %1509, %1503
  br label %1514

1514:                                             ; preds = %1509, %1513
  %.str.5.sink993 = phi ptr [ @.str.5, %1513 ], [ @.str.2, %1509 ]
  store i32 %1504, ptr %426, align 4, !tbaa !5
  %1515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1516 = load i32, ptr @test_count, align 4, !tbaa !5
  %1517 = load i32, ptr %372, align 4, !tbaa !5
  %1518 = call ptr @s2n_strerror(i32 noundef %1517, ptr noundef nonnull @.str.4) #13
  %1519 = load i32, ptr %372, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror_debug(i32 noundef %1519, ptr noundef nonnull @.str.4) #13
  %1521 = load i32, ptr %426, align 4, !tbaa !5
  %1522 = call ptr @strerror(i32 noundef %1521) #13
  %1523 = load i32, ptr %426, align 4, !tbaa !5
  %1524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1515, ptr noundef nonnull %.str.5.sink993, i32 noundef %1516, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %1518, ptr noundef %1520, ptr noundef %1522, i32 noundef %1523) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1525:                                             ; preds = %1498
  %1526 = add nsw i32 %1499, 2
  store i32 %1526, ptr @test_count, align 4, !tbaa !5
  %1527 = call i32 @s2n_connection_set_protocol_preferences(ptr noundef nonnull %1313, ptr noundef nonnull %6, i32 noundef 2) #13
  %1528 = icmp eq i32 %1527, -1
  br i1 %1528, label %1529, label %1551

1529:                                             ; preds = %1525
  %1530 = load i32, ptr %426, align 4, !tbaa !5
  %1531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1532 = call i32 @s2n_print_stacktrace(ptr noundef %1531) #13
  %1533 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1534 = trunc nuw i8 %1533 to i1
  br i1 %1534, label %1535, label %1539

1535:                                             ; preds = %1529
  %1536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1537 = call i32 @fileno(ptr noundef %1536) #13
  %1538 = call i32 @isatty(i32 noundef %1537) #13
  %.not453 = icmp eq i32 %1538, 0
  br i1 %.not453, label %1539, label %1540

1539:                                             ; preds = %1535, %1529
  br label %1540

1540:                                             ; preds = %1535, %1539
  %.str.5.sink1002 = phi ptr [ @.str.5, %1539 ], [ @.str.2, %1535 ]
  store i32 %1530, ptr %426, align 4, !tbaa !5
  %1541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1542 = load i32, ptr @test_count, align 4, !tbaa !5
  %1543 = load i32, ptr %372, align 4, !tbaa !5
  %1544 = call ptr @s2n_strerror(i32 noundef %1543, ptr noundef nonnull @.str.4) #13
  %1545 = load i32, ptr %372, align 4, !tbaa !5
  %1546 = call ptr @s2n_strerror_debug(i32 noundef %1545, ptr noundef nonnull @.str.4) #13
  %1547 = load i32, ptr %426, align 4, !tbaa !5
  %1548 = call ptr @strerror(i32 noundef %1547) #13
  %1549 = load i32, ptr %426, align 4, !tbaa !5
  %1550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1541, ptr noundef nonnull %.str.5.sink1002, i32 noundef %1542, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %1544, ptr noundef %1546, ptr noundef %1548, i32 noundef %1549) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1551:                                             ; preds = %1525
  %1552 = load i32, ptr @test_count, align 4, !tbaa !5
  %1553 = add nsw i32 %1552, 1
  store i32 %1553, ptr @test_count, align 4, !tbaa !5
  %1554 = load i32, ptr %1340, align 8, !tbaa !22
  %1555 = icmp eq i32 %937, %1554
  br i1 %1555, label %1578, label %1556

1556:                                             ; preds = %1551
  %1557 = load i32, ptr %426, align 4, !tbaa !5
  %1558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1559 = call i32 @s2n_print_stacktrace(ptr noundef %1558) #13
  %1560 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1561 = trunc nuw i8 %1560 to i1
  br i1 %1561, label %1562, label %1566

1562:                                             ; preds = %1556
  %1563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1564 = call i32 @fileno(ptr noundef %1563) #13
  %1565 = call i32 @isatty(i32 noundef %1564) #13
  %.not384 = icmp eq i32 %1565, 0
  br i1 %.not384, label %1566, label %1567

1566:                                             ; preds = %1562, %1556
  br label %1567

1567:                                             ; preds = %1562, %1566
  %.str.5.sink1011 = phi ptr [ @.str.5, %1566 ], [ @.str.2, %1562 ]
  store i32 %1557, ptr %426, align 4, !tbaa !5
  %1568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1569 = load i32, ptr @test_count, align 4, !tbaa !5
  %1570 = load i32, ptr %372, align 4, !tbaa !5
  %1571 = call ptr @s2n_strerror(i32 noundef %1570, ptr noundef nonnull @.str.4) #13
  %1572 = load i32, ptr %372, align 4, !tbaa !5
  %1573 = call ptr @s2n_strerror_debug(i32 noundef %1572, ptr noundef nonnull @.str.4) #13
  %1574 = load i32, ptr %426, align 4, !tbaa !5
  %1575 = call ptr @strerror(i32 noundef %1574) #13
  %1576 = load i32, ptr %426, align 4, !tbaa !5
  %1577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1568, ptr noundef nonnull %.str.5.sink1011, i32 noundef %1569, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %1571, ptr noundef %1573, ptr noundef %1575, i32 noundef %1576) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1578:                                             ; preds = %1551
  %1579 = add nsw i32 %1552, 2
  store i32 %1579, ptr @test_count, align 4, !tbaa !5
  %1580 = call i32 @s2n_connection_set_protocol_preferences(ptr noundef nonnull %1313, ptr noundef nonnull %6, i32 noundef 0) #13
  %1581 = icmp eq i32 %1580, -1
  br i1 %1581, label %1582, label %1604

1582:                                             ; preds = %1578
  %1583 = load i32, ptr %426, align 4, !tbaa !5
  %1584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1585 = call i32 @s2n_print_stacktrace(ptr noundef %1584) #13
  %1586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1587 = trunc nuw i8 %1586 to i1
  br i1 %1587, label %1588, label %1592

1588:                                             ; preds = %1582
  %1589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1590 = call i32 @fileno(ptr noundef %1589) #13
  %1591 = call i32 @isatty(i32 noundef %1590) #13
  %.not452 = icmp eq i32 %1591, 0
  br i1 %.not452, label %1592, label %1593

1592:                                             ; preds = %1588, %1582
  br label %1593

1593:                                             ; preds = %1588, %1592
  %.str.5.sink1020 = phi ptr [ @.str.5, %1592 ], [ @.str.2, %1588 ]
  store i32 %1583, ptr %426, align 4, !tbaa !5
  %1594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1595 = load i32, ptr @test_count, align 4, !tbaa !5
  %1596 = load i32, ptr %372, align 4, !tbaa !5
  %1597 = call ptr @s2n_strerror(i32 noundef %1596, ptr noundef nonnull @.str.4) #13
  %1598 = load i32, ptr %372, align 4, !tbaa !5
  %1599 = call ptr @s2n_strerror_debug(i32 noundef %1598, ptr noundef nonnull @.str.4) #13
  %1600 = load i32, ptr %426, align 4, !tbaa !5
  %1601 = call ptr @strerror(i32 noundef %1600) #13
  %1602 = load i32, ptr %426, align 4, !tbaa !5
  %1603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1594, ptr noundef nonnull %.str.5.sink1020, i32 noundef %1595, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 154, ptr noundef %1597, ptr noundef %1599, ptr noundef %1601, i32 noundef %1602) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1604:                                             ; preds = %1578
  %1605 = load i32, ptr @test_count, align 4, !tbaa !5
  %1606 = add nsw i32 %1605, 1
  store i32 %1606, ptr @test_count, align 4, !tbaa !5
  %1607 = load i32, ptr %1340, align 8, !tbaa !22
  %1608 = icmp eq i32 %1607, 0
  br i1 %1608, label %1631, label %1609

1609:                                             ; preds = %1604
  %1610 = load i32, ptr %426, align 4, !tbaa !5
  %1611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1612 = call i32 @s2n_print_stacktrace(ptr noundef %1611) #13
  %1613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1614 = trunc nuw i8 %1613 to i1
  br i1 %1614, label %1615, label %1619

1615:                                             ; preds = %1609
  %1616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1617 = call i32 @fileno(ptr noundef %1616) #13
  %1618 = call i32 @isatty(i32 noundef %1617) #13
  %.not385 = icmp eq i32 %1618, 0
  br i1 %.not385, label %1619, label %1620

1619:                                             ; preds = %1615, %1609
  br label %1620

1620:                                             ; preds = %1615, %1619
  %.str.5.sink1029 = phi ptr [ @.str.5, %1619 ], [ @.str.2, %1615 ]
  store i32 %1610, ptr %426, align 4, !tbaa !5
  %1621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1622 = load i32, ptr @test_count, align 4, !tbaa !5
  %1623 = load i32, ptr %372, align 4, !tbaa !5
  %1624 = call ptr @s2n_strerror(i32 noundef %1623, ptr noundef nonnull @.str.4) #13
  %1625 = load i32, ptr %372, align 4, !tbaa !5
  %1626 = call ptr @s2n_strerror_debug(i32 noundef %1625, ptr noundef nonnull @.str.4) #13
  %1627 = load i32, ptr %426, align 4, !tbaa !5
  %1628 = call ptr @strerror(i32 noundef %1627) #13
  %1629 = load i32, ptr %426, align 4, !tbaa !5
  %1630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1621, ptr noundef nonnull %.str.5.sink1029, i32 noundef %1622, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 155, ptr noundef %1624, ptr noundef %1626, ptr noundef %1628, i32 noundef %1629) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1631:                                             ; preds = %1604
  %1632 = add nsw i32 %1605, 2
  store i32 %1632, ptr @test_count, align 4, !tbaa !5
  %1633 = call i32 @s2n_connection_set_protocol_preferences(ptr noundef nonnull %1313, ptr noundef nonnull %8, i32 noundef 1) #13
  %1634 = icmp eq i32 %1633, -1
  br i1 %1634, label %1657, label %1635

1635:                                             ; preds = %1631
  %1636 = load i32, ptr %426, align 4, !tbaa !5
  %1637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1638 = call i32 @s2n_print_stacktrace(ptr noundef %1637) #13
  %1639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1640 = trunc nuw i8 %1639 to i1
  br i1 %1640, label %1641, label %1645

1641:                                             ; preds = %1635
  %1642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1643 = call i32 @fileno(ptr noundef %1642) #13
  %1644 = call i32 @isatty(i32 noundef %1643) #13
  %.not386 = icmp eq i32 %1644, 0
  br i1 %.not386, label %1645, label %1646

1645:                                             ; preds = %1641, %1635
  br label %1646

1646:                                             ; preds = %1641, %1645
  %.str.5.sink1038 = phi ptr [ @.str.5, %1645 ], [ @.str.2, %1641 ]
  store i32 %1636, ptr %426, align 4, !tbaa !5
  %1647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1648 = load i32, ptr @test_count, align 4, !tbaa !5
  %1649 = load i32, ptr %372, align 4, !tbaa !5
  %1650 = call ptr @s2n_strerror(i32 noundef %1649, ptr noundef nonnull @.str.4) #13
  %1651 = load i32, ptr %372, align 4, !tbaa !5
  %1652 = call ptr @s2n_strerror_debug(i32 noundef %1651, ptr noundef nonnull @.str.4) #13
  %1653 = load i32, ptr %426, align 4, !tbaa !5
  %1654 = call ptr @strerror(i32 noundef %1653) #13
  %1655 = load i32, ptr %426, align 4, !tbaa !5
  %1656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1647, ptr noundef nonnull %.str.5.sink1038, i32 noundef %1648, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 159, ptr noundef %1650, ptr noundef %1652, ptr noundef %1654, i32 noundef %1655) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1657:                                             ; preds = %1631
  %1658 = load i32, ptr @test_count, align 4, !tbaa !5
  %1659 = add nsw i32 %1658, 1
  store i32 %1659, ptr @test_count, align 4, !tbaa !5
  %1660 = load i32, ptr %372, align 4, !tbaa !5
  %1661 = icmp eq i32 %1660, 0
  br i1 %1661, label %1662, label %1684

1662:                                             ; preds = %1657
  %1663 = load i32, ptr %426, align 4, !tbaa !5
  %1664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1665 = call i32 @s2n_print_stacktrace(ptr noundef %1664) #13
  %1666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1667 = trunc nuw i8 %1666 to i1
  br i1 %1667, label %1668, label %1672

1668:                                             ; preds = %1662
  %1669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1670 = call i32 @fileno(ptr noundef %1669) #13
  %1671 = call i32 @isatty(i32 noundef %1670) #13
  %.not451 = icmp eq i32 %1671, 0
  br i1 %.not451, label %1672, label %1673

1672:                                             ; preds = %1668, %1662
  br label %1673

1673:                                             ; preds = %1668, %1672
  %.str.5.sink1047 = phi ptr [ @.str.5, %1672 ], [ @.str.2, %1668 ]
  store i32 %1663, ptr %426, align 4, !tbaa !5
  %1674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1675 = load i32, ptr @test_count, align 4, !tbaa !5
  %1676 = load i32, ptr %372, align 4, !tbaa !5
  %1677 = call ptr @s2n_strerror(i32 noundef %1676, ptr noundef nonnull @.str.4) #13
  %1678 = load i32, ptr %372, align 4, !tbaa !5
  %1679 = call ptr @s2n_strerror_debug(i32 noundef %1678, ptr noundef nonnull @.str.4) #13
  %1680 = load i32, ptr %426, align 4, !tbaa !5
  %1681 = call ptr @strerror(i32 noundef %1680) #13
  %1682 = load i32, ptr %426, align 4, !tbaa !5
  %1683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1674, ptr noundef nonnull %.str.5.sink1047, i32 noundef %1675, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 159, ptr noundef %1677, ptr noundef %1679, ptr noundef %1681, i32 noundef %1682) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1684:                                             ; preds = %1657
  %1685 = add nsw i32 %1658, 2
  store i32 %1685, ptr @test_count, align 4, !tbaa !5
  %1686 = call ptr @s2n_strerror_debug(i32 noundef %1660, ptr noundef nonnull @.str.4) #13
  %1687 = icmp eq ptr %1686, null
  br i1 %1687, label %1688, label %1710

1688:                                             ; preds = %1684
  %1689 = load i32, ptr %426, align 4, !tbaa !5
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1691 = call i32 @s2n_print_stacktrace(ptr noundef %1690) #13
  %1692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1693 = trunc nuw i8 %1692 to i1
  br i1 %1693, label %1694, label %1698

1694:                                             ; preds = %1688
  %1695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1696 = call i32 @fileno(ptr noundef %1695) #13
  %1697 = call i32 @isatty(i32 noundef %1696) #13
  %.not450 = icmp eq i32 %1697, 0
  br i1 %.not450, label %1698, label %1699

1698:                                             ; preds = %1694, %1688
  br label %1699

1699:                                             ; preds = %1694, %1698
  %.str.5.sink1056 = phi ptr [ @.str.5, %1698 ], [ @.str.2, %1694 ]
  store i32 %1689, ptr %426, align 4, !tbaa !5
  %1700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1701 = load i32, ptr @test_count, align 4, !tbaa !5
  %1702 = load i32, ptr %372, align 4, !tbaa !5
  %1703 = call ptr @s2n_strerror(i32 noundef %1702, ptr noundef nonnull @.str.4) #13
  %1704 = load i32, ptr %372, align 4, !tbaa !5
  %1705 = call ptr @s2n_strerror_debug(i32 noundef %1704, ptr noundef nonnull @.str.4) #13
  %1706 = load i32, ptr %426, align 4, !tbaa !5
  %1707 = call ptr @strerror(i32 noundef %1706) #13
  %1708 = load i32, ptr %426, align 4, !tbaa !5
  %1709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1700, ptr noundef nonnull %.str.5.sink1056, i32 noundef %1701, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 159, ptr noundef %1703, ptr noundef %1705, ptr noundef %1707, i32 noundef %1708) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1710:                                             ; preds = %1684
  store i32 0, ptr %372, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %426, align 4, !tbaa !5
  %1711 = load i32, ptr @test_count, align 4, !tbaa !5
  %1712 = add nsw i32 %1711, 1
  store i32 %1712, ptr @test_count, align 4, !tbaa !5
  %1713 = load i32, ptr %1340, align 8, !tbaa !22
  %1714 = icmp eq i32 %1713, 0
  br i1 %1714, label %1737, label %1715

1715:                                             ; preds = %1710
  %1716 = load i32, ptr %426, align 4, !tbaa !5
  %1717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1718 = call i32 @s2n_print_stacktrace(ptr noundef %1717) #13
  %1719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1720 = trunc nuw i8 %1719 to i1
  br i1 %1720, label %1721, label %1725

1721:                                             ; preds = %1715
  %1722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1723 = call i32 @fileno(ptr noundef %1722) #13
  %1724 = call i32 @isatty(i32 noundef %1723) #13
  %.not387 = icmp eq i32 %1724, 0
  br i1 %.not387, label %1725, label %1726

1725:                                             ; preds = %1721, %1715
  br label %1726

1726:                                             ; preds = %1721, %1725
  %.str.5.sink1065 = phi ptr [ @.str.5, %1725 ], [ @.str.2, %1721 ]
  store i32 %1716, ptr %426, align 4, !tbaa !5
  %1727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1728 = load i32, ptr @test_count, align 4, !tbaa !5
  %1729 = load i32, ptr %372, align 4, !tbaa !5
  %1730 = call ptr @s2n_strerror(i32 noundef %1729, ptr noundef nonnull @.str.4) #13
  %1731 = load i32, ptr %372, align 4, !tbaa !5
  %1732 = call ptr @s2n_strerror_debug(i32 noundef %1731, ptr noundef nonnull @.str.4) #13
  %1733 = load i32, ptr %426, align 4, !tbaa !5
  %1734 = call ptr @strerror(i32 noundef %1733) #13
  %1735 = load i32, ptr %426, align 4, !tbaa !5
  %1736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1727, ptr noundef nonnull %.str.5.sink1065, i32 noundef %1728, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef %1730, ptr noundef %1732, ptr noundef %1734, i32 noundef %1735) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1737:                                             ; preds = %1710
  %1738 = add nsw i32 %1711, 2
  store i32 %1738, ptr @test_count, align 4, !tbaa !5
  %1739 = call i32 @s2n_connection_free(ptr noundef nonnull %1313) #13
  %1740 = icmp eq i32 %1739, -1
  br i1 %1740, label %1741, label %1763

1741:                                             ; preds = %1737
  %1742 = load i32, ptr %426, align 4, !tbaa !5
  %1743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1744 = call i32 @s2n_print_stacktrace(ptr noundef %1743) #13
  %1745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1746 = trunc nuw i8 %1745 to i1
  br i1 %1746, label %1747, label %1751

1747:                                             ; preds = %1741
  %1748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1749 = call i32 @fileno(ptr noundef %1748) #13
  %1750 = call i32 @isatty(i32 noundef %1749) #13
  %.not449 = icmp eq i32 %1750, 0
  br i1 %.not449, label %1751, label %1752

1751:                                             ; preds = %1747, %1741
  br label %1752

1752:                                             ; preds = %1747, %1751
  %.str.5.sink1074 = phi ptr [ @.str.5, %1751 ], [ @.str.2, %1747 ]
  store i32 %1742, ptr %426, align 4, !tbaa !5
  %1753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1754 = load i32, ptr @test_count, align 4, !tbaa !5
  %1755 = load i32, ptr %372, align 4, !tbaa !5
  %1756 = call ptr @s2n_strerror(i32 noundef %1755, ptr noundef nonnull @.str.4) #13
  %1757 = load i32, ptr %372, align 4, !tbaa !5
  %1758 = call ptr @s2n_strerror_debug(i32 noundef %1757, ptr noundef nonnull @.str.4) #13
  %1759 = load i32, ptr %426, align 4, !tbaa !5
  %1760 = call ptr @strerror(i32 noundef %1759) #13
  %1761 = load i32, ptr %426, align 4, !tbaa !5
  %1762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1753, ptr noundef nonnull %.str.5.sink1074, i32 noundef %1754, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %1756, ptr noundef %1758, ptr noundef %1760, i32 noundef %1761) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1763:                                             ; preds = %1737
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %9) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %9, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %10, i8 0, i64 24, i1 false)
  %1764 = load i32, ptr @test_count, align 4, !tbaa !5
  %1765 = add nsw i32 %1764, 1
  store i32 %1765, ptr @test_count, align 4, !tbaa !5
  %1766 = call i32 @s2n_protocol_preferences_read(ptr noundef null, ptr noundef nonnull %10) #13
  %1767 = call zeroext i1 @s2n_result_is_error(i32 %1766)
  br i1 %1767, label %1790, label %1768

1768:                                             ; preds = %1763
  %1769 = load i32, ptr %426, align 4, !tbaa !5
  %1770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1771 = call i32 @s2n_print_stacktrace(ptr noundef %1770) #13
  %1772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1773 = trunc nuw i8 %1772 to i1
  br i1 %1773, label %1774, label %1778

1774:                                             ; preds = %1768
  %1775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1776 = call i32 @fileno(ptr noundef %1775) #13
  %1777 = call i32 @isatty(i32 noundef %1776) #13
  %.not388 = icmp eq i32 %1777, 0
  br i1 %.not388, label %1778, label %1779

1778:                                             ; preds = %1774, %1768
  br label %1779

1779:                                             ; preds = %1774, %1778
  %.str.5.sink1083 = phi ptr [ @.str.5, %1778 ], [ @.str.2, %1774 ]
  store i32 %1769, ptr %426, align 4, !tbaa !5
  %1780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1781 = load i32, ptr @test_count, align 4, !tbaa !5
  %1782 = load i32, ptr %372, align 4, !tbaa !5
  %1783 = call ptr @s2n_strerror(i32 noundef %1782, ptr noundef nonnull @.str.4) #13
  %1784 = load i32, ptr %372, align 4, !tbaa !5
  %1785 = call ptr @s2n_strerror_debug(i32 noundef %1784, ptr noundef nonnull @.str.4) #13
  %1786 = load i32, ptr %426, align 4, !tbaa !5
  %1787 = call ptr @strerror(i32 noundef %1786) #13
  %1788 = load i32, ptr %426, align 4, !tbaa !5
  %1789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1780, ptr noundef nonnull %.str.5.sink1083, i32 noundef %1781, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 171, ptr noundef %1783, ptr noundef %1785, ptr noundef %1787, i32 noundef %1788) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1790:                                             ; preds = %1763
  %1791 = load i32, ptr @test_count, align 4, !tbaa !5
  %1792 = add nsw i32 %1791, 1
  store i32 %1792, ptr @test_count, align 4, !tbaa !5
  %1793 = load i32, ptr %372, align 4, !tbaa !5
  %1794 = icmp eq i32 %1793, 402653193
  br i1 %1794, label %1817, label %1795

1795:                                             ; preds = %1790
  %1796 = load i32, ptr %426, align 4, !tbaa !5
  %1797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1798 = call i32 @s2n_print_stacktrace(ptr noundef %1797) #13
  %1799 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1800 = trunc nuw i8 %1799 to i1
  br i1 %1800, label %1801, label %1805

1801:                                             ; preds = %1795
  %1802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1803 = call i32 @fileno(ptr noundef %1802) #13
  %1804 = call i32 @isatty(i32 noundef %1803) #13
  %.not389 = icmp eq i32 %1804, 0
  br i1 %.not389, label %1805, label %1806

1805:                                             ; preds = %1801, %1795
  br label %1806

1806:                                             ; preds = %1801, %1805
  %.str.5.sink1092 = phi ptr [ @.str.5, %1805 ], [ @.str.2, %1801 ]
  store i32 %1796, ptr %426, align 4, !tbaa !5
  %1807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1808 = load i32, ptr @test_count, align 4, !tbaa !5
  %1809 = load i32, ptr %372, align 4, !tbaa !5
  %1810 = call ptr @s2n_strerror(i32 noundef %1809, ptr noundef nonnull @.str.4) #13
  %1811 = load i32, ptr %372, align 4, !tbaa !5
  %1812 = call ptr @s2n_strerror_debug(i32 noundef %1811, ptr noundef nonnull @.str.4) #13
  %1813 = load i32, ptr %426, align 4, !tbaa !5
  %1814 = call ptr @strerror(i32 noundef %1813) #13
  %1815 = load i32, ptr %426, align 4, !tbaa !5
  %1816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1807, ptr noundef nonnull %.str.5.sink1092, i32 noundef %1808, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 171, ptr noundef %1810, ptr noundef %1812, ptr noundef %1814, i32 noundef %1815) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1817:                                             ; preds = %1790
  %1818 = add nsw i32 %1791, 2
  store i32 %1818, ptr @test_count, align 4, !tbaa !5
  %1819 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #13
  %1820 = icmp eq ptr %1819, null
  br i1 %1820, label %1821, label %1843

1821:                                             ; preds = %1817
  %1822 = load i32, ptr %426, align 4, !tbaa !5
  %1823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1824 = call i32 @s2n_print_stacktrace(ptr noundef %1823) #13
  %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) #13
  %1830 = call i32 @isatty(i32 noundef %1829) #13
  %.not448 = icmp eq i32 %1830, 0
  br i1 %.not448, label %1831, label %1832

1831:                                             ; preds = %1827, %1821
  br label %1832

1832:                                             ; preds = %1827, %1831
  %.str.5.sink1101 = phi ptr [ @.str.5, %1831 ], [ @.str.2, %1827 ]
  store i32 %1822, ptr %426, 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 %372, align 4, !tbaa !5
  %1836 = call ptr @s2n_strerror(i32 noundef %1835, ptr noundef nonnull @.str.4) #13
  %1837 = load i32, ptr %372, align 4, !tbaa !5
  %1838 = call ptr @s2n_strerror_debug(i32 noundef %1837, ptr noundef nonnull @.str.4) #13
  %1839 = load i32, ptr %426, align 4, !tbaa !5
  %1840 = call ptr @strerror(i32 noundef %1839) #13
  %1841 = load i32, ptr %426, align 4, !tbaa !5
  %1842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1833, ptr noundef nonnull %.str.5.sink1101, i32 noundef %1834, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 171, ptr noundef %1836, ptr noundef %1838, ptr noundef %1840, i32 noundef %1841) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1843:                                             ; preds = %1817
  store i32 0, ptr %372, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %426, align 4, !tbaa !5
  %1844 = load i32, ptr @test_count, align 4, !tbaa !5
  %1845 = add nsw i32 %1844, 1
  store i32 %1845, ptr @test_count, align 4, !tbaa !5
  %1846 = call i32 @s2n_protocol_preferences_read(ptr noundef nonnull %9, ptr noundef null) #13
  %1847 = call zeroext i1 @s2n_result_is_error(i32 %1846)
  br i1 %1847, label %1870, label %1848

1848:                                             ; preds = %1843
  %1849 = load i32, ptr %426, align 4, !tbaa !5
  %1850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1851 = call i32 @s2n_print_stacktrace(ptr noundef %1850) #13
  %1852 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1853 = trunc nuw i8 %1852 to i1
  br i1 %1853, label %1854, label %1858

1854:                                             ; preds = %1848
  %1855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1856 = call i32 @fileno(ptr noundef %1855) #13
  %1857 = call i32 @isatty(i32 noundef %1856) #13
  %.not390 = icmp eq i32 %1857, 0
  br i1 %.not390, label %1858, label %1859

1858:                                             ; preds = %1854, %1848
  br label %1859

1859:                                             ; preds = %1854, %1858
  %.str.5.sink1110 = phi ptr [ @.str.5, %1858 ], [ @.str.2, %1854 ]
  store i32 %1849, ptr %426, align 4, !tbaa !5
  %1860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1861 = load i32, ptr @test_count, align 4, !tbaa !5
  %1862 = load i32, ptr %372, align 4, !tbaa !5
  %1863 = call ptr @s2n_strerror(i32 noundef %1862, ptr noundef nonnull @.str.4) #13
  %1864 = load i32, ptr %372, align 4, !tbaa !5
  %1865 = call ptr @s2n_strerror_debug(i32 noundef %1864, ptr noundef nonnull @.str.4) #13
  %1866 = load i32, ptr %426, align 4, !tbaa !5
  %1867 = call ptr @strerror(i32 noundef %1866) #13
  %1868 = load i32, ptr %426, align 4, !tbaa !5
  %1869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1860, ptr noundef nonnull %.str.5.sink1110, i32 noundef %1861, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %1863, ptr noundef %1865, ptr noundef %1867, i32 noundef %1868) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1870:                                             ; preds = %1843
  %1871 = load i32, ptr @test_count, align 4, !tbaa !5
  %1872 = add nsw i32 %1871, 1
  store i32 %1872, ptr @test_count, align 4, !tbaa !5
  %1873 = load i32, ptr %372, align 4, !tbaa !5
  %1874 = icmp eq i32 %1873, 402653193
  br i1 %1874, label %1897, label %1875

1875:                                             ; preds = %1870
  %1876 = load i32, ptr %426, align 4, !tbaa !5
  %1877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1878 = call i32 @s2n_print_stacktrace(ptr noundef %1877) #13
  %1879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1880 = trunc nuw i8 %1879 to i1
  br i1 %1880, label %1881, label %1885

1881:                                             ; preds = %1875
  %1882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1883 = call i32 @fileno(ptr noundef %1882) #13
  %1884 = call i32 @isatty(i32 noundef %1883) #13
  %.not391 = icmp eq i32 %1884, 0
  br i1 %.not391, label %1885, label %1886

1885:                                             ; preds = %1881, %1875
  br label %1886

1886:                                             ; preds = %1881, %1885
  %.str.5.sink1119 = phi ptr [ @.str.5, %1885 ], [ @.str.2, %1881 ]
  store i32 %1876, ptr %426, align 4, !tbaa !5
  %1887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1888 = load i32, ptr @test_count, align 4, !tbaa !5
  %1889 = load i32, ptr %372, align 4, !tbaa !5
  %1890 = call ptr @s2n_strerror(i32 noundef %1889, ptr noundef nonnull @.str.4) #13
  %1891 = load i32, ptr %372, align 4, !tbaa !5
  %1892 = call ptr @s2n_strerror_debug(i32 noundef %1891, ptr noundef nonnull @.str.4) #13
  %1893 = load i32, ptr %426, align 4, !tbaa !5
  %1894 = call ptr @strerror(i32 noundef %1893) #13
  %1895 = load i32, ptr %426, align 4, !tbaa !5
  %1896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1887, ptr noundef nonnull %.str.5.sink1119, i32 noundef %1888, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %1890, ptr noundef %1892, ptr noundef %1894, i32 noundef %1895) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1897:                                             ; preds = %1870
  %1898 = add nsw i32 %1871, 2
  store i32 %1898, ptr @test_count, align 4, !tbaa !5
  %1899 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #13
  %1900 = icmp eq ptr %1899, null
  br i1 %1900, label %1901, label %1923

1901:                                             ; preds = %1897
  %1902 = load i32, ptr %426, align 4, !tbaa !5
  %1903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1904 = call i32 @s2n_print_stacktrace(ptr noundef %1903) #13
  %1905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1906 = trunc nuw i8 %1905 to i1
  br i1 %1906, label %1907, label %1911

1907:                                             ; preds = %1901
  %1908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1909 = call i32 @fileno(ptr noundef %1908) #13
  %1910 = call i32 @isatty(i32 noundef %1909) #13
  %.not447 = icmp eq i32 %1910, 0
  br i1 %.not447, label %1911, label %1912

1911:                                             ; preds = %1907, %1901
  br label %1912

1912:                                             ; preds = %1907, %1911
  %.str.5.sink1128 = phi ptr [ @.str.5, %1911 ], [ @.str.2, %1907 ]
  store i32 %1902, ptr %426, align 4, !tbaa !5
  %1913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1914 = load i32, ptr @test_count, align 4, !tbaa !5
  %1915 = load i32, ptr %372, align 4, !tbaa !5
  %1916 = call ptr @s2n_strerror(i32 noundef %1915, ptr noundef nonnull @.str.4) #13
  %1917 = load i32, ptr %372, align 4, !tbaa !5
  %1918 = call ptr @s2n_strerror_debug(i32 noundef %1917, ptr noundef nonnull @.str.4) #13
  %1919 = load i32, ptr %426, align 4, !tbaa !5
  %1920 = call ptr @strerror(i32 noundef %1919) #13
  %1921 = load i32, ptr %426, align 4, !tbaa !5
  %1922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1913, ptr noundef nonnull %.str.5.sink1128, i32 noundef %1914, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %1916, ptr noundef %1918, ptr noundef %1920, i32 noundef %1921) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1923:                                             ; preds = %1897
  store i32 0, ptr %372, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %426, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #13
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %11) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %11, i8 0, i64 40, i1 false)
  %1924 = load i32, ptr @test_count, align 4, !tbaa !5
  %1925 = add nsw i32 %1924, 1
  store i32 %1925, ptr @test_count, align 4, !tbaa !5
  %1926 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %11, i32 noundef 0) #13
  %1927 = icmp eq i32 %1926, -1
  br i1 %1927, label %1928, label %1950

1928:                                             ; preds = %1923
  %1929 = load i32, ptr %426, align 4, !tbaa !5
  %1930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1931 = call i32 @s2n_print_stacktrace(ptr noundef %1930) #13
  %1932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1933 = trunc nuw i8 %1932 to i1
  br i1 %1933, label %1934, label %1938

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

1938:                                             ; preds = %1934, %1928
  br label %1939

1939:                                             ; preds = %1934, %1938
  %.str.5.sink1137 = phi ptr [ @.str.5, %1938 ], [ @.str.2, %1934 ]
  store i32 %1929, ptr %426, align 4, !tbaa !5
  %1940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1941 = load i32, ptr @test_count, align 4, !tbaa !5
  %1942 = load i32, ptr %372, align 4, !tbaa !5
  %1943 = call ptr @s2n_strerror(i32 noundef %1942, ptr noundef nonnull @.str.4) #13
  %1944 = load i32, ptr %372, align 4, !tbaa !5
  %1945 = call ptr @s2n_strerror_debug(i32 noundef %1944, ptr noundef nonnull @.str.4) #13
  %1946 = load i32, ptr %426, align 4, !tbaa !5
  %1947 = call ptr @strerror(i32 noundef %1946) #13
  %1948 = load i32, ptr %426, align 4, !tbaa !5
  %1949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1940, ptr noundef nonnull %.str.5.sink1137, i32 noundef %1941, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 178, ptr noundef %1943, ptr noundef %1945, ptr noundef %1947, i32 noundef %1948) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1950:                                             ; preds = %1923
  %1951 = load i32, ptr @test_count, align 4, !tbaa !5
  %1952 = add nsw i32 %1951, 1
  store i32 %1952, ptr @test_count, align 4, !tbaa !5
  %1953 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %11, i8 noundef zeroext 0) #13
  %1954 = icmp eq i32 %1953, -1
  br i1 %1954, label %1955, label %1977

1955:                                             ; preds = %1950
  %1956 = load i32, ptr %426, align 4, !tbaa !5
  %1957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1958 = call i32 @s2n_print_stacktrace(ptr noundef %1957) #13
  %1959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1960 = trunc nuw i8 %1959 to i1
  br i1 %1960, label %1961, label %1965

1961:                                             ; preds = %1955
  %1962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1963 = call i32 @fileno(ptr noundef %1962) #13
  %1964 = call i32 @isatty(i32 noundef %1963) #13
  %.not445 = icmp eq i32 %1964, 0
  br i1 %.not445, label %1965, label %1966

1965:                                             ; preds = %1961, %1955
  br label %1966

1966:                                             ; preds = %1961, %1965
  %.str.5.sink1146 = phi ptr [ @.str.5, %1965 ], [ @.str.2, %1961 ]
  store i32 %1956, ptr %426, align 4, !tbaa !5
  %1967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1968 = load i32, ptr @test_count, align 4, !tbaa !5
  %1969 = load i32, ptr %372, align 4, !tbaa !5
  %1970 = call ptr @s2n_strerror(i32 noundef %1969, ptr noundef nonnull @.str.4) #13
  %1971 = load i32, ptr %372, align 4, !tbaa !5
  %1972 = call ptr @s2n_strerror_debug(i32 noundef %1971, ptr noundef nonnull @.str.4) #13
  %1973 = load i32, ptr %426, align 4, !tbaa !5
  %1974 = call ptr @strerror(i32 noundef %1973) #13
  %1975 = load i32, ptr %426, align 4, !tbaa !5
  %1976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1967, ptr noundef nonnull %.str.5.sink1146, i32 noundef %1968, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 179, ptr noundef %1970, ptr noundef %1972, ptr noundef %1974, i32 noundef %1975) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1977:                                             ; preds = %1950
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %12, i8 0, i64 24, i1 false)
  %1978 = load i32, ptr @test_count, align 4, !tbaa !5
  %1979 = add nsw i32 %1978, 1
  store i32 %1979, ptr @test_count, align 4, !tbaa !5
  %1980 = call i32 @s2n_protocol_preferences_read(ptr noundef nonnull %11, ptr noundef nonnull %12) #13
  %1981 = call zeroext i1 @s2n_result_is_error(i32 %1980)
  br i1 %1981, label %2004, label %1982

1982:                                             ; preds = %1977
  %1983 = load i32, ptr %426, align 4, !tbaa !5
  %1984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1985 = call i32 @s2n_print_stacktrace(ptr noundef %1984) #13
  %1986 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1987 = trunc nuw i8 %1986 to i1
  br i1 %1987, label %1988, label %1992

1988:                                             ; preds = %1982
  %1989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1990 = call i32 @fileno(ptr noundef %1989) #13
  %1991 = call i32 @isatty(i32 noundef %1990) #13
  %.not392 = icmp eq i32 %1991, 0
  br i1 %.not392, label %1992, label %1993

1992:                                             ; preds = %1988, %1982
  br label %1993

1993:                                             ; preds = %1988, %1992
  %.str.5.sink1155 = phi ptr [ @.str.5, %1992 ], [ @.str.2, %1988 ]
  store i32 %1983, ptr %426, align 4, !tbaa !5
  %1994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1995 = load i32, ptr @test_count, align 4, !tbaa !5
  %1996 = load i32, ptr %372, align 4, !tbaa !5
  %1997 = call ptr @s2n_strerror(i32 noundef %1996, ptr noundef nonnull @.str.4) #13
  %1998 = load i32, ptr %372, align 4, !tbaa !5
  %1999 = call ptr @s2n_strerror_debug(i32 noundef %1998, ptr noundef nonnull @.str.4) #13
  %2000 = load i32, ptr %426, align 4, !tbaa !5
  %2001 = call ptr @strerror(i32 noundef %2000) #13
  %2002 = load i32, ptr %426, align 4, !tbaa !5
  %2003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1994, ptr noundef nonnull %.str.5.sink1155, i32 noundef %1995, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %1997, ptr noundef %1999, ptr noundef %2001, i32 noundef %2002) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2004:                                             ; preds = %1977
  %2005 = load i32, ptr @test_count, align 4, !tbaa !5
  %2006 = add nsw i32 %2005, 1
  store i32 %2006, ptr @test_count, align 4, !tbaa !5
  %2007 = load i32, ptr %372, align 4, !tbaa !5
  %2008 = icmp eq i32 %2007, 402653194
  br i1 %2008, label %2031, label %2009

2009:                                             ; preds = %2004
  %2010 = load i32, ptr %426, align 4, !tbaa !5
  %2011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2012 = call i32 @s2n_print_stacktrace(ptr noundef %2011) #13
  %2013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2014 = trunc nuw i8 %2013 to i1
  br i1 %2014, label %2015, label %2019

2015:                                             ; preds = %2009
  %2016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2017 = call i32 @fileno(ptr noundef %2016) #13
  %2018 = call i32 @isatty(i32 noundef %2017) #13
  %.not393 = icmp eq i32 %2018, 0
  br i1 %.not393, label %2019, label %2020

2019:                                             ; preds = %2015, %2009
  br label %2020

2020:                                             ; preds = %2015, %2019
  %.str.5.sink1164 = phi ptr [ @.str.5, %2019 ], [ @.str.2, %2015 ]
  store i32 %2010, ptr %426, align 4, !tbaa !5
  %2021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2022 = load i32, ptr @test_count, align 4, !tbaa !5
  %2023 = load i32, ptr %372, align 4, !tbaa !5
  %2024 = call ptr @s2n_strerror(i32 noundef %2023, ptr noundef nonnull @.str.4) #13
  %2025 = load i32, ptr %372, align 4, !tbaa !5
  %2026 = call ptr @s2n_strerror_debug(i32 noundef %2025, ptr noundef nonnull @.str.4) #13
  %2027 = load i32, ptr %426, align 4, !tbaa !5
  %2028 = call ptr @strerror(i32 noundef %2027) #13
  %2029 = load i32, ptr %426, align 4, !tbaa !5
  %2030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2021, ptr noundef nonnull %.str.5.sink1164, i32 noundef %2022, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %2024, ptr noundef %2026, ptr noundef %2028, i32 noundef %2029) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2031:                                             ; preds = %2004
  %2032 = add nsw i32 %2005, 2
  store i32 %2032, ptr @test_count, align 4, !tbaa !5
  %2033 = call ptr @s2n_strerror_debug(i32 noundef 402653194, ptr noundef nonnull @.str.4) #13
  %2034 = icmp eq ptr %2033, null
  br i1 %2034, label %2035, label %2057

2035:                                             ; preds = %2031
  %2036 = load i32, ptr %426, align 4, !tbaa !5
  %2037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2038 = call i32 @s2n_print_stacktrace(ptr noundef %2037) #13
  %2039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2040 = trunc nuw i8 %2039 to i1
  br i1 %2040, label %2041, label %2045

2041:                                             ; preds = %2035
  %2042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2043 = call i32 @fileno(ptr noundef %2042) #13
  %2044 = call i32 @isatty(i32 noundef %2043) #13
  %.not444 = icmp eq i32 %2044, 0
  br i1 %.not444, label %2045, label %2046

2045:                                             ; preds = %2041, %2035
  br label %2046

2046:                                             ; preds = %2041, %2045
  %.str.5.sink1173 = phi ptr [ @.str.5, %2045 ], [ @.str.2, %2041 ]
  store i32 %2036, ptr %426, align 4, !tbaa !5
  %2047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2048 = load i32, ptr @test_count, align 4, !tbaa !5
  %2049 = load i32, ptr %372, align 4, !tbaa !5
  %2050 = call ptr @s2n_strerror(i32 noundef %2049, ptr noundef nonnull @.str.4) #13
  %2051 = load i32, ptr %372, align 4, !tbaa !5
  %2052 = call ptr @s2n_strerror_debug(i32 noundef %2051, ptr noundef nonnull @.str.4) #13
  %2053 = load i32, ptr %426, align 4, !tbaa !5
  %2054 = call ptr @strerror(i32 noundef %2053) #13
  %2055 = load i32, ptr %426, align 4, !tbaa !5
  %2056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2047, ptr noundef nonnull %.str.5.sink1173, i32 noundef %2048, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %2050, ptr noundef %2052, ptr noundef %2054, i32 noundef %2055) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2057:                                             ; preds = %2031
  store i32 0, ptr %372, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %426, align 4, !tbaa !5
  %2058 = load i32, ptr @test_count, align 4, !tbaa !5
  %2059 = add nsw i32 %2058, 1
  store i32 %2059, ptr @test_count, align 4, !tbaa !5
  %2060 = getelementptr inbounds i8, ptr %12, i64 8
  %2061 = load i32, ptr %2060, align 8, !tbaa !46
  %2062 = icmp eq i32 %2061, 0
  br i1 %2062, label %2085, label %2063

2063:                                             ; preds = %2057
  %2064 = load i32, ptr %426, align 4, !tbaa !5
  %2065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2066 = call i32 @s2n_print_stacktrace(ptr noundef %2065) #13
  %2067 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2068 = trunc nuw i8 %2067 to i1
  br i1 %2068, label %2069, label %2073

2069:                                             ; preds = %2063
  %2070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2071 = call i32 @fileno(ptr noundef %2070) #13
  %2072 = call i32 @isatty(i32 noundef %2071) #13
  %.not394 = icmp eq i32 %2072, 0
  br i1 %.not394, label %2073, label %2074

2073:                                             ; preds = %2069, %2063
  br label %2074

2074:                                             ; preds = %2069, %2073
  %.str.5.sink1182 = phi ptr [ @.str.5, %2073 ], [ @.str.2, %2069 ]
  store i32 %2064, ptr %426, align 4, !tbaa !5
  %2075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2076 = load i32, ptr @test_count, align 4, !tbaa !5
  %2077 = load i32, ptr %372, align 4, !tbaa !5
  %2078 = call ptr @s2n_strerror(i32 noundef %2077, ptr noundef nonnull @.str.4) #13
  %2079 = load i32, ptr %372, align 4, !tbaa !5
  %2080 = call ptr @s2n_strerror_debug(i32 noundef %2079, ptr noundef nonnull @.str.4) #13
  %2081 = load i32, ptr %426, align 4, !tbaa !5
  %2082 = call ptr @strerror(i32 noundef %2081) #13
  %2083 = load i32, ptr %426, align 4, !tbaa !5
  %2084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2075, ptr noundef nonnull %.str.5.sink1182, i32 noundef %2076, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 183, ptr noundef %2078, ptr noundef %2080, ptr noundef %2082, i32 noundef %2083) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2085:                                             ; preds = %2057
  %2086 = add nsw i32 %2058, 2
  store i32 %2086, ptr @test_count, align 4, !tbaa !5
  %2087 = call i32 @s2n_stuffer_free(ptr noundef nonnull %11) #13
  %2088 = icmp eq i32 %2087, -1
  br i1 %2088, label %2089, label %2111

2089:                                             ; preds = %2085
  %2090 = load i32, ptr %426, align 4, !tbaa !5
  %2091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2092 = call i32 @s2n_print_stacktrace(ptr noundef %2091) #13
  %2093 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2094 = trunc nuw i8 %2093 to i1
  br i1 %2094, label %2095, label %2099

2095:                                             ; preds = %2089
  %2096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2097 = call i32 @fileno(ptr noundef %2096) #13
  %2098 = call i32 @isatty(i32 noundef %2097) #13
  %.not443 = icmp eq i32 %2098, 0
  br i1 %.not443, label %2099, label %2100

2099:                                             ; preds = %2095, %2089
  br label %2100

2100:                                             ; preds = %2095, %2099
  %.str.5.sink1191 = phi ptr [ @.str.5, %2099 ], [ @.str.2, %2095 ]
  store i32 %2090, ptr %426, align 4, !tbaa !5
  %2101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2102 = load i32, ptr @test_count, align 4, !tbaa !5
  %2103 = load i32, ptr %372, align 4, !tbaa !5
  %2104 = call ptr @s2n_strerror(i32 noundef %2103, ptr noundef nonnull @.str.4) #13
  %2105 = load i32, ptr %372, align 4, !tbaa !5
  %2106 = call ptr @s2n_strerror_debug(i32 noundef %2105, ptr noundef nonnull @.str.4) #13
  %2107 = load i32, ptr %426, align 4, !tbaa !5
  %2108 = call ptr @strerror(i32 noundef %2107) #13
  %2109 = load i32, ptr %426, align 4, !tbaa !5
  %2110 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2101, ptr noundef nonnull %.str.5.sink1191, i32 noundef %2102, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %2104, ptr noundef %2106, ptr noundef %2108, i32 noundef %2109) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2111:                                             ; preds = %2085
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #13
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %13) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %13, i8 0, i64 40, i1 false)
  %2112 = load i32, ptr @test_count, align 4, !tbaa !5
  %2113 = add nsw i32 %2112, 1
  store i32 %2113, ptr @test_count, align 4, !tbaa !5
  %2114 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %13, i32 noundef 0) #13
  %2115 = icmp eq i32 %2114, -1
  br i1 %2115, label %2116, label %2138

2116:                                             ; preds = %2111
  %2117 = load i32, ptr %426, align 4, !tbaa !5
  %2118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2119 = call i32 @s2n_print_stacktrace(ptr noundef %2118) #13
  %2120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2121 = trunc nuw i8 %2120 to i1
  br i1 %2121, label %2122, label %2126

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

2126:                                             ; preds = %2122, %2116
  br label %2127

2127:                                             ; preds = %2122, %2126
  %.str.5.sink1200 = phi ptr [ @.str.5, %2126 ], [ @.str.2, %2122 ]
  store i32 %2117, ptr %426, align 4, !tbaa !5
  %2128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2129 = load i32, ptr @test_count, align 4, !tbaa !5
  %2130 = load i32, ptr %372, align 4, !tbaa !5
  %2131 = call ptr @s2n_strerror(i32 noundef %2130, ptr noundef nonnull @.str.4) #13
  %2132 = load i32, ptr %372, align 4, !tbaa !5
  %2133 = call ptr @s2n_strerror_debug(i32 noundef %2132, ptr noundef nonnull @.str.4) #13
  %2134 = load i32, ptr %426, align 4, !tbaa !5
  %2135 = call ptr @strerror(i32 noundef %2134) #13
  %2136 = load i32, ptr %426, align 4, !tbaa !5
  %2137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2128, ptr noundef nonnull %.str.5.sink1200, i32 noundef %2129, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 191, ptr noundef %2131, ptr noundef %2133, ptr noundef %2135, i32 noundef %2136) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2138:                                             ; preds = %2111
  %2139 = load i32, ptr @test_count, align 4, !tbaa !5
  %2140 = add nsw i32 %2139, 1
  store i32 %2140, ptr @test_count, align 4, !tbaa !5
  %2141 = call i32 @s2n_stuffer_write_uint8(ptr noundef nonnull %13, i8 noundef zeroext 10) #13
  %2142 = icmp eq i32 %2141, -1
  br i1 %2142, label %2143, label %2165

2143:                                             ; preds = %2138
  %2144 = load i32, ptr %426, align 4, !tbaa !5
  %2145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2146 = call i32 @s2n_print_stacktrace(ptr noundef %2145) #13
  %2147 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2148 = trunc nuw i8 %2147 to i1
  br i1 %2148, label %2149, label %2153

2149:                                             ; preds = %2143
  %2150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2151 = call i32 @fileno(ptr noundef %2150) #13
  %2152 = call i32 @isatty(i32 noundef %2151) #13
  %.not441 = icmp eq i32 %2152, 0
  br i1 %.not441, label %2153, label %2154

2153:                                             ; preds = %2149, %2143
  br label %2154

2154:                                             ; preds = %2149, %2153
  %.str.5.sink1209 = phi ptr [ @.str.5, %2153 ], [ @.str.2, %2149 ]
  store i32 %2144, ptr %426, align 4, !tbaa !5
  %2155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2156 = load i32, ptr @test_count, align 4, !tbaa !5
  %2157 = load i32, ptr %372, align 4, !tbaa !5
  %2158 = call ptr @s2n_strerror(i32 noundef %2157, ptr noundef nonnull @.str.4) #13
  %2159 = load i32, ptr %372, align 4, !tbaa !5
  %2160 = call ptr @s2n_strerror_debug(i32 noundef %2159, ptr noundef nonnull @.str.4) #13
  %2161 = load i32, ptr %426, align 4, !tbaa !5
  %2162 = call ptr @strerror(i32 noundef %2161) #13
  %2163 = load i32, ptr %426, align 4, !tbaa !5
  %2164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2155, ptr noundef nonnull %.str.5.sink1209, i32 noundef %2156, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 192, ptr noundef %2158, ptr noundef %2160, ptr noundef %2162, i32 noundef %2163) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2165:                                             ; preds = %2138
  %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_stuffer_write_bytes(ptr noundef nonnull %13, ptr noundef nonnull %3, i32 noundef 10) #13
  %2169 = icmp eq i32 %2168, -1
  br i1 %2169, label %2170, label %2192

2170:                                             ; preds = %2165
  %2171 = load i32, ptr %426, align 4, !tbaa !5
  %2172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2173 = call i32 @s2n_print_stacktrace(ptr noundef %2172) #13
  %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) #13
  %2179 = call i32 @isatty(i32 noundef %2178) #13
  %.not440 = icmp eq i32 %2179, 0
  br i1 %.not440, label %2180, label %2181

2180:                                             ; preds = %2176, %2170
  br label %2181

2181:                                             ; preds = %2176, %2180
  %.str.5.sink1218 = phi ptr [ @.str.5, %2180 ], [ @.str.2, %2176 ]
  store i32 %2171, ptr %426, 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 %372, align 4, !tbaa !5
  %2185 = call ptr @s2n_strerror(i32 noundef %2184, ptr noundef nonnull @.str.4) #13
  %2186 = load i32, ptr %372, align 4, !tbaa !5
  %2187 = call ptr @s2n_strerror_debug(i32 noundef %2186, ptr noundef nonnull @.str.4) #13
  %2188 = load i32, ptr %426, align 4, !tbaa !5
  %2189 = call ptr @strerror(i32 noundef %2188) #13
  %2190 = load i32, ptr %426, align 4, !tbaa !5
  %2191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2182, ptr noundef nonnull %.str.5.sink1218, i32 noundef %2183, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 193, ptr noundef %2185, ptr noundef %2187, ptr noundef %2189, i32 noundef %2190) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2192:                                             ; preds = %2165
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %14, i8 0, i64 24, i1 false)
  %2193 = load i32, ptr @test_count, align 4, !tbaa !5
  %2194 = add nsw i32 %2193, 1
  store i32 %2194, ptr @test_count, align 4, !tbaa !5
  %2195 = call i32 @s2n_protocol_preferences_read(ptr noundef nonnull %13, ptr noundef nonnull %14) #13
  %2196 = call zeroext i1 @s2n_result_is_ok(i32 %2195)
  br i1 %2196, label %2219, label %2197

2197:                                             ; preds = %2192
  %2198 = load i32, ptr %426, align 4, !tbaa !5
  %2199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2200 = call i32 @s2n_print_stacktrace(ptr noundef %2199) #13
  %2201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2202 = trunc nuw i8 %2201 to i1
  br i1 %2202, label %2203, label %2207

2203:                                             ; preds = %2197
  %2204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2205 = call i32 @fileno(ptr noundef %2204) #13
  %2206 = call i32 @isatty(i32 noundef %2205) #13
  %.not395 = icmp eq i32 %2206, 0
  br i1 %.not395, label %2207, label %2208

2207:                                             ; preds = %2203, %2197
  br label %2208

2208:                                             ; preds = %2203, %2207
  %.str.5.sink1227 = phi ptr [ @.str.5, %2207 ], [ @.str.2, %2203 ]
  store i32 %2198, ptr %426, align 4, !tbaa !5
  %2209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2210 = load i32, ptr @test_count, align 4, !tbaa !5
  %2211 = load i32, ptr %372, align 4, !tbaa !5
  %2212 = call ptr @s2n_strerror(i32 noundef %2211, ptr noundef nonnull @.str.4) #13
  %2213 = load i32, ptr %372, align 4, !tbaa !5
  %2214 = call ptr @s2n_strerror_debug(i32 noundef %2213, ptr noundef nonnull @.str.4) #13
  %2215 = load i32, ptr %426, align 4, !tbaa !5
  %2216 = call ptr @strerror(i32 noundef %2215) #13
  %2217 = load i32, ptr %426, align 4, !tbaa !5
  %2218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2209, ptr noundef nonnull %.str.5.sink1227, i32 noundef %2210, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 196, ptr noundef %2212, ptr noundef %2214, ptr noundef %2216, i32 noundef %2217) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2219:                                             ; preds = %2192
  %2220 = load i32, ptr @test_count, align 4, !tbaa !5
  %2221 = add nsw i32 %2220, 1
  store i32 %2221, ptr @test_count, align 4, !tbaa !5
  %2222 = getelementptr inbounds i8, ptr %14, i64 8
  %2223 = load i32, ptr %2222, align 8, !tbaa !46
  %2224 = icmp eq i32 %2223, 10
  br i1 %2224, label %2247, label %2225

2225:                                             ; preds = %2219
  %2226 = load i32, ptr %426, align 4, !tbaa !5
  %2227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2228 = call i32 @s2n_print_stacktrace(ptr noundef %2227) #13
  %2229 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2230 = trunc nuw i8 %2229 to i1
  br i1 %2230, label %2231, label %2235

2231:                                             ; preds = %2225
  %2232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2233 = call i32 @fileno(ptr noundef %2232) #13
  %2234 = call i32 @isatty(i32 noundef %2233) #13
  %.not396 = icmp eq i32 %2234, 0
  br i1 %.not396, label %2235, label %2236

2235:                                             ; preds = %2231, %2225
  br label %2236

2236:                                             ; preds = %2231, %2235
  %.str.5.sink1236 = phi ptr [ @.str.5, %2235 ], [ @.str.2, %2231 ]
  store i32 %2226, ptr %426, align 4, !tbaa !5
  %2237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2238 = load i32, ptr @test_count, align 4, !tbaa !5
  %2239 = load i32, ptr %372, align 4, !tbaa !5
  %2240 = call ptr @s2n_strerror(i32 noundef %2239, ptr noundef nonnull @.str.4) #13
  %2241 = load i32, ptr %372, align 4, !tbaa !5
  %2242 = call ptr @s2n_strerror_debug(i32 noundef %2241, ptr noundef nonnull @.str.4) #13
  %2243 = load i32, ptr %426, align 4, !tbaa !5
  %2244 = call ptr @strerror(i32 noundef %2243) #13
  %2245 = load i32, ptr %426, align 4, !tbaa !5
  %2246 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2237, ptr noundef nonnull %.str.5.sink1236, i32 noundef %2238, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 197, ptr noundef %2240, ptr noundef %2242, ptr noundef %2244, i32 noundef %2245) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2247:                                             ; preds = %2219
  %2248 = add nsw i32 %2220, 2
  store i32 %2248, ptr @test_count, align 4, !tbaa !5
  %2249 = load ptr, ptr %14, align 8, !tbaa !47
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(10) %2249, ptr noundef nonnull dereferenceable(10) %3, i64 10)
  %2250 = icmp eq i32 %bcmp, 0
  br i1 %2250, label %2273, label %2251

2251:                                             ; preds = %2247
  %2252 = load i32, ptr %426, align 4, !tbaa !5
  %2253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2254 = call i32 @s2n_print_stacktrace(ptr noundef %2253) #13
  %2255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2256 = trunc nuw i8 %2255 to i1
  br i1 %2256, label %2257, label %2261

2257:                                             ; preds = %2251
  %2258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2259 = call i32 @fileno(ptr noundef %2258) #13
  %2260 = call i32 @isatty(i32 noundef %2259) #13
  %.not397 = icmp eq i32 %2260, 0
  br i1 %.not397, label %2261, label %2262

2261:                                             ; preds = %2257, %2251
  br label %2262

2262:                                             ; preds = %2257, %2261
  %.str.5.sink1245 = phi ptr [ @.str.5, %2261 ], [ @.str.2, %2257 ]
  store i32 %2252, ptr %426, align 4, !tbaa !5
  %2263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2264 = load i32, ptr @test_count, align 4, !tbaa !5
  %2265 = load i32, ptr %372, align 4, !tbaa !5
  %2266 = call ptr @s2n_strerror(i32 noundef %2265, ptr noundef nonnull @.str.4) #13
  %2267 = load i32, ptr %372, align 4, !tbaa !5
  %2268 = call ptr @s2n_strerror_debug(i32 noundef %2267, ptr noundef nonnull @.str.4) #13
  %2269 = load i32, ptr %426, align 4, !tbaa !5
  %2270 = call ptr @strerror(i32 noundef %2269) #13
  %2271 = load i32, ptr %426, align 4, !tbaa !5
  %2272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2263, ptr noundef nonnull %.str.5.sink1245, i32 noundef %2264, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 198, ptr noundef %2266, ptr noundef %2268, ptr noundef %2270, i32 noundef %2271) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2273:                                             ; preds = %2247
  %2274 = add nsw i32 %2220, 3
  store i32 %2274, ptr @test_count, align 4, !tbaa !5
  %2275 = call i32 @s2n_stuffer_free(ptr noundef nonnull %13) #13
  %2276 = icmp eq i32 %2275, -1
  br i1 %2276, label %2277, label %2299

2277:                                             ; preds = %2273
  %2278 = load i32, ptr %426, align 4, !tbaa !5
  %2279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2280 = call i32 @s2n_print_stacktrace(ptr noundef %2279) #13
  %2281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2282 = trunc nuw i8 %2281 to i1
  br i1 %2282, label %2283, label %2287

2283:                                             ; preds = %2277
  %2284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2285 = call i32 @fileno(ptr noundef %2284) #13
  %2286 = call i32 @isatty(i32 noundef %2285) #13
  %.not439 = icmp eq i32 %2286, 0
  br i1 %.not439, label %2287, label %2288

2287:                                             ; preds = %2283, %2277
  br label %2288

2288:                                             ; preds = %2283, %2287
  %.str.5.sink1254 = phi ptr [ @.str.5, %2287 ], [ @.str.2, %2283 ]
  store i32 %2278, ptr %426, align 4, !tbaa !5
  %2289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2290 = load i32, ptr @test_count, align 4, !tbaa !5
  %2291 = load i32, ptr %372, align 4, !tbaa !5
  %2292 = call ptr @s2n_strerror(i32 noundef %2291, ptr noundef nonnull @.str.4) #13
  %2293 = load i32, ptr %372, align 4, !tbaa !5
  %2294 = call ptr @s2n_strerror_debug(i32 noundef %2293, ptr noundef nonnull @.str.4) #13
  %2295 = load i32, ptr %426, align 4, !tbaa !5
  %2296 = call ptr @strerror(i32 noundef %2295) #13
  %2297 = load i32, ptr %426, align 4, !tbaa !5
  %2298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2289, ptr noundef nonnull %.str.5.sink1254, i32 noundef %2290, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 200, ptr noundef %2292, ptr noundef %2294, ptr noundef %2296, i32 noundef %2297) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2299:                                             ; preds = %2273
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #13
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #13
  %2300 = call ptr @s2n_connection_new(i32 noundef 1) #13
  %2301 = load i32, ptr @test_count, align 4, !tbaa !5
  %2302 = add nsw i32 %2301, 1
  store i32 %2302, ptr @test_count, align 4, !tbaa !5
  %2303 = icmp eq ptr %2300, null
  br i1 %2303, label %2304, label %2326

2304:                                             ; preds = %2299
  %2305 = load i32, ptr %426, align 4, !tbaa !5
  %2306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2307 = call i32 @s2n_print_stacktrace(ptr noundef %2306) #13
  %2308 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2309 = trunc nuw i8 %2308 to i1
  br i1 %2309, label %2310, label %2314

2310:                                             ; preds = %2304
  %2311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2312 = call i32 @fileno(ptr noundef %2311) #13
  %2313 = call i32 @isatty(i32 noundef %2312) #13
  %.not438 = icmp eq i32 %2313, 0
  br i1 %.not438, label %2314, label %2315

2314:                                             ; preds = %2310, %2304
  br label %2315

2315:                                             ; preds = %2310, %2314
  %.str.5.sink1263 = phi ptr [ @.str.5, %2314 ], [ @.str.2, %2310 ]
  store i32 %2305, ptr %426, align 4, !tbaa !5
  %2316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2317 = load i32, ptr @test_count, align 4, !tbaa !5
  %2318 = load i32, ptr %372, align 4, !tbaa !5
  %2319 = call ptr @s2n_strerror(i32 noundef %2318, ptr noundef nonnull @.str.4) #13
  %2320 = load i32, ptr %372, align 4, !tbaa !5
  %2321 = call ptr @s2n_strerror_debug(i32 noundef %2320, ptr noundef nonnull @.str.4) #13
  %2322 = load i32, ptr %426, align 4, !tbaa !5
  %2323 = call ptr @strerror(i32 noundef %2322) #13
  %2324 = load i32, ptr %426, align 4, !tbaa !5
  %2325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2316, ptr noundef nonnull %.str.5.sink1263, i32 noundef %2317, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %2319, ptr noundef %2321, ptr noundef %2323, i32 noundef %2324) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2326:                                             ; preds = %2299
  %2327 = add nsw i32 %2301, 2
  store i32 %2327, ptr @test_count, align 4, !tbaa !5
  %2328 = call i32 @s2n_connection_append_protocol_preference(ptr noundef nonnull %2300, ptr noundef nonnull %3, i8 noundef zeroext 10) #13
  %2329 = icmp eq i32 %2328, -1
  br i1 %2329, label %2330, label %2352

2330:                                             ; preds = %2326
  %2331 = load i32, ptr %426, align 4, !tbaa !5
  %2332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2333 = call i32 @s2n_print_stacktrace(ptr noundef %2332) #13
  %2334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2335 = trunc nuw i8 %2334 to i1
  br i1 %2335, label %2336, label %2340

2336:                                             ; preds = %2330
  %2337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2338 = call i32 @fileno(ptr noundef %2337) #13
  %2339 = call i32 @isatty(i32 noundef %2338) #13
  %.not437 = icmp eq i32 %2339, 0
  br i1 %.not437, label %2340, label %2341

2340:                                             ; preds = %2336, %2330
  br label %2341

2341:                                             ; preds = %2336, %2340
  %.str.5.sink1272 = phi ptr [ @.str.5, %2340 ], [ @.str.2, %2336 ]
  store i32 %2331, ptr %426, align 4, !tbaa !5
  %2342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2343 = load i32, ptr @test_count, align 4, !tbaa !5
  %2344 = load i32, ptr %372, align 4, !tbaa !5
  %2345 = call ptr @s2n_strerror(i32 noundef %2344, ptr noundef nonnull @.str.4) #13
  %2346 = load i32, ptr %372, align 4, !tbaa !5
  %2347 = call ptr @s2n_strerror_debug(i32 noundef %2346, ptr noundef nonnull @.str.4) #13
  %2348 = load i32, ptr %426, align 4, !tbaa !5
  %2349 = call ptr @strerror(i32 noundef %2348) #13
  %2350 = load i32, ptr %426, align 4, !tbaa !5
  %2351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2342, ptr noundef nonnull %.str.5.sink1272, i32 noundef %2343, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 208, ptr noundef %2345, ptr noundef %2347, ptr noundef %2349, i32 noundef %2350) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2352:                                             ; preds = %2326
  %2353 = load i32, ptr @test_count, align 4, !tbaa !5
  %2354 = add nsw i32 %2353, 1
  store i32 %2354, ptr @test_count, align 4, !tbaa !5
  %2355 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_alpn_extension, i64 8), align 8, !tbaa !48
  %2356 = getelementptr inbounds i8, ptr %2300, i64 2016
  %2357 = call i32 %2355(ptr noundef nonnull %2300, ptr noundef nonnull %2356) #13
  %2358 = icmp eq i32 %2357, -1
  br i1 %2358, label %2359, label %2381

2359:                                             ; preds = %2352
  %2360 = load i32, ptr %426, align 4, !tbaa !5
  %2361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2362 = call i32 @s2n_print_stacktrace(ptr noundef %2361) #13
  %2363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2364 = trunc nuw i8 %2363 to i1
  br i1 %2364, label %2365, label %2369

2365:                                             ; preds = %2359
  %2366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2367 = call i32 @fileno(ptr noundef %2366) #13
  %2368 = call i32 @isatty(i32 noundef %2367) #13
  %.not436 = icmp eq i32 %2368, 0
  br i1 %.not436, label %2369, label %2370

2369:                                             ; preds = %2365, %2359
  br label %2370

2370:                                             ; preds = %2365, %2369
  %.str.5.sink1281 = phi ptr [ @.str.5, %2369 ], [ @.str.2, %2365 ]
  store i32 %2360, ptr %426, align 4, !tbaa !5
  %2371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2372 = load i32, ptr @test_count, align 4, !tbaa !5
  %2373 = load i32, ptr %372, align 4, !tbaa !5
  %2374 = call ptr @s2n_strerror(i32 noundef %2373, ptr noundef nonnull @.str.4) #13
  %2375 = load i32, ptr %372, align 4, !tbaa !5
  %2376 = call ptr @s2n_strerror_debug(i32 noundef %2375, ptr noundef nonnull @.str.4) #13
  %2377 = load i32, ptr %426, align 4, !tbaa !5
  %2378 = call ptr @strerror(i32 noundef %2377) #13
  %2379 = load i32, ptr %426, align 4, !tbaa !5
  %2380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2371, ptr noundef nonnull %.str.5.sink1281, i32 noundef %2372, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %2374, ptr noundef %2376, ptr noundef %2378, i32 noundef %2379) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2381:                                             ; preds = %2352
  %2382 = load i32, ptr @test_count, align 4, !tbaa !5
  %2383 = add nsw i32 %2382, 1
  store i32 %2383, ptr @test_count, align 4, !tbaa !5
  %2384 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %2356, i32 noundef 2) #13
  %2385 = icmp eq i32 %2384, -1
  br i1 %2385, label %2386, label %2408

2386:                                             ; preds = %2381
  %2387 = load i32, ptr %426, align 4, !tbaa !5
  %2388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2389 = call i32 @s2n_print_stacktrace(ptr noundef %2388) #13
  %2390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2391 = trunc nuw i8 %2390 to i1
  br i1 %2391, label %2392, label %2396

2392:                                             ; preds = %2386
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2394 = call i32 @fileno(ptr noundef %2393) #13
  %2395 = call i32 @isatty(i32 noundef %2394) #13
  %.not435 = icmp eq i32 %2395, 0
  br i1 %.not435, label %2396, label %2397

2396:                                             ; preds = %2392, %2386
  br label %2397

2397:                                             ; preds = %2392, %2396
  %.str.5.sink1290 = phi ptr [ @.str.5, %2396 ], [ @.str.2, %2392 ]
  store i32 %2387, ptr %426, align 4, !tbaa !5
  %2398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2399 = load i32, ptr @test_count, align 4, !tbaa !5
  %2400 = load i32, ptr %372, align 4, !tbaa !5
  %2401 = call ptr @s2n_strerror(i32 noundef %2400, ptr noundef nonnull @.str.4) #13
  %2402 = load i32, ptr %372, align 4, !tbaa !5
  %2403 = call ptr @s2n_strerror_debug(i32 noundef %2402, ptr noundef nonnull @.str.4) #13
  %2404 = load i32, ptr %426, align 4, !tbaa !5
  %2405 = call ptr @strerror(i32 noundef %2404) #13
  %2406 = load i32, ptr %426, align 4, !tbaa !5
  %2407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2398, ptr noundef nonnull %.str.5.sink1290, i32 noundef %2399, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 212, ptr noundef %2401, ptr noundef %2403, ptr noundef %2405, i32 noundef %2406) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2408:                                             ; preds = %2381
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %15, i8 0, i64 24, i1 false)
  %2409 = load i32, ptr @test_count, align 4, !tbaa !5
  %2410 = add nsw i32 %2409, 1
  store i32 %2410, ptr @test_count, align 4, !tbaa !5
  %2411 = call i32 @s2n_protocol_preferences_read(ptr noundef nonnull %2356, ptr noundef nonnull %15) #13
  %2412 = call zeroext i1 @s2n_result_is_ok(i32 %2411)
  br i1 %2412, label %2435, label %2413

2413:                                             ; preds = %2408
  %2414 = load i32, ptr %426, align 4, !tbaa !5
  %2415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2416 = call i32 @s2n_print_stacktrace(ptr noundef %2415) #13
  %2417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2418 = trunc nuw i8 %2417 to i1
  br i1 %2418, label %2419, label %2423

2419:                                             ; preds = %2413
  %2420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2421 = call i32 @fileno(ptr noundef %2420) #13
  %2422 = call i32 @isatty(i32 noundef %2421) #13
  %.not398 = icmp eq i32 %2422, 0
  br i1 %.not398, label %2423, label %2424

2423:                                             ; preds = %2419, %2413
  br label %2424

2424:                                             ; preds = %2419, %2423
  %.str.5.sink1299 = phi ptr [ @.str.5, %2423 ], [ @.str.2, %2419 ]
  store i32 %2414, ptr %426, align 4, !tbaa !5
  %2425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2426 = load i32, ptr @test_count, align 4, !tbaa !5
  %2427 = load i32, ptr %372, align 4, !tbaa !5
  %2428 = call ptr @s2n_strerror(i32 noundef %2427, ptr noundef nonnull @.str.4) #13
  %2429 = load i32, ptr %372, align 4, !tbaa !5
  %2430 = call ptr @s2n_strerror_debug(i32 noundef %2429, ptr noundef nonnull @.str.4) #13
  %2431 = load i32, ptr %426, align 4, !tbaa !5
  %2432 = call ptr @strerror(i32 noundef %2431) #13
  %2433 = load i32, ptr %426, align 4, !tbaa !5
  %2434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2425, ptr noundef nonnull %.str.5.sink1299, i32 noundef %2426, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %2428, ptr noundef %2430, ptr noundef %2432, i32 noundef %2433) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2435:                                             ; preds = %2408
  %2436 = load i32, ptr @test_count, align 4, !tbaa !5
  %2437 = add nsw i32 %2436, 1
  store i32 %2437, ptr @test_count, align 4, !tbaa !5
  %2438 = getelementptr inbounds i8, ptr %15, i64 8
  %2439 = load i32, ptr %2438, align 8, !tbaa !46
  %2440 = icmp eq i32 %2439, 10
  br i1 %2440, label %2463, label %2441

2441:                                             ; preds = %2435
  %2442 = load i32, ptr %426, align 4, !tbaa !5
  %2443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2444 = call i32 @s2n_print_stacktrace(ptr noundef %2443) #13
  %2445 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2446 = trunc nuw i8 %2445 to i1
  br i1 %2446, label %2447, label %2451

2447:                                             ; preds = %2441
  %2448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2449 = call i32 @fileno(ptr noundef %2448) #13
  %2450 = call i32 @isatty(i32 noundef %2449) #13
  %.not399 = icmp eq i32 %2450, 0
  br i1 %.not399, label %2451, label %2452

2451:                                             ; preds = %2447, %2441
  br label %2452

2452:                                             ; preds = %2447, %2451
  %.str.5.sink1308 = phi ptr [ @.str.5, %2451 ], [ @.str.2, %2447 ]
  store i32 %2442, ptr %426, align 4, !tbaa !5
  %2453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2454 = load i32, ptr @test_count, align 4, !tbaa !5
  %2455 = load i32, ptr %372, align 4, !tbaa !5
  %2456 = call ptr @s2n_strerror(i32 noundef %2455, ptr noundef nonnull @.str.4) #13
  %2457 = load i32, ptr %372, align 4, !tbaa !5
  %2458 = call ptr @s2n_strerror_debug(i32 noundef %2457, ptr noundef nonnull @.str.4) #13
  %2459 = load i32, ptr %426, align 4, !tbaa !5
  %2460 = call ptr @strerror(i32 noundef %2459) #13
  %2461 = load i32, ptr %426, align 4, !tbaa !5
  %2462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2453, ptr noundef nonnull %.str.5.sink1308, i32 noundef %2454, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 216, ptr noundef %2456, ptr noundef %2458, ptr noundef %2460, i32 noundef %2461) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2463:                                             ; preds = %2435
  %2464 = add nsw i32 %2436, 2
  store i32 %2464, ptr @test_count, align 4, !tbaa !5
  %2465 = load ptr, ptr %15, align 8, !tbaa !47
  %bcmp400 = call i32 @bcmp(ptr noundef nonnull dereferenceable(10) %2465, ptr noundef nonnull dereferenceable(10) %3, i64 10)
  %2466 = icmp eq i32 %bcmp400, 0
  br i1 %2466, label %2489, label %2467

2467:                                             ; preds = %2463
  %2468 = load i32, ptr %426, align 4, !tbaa !5
  %2469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2470 = call i32 @s2n_print_stacktrace(ptr noundef %2469) #13
  %2471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2472 = trunc nuw i8 %2471 to i1
  br i1 %2472, label %2473, label %2477

2473:                                             ; preds = %2467
  %2474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2475 = call i32 @fileno(ptr noundef %2474) #13
  %2476 = call i32 @isatty(i32 noundef %2475) #13
  %.not401 = icmp eq i32 %2476, 0
  br i1 %.not401, label %2477, label %2478

2477:                                             ; preds = %2473, %2467
  br label %2478

2478:                                             ; preds = %2473, %2477
  %.str.5.sink1317 = phi ptr [ @.str.5, %2477 ], [ @.str.2, %2473 ]
  store i32 %2468, ptr %426, align 4, !tbaa !5
  %2479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2480 = load i32, ptr @test_count, align 4, !tbaa !5
  %2481 = load i32, ptr %372, align 4, !tbaa !5
  %2482 = call ptr @s2n_strerror(i32 noundef %2481, ptr noundef nonnull @.str.4) #13
  %2483 = load i32, ptr %372, align 4, !tbaa !5
  %2484 = call ptr @s2n_strerror_debug(i32 noundef %2483, ptr noundef nonnull @.str.4) #13
  %2485 = load i32, ptr %426, align 4, !tbaa !5
  %2486 = call ptr @strerror(i32 noundef %2485) #13
  %2487 = load i32, ptr %426, align 4, !tbaa !5
  %2488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2479, ptr noundef nonnull %.str.5.sink1317, i32 noundef %2480, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %2482, ptr noundef %2484, ptr noundef %2486, i32 noundef %2487) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2489:                                             ; preds = %2463
  %2490 = add nsw i32 %2436, 3
  store i32 %2490, ptr @test_count, align 4, !tbaa !5
  %2491 = call i32 @s2n_connection_free(ptr noundef nonnull %2300) #13
  %2492 = icmp eq i32 %2491, -1
  br i1 %2492, label %2493, label %2515

2493:                                             ; preds = %2489
  %2494 = load i32, ptr %426, align 4, !tbaa !5
  %2495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2496 = call i32 @s2n_print_stacktrace(ptr noundef %2495) #13
  %2497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2498 = trunc nuw i8 %2497 to i1
  br i1 %2498, label %2499, label %2503

2499:                                             ; preds = %2493
  %2500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2501 = call i32 @fileno(ptr noundef %2500) #13
  %2502 = call i32 @isatty(i32 noundef %2501) #13
  %.not434 = icmp eq i32 %2502, 0
  br i1 %.not434, label %2503, label %2504

2503:                                             ; preds = %2499, %2493
  br label %2504

2504:                                             ; preds = %2499, %2503
  %.str.5.sink1326 = phi ptr [ @.str.5, %2503 ], [ @.str.2, %2499 ]
  store i32 %2494, ptr %426, align 4, !tbaa !5
  %2505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2506 = load i32, ptr @test_count, align 4, !tbaa !5
  %2507 = load i32, ptr %372, align 4, !tbaa !5
  %2508 = call ptr @s2n_strerror(i32 noundef %2507, ptr noundef nonnull @.str.4) #13
  %2509 = load i32, ptr %372, align 4, !tbaa !5
  %2510 = call ptr @s2n_strerror_debug(i32 noundef %2509, ptr noundef nonnull @.str.4) #13
  %2511 = load i32, ptr %426, align 4, !tbaa !5
  %2512 = call ptr @strerror(i32 noundef %2511) #13
  %2513 = load i32, ptr %426, align 4, !tbaa !5
  %2514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2505, ptr noundef nonnull %.str.5.sink1326, i32 noundef %2506, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %2508, ptr noundef %2510, ptr noundef %2512, i32 noundef %2513) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2515:                                             ; preds = %2489
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #13
  call void @llvm.lifetime.start.p0(i64 10, ptr nonnull %16) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(10) %16, ptr noundef nonnull align 1 dereferenceable(10) @__const.main.protocol3, i64 10, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %17) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %17, i8 0, i64 24, i1 false)
  %2516 = load i32, ptr @test_count, align 4, !tbaa !5
  %2517 = add nsw i32 %2516, 1
  store i32 %2517, ptr @test_count, align 4, !tbaa !5
  %2518 = call i32 @s2n_blob_init(ptr noundef nonnull %17, ptr noundef nonnull %16, i32 noundef 10) #13
  %2519 = icmp eq i32 %2518, -1
  br i1 %2519, label %2520, label %2542

2520:                                             ; preds = %2515
  %2521 = load i32, ptr %426, align 4, !tbaa !5
  %2522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2523 = call i32 @s2n_print_stacktrace(ptr noundef %2522) #13
  %2524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2525 = trunc nuw i8 %2524 to i1
  br i1 %2525, label %2526, label %2530

2526:                                             ; preds = %2520
  %2527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2528 = call i32 @fileno(ptr noundef %2527) #13
  %2529 = call i32 @isatty(i32 noundef %2528) #13
  %.not433 = icmp eq i32 %2529, 0
  br i1 %.not433, label %2530, label %2531

2530:                                             ; preds = %2526, %2520
  br label %2531

2531:                                             ; preds = %2526, %2530
  %.str.5.sink1335 = phi ptr [ @.str.5, %2530 ], [ @.str.2, %2526 ]
  store i32 %2521, ptr %426, align 4, !tbaa !5
  %2532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2533 = load i32, ptr @test_count, align 4, !tbaa !5
  %2534 = load i32, ptr %372, align 4, !tbaa !5
  %2535 = call ptr @s2n_strerror(i32 noundef %2534, ptr noundef nonnull @.str.4) #13
  %2536 = load i32, ptr %372, align 4, !tbaa !5
  %2537 = call ptr @s2n_strerror_debug(i32 noundef %2536, ptr noundef nonnull @.str.4) #13
  %2538 = load i32, ptr %426, align 4, !tbaa !5
  %2539 = call ptr @strerror(i32 noundef %2538) #13
  %2540 = load i32, ptr %426, align 4, !tbaa !5
  %2541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2532, ptr noundef nonnull %.str.5.sink1335, i32 noundef %2533, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 227, ptr noundef %2535, ptr noundef %2537, ptr noundef %2539, i32 noundef %2540) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2542:                                             ; preds = %2515
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %18, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %19) #13
  store i8 0, ptr %19, align 1, !tbaa !11
  %2543 = load i32, ptr @test_count, align 4, !tbaa !5
  %2544 = add nsw i32 %2543, 1
  store i32 %2544, ptr @test_count, align 4, !tbaa !5
  %2545 = call i32 @s2n_protocol_preferences_contain(ptr noundef null, ptr noundef nonnull %18, ptr noundef nonnull %19) #13
  %2546 = call zeroext i1 @s2n_result_is_error(i32 %2545)
  br i1 %2546, label %2569, label %2547

2547:                                             ; preds = %2542
  %2548 = load i32, ptr %426, align 4, !tbaa !5
  %2549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2550 = call i32 @s2n_print_stacktrace(ptr noundef %2549) #13
  %2551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2552 = trunc nuw i8 %2551 to i1
  br i1 %2552, label %2553, label %2557

2553:                                             ; preds = %2547
  %2554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2555 = call i32 @fileno(ptr noundef %2554) #13
  %2556 = call i32 @isatty(i32 noundef %2555) #13
  %.not402 = icmp eq i32 %2556, 0
  br i1 %.not402, label %2557, label %2558

2557:                                             ; preds = %2553, %2547
  br label %2558

2558:                                             ; preds = %2553, %2557
  %.str.5.sink1344 = phi ptr [ @.str.5, %2557 ], [ @.str.2, %2553 ]
  store i32 %2548, ptr %426, align 4, !tbaa !5
  %2559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2560 = load i32, ptr @test_count, align 4, !tbaa !5
  %2561 = load i32, ptr %372, align 4, !tbaa !5
  %2562 = call ptr @s2n_strerror(i32 noundef %2561, ptr noundef nonnull @.str.4) #13
  %2563 = load i32, ptr %372, align 4, !tbaa !5
  %2564 = call ptr @s2n_strerror_debug(i32 noundef %2563, ptr noundef nonnull @.str.4) #13
  %2565 = load i32, ptr %426, align 4, !tbaa !5
  %2566 = call ptr @strerror(i32 noundef %2565) #13
  %2567 = load i32, ptr %426, align 4, !tbaa !5
  %2568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2559, ptr noundef nonnull %.str.5.sink1344, i32 noundef %2560, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %2562, ptr noundef %2564, ptr noundef %2566, i32 noundef %2567) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2569:                                             ; preds = %2542
  %2570 = load i32, ptr @test_count, align 4, !tbaa !5
  %2571 = add nsw i32 %2570, 1
  store i32 %2571, ptr @test_count, align 4, !tbaa !5
  %2572 = load i32, ptr %372, align 4, !tbaa !5
  %2573 = icmp eq i32 %2572, 402653193
  br i1 %2573, label %2596, label %2574

2574:                                             ; preds = %2569
  %2575 = load i32, ptr %426, align 4, !tbaa !5
  %2576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2577 = call i32 @s2n_print_stacktrace(ptr noundef %2576) #13
  %2578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2579 = trunc nuw i8 %2578 to i1
  br i1 %2579, label %2580, label %2584

2580:                                             ; preds = %2574
  %2581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2582 = call i32 @fileno(ptr noundef %2581) #13
  %2583 = call i32 @isatty(i32 noundef %2582) #13
  %.not403 = icmp eq i32 %2583, 0
  br i1 %.not403, label %2584, label %2585

2584:                                             ; preds = %2580, %2574
  br label %2585

2585:                                             ; preds = %2580, %2584
  %.str.5.sink1353 = phi ptr [ @.str.5, %2584 ], [ @.str.2, %2580 ]
  store i32 %2575, ptr %426, align 4, !tbaa !5
  %2586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2587 = load i32, ptr @test_count, align 4, !tbaa !5
  %2588 = load i32, ptr %372, align 4, !tbaa !5
  %2589 = call ptr @s2n_strerror(i32 noundef %2588, ptr noundef nonnull @.str.4) #13
  %2590 = load i32, ptr %372, align 4, !tbaa !5
  %2591 = call ptr @s2n_strerror_debug(i32 noundef %2590, ptr noundef nonnull @.str.4) #13
  %2592 = load i32, ptr %426, align 4, !tbaa !5
  %2593 = call ptr @strerror(i32 noundef %2592) #13
  %2594 = load i32, ptr %426, align 4, !tbaa !5
  %2595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2586, ptr noundef nonnull %.str.5.sink1353, i32 noundef %2587, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %2589, ptr noundef %2591, ptr noundef %2593, i32 noundef %2594) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2596:                                             ; preds = %2569
  %2597 = add nsw i32 %2570, 2
  store i32 %2597, ptr @test_count, align 4, !tbaa !5
  %2598 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #13
  %2599 = icmp eq ptr %2598, null
  br i1 %2599, label %2600, label %2622

2600:                                             ; preds = %2596
  %2601 = load i32, ptr %426, align 4, !tbaa !5
  %2602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2603 = call i32 @s2n_print_stacktrace(ptr noundef %2602) #13
  %2604 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2605 = trunc nuw i8 %2604 to i1
  br i1 %2605, label %2606, label %2610

2606:                                             ; preds = %2600
  %2607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2608 = call i32 @fileno(ptr noundef %2607) #13
  %2609 = call i32 @isatty(i32 noundef %2608) #13
  %.not432 = icmp eq i32 %2609, 0
  br i1 %.not432, label %2610, label %2611

2610:                                             ; preds = %2606, %2600
  br label %2611

2611:                                             ; preds = %2606, %2610
  %.str.5.sink1362 = phi ptr [ @.str.5, %2610 ], [ @.str.2, %2606 ]
  store i32 %2601, ptr %426, align 4, !tbaa !5
  %2612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2613 = load i32, ptr @test_count, align 4, !tbaa !5
  %2614 = load i32, ptr %372, align 4, !tbaa !5
  %2615 = call ptr @s2n_strerror(i32 noundef %2614, ptr noundef nonnull @.str.4) #13
  %2616 = load i32, ptr %372, align 4, !tbaa !5
  %2617 = call ptr @s2n_strerror_debug(i32 noundef %2616, ptr noundef nonnull @.str.4) #13
  %2618 = load i32, ptr %426, align 4, !tbaa !5
  %2619 = call ptr @strerror(i32 noundef %2618) #13
  %2620 = load i32, ptr %426, align 4, !tbaa !5
  %2621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2612, ptr noundef nonnull %.str.5.sink1362, i32 noundef %2613, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %2615, ptr noundef %2617, ptr noundef %2619, i32 noundef %2620) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2622:                                             ; preds = %2596
  store i32 0, ptr %372, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %426, align 4, !tbaa !5
  %2623 = load i32, ptr @test_count, align 4, !tbaa !5
  %2624 = add nsw i32 %2623, 1
  store i32 %2624, ptr @test_count, align 4, !tbaa !5
  %2625 = call i32 @s2n_protocol_preferences_contain(ptr noundef nonnull %18, ptr noundef null, ptr noundef nonnull %19) #13
  %2626 = call zeroext i1 @s2n_result_is_error(i32 %2625)
  br i1 %2626, label %2649, label %2627

2627:                                             ; preds = %2622
  %2628 = load i32, ptr %426, align 4, !tbaa !5
  %2629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2630 = call i32 @s2n_print_stacktrace(ptr noundef %2629) #13
  %2631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2632 = trunc nuw i8 %2631 to i1
  br i1 %2632, label %2633, label %2637

2633:                                             ; preds = %2627
  %2634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2635 = call i32 @fileno(ptr noundef %2634) #13
  %2636 = call i32 @isatty(i32 noundef %2635) #13
  %.not404 = icmp eq i32 %2636, 0
  br i1 %.not404, label %2637, label %2638

2637:                                             ; preds = %2633, %2627
  br label %2638

2638:                                             ; preds = %2633, %2637
  %.str.5.sink1371 = phi ptr [ @.str.5, %2637 ], [ @.str.2, %2633 ]
  store i32 %2628, ptr %426, align 4, !tbaa !5
  %2639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2640 = load i32, ptr @test_count, align 4, !tbaa !5
  %2641 = load i32, ptr %372, align 4, !tbaa !5
  %2642 = call ptr @s2n_strerror(i32 noundef %2641, ptr noundef nonnull @.str.4) #13
  %2643 = load i32, ptr %372, align 4, !tbaa !5
  %2644 = call ptr @s2n_strerror_debug(i32 noundef %2643, ptr noundef nonnull @.str.4) #13
  %2645 = load i32, ptr %426, align 4, !tbaa !5
  %2646 = call ptr @strerror(i32 noundef %2645) #13
  %2647 = load i32, ptr %426, align 4, !tbaa !5
  %2648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2639, ptr noundef nonnull %.str.5.sink1371, i32 noundef %2640, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 234, ptr noundef %2642, ptr noundef %2644, ptr noundef %2646, i32 noundef %2647) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2649:                                             ; preds = %2622
  %2650 = load i32, ptr @test_count, align 4, !tbaa !5
  %2651 = add nsw i32 %2650, 1
  store i32 %2651, ptr @test_count, align 4, !tbaa !5
  %2652 = load i32, ptr %372, align 4, !tbaa !5
  %2653 = icmp eq i32 %2652, 402653193
  br i1 %2653, label %2676, label %2654

2654:                                             ; preds = %2649
  %2655 = load i32, ptr %426, align 4, !tbaa !5
  %2656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2657 = call i32 @s2n_print_stacktrace(ptr noundef %2656) #13
  %2658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2659 = trunc nuw i8 %2658 to i1
  br i1 %2659, label %2660, label %2664

2660:                                             ; preds = %2654
  %2661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2662 = call i32 @fileno(ptr noundef %2661) #13
  %2663 = call i32 @isatty(i32 noundef %2662) #13
  %.not405 = icmp eq i32 %2663, 0
  br i1 %.not405, label %2664, label %2665

2664:                                             ; preds = %2660, %2654
  br label %2665

2665:                                             ; preds = %2660, %2664
  %.str.5.sink1380 = phi ptr [ @.str.5, %2664 ], [ @.str.2, %2660 ]
  store i32 %2655, ptr %426, align 4, !tbaa !5
  %2666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2667 = load i32, ptr @test_count, align 4, !tbaa !5
  %2668 = load i32, ptr %372, align 4, !tbaa !5
  %2669 = call ptr @s2n_strerror(i32 noundef %2668, ptr noundef nonnull @.str.4) #13
  %2670 = load i32, ptr %372, align 4, !tbaa !5
  %2671 = call ptr @s2n_strerror_debug(i32 noundef %2670, ptr noundef nonnull @.str.4) #13
  %2672 = load i32, ptr %426, align 4, !tbaa !5
  %2673 = call ptr @strerror(i32 noundef %2672) #13
  %2674 = load i32, ptr %426, align 4, !tbaa !5
  %2675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2666, ptr noundef nonnull %.str.5.sink1380, i32 noundef %2667, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 234, ptr noundef %2669, ptr noundef %2671, ptr noundef %2673, i32 noundef %2674) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2676:                                             ; preds = %2649
  %2677 = add nsw i32 %2650, 2
  store i32 %2677, ptr @test_count, align 4, !tbaa !5
  %2678 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #13
  %2679 = icmp eq ptr %2678, null
  br i1 %2679, label %2680, label %2702

2680:                                             ; preds = %2676
  %2681 = load i32, ptr %426, align 4, !tbaa !5
  %2682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2683 = call i32 @s2n_print_stacktrace(ptr noundef %2682) #13
  %2684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2685 = trunc nuw i8 %2684 to i1
  br i1 %2685, label %2686, label %2690

2686:                                             ; preds = %2680
  %2687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2688 = call i32 @fileno(ptr noundef %2687) #13
  %2689 = call i32 @isatty(i32 noundef %2688) #13
  %.not431 = icmp eq i32 %2689, 0
  br i1 %.not431, label %2690, label %2691

2690:                                             ; preds = %2686, %2680
  br label %2691

2691:                                             ; preds = %2686, %2690
  %.str.5.sink1389 = phi ptr [ @.str.5, %2690 ], [ @.str.2, %2686 ]
  store i32 %2681, ptr %426, align 4, !tbaa !5
  %2692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2693 = load i32, ptr @test_count, align 4, !tbaa !5
  %2694 = load i32, ptr %372, align 4, !tbaa !5
  %2695 = call ptr @s2n_strerror(i32 noundef %2694, ptr noundef nonnull @.str.4) #13
  %2696 = load i32, ptr %372, align 4, !tbaa !5
  %2697 = call ptr @s2n_strerror_debug(i32 noundef %2696, ptr noundef nonnull @.str.4) #13
  %2698 = load i32, ptr %426, align 4, !tbaa !5
  %2699 = call ptr @strerror(i32 noundef %2698) #13
  %2700 = load i32, ptr %426, align 4, !tbaa !5
  %2701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2692, ptr noundef nonnull %.str.5.sink1389, i32 noundef %2693, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 234, ptr noundef %2695, ptr noundef %2697, ptr noundef %2699, i32 noundef %2700) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2702:                                             ; preds = %2676
  store i32 0, ptr %372, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %426, align 4, !tbaa !5
  %2703 = load i32, ptr @test_count, align 4, !tbaa !5
  %2704 = add nsw i32 %2703, 1
  store i32 %2704, ptr @test_count, align 4, !tbaa !5
  %2705 = call i32 @s2n_protocol_preferences_contain(ptr noundef nonnull %18, ptr noundef nonnull %18, ptr noundef null) #13
  %2706 = call zeroext i1 @s2n_result_is_error(i32 %2705)
  br i1 %2706, label %2729, label %2707

2707:                                             ; preds = %2702
  %2708 = load i32, ptr %426, align 4, !tbaa !5
  %2709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2710 = call i32 @s2n_print_stacktrace(ptr noundef %2709) #13
  %2711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2712 = trunc nuw i8 %2711 to i1
  br i1 %2712, label %2713, label %2717

2713:                                             ; preds = %2707
  %2714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2715 = call i32 @fileno(ptr noundef %2714) #13
  %2716 = call i32 @isatty(i32 noundef %2715) #13
  %.not406 = icmp eq i32 %2716, 0
  br i1 %.not406, label %2717, label %2718

2717:                                             ; preds = %2713, %2707
  br label %2718

2718:                                             ; preds = %2713, %2717
  %.str.5.sink1398 = phi ptr [ @.str.5, %2717 ], [ @.str.2, %2713 ]
  store i32 %2708, ptr %426, align 4, !tbaa !5
  %2719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2720 = load i32, ptr @test_count, align 4, !tbaa !5
  %2721 = load i32, ptr %372, align 4, !tbaa !5
  %2722 = call ptr @s2n_strerror(i32 noundef %2721, ptr noundef nonnull @.str.4) #13
  %2723 = load i32, ptr %372, align 4, !tbaa !5
  %2724 = call ptr @s2n_strerror_debug(i32 noundef %2723, ptr noundef nonnull @.str.4) #13
  %2725 = load i32, ptr %426, align 4, !tbaa !5
  %2726 = call ptr @strerror(i32 noundef %2725) #13
  %2727 = load i32, ptr %426, align 4, !tbaa !5
  %2728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2719, ptr noundef nonnull %.str.5.sink1398, i32 noundef %2720, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 235, ptr noundef %2722, ptr noundef %2724, ptr noundef %2726, i32 noundef %2727) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2729:                                             ; preds = %2702
  %2730 = load i32, ptr @test_count, align 4, !tbaa !5
  %2731 = add nsw i32 %2730, 1
  store i32 %2731, ptr @test_count, align 4, !tbaa !5
  %2732 = load i32, ptr %372, align 4, !tbaa !5
  %2733 = icmp eq i32 %2732, 402653193
  br i1 %2733, label %2756, label %2734

2734:                                             ; preds = %2729
  %2735 = load i32, ptr %426, align 4, !tbaa !5
  %2736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2737 = call i32 @s2n_print_stacktrace(ptr noundef %2736) #13
  %2738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2739 = trunc nuw i8 %2738 to i1
  br i1 %2739, label %2740, label %2744

2740:                                             ; preds = %2734
  %2741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2742 = call i32 @fileno(ptr noundef %2741) #13
  %2743 = call i32 @isatty(i32 noundef %2742) #13
  %.not407 = icmp eq i32 %2743, 0
  br i1 %.not407, label %2744, label %2745

2744:                                             ; preds = %2740, %2734
  br label %2745

2745:                                             ; preds = %2740, %2744
  %.str.5.sink1407 = phi ptr [ @.str.5, %2744 ], [ @.str.2, %2740 ]
  store i32 %2735, ptr %426, align 4, !tbaa !5
  %2746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2747 = load i32, ptr @test_count, align 4, !tbaa !5
  %2748 = load i32, ptr %372, align 4, !tbaa !5
  %2749 = call ptr @s2n_strerror(i32 noundef %2748, ptr noundef nonnull @.str.4) #13
  %2750 = load i32, ptr %372, align 4, !tbaa !5
  %2751 = call ptr @s2n_strerror_debug(i32 noundef %2750, ptr noundef nonnull @.str.4) #13
  %2752 = load i32, ptr %426, align 4, !tbaa !5
  %2753 = call ptr @strerror(i32 noundef %2752) #13
  %2754 = load i32, ptr %426, align 4, !tbaa !5
  %2755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2746, ptr noundef nonnull %.str.5.sink1407, i32 noundef %2747, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 235, ptr noundef %2749, ptr noundef %2751, ptr noundef %2753, i32 noundef %2754) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2756:                                             ; preds = %2729
  %2757 = add nsw i32 %2730, 2
  store i32 %2757, ptr @test_count, align 4, !tbaa !5
  %2758 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #13
  %2759 = icmp eq ptr %2758, null
  br i1 %2759, label %2760, label %2782

2760:                                             ; preds = %2756
  %2761 = load i32, ptr %426, align 4, !tbaa !5
  %2762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2763 = call i32 @s2n_print_stacktrace(ptr noundef %2762) #13
  %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) #13
  %2769 = call i32 @isatty(i32 noundef %2768) #13
  %.not430 = icmp eq i32 %2769, 0
  br i1 %.not430, label %2770, label %2771

2770:                                             ; preds = %2766, %2760
  br label %2771

2771:                                             ; preds = %2766, %2770
  %.str.5.sink1416 = phi ptr [ @.str.5, %2770 ], [ @.str.2, %2766 ]
  store i32 %2761, ptr %426, 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 %372, align 4, !tbaa !5
  %2775 = call ptr @s2n_strerror(i32 noundef %2774, ptr noundef nonnull @.str.4) #13
  %2776 = load i32, ptr %372, align 4, !tbaa !5
  %2777 = call ptr @s2n_strerror_debug(i32 noundef %2776, ptr noundef nonnull @.str.4) #13
  %2778 = load i32, ptr %426, align 4, !tbaa !5
  %2779 = call ptr @strerror(i32 noundef %2778) #13
  %2780 = load i32, ptr %426, align 4, !tbaa !5
  %2781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2772, ptr noundef nonnull %.str.5.sink1416, i32 noundef %2773, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 235, ptr noundef %2775, ptr noundef %2777, ptr noundef %2779, i32 noundef %2780) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2782:                                             ; preds = %2756
  store i32 0, ptr %372, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  store i32 0, ptr %426, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #13
  %2783 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %2784 = load i32, ptr @test_count, align 4, !tbaa !5
  %2785 = add nsw i32 %2784, 1
  store i32 %2785, ptr @test_count, align 4, !tbaa !5
  %2786 = icmp eq ptr %2783, null
  br i1 %2786, label %2787, label %2809

2787:                                             ; preds = %2782
  %2788 = load i32, ptr %426, align 4, !tbaa !5
  %2789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2790 = call i32 @s2n_print_stacktrace(ptr noundef %2789) #13
  %2791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2792 = trunc nuw i8 %2791 to i1
  br i1 %2792, label %2793, label %2797

2793:                                             ; preds = %2787
  %2794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2795 = call i32 @fileno(ptr noundef %2794) #13
  %2796 = call i32 @isatty(i32 noundef %2795) #13
  %.not429 = icmp eq i32 %2796, 0
  br i1 %.not429, label %2797, label %2798

2797:                                             ; preds = %2793, %2787
  br label %2798

2798:                                             ; preds = %2793, %2797
  %.str.5.sink1425 = phi ptr [ @.str.5, %2797 ], [ @.str.2, %2793 ]
  store i32 %2788, ptr %426, align 4, !tbaa !5
  %2799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2800 = load i32, ptr @test_count, align 4, !tbaa !5
  %2801 = load i32, ptr %372, align 4, !tbaa !5
  %2802 = call ptr @s2n_strerror(i32 noundef %2801, ptr noundef nonnull @.str.4) #13
  %2803 = load i32, ptr %372, align 4, !tbaa !5
  %2804 = call ptr @s2n_strerror_debug(i32 noundef %2803, ptr noundef nonnull @.str.4) #13
  %2805 = load i32, ptr %426, align 4, !tbaa !5
  %2806 = call ptr @strerror(i32 noundef %2805) #13
  %2807 = load i32, ptr %426, align 4, !tbaa !5
  %2808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2799, ptr noundef nonnull %.str.5.sink1425, i32 noundef %2800, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 241, ptr noundef %2802, ptr noundef %2804, ptr noundef %2806, i32 noundef %2807) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2809:                                             ; preds = %2782
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #13
  store i8 1, ptr %20, align 1, !tbaa !11
  %2810 = add nsw i32 %2784, 2
  store i32 %2810, ptr @test_count, align 4, !tbaa !5
  %2811 = getelementptr inbounds i8, ptr %2783, i64 4032
  %2812 = call i32 @s2n_protocol_preferences_contain(ptr noundef nonnull %2811, ptr noundef nonnull %17, ptr noundef nonnull %20) #13
  %2813 = call zeroext i1 @s2n_result_is_ok(i32 %2812)
  br i1 %2813, label %2836, label %2814

2814:                                             ; preds = %2809
  %2815 = load i32, ptr %426, align 4, !tbaa !5
  %2816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2817 = call i32 @s2n_print_stacktrace(ptr noundef %2816) #13
  %2818 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2819 = trunc nuw i8 %2818 to i1
  br i1 %2819, label %2820, label %2824

2820:                                             ; preds = %2814
  %2821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2822 = call i32 @fileno(ptr noundef %2821) #13
  %2823 = call i32 @isatty(i32 noundef %2822) #13
  %.not408 = icmp eq i32 %2823, 0
  br i1 %.not408, label %2824, label %2825

2824:                                             ; preds = %2820, %2814
  br label %2825

2825:                                             ; preds = %2820, %2824
  %.str.5.sink1434 = phi ptr [ @.str.5, %2824 ], [ @.str.2, %2820 ]
  store i32 %2815, ptr %426, align 4, !tbaa !5
  %2826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2827 = load i32, ptr @test_count, align 4, !tbaa !5
  %2828 = load i32, ptr %372, align 4, !tbaa !5
  %2829 = call ptr @s2n_strerror(i32 noundef %2828, ptr noundef nonnull @.str.4) #13
  %2830 = load i32, ptr %372, align 4, !tbaa !5
  %2831 = call ptr @s2n_strerror_debug(i32 noundef %2830, ptr noundef nonnull @.str.4) #13
  %2832 = load i32, ptr %426, align 4, !tbaa !5
  %2833 = call ptr @strerror(i32 noundef %2832) #13
  %2834 = load i32, ptr %426, align 4, !tbaa !5
  %2835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2826, ptr noundef nonnull %.str.5.sink1434, i32 noundef %2827, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %2829, ptr noundef %2831, ptr noundef %2833, i32 noundef %2834) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2836:                                             ; preds = %2809
  %2837 = load i32, ptr @test_count, align 4, !tbaa !5
  %2838 = add nsw i32 %2837, 1
  store i32 %2838, ptr @test_count, align 4, !tbaa !5
  %2839 = load i8, ptr %20, align 1, !tbaa !11, !range !13, !noundef !14
  %2840 = trunc nuw i8 %2839 to i1
  br i1 %2840, label %2841, label %2863

2841:                                             ; preds = %2836
  %2842 = load i32, ptr %426, align 4, !tbaa !5
  %2843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2844 = call i32 @s2n_print_stacktrace(ptr noundef %2843) #13
  %2845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2846 = trunc nuw i8 %2845 to i1
  br i1 %2846, label %2847, label %2851

2847:                                             ; preds = %2841
  %2848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2849 = call i32 @fileno(ptr noundef %2848) #13
  %2850 = call i32 @isatty(i32 noundef %2849) #13
  %.not428 = icmp eq i32 %2850, 0
  br i1 %.not428, label %2851, label %2852

2851:                                             ; preds = %2847, %2841
  br label %2852

2852:                                             ; preds = %2847, %2851
  %.str.5.sink1443 = phi ptr [ @.str.5, %2851 ], [ @.str.2, %2847 ]
  store i32 %2842, ptr %426, align 4, !tbaa !5
  %2853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2854 = load i32, ptr @test_count, align 4, !tbaa !5
  %2855 = load i32, ptr %372, align 4, !tbaa !5
  %2856 = call ptr @s2n_strerror(i32 noundef %2855, ptr noundef nonnull @.str.4) #13
  %2857 = load i32, ptr %372, align 4, !tbaa !5
  %2858 = call ptr @s2n_strerror_debug(i32 noundef %2857, ptr noundef nonnull @.str.4) #13
  %2859 = load i32, ptr %426, align 4, !tbaa !5
  %2860 = call ptr @strerror(i32 noundef %2859) #13
  %2861 = load i32, ptr %426, align 4, !tbaa !5
  %2862 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2853, ptr noundef nonnull %.str.5.sink1443, i32 noundef %2854, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 245, ptr noundef %2856, ptr noundef %2858, ptr noundef %2860, i32 noundef %2861) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2863:                                             ; preds = %2836
  %2864 = add nsw i32 %2837, 2
  store i32 %2864, ptr @test_count, align 4, !tbaa !5
  %2865 = call i32 @s2n_connection_free(ptr noundef nonnull %2783) #13
  %2866 = icmp eq i32 %2865, -1
  br i1 %2866, label %2867, label %2889

2867:                                             ; preds = %2863
  %2868 = load i32, ptr %426, align 4, !tbaa !5
  %2869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2870 = call i32 @s2n_print_stacktrace(ptr noundef %2869) #13
  %2871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2872 = trunc nuw i8 %2871 to i1
  br i1 %2872, label %2873, label %2877

2873:                                             ; preds = %2867
  %2874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2875 = call i32 @fileno(ptr noundef %2874) #13
  %2876 = call i32 @isatty(i32 noundef %2875) #13
  %.not427 = icmp eq i32 %2876, 0
  br i1 %.not427, label %2877, label %2878

2877:                                             ; preds = %2873, %2867
  br label %2878

2878:                                             ; preds = %2873, %2877
  %.str.5.sink1452 = phi ptr [ @.str.5, %2877 ], [ @.str.2, %2873 ]
  store i32 %2868, ptr %426, align 4, !tbaa !5
  %2879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2880 = load i32, ptr @test_count, align 4, !tbaa !5
  %2881 = load i32, ptr %372, align 4, !tbaa !5
  %2882 = call ptr @s2n_strerror(i32 noundef %2881, ptr noundef nonnull @.str.4) #13
  %2883 = load i32, ptr %372, align 4, !tbaa !5
  %2884 = call ptr @s2n_strerror_debug(i32 noundef %2883, ptr noundef nonnull @.str.4) #13
  %2885 = load i32, ptr %426, align 4, !tbaa !5
  %2886 = call ptr @strerror(i32 noundef %2885) #13
  %2887 = load i32, ptr %426, align 4, !tbaa !5
  %2888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2879, ptr noundef nonnull %.str.5.sink1452, i32 noundef %2880, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 247, ptr noundef %2882, ptr noundef %2884, ptr noundef %2886, i32 noundef %2887) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2889:                                             ; preds = %2863
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #13
  %2890 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %2891 = load i32, ptr @test_count, align 4, !tbaa !5
  %2892 = add nsw i32 %2891, 1
  store i32 %2892, ptr @test_count, align 4, !tbaa !5
  %2893 = icmp eq ptr %2890, null
  br i1 %2893, label %2894, label %2916

2894:                                             ; preds = %2889
  %2895 = load i32, ptr %426, align 4, !tbaa !5
  %2896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2897 = call i32 @s2n_print_stacktrace(ptr noundef %2896) #13
  %2898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2899 = trunc nuw i8 %2898 to i1
  br i1 %2899, label %2900, label %2904

2900:                                             ; preds = %2894
  %2901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2902 = call i32 @fileno(ptr noundef %2901) #13
  %2903 = call i32 @isatty(i32 noundef %2902) #13
  %.not426 = icmp eq i32 %2903, 0
  br i1 %.not426, label %2904, label %2905

2904:                                             ; preds = %2900, %2894
  br label %2905

2905:                                             ; preds = %2900, %2904
  %.str.5.sink1461 = phi ptr [ @.str.5, %2904 ], [ @.str.2, %2900 ]
  store i32 %2895, ptr %426, align 4, !tbaa !5
  %2906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2907 = load i32, ptr @test_count, align 4, !tbaa !5
  %2908 = load i32, ptr %372, align 4, !tbaa !5
  %2909 = call ptr @s2n_strerror(i32 noundef %2908, ptr noundef nonnull @.str.4) #13
  %2910 = load i32, ptr %372, align 4, !tbaa !5
  %2911 = call ptr @s2n_strerror_debug(i32 noundef %2910, ptr noundef nonnull @.str.4) #13
  %2912 = load i32, ptr %426, align 4, !tbaa !5
  %2913 = call ptr @strerror(i32 noundef %2912) #13
  %2914 = load i32, ptr %426, align 4, !tbaa !5
  %2915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2906, ptr noundef nonnull %.str.5.sink1461, i32 noundef %2907, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 253, ptr noundef %2909, ptr noundef %2911, ptr noundef %2913, i32 noundef %2914) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2916:                                             ; preds = %2889
  %2917 = add nsw i32 %2891, 2
  store i32 %2917, ptr @test_count, align 4, !tbaa !5
  %2918 = call i32 @s2n_connection_append_protocol_preference(ptr noundef nonnull %2890, ptr noundef nonnull %3, i8 noundef zeroext 10) #13
  %2919 = icmp eq i32 %2918, -1
  br i1 %2919, label %2920, label %2942

2920:                                             ; preds = %2916
  %2921 = load i32, ptr %426, align 4, !tbaa !5
  %2922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2923 = call i32 @s2n_print_stacktrace(ptr noundef %2922) #13
  %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 %2930

2926:                                             ; preds = %2920
  %2927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2928 = call i32 @fileno(ptr noundef %2927) #13
  %2929 = call i32 @isatty(i32 noundef %2928) #13
  %.not425 = icmp eq i32 %2929, 0
  br i1 %.not425, label %2930, label %2931

2930:                                             ; preds = %2926, %2920
  br label %2931

2931:                                             ; preds = %2926, %2930
  %.str.5.sink1470 = phi ptr [ @.str.5, %2930 ], [ @.str.2, %2926 ]
  store i32 %2921, ptr %426, align 4, !tbaa !5
  %2932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2933 = load i32, ptr @test_count, align 4, !tbaa !5
  %2934 = load i32, ptr %372, align 4, !tbaa !5
  %2935 = call ptr @s2n_strerror(i32 noundef %2934, ptr noundef nonnull @.str.4) #13
  %2936 = load i32, ptr %372, align 4, !tbaa !5
  %2937 = call ptr @s2n_strerror_debug(i32 noundef %2936, ptr noundef nonnull @.str.4) #13
  %2938 = load i32, ptr %426, align 4, !tbaa !5
  %2939 = call ptr @strerror(i32 noundef %2938) #13
  %2940 = load i32, ptr %426, align 4, !tbaa !5
  %2941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2932, ptr noundef nonnull %.str.5.sink1470, i32 noundef %2933, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 255, ptr noundef %2935, ptr noundef %2937, ptr noundef %2939, i32 noundef %2940) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2942:                                             ; preds = %2916
  %2943 = load i32, ptr @test_count, align 4, !tbaa !5
  %2944 = add nsw i32 %2943, 1
  store i32 %2944, ptr @test_count, align 4, !tbaa !5
  %2945 = call i32 @s2n_connection_append_protocol_preference(ptr noundef nonnull %2890, ptr noundef nonnull %4, i8 noundef zeroext 15) #13
  %2946 = icmp eq i32 %2945, -1
  br i1 %2946, label %2947, label %2969

2947:                                             ; preds = %2942
  %2948 = load i32, ptr %426, align 4, !tbaa !5
  %2949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2950 = call i32 @s2n_print_stacktrace(ptr noundef %2949) #13
  %2951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2952 = trunc nuw i8 %2951 to i1
  br i1 %2952, label %2953, label %2957

2953:                                             ; preds = %2947
  %2954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2955 = call i32 @fileno(ptr noundef %2954) #13
  %2956 = call i32 @isatty(i32 noundef %2955) #13
  %.not424 = icmp eq i32 %2956, 0
  br i1 %.not424, label %2957, label %2958

2957:                                             ; preds = %2953, %2947
  br label %2958

2958:                                             ; preds = %2953, %2957
  %.str.5.sink1479 = phi ptr [ @.str.5, %2957 ], [ @.str.2, %2953 ]
  store i32 %2948, ptr %426, align 4, !tbaa !5
  %2959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2960 = load i32, ptr @test_count, align 4, !tbaa !5
  %2961 = load i32, ptr %372, align 4, !tbaa !5
  %2962 = call ptr @s2n_strerror(i32 noundef %2961, ptr noundef nonnull @.str.4) #13
  %2963 = load i32, ptr %372, align 4, !tbaa !5
  %2964 = call ptr @s2n_strerror_debug(i32 noundef %2963, ptr noundef nonnull @.str.4) #13
  %2965 = load i32, ptr %426, align 4, !tbaa !5
  %2966 = call ptr @strerror(i32 noundef %2965) #13
  %2967 = load i32, ptr %426, align 4, !tbaa !5
  %2968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2959, ptr noundef nonnull %.str.5.sink1479, i32 noundef %2960, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 256, ptr noundef %2962, ptr noundef %2964, ptr noundef %2966, i32 noundef %2967) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2969:                                             ; preds = %2942
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #13
  store i8 1, ptr %21, align 1, !tbaa !11
  %2970 = load i32, ptr @test_count, align 4, !tbaa !5
  %2971 = add nsw i32 %2970, 1
  store i32 %2971, ptr @test_count, align 4, !tbaa !5
  %2972 = getelementptr inbounds i8, ptr %2890, i64 4032
  %2973 = call i32 @s2n_protocol_preferences_contain(ptr noundef nonnull %2972, ptr noundef nonnull %17, ptr noundef nonnull %21) #13
  %2974 = call zeroext i1 @s2n_result_is_ok(i32 %2973)
  br i1 %2974, label %2997, label %2975

2975:                                             ; preds = %2969
  %2976 = load i32, ptr %426, align 4, !tbaa !5
  %2977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2978 = call i32 @s2n_print_stacktrace(ptr noundef %2977) #13
  %2979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2980 = trunc nuw i8 %2979 to i1
  br i1 %2980, label %2981, label %2985

2981:                                             ; preds = %2975
  %2982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2983 = call i32 @fileno(ptr noundef %2982) #13
  %2984 = call i32 @isatty(i32 noundef %2983) #13
  %.not409 = icmp eq i32 %2984, 0
  br i1 %.not409, label %2985, label %2986

2985:                                             ; preds = %2981, %2975
  br label %2986

2986:                                             ; preds = %2981, %2985
  %.str.5.sink1488 = phi ptr [ @.str.5, %2985 ], [ @.str.2, %2981 ]
  store i32 %2976, ptr %426, align 4, !tbaa !5
  %2987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2988 = load i32, ptr @test_count, align 4, !tbaa !5
  %2989 = load i32, ptr %372, align 4, !tbaa !5
  %2990 = call ptr @s2n_strerror(i32 noundef %2989, ptr noundef nonnull @.str.4) #13
  %2991 = load i32, ptr %372, align 4, !tbaa !5
  %2992 = call ptr @s2n_strerror_debug(i32 noundef %2991, ptr noundef nonnull @.str.4) #13
  %2993 = load i32, ptr %426, align 4, !tbaa !5
  %2994 = call ptr @strerror(i32 noundef %2993) #13
  %2995 = load i32, ptr %426, align 4, !tbaa !5
  %2996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2987, ptr noundef nonnull %.str.5.sink1488, i32 noundef %2988, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 259, ptr noundef %2990, ptr noundef %2992, ptr noundef %2994, i32 noundef %2995) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2997:                                             ; preds = %2969
  %2998 = load i32, ptr @test_count, align 4, !tbaa !5
  %2999 = add nsw i32 %2998, 1
  store i32 %2999, ptr @test_count, align 4, !tbaa !5
  %3000 = load i8, ptr %21, align 1, !tbaa !11, !range !13, !noundef !14
  %3001 = trunc nuw i8 %3000 to i1
  br i1 %3001, label %3002, label %3024

3002:                                             ; preds = %2997
  %3003 = load i32, ptr %426, align 4, !tbaa !5
  %3004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3005 = call i32 @s2n_print_stacktrace(ptr noundef %3004) #13
  %3006 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3007 = trunc nuw i8 %3006 to i1
  br i1 %3007, label %3008, label %3012

3008:                                             ; preds = %3002
  %3009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3010 = call i32 @fileno(ptr noundef %3009) #13
  %3011 = call i32 @isatty(i32 noundef %3010) #13
  %.not423 = icmp eq i32 %3011, 0
  br i1 %.not423, label %3012, label %3013

3012:                                             ; preds = %3008, %3002
  br label %3013

3013:                                             ; preds = %3008, %3012
  %.str.5.sink1497 = phi ptr [ @.str.5, %3012 ], [ @.str.2, %3008 ]
  store i32 %3003, ptr %426, align 4, !tbaa !5
  %3014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3015 = load i32, ptr @test_count, align 4, !tbaa !5
  %3016 = load i32, ptr %372, align 4, !tbaa !5
  %3017 = call ptr @s2n_strerror(i32 noundef %3016, ptr noundef nonnull @.str.4) #13
  %3018 = load i32, ptr %372, align 4, !tbaa !5
  %3019 = call ptr @s2n_strerror_debug(i32 noundef %3018, ptr noundef nonnull @.str.4) #13
  %3020 = load i32, ptr %426, align 4, !tbaa !5
  %3021 = call ptr @strerror(i32 noundef %3020) #13
  %3022 = load i32, ptr %426, align 4, !tbaa !5
  %3023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3014, ptr noundef nonnull %.str.5.sink1497, i32 noundef %3015, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 260, ptr noundef %3017, ptr noundef %3019, ptr noundef %3021, i32 noundef %3022) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3024:                                             ; preds = %2997
  %3025 = add nsw i32 %2998, 2
  store i32 %3025, ptr @test_count, align 4, !tbaa !5
  %3026 = call i32 @s2n_connection_free(ptr noundef nonnull %2890) #13
  %3027 = icmp eq i32 %3026, -1
  br i1 %3027, label %3028, label %3050

3028:                                             ; preds = %3024
  %3029 = load i32, ptr %426, align 4, !tbaa !5
  %3030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3031 = call i32 @s2n_print_stacktrace(ptr noundef %3030) #13
  %3032 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3033 = trunc nuw i8 %3032 to i1
  br i1 %3033, label %3034, label %3038

3034:                                             ; preds = %3028
  %3035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3036 = call i32 @fileno(ptr noundef %3035) #13
  %3037 = call i32 @isatty(i32 noundef %3036) #13
  %.not422 = icmp eq i32 %3037, 0
  br i1 %.not422, label %3038, label %3039

3038:                                             ; preds = %3034, %3028
  br label %3039

3039:                                             ; preds = %3034, %3038
  %.str.5.sink1506 = phi ptr [ @.str.5, %3038 ], [ @.str.2, %3034 ]
  store i32 %3029, ptr %426, align 4, !tbaa !5
  %3040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3041 = load i32, ptr @test_count, align 4, !tbaa !5
  %3042 = load i32, ptr %372, align 4, !tbaa !5
  %3043 = call ptr @s2n_strerror(i32 noundef %3042, ptr noundef nonnull @.str.4) #13
  %3044 = load i32, ptr %372, align 4, !tbaa !5
  %3045 = call ptr @s2n_strerror_debug(i32 noundef %3044, ptr noundef nonnull @.str.4) #13
  %3046 = load i32, ptr %426, align 4, !tbaa !5
  %3047 = call ptr @strerror(i32 noundef %3046) #13
  %3048 = load i32, ptr %426, align 4, !tbaa !5
  %3049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3040, ptr noundef nonnull %.str.5.sink1506, i32 noundef %3041, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 262, ptr noundef %3043, ptr noundef %3045, ptr noundef %3047, i32 noundef %3048) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3050:                                             ; preds = %3024
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #13
  %3051 = call ptr @s2n_connection_new(i32 noundef 0) #13
  %3052 = load i32, ptr @test_count, align 4, !tbaa !5
  %3053 = add nsw i32 %3052, 1
  store i32 %3053, ptr @test_count, align 4, !tbaa !5
  %3054 = icmp eq ptr %3051, null
  br i1 %3054, label %3055, label %3077

3055:                                             ; preds = %3050
  %3056 = load i32, ptr %426, align 4, !tbaa !5
  %3057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3058 = call i32 @s2n_print_stacktrace(ptr noundef %3057) #13
  %3059 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3060 = trunc nuw i8 %3059 to i1
  br i1 %3060, label %3061, label %3065

3061:                                             ; preds = %3055
  %3062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3063 = call i32 @fileno(ptr noundef %3062) #13
  %3064 = call i32 @isatty(i32 noundef %3063) #13
  %.not421 = icmp eq i32 %3064, 0
  br i1 %.not421, label %3065, label %3066

3065:                                             ; preds = %3061, %3055
  br label %3066

3066:                                             ; preds = %3061, %3065
  %.str.5.sink1515 = phi ptr [ @.str.5, %3065 ], [ @.str.2, %3061 ]
  store i32 %3056, ptr %426, align 4, !tbaa !5
  %3067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3068 = load i32, ptr @test_count, align 4, !tbaa !5
  %3069 = load i32, ptr %372, align 4, !tbaa !5
  %3070 = call ptr @s2n_strerror(i32 noundef %3069, ptr noundef nonnull @.str.4) #13
  %3071 = load i32, ptr %372, align 4, !tbaa !5
  %3072 = call ptr @s2n_strerror_debug(i32 noundef %3071, ptr noundef nonnull @.str.4) #13
  %3073 = load i32, ptr %426, align 4, !tbaa !5
  %3074 = call ptr @strerror(i32 noundef %3073) #13
  %3075 = load i32, ptr %426, align 4, !tbaa !5
  %3076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3067, ptr noundef nonnull %.str.5.sink1515, i32 noundef %3068, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 268, ptr noundef %3070, ptr noundef %3072, ptr noundef %3074, i32 noundef %3075) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3077:                                             ; preds = %3050
  %3078 = add nsw i32 %3052, 2
  store i32 %3078, ptr @test_count, align 4, !tbaa !5
  %3079 = call i32 @s2n_connection_append_protocol_preference(ptr noundef nonnull %3051, ptr noundef nonnull %3, i8 noundef zeroext 10) #13
  %3080 = icmp eq i32 %3079, -1
  br i1 %3080, label %3081, label %3103

3081:                                             ; preds = %3077
  %3082 = load i32, ptr %426, align 4, !tbaa !5
  %3083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3084 = call i32 @s2n_print_stacktrace(ptr noundef %3083) #13
  %3085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3086 = trunc nuw i8 %3085 to i1
  br i1 %3086, label %3087, label %3091

3087:                                             ; preds = %3081
  %3088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3089 = call i32 @fileno(ptr noundef %3088) #13
  %3090 = call i32 @isatty(i32 noundef %3089) #13
  %.not420 = icmp eq i32 %3090, 0
  br i1 %.not420, label %3091, label %3092

3091:                                             ; preds = %3087, %3081
  br label %3092

3092:                                             ; preds = %3087, %3091
  %.str.5.sink1524 = phi ptr [ @.str.5, %3091 ], [ @.str.2, %3087 ]
  store i32 %3082, ptr %426, align 4, !tbaa !5
  %3093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3094 = load i32, ptr @test_count, align 4, !tbaa !5
  %3095 = load i32, ptr %372, align 4, !tbaa !5
  %3096 = call ptr @s2n_strerror(i32 noundef %3095, ptr noundef nonnull @.str.4) #13
  %3097 = load i32, ptr %372, align 4, !tbaa !5
  %3098 = call ptr @s2n_strerror_debug(i32 noundef %3097, ptr noundef nonnull @.str.4) #13
  %3099 = load i32, ptr %426, align 4, !tbaa !5
  %3100 = call ptr @strerror(i32 noundef %3099) #13
  %3101 = load i32, ptr %426, align 4, !tbaa !5
  %3102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3093, ptr noundef nonnull %.str.5.sink1524, i32 noundef %3094, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 270, ptr noundef %3096, ptr noundef %3098, ptr noundef %3100, i32 noundef %3101) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3103:                                             ; preds = %3077
  %3104 = load i32, ptr @test_count, align 4, !tbaa !5
  %3105 = add nsw i32 %3104, 1
  store i32 %3105, ptr @test_count, align 4, !tbaa !5
  %3106 = call i32 @s2n_connection_append_protocol_preference(ptr noundef nonnull %3051, ptr noundef nonnull %4, i8 noundef zeroext 15) #13
  %3107 = icmp eq i32 %3106, -1
  br i1 %3107, label %3108, label %3130

3108:                                             ; preds = %3103
  %3109 = load i32, ptr %426, align 4, !tbaa !5
  %3110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3111 = call i32 @s2n_print_stacktrace(ptr noundef %3110) #13
  %3112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3113 = trunc nuw i8 %3112 to i1
  br i1 %3113, label %3114, label %3118

3114:                                             ; preds = %3108
  %3115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3116 = call i32 @fileno(ptr noundef %3115) #13
  %3117 = call i32 @isatty(i32 noundef %3116) #13
  %.not419 = icmp eq i32 %3117, 0
  br i1 %.not419, label %3118, label %3119

3118:                                             ; preds = %3114, %3108
  br label %3119

3119:                                             ; preds = %3114, %3118
  %.str.5.sink1533 = phi ptr [ @.str.5, %3118 ], [ @.str.2, %3114 ]
  store i32 %3109, ptr %426, align 4, !tbaa !5
  %3120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3121 = load i32, ptr @test_count, align 4, !tbaa !5
  %3122 = load i32, ptr %372, align 4, !tbaa !5
  %3123 = call ptr @s2n_strerror(i32 noundef %3122, ptr noundef nonnull @.str.4) #13
  %3124 = load i32, ptr %372, align 4, !tbaa !5
  %3125 = call ptr @s2n_strerror_debug(i32 noundef %3124, ptr noundef nonnull @.str.4) #13
  %3126 = load i32, ptr %426, align 4, !tbaa !5
  %3127 = call ptr @strerror(i32 noundef %3126) #13
  %3128 = load i32, ptr %426, align 4, !tbaa !5
  %3129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3120, ptr noundef nonnull %.str.5.sink1533, i32 noundef %3121, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 271, ptr noundef %3123, ptr noundef %3125, ptr noundef %3127, i32 noundef %3128) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3130:                                             ; preds = %3103
  %3131 = load i32, ptr @test_count, align 4, !tbaa !5
  %3132 = add nsw i32 %3131, 1
  store i32 %3132, ptr @test_count, align 4, !tbaa !5
  %3133 = call i32 @s2n_connection_append_protocol_preference(ptr noundef nonnull %3051, ptr noundef nonnull %16, i8 noundef zeroext 10) #13
  %3134 = icmp eq i32 %3133, -1
  br i1 %3134, label %3135, label %3157

3135:                                             ; preds = %3130
  %3136 = load i32, ptr %426, align 4, !tbaa !5
  %3137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3138 = call i32 @s2n_print_stacktrace(ptr noundef %3137) #13
  %3139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3140 = trunc nuw i8 %3139 to i1
  br i1 %3140, label %3141, label %3145

3141:                                             ; preds = %3135
  %3142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3143 = call i32 @fileno(ptr noundef %3142) #13
  %3144 = call i32 @isatty(i32 noundef %3143) #13
  %.not418 = icmp eq i32 %3144, 0
  br i1 %.not418, label %3145, label %3146

3145:                                             ; preds = %3141, %3135
  br label %3146

3146:                                             ; preds = %3141, %3145
  %.str.5.sink1542 = phi ptr [ @.str.5, %3145 ], [ @.str.2, %3141 ]
  store i32 %3136, ptr %426, align 4, !tbaa !5
  %3147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3148 = load i32, ptr @test_count, align 4, !tbaa !5
  %3149 = load i32, ptr %372, align 4, !tbaa !5
  %3150 = call ptr @s2n_strerror(i32 noundef %3149, ptr noundef nonnull @.str.4) #13
  %3151 = load i32, ptr %372, align 4, !tbaa !5
  %3152 = call ptr @s2n_strerror_debug(i32 noundef %3151, ptr noundef nonnull @.str.4) #13
  %3153 = load i32, ptr %426, align 4, !tbaa !5
  %3154 = call ptr @strerror(i32 noundef %3153) #13
  %3155 = load i32, ptr %426, align 4, !tbaa !5
  %3156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3147, ptr noundef nonnull %.str.5.sink1542, i32 noundef %3148, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %3150, ptr noundef %3152, ptr noundef %3154, i32 noundef %3155) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3157:                                             ; preds = %3130
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #13
  store i8 0, ptr %22, align 1, !tbaa !11
  %3158 = load i32, ptr @test_count, align 4, !tbaa !5
  %3159 = add nsw i32 %3158, 1
  store i32 %3159, ptr @test_count, align 4, !tbaa !5
  %3160 = getelementptr inbounds i8, ptr %3051, i64 4032
  %3161 = call i32 @s2n_protocol_preferences_contain(ptr noundef nonnull %3160, ptr noundef nonnull %17, ptr noundef nonnull %22) #13
  %3162 = call zeroext i1 @s2n_result_is_ok(i32 %3161)
  br i1 %3162, label %3185, label %3163

3163:                                             ; preds = %3157
  %3164 = load i32, ptr %426, align 4, !tbaa !5
  %3165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3166 = call i32 @s2n_print_stacktrace(ptr noundef %3165) #13
  %3167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3168 = trunc nuw i8 %3167 to i1
  br i1 %3168, label %3169, label %3173

3169:                                             ; preds = %3163
  %3170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3171 = call i32 @fileno(ptr noundef %3170) #13
  %3172 = call i32 @isatty(i32 noundef %3171) #13
  %.not410 = icmp eq i32 %3172, 0
  br i1 %.not410, label %3173, label %3174

3173:                                             ; preds = %3169, %3163
  br label %3174

3174:                                             ; preds = %3169, %3173
  %.str.5.sink1551 = phi ptr [ @.str.5, %3173 ], [ @.str.2, %3169 ]
  store i32 %3164, ptr %426, align 4, !tbaa !5
  %3175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3176 = load i32, ptr @test_count, align 4, !tbaa !5
  %3177 = load i32, ptr %372, align 4, !tbaa !5
  %3178 = call ptr @s2n_strerror(i32 noundef %3177, ptr noundef nonnull @.str.4) #13
  %3179 = load i32, ptr %372, align 4, !tbaa !5
  %3180 = call ptr @s2n_strerror_debug(i32 noundef %3179, ptr noundef nonnull @.str.4) #13
  %3181 = load i32, ptr %426, align 4, !tbaa !5
  %3182 = call ptr @strerror(i32 noundef %3181) #13
  %3183 = load i32, ptr %426, align 4, !tbaa !5
  %3184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3175, ptr noundef nonnull %.str.5.sink1551, i32 noundef %3176, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 275, ptr noundef %3178, ptr noundef %3180, ptr noundef %3182, i32 noundef %3183) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3185:                                             ; preds = %3157
  %3186 = load i32, ptr @test_count, align 4, !tbaa !5
  %3187 = add nsw i32 %3186, 1
  store i32 %3187, ptr @test_count, align 4, !tbaa !5
  %3188 = load i8, ptr %22, align 1, !tbaa !11, !range !13, !noundef !14
  %3189 = trunc nuw i8 %3188 to i1
  br i1 %3189, label %3212, label %3190

3190:                                             ; preds = %3185
  %3191 = load i32, ptr %426, align 4, !tbaa !5
  %3192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3193 = call i32 @s2n_print_stacktrace(ptr noundef %3192) #13
  %3194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3195 = trunc nuw i8 %3194 to i1
  br i1 %3195, label %3196, label %3200

3196:                                             ; preds = %3190
  %3197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3198 = call i32 @fileno(ptr noundef %3197) #13
  %3199 = call i32 @isatty(i32 noundef %3198) #13
  %.not411 = icmp eq i32 %3199, 0
  br i1 %.not411, label %3200, label %3201

3200:                                             ; preds = %3196, %3190
  br label %3201

3201:                                             ; preds = %3196, %3200
  %.str.5.sink1560 = phi ptr [ @.str.5, %3200 ], [ @.str.2, %3196 ]
  store i32 %3191, ptr %426, align 4, !tbaa !5
  %3202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3203 = load i32, ptr @test_count, align 4, !tbaa !5
  %3204 = load i32, ptr %372, align 4, !tbaa !5
  %3205 = call ptr @s2n_strerror(i32 noundef %3204, ptr noundef nonnull @.str.4) #13
  %3206 = load i32, ptr %372, align 4, !tbaa !5
  %3207 = call ptr @s2n_strerror_debug(i32 noundef %3206, ptr noundef nonnull @.str.4) #13
  %3208 = load i32, ptr %426, align 4, !tbaa !5
  %3209 = call ptr @strerror(i32 noundef %3208) #13
  %3210 = load i32, ptr %426, align 4, !tbaa !5
  %3211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3202, ptr noundef nonnull %.str.5.sink1560, i32 noundef %3203, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 276, ptr noundef %3205, ptr noundef %3207, ptr noundef %3209, i32 noundef %3210) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3212:                                             ; preds = %3185
  %3213 = add nsw i32 %3186, 2
  store i32 %3213, ptr @test_count, align 4, !tbaa !5
  %3214 = call i32 @s2n_connection_free(ptr noundef nonnull %3051) #13
  %3215 = icmp eq i32 %3214, -1
  br i1 %3215, label %3216, label %3238

3216:                                             ; preds = %3212
  %3217 = load i32, ptr %426, align 4, !tbaa !5
  %3218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3219 = call i32 @s2n_print_stacktrace(ptr noundef %3218) #13
  %3220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3221 = trunc nuw i8 %3220 to i1
  br i1 %3221, label %3222, label %3226

3222:                                             ; preds = %3216
  %3223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3224 = call i32 @fileno(ptr noundef %3223) #13
  %3225 = call i32 @isatty(i32 noundef %3224) #13
  %.not417 = icmp eq i32 %3225, 0
  br i1 %.not417, label %3226, label %3227

3226:                                             ; preds = %3222, %3216
  br label %3227

3227:                                             ; preds = %3222, %3226
  %.str.5.sink1569 = phi ptr [ @.str.5, %3226 ], [ @.str.2, %3222 ]
  store i32 %3217, ptr %426, align 4, !tbaa !5
  %3228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3229 = load i32, ptr @test_count, align 4, !tbaa !5
  %3230 = load i32, ptr %372, align 4, !tbaa !5
  %3231 = call ptr @s2n_strerror(i32 noundef %3230, ptr noundef nonnull @.str.4) #13
  %3232 = load i32, ptr %372, align 4, !tbaa !5
  %3233 = call ptr @s2n_strerror_debug(i32 noundef %3232, ptr noundef nonnull @.str.4) #13
  %3234 = load i32, ptr %426, align 4, !tbaa !5
  %3235 = call ptr @strerror(i32 noundef %3234) #13
  %3236 = load i32, ptr %426, align 4, !tbaa !5
  %3237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3228, ptr noundef nonnull %.str.5.sink1569, i32 noundef %3229, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 278, ptr noundef %3231, ptr noundef %3233, ptr noundef %3235, i32 noundef %3236) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3238:                                             ; preds = %3212
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %17) #13
  call void @llvm.lifetime.end.p0(i64 10, ptr nonnull %16) #13
  %3239 = call i32 @s2n_cleanup() #13
  %3240 = icmp eq i32 %3239, -1
  br i1 %3240, label %3241, label %3263

3241:                                             ; preds = %3238
  %3242 = load i32, ptr %426, align 4, !tbaa !5
  %3243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3244 = call i32 @s2n_print_stacktrace(ptr noundef %3243) #13
  %3245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3246 = trunc nuw i8 %3245 to i1
  br i1 %3246, label %3247, label %3251

3247:                                             ; preds = %3241
  %3248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3249 = call i32 @fileno(ptr noundef %3248) #13
  %3250 = call i32 @isatty(i32 noundef %3249) #13
  %.not416 = icmp eq i32 %3250, 0
  br i1 %.not416, label %3251, label %3252

3251:                                             ; preds = %3247, %3241
  br label %3252

3252:                                             ; preds = %3247, %3251
  %.str.5.sink1578 = phi ptr [ @.str.5, %3251 ], [ @.str.2, %3247 ]
  store i32 %3242, ptr %426, align 4, !tbaa !5
  %3253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3254 = load i32, ptr @test_count, align 4, !tbaa !5
  %3255 = load i32, ptr %372, align 4, !tbaa !5
  %3256 = call ptr @s2n_strerror(i32 noundef %3255, ptr noundef nonnull @.str.4) #13
  %3257 = load i32, ptr %372, align 4, !tbaa !5
  %3258 = call ptr @s2n_strerror_debug(i32 noundef %3257, ptr noundef nonnull @.str.4) #13
  %3259 = load i32, ptr %426, align 4, !tbaa !5
  %3260 = call ptr @strerror(i32 noundef %3259) #13
  %3261 = load i32, ptr %426, align 4, !tbaa !5
  %3262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3253, ptr noundef nonnull %.str.5.sink1578, i32 noundef %3254, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 282, ptr noundef %3256, ptr noundef %3258, ptr noundef %3260, i32 noundef %3261) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3263:                                             ; preds = %3238
  %3264 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #13
  %3265 = icmp eq i32 %3264, -1
  br i1 %3265, label %3266, label %3288

3266:                                             ; preds = %3263
  %3267 = load i32, ptr %426, align 4, !tbaa !5
  %3268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3269 = call i32 @s2n_print_stacktrace(ptr noundef %3268) #13
  %3270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3271 = trunc nuw i8 %3270 to i1
  br i1 %3271, label %3272, label %3276

3272:                                             ; preds = %3266
  %3273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3274 = call i32 @fileno(ptr noundef %3273) #13
  %3275 = call i32 @isatty(i32 noundef %3274) #13
  %.not415 = icmp eq i32 %3275, 0
  br i1 %.not415, label %3276, label %3277

3276:                                             ; preds = %3272, %3266
  br label %3277

3277:                                             ; preds = %3272, %3276
  %.str.5.sink1587 = phi ptr [ @.str.5, %3276 ], [ @.str.2, %3272 ]
  store i32 %3267, ptr %426, align 4, !tbaa !5
  %3278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3279 = load i32, ptr @test_count, align 4, !tbaa !5
  %3280 = load i32, ptr %372, align 4, !tbaa !5
  %3281 = call ptr @s2n_strerror(i32 noundef %3280, ptr noundef nonnull @.str.4) #13
  %3282 = load i32, ptr %372, align 4, !tbaa !5
  %3283 = call ptr @s2n_strerror_debug(i32 noundef %3282, ptr noundef nonnull @.str.4) #13
  %3284 = load i32, ptr %426, align 4, !tbaa !5
  %3285 = call ptr @strerror(i32 noundef %3284) #13
  %3286 = load i32, ptr %426, align 4, !tbaa !5
  %3287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3278, ptr noundef nonnull %.str.5.sink1587, i32 noundef %3279, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 282, ptr noundef %3281, ptr noundef %3283, ptr noundef %3285, i32 noundef %3286) #15
  call void @exit(i32 noundef 1) #16
  unreachable

3288:                                             ; preds = %3263
  %3289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3290 = trunc nuw i8 %3289 to i1
  br i1 %3290, label %3291, label %3302

3291:                                             ; preds = %3288
  %3292 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3293 = call i32 @fileno(ptr noundef %3292) #13
  %3294 = call i32 @isatty(i32 noundef %3293) #13
  %.not412 = icmp eq i32 %3294, 0
  br i1 %.not412, label %3302, label %3295

3295:                                             ; preds = %3291
  %3296 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not414 = icmp eq i32 %3296, 0
  %3297 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not414, label %3300, label %3298

3298:                                             ; preds = %3295
  %3299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3297, ptr noundef nonnull @.str.75, i32 noundef %3296) #13
  br label %3309

3300:                                             ; preds = %3295
  %3301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3297, ptr noundef nonnull @.str.76) #13
  br label %3309

3302:                                             ; preds = %3291, %3288
  %3303 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not413 = icmp eq i32 %3303, 0
  %3304 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not413, label %3307, label %3305

3305:                                             ; preds = %3302
  %3306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3304, ptr noundef nonnull @.str.77, i32 noundef %3303) #13
  br label %3309

3307:                                             ; preds = %3302
  %3308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3304, ptr noundef nonnull @.str.78) #13
  br label %3309

3309:                                             ; preds = %3305, %3307, %3298, %3300
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #13
  call void @llvm.lifetime.end.p0(i64 257, ptr nonnull %7) #13
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #13
  call void @llvm.lifetime.end.p0(i64 255, ptr nonnull %5) #13
  call void @llvm.lifetime.end.p0(i64 15, ptr nonnull %4) #13
  call void @llvm.lifetime.end.p0(i64 10, ptr nonnull %3) #13
  ret i32 0
}

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

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

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #9

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

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_append_protocol_preference(ptr noundef, ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_append_protocol_preference(ptr noundef, ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_protocol_preferences(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_protocol_preferences(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

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

declare i32 @s2n_protocol_preferences_read(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_uint8(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

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

declare i32 @s2n_stuffer_skip_read(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_protocol_preferences_contain(ptr noundef, ptr noundef, ptr noundef) 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 #12

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

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

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


; Effective O3 passes: DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass