; LLVM IR from aws/s2n-tls :: tests/unit (s2n_cookie_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_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_test_io_pair = type { i32, i32 }
%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 [74 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [25 x i8], align 1
@__const.main.test_cookie_sizes = external hidden unnamed_addr constant [5 x i16], align 2
@.str.14 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [46 x i8], align 1
@s2n_client_cookie_extension = external constant %struct.s2n_extension_type, align 8
@.str.17 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [46 x i8], align 1
@s2n_server_cookie_extension = external constant %struct.s2n_extension_type, align 8
@.str.21 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [92 x i8], align 1
@security_policy_test_tls13_retry = external constant %struct.s2n_security_policy, align 8
@.str.53 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [55 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main() #0 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca [5 x i16], align 2
  %8 = alloca [5 x %struct.s2n_blob], align 16
  %9 = alloca i64, align 8
  %10 = alloca i32, align 4
  %11 = alloca %struct.s2n_result, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca %struct.s2n_result, align 4
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca %struct.s2n_result, align 4
  %25 = alloca i64, align 8
  %26 = alloca ptr, align 8
  %27 = alloca i32, align 4
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  %30 = alloca %struct.s2n_stuffer, align 8
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca %struct.s2n_result, align 4
  %41 = alloca %struct.s2n_result, align 4
  %42 = alloca i64, align 8
  %43 = alloca ptr, align 8
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca i32, align 4
  %47 = alloca %struct.s2n_stuffer, align 8
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca 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 %struct.s2n_result, align 4
  %66 = alloca %struct.s2n_result, align 4
  %67 = alloca ptr, align 8
  %68 = alloca i32, align 4
  %69 = alloca ptr, align 8
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i64, align 8
  %74 = alloca ptr, align 8
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca ptr, align 8
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca %struct.s2n_test_io_pair, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca %struct.s2n_result, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca %struct.s2n_result, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca %struct.s2n_result, align 4
  %104 = alloca %struct.s2n_result, align 4
  %105 = alloca ptr, align 8
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca ptr, align 8
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca %struct.s2n_test_io_pair, align 4
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca i32, align 4
  %121 = alloca %struct.s2n_result, align 4
  %122 = alloca %struct.s2n_result, align 4
  %123 = alloca i64, align 8
  %124 = alloca ptr, align 8
  %125 = alloca i32, align 4
  %126 = alloca i32, align 4
  %127 = alloca ptr, align 8
  %128 = alloca i32, align 4
  %129 = alloca i32, align 4
  %130 = alloca %struct.s2n_test_io_pair, align 4
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca i32, align 4
  %135 = alloca i32, align 4
  %136 = alloca i32, align 4
  %137 = alloca i32, align 4
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca i32, align 4
  %142 = alloca i32, align 4
  %143 = alloca %struct.s2n_result, align 4
  %144 = alloca %struct.s2n_result, align 4
  %145 = alloca ptr, align 8
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  %148 = alloca ptr, align 8
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca i64, align 8
  %152 = alloca i32, align 4
  %153 = alloca i8, align 1
  %154 = alloca i8, align 1
  %155 = alloca i64, align 8
  %156 = alloca i8, align 1
  %157 = alloca i32, align 4
  %158 = alloca i32, align 4
  %159 = alloca %struct.s2n_test_io_pair, align 4
  %160 = alloca i32, align 4
  %161 = alloca i32, align 4
  %162 = alloca i32, align 4
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca i32, align 4
  %166 = alloca i32, 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
  %173 = alloca i32, align 4
  %174 = alloca i32, align 4
  %175 = alloca %struct.s2n_result, align 4
  %176 = alloca %struct.s2n_result, align 4
  %177 = alloca i64, align 8
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca i32, align 4
  %182 = alloca %struct.s2n_result, align 4
  %183 = alloca %struct.s2n_result, align 4
  store i32 0, ptr %1, align 4
  br label %184

184:                                              ; preds = %0
  br label %185

185:                                              ; preds = %184
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %186 = load ptr, ptr @stdout, align 8, !tbaa !9
  %187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %186, ptr noundef @.str, ptr noundef @.str.1) #11
  %188 = load ptr, ptr @stdout, align 8, !tbaa !9
  %189 = call i32 @fflush(ptr noundef %188)
  br label %190

190:                                              ; preds = %185
  %191 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %192 = icmp eq i32 %191, -1
  br i1 %192, label %193, label %244

193:                                              ; preds = %190
  br label %194

194:                                              ; preds = %193
  br label %195

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

202:                                              ; preds = %195
  %203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %204 = call i32 @fileno(ptr noundef %203) #11
  %205 = call i32 @isatty(i32 noundef %204) #11
  %206 = icmp ne i32 %205, 0
  br i1 %206, label %207, label %224

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

224:                                              ; preds = %202, %195
  %225 = load i32, ptr %2, align 4, !tbaa !5
  %226 = call ptr @__errno_location() #12
  store i32 %225, ptr %226, align 4, !tbaa !5
  %227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %228 = load i32, ptr @test_count, align 4, !tbaa !5
  %229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %230 = load i32, ptr %229, align 4, !tbaa !5
  %231 = call ptr @s2n_strerror(i32 noundef %230, ptr noundef @.str.4)
  %232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %233 = load i32, ptr %232, align 4, !tbaa !5
  %234 = call ptr @s2n_strerror_debug(i32 noundef %233, ptr noundef @.str.4)
  %235 = call ptr @__errno_location() #12
  %236 = load i32, ptr %235, align 4, !tbaa !5
  %237 = call ptr @strerror(i32 noundef %236) #11
  %238 = call ptr @__errno_location() #12
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %227, ptr noundef @.str.5, i32 noundef %228, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 30, ptr noundef %231, ptr noundef %234, ptr noundef %237, i32 noundef %239) #11
  br label %241

241:                                              ; preds = %224, %207
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #11
  br label %242

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

243:                                              ; No predecessors!
  br label %244

244:                                              ; preds = %243, %190
  br label %245

245:                                              ; preds = %244
  br label %246

246:                                              ; preds = %245
  %247 = load i32, ptr @test_count, align 4, !tbaa !5
  %248 = add nsw i32 %247, 1
  store i32 %248, ptr @test_count, align 4, !tbaa !5
  %249 = call i32 @s2n_enable_atexit()
  %250 = icmp eq i32 %249, -1
  br i1 %250, label %251, label %302

251:                                              ; preds = %246
  br label %252

252:                                              ; preds = %251
  br label %253

253:                                              ; preds = %252
  call void @llvm.lifetime.start.p0(i64 4, ptr %3) #11
  %254 = call ptr @__errno_location() #12
  %255 = load i32, ptr %254, align 4, !tbaa !5
  store i32 %255, ptr %3, align 4, !tbaa !5
  %256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %257 = call i32 @s2n_print_stacktrace(ptr noundef %256)
  %258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %259 = trunc i8 %258 to i1
  br i1 %259, label %260, label %282

260:                                              ; preds = %253
  %261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %262 = call i32 @fileno(ptr noundef %261) #11
  %263 = call i32 @isatty(i32 noundef %262) #11
  %264 = icmp ne i32 %263, 0
  br i1 %264, label %265, label %282

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

282:                                              ; preds = %260, %253
  %283 = load i32, ptr %3, align 4, !tbaa !5
  %284 = call ptr @__errno_location() #12
  store i32 %283, ptr %284, align 4, !tbaa !5
  %285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %286 = load i32, ptr @test_count, align 4, !tbaa !5
  %287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %288 = load i32, ptr %287, align 4, !tbaa !5
  %289 = call ptr @s2n_strerror(i32 noundef %288, ptr noundef @.str.4)
  %290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %291 = load i32, ptr %290, align 4, !tbaa !5
  %292 = call ptr @s2n_strerror_debug(i32 noundef %291, ptr noundef @.str.4)
  %293 = call ptr @__errno_location() #12
  %294 = load i32, ptr %293, align 4, !tbaa !5
  %295 = call ptr @strerror(i32 noundef %294) #11
  %296 = call ptr @__errno_location() #12
  %297 = load i32, ptr %296, align 4, !tbaa !5
  %298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %285, ptr noundef @.str.5, i32 noundef %286, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 30, ptr noundef %289, ptr noundef %292, ptr noundef %295, i32 noundef %297) #11
  br label %299

299:                                              ; preds = %282, %265
  call void @llvm.lifetime.end.p0(i64 4, ptr %3) #11
  br label %300

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

301:                                              ; No predecessors!
  br label %302

302:                                              ; preds = %301, %246
  br label %303

303:                                              ; preds = %302
  br label %304

304:                                              ; preds = %303
  br label %305

305:                                              ; preds = %304
  %306 = call i32 @s2n_init()
  %307 = icmp eq i32 %306, -1
  br i1 %307, label %308, label %359

308:                                              ; preds = %305
  br label %309

309:                                              ; preds = %308
  br label %310

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

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

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

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

356:                                              ; preds = %339, %322
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #11
  br label %357

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

358:                                              ; No predecessors!
  br label %359

359:                                              ; preds = %358, %305
  br label %360

360:                                              ; preds = %359
  br label %361

361:                                              ; preds = %360
  %362 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %362, label %510, label %363

363:                                              ; preds = %361
  br label %364

364:                                              ; preds = %363
  br label %365

365:                                              ; preds = %364
  %366 = call i32 @s2n_cleanup()
  %367 = icmp eq i32 %366, -1
  br i1 %367, label %368, label %419

368:                                              ; preds = %365
  br label %369

369:                                              ; preds = %368
  br label %370

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

377:                                              ; preds = %370
  %378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %379 = call i32 @fileno(ptr noundef %378) #11
  %380 = call i32 @isatty(i32 noundef %379) #11
  %381 = icmp ne i32 %380, 0
  br i1 %381, label %382, label %399

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

399:                                              ; preds = %377, %370
  %400 = load i32, ptr %5, align 4, !tbaa !5
  %401 = call ptr @__errno_location() #12
  store i32 %400, ptr %401, align 4, !tbaa !5
  %402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %403 = load i32, ptr @test_count, align 4, !tbaa !5
  %404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = call ptr @s2n_strerror(i32 noundef %405, ptr noundef @.str.4)
  %407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %408 = load i32, ptr %407, align 4, !tbaa !5
  %409 = call ptr @s2n_strerror_debug(i32 noundef %408, ptr noundef @.str.4)
  %410 = call ptr @__errno_location() #12
  %411 = load i32, ptr %410, align 4, !tbaa !5
  %412 = call ptr @strerror(i32 noundef %411) #11
  %413 = call ptr @__errno_location() #12
  %414 = load i32, ptr %413, align 4, !tbaa !5
  %415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %402, ptr noundef @.str.5, i32 noundef %403, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 33, ptr noundef %406, ptr noundef %409, ptr noundef %412, i32 noundef %414) #11
  br label %416

416:                                              ; preds = %399, %382
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #11
  br label %417

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

418:                                              ; No predecessors!
  br label %419

419:                                              ; preds = %418, %365
  br label %420

420:                                              ; preds = %419
  br label %421

421:                                              ; preds = %420
  br label %422

422:                                              ; preds = %421
  %423 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %424 = icmp eq i32 %423, -1
  br i1 %424, label %425, label %476

425:                                              ; preds = %422
  br label %426

426:                                              ; preds = %425
  br label %427

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

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

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

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

473:                                              ; preds = %456, %439
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %474

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

475:                                              ; No predecessors!
  br label %476

476:                                              ; preds = %475, %422
  br label %477

477:                                              ; preds = %476
  %478 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %479 = trunc i8 %478 to i1
  br i1 %479, label %480, label %496

480:                                              ; preds = %477
  %481 = load ptr, ptr @stdout, align 8, !tbaa !9
  %482 = call i32 @fileno(ptr noundef %481) #11
  %483 = call i32 @isatty(i32 noundef %482) #11
  %484 = icmp ne i32 %483, 0
  br i1 %484, label %485, label %496

485:                                              ; preds = %480
  %486 = load i32, ptr @test_count, align 4, !tbaa !5
  %487 = icmp ne i32 %486, 0
  br i1 %487, label %488, label %492

488:                                              ; preds = %485
  %489 = load ptr, ptr @stdout, align 8, !tbaa !9
  %490 = load i32, ptr @test_count, align 4, !tbaa !5
  %491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %489, ptr noundef @.str.10, i32 noundef %490) #11
  br label %495

492:                                              ; preds = %485
  %493 = load ptr, ptr @stdout, align 8, !tbaa !9
  %494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %493, ptr noundef @.str.11) #11
  br label %495

495:                                              ; preds = %492, %488
  br label %507

496:                                              ; preds = %480, %477
  %497 = load i32, ptr @test_count, align 4, !tbaa !5
  %498 = icmp ne i32 %497, 0
  br i1 %498, label %499, label %503

499:                                              ; preds = %496
  %500 = load ptr, ptr @stdout, align 8, !tbaa !9
  %501 = load i32, ptr @test_count, align 4, !tbaa !5
  %502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %500, ptr noundef @.str.12, i32 noundef %501) #11
  br label %506

503:                                              ; preds = %496
  %504 = load ptr, ptr @stdout, align 8, !tbaa !9
  %505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %504, ptr noundef @.str.13) #11
  br label %506

506:                                              ; preds = %503, %499
  br label %507

507:                                              ; preds = %506, %495
  store i32 0, ptr %1, align 4
  br label %8473

508:                                              ; No predecessors!
  br label %509

509:                                              ; preds = %508
  br label %510

510:                                              ; preds = %509, %361
  call void @llvm.lifetime.start.p0(i64 10, ptr %7) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 2 %7, ptr align 2 @__const.main.test_cookie_sizes, i64 10, i1 false)
  call void @llvm.lifetime.start.p0(i64 120, ptr %8) #11
  call void @llvm.memset.p0.i64(ptr align 16 %8, i8 0, i64 120, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #11
  store i64 0, ptr %9, align 8, !tbaa !15
  br label %511

511:                                              ; preds = %649, %510
  %512 = load i64, ptr %9, align 8, !tbaa !15
  %513 = icmp ult i64 %512, 5
  br i1 %513, label %515, label %514

514:                                              ; preds = %511
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #11
  br label %652

515:                                              ; preds = %511
  br label %516

516:                                              ; preds = %515
  %517 = load i32, ptr @test_count, align 4, !tbaa !5
  %518 = add nsw i32 %517, 1
  store i32 %518, ptr @test_count, align 4, !tbaa !5
  %519 = load i64, ptr %9, align 8, !tbaa !15
  %520 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %519
  %521 = load i64, ptr %9, align 8, !tbaa !15
  %522 = getelementptr inbounds [5 x i16], ptr %7, i64 0, i64 %521
  %523 = load i16, ptr %522, align 2, !tbaa !17
  %524 = zext i16 %523 to i32
  %525 = call i32 @s2n_alloc(ptr noundef %520, i32 noundef %524)
  %526 = icmp eq i32 %525, -1
  br i1 %526, label %527, label %580

527:                                              ; preds = %516
  br label %528

528:                                              ; preds = %527
  br label %529

529:                                              ; preds = %528
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #11
  %530 = call ptr @__errno_location() #12
  %531 = load i32, ptr %530, align 4, !tbaa !5
  store i32 %531, ptr %10, align 4, !tbaa !5
  %532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %533 = call i32 @s2n_print_stacktrace(ptr noundef %532)
  %534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %535 = trunc i8 %534 to i1
  br i1 %535, label %536, label %558

536:                                              ; preds = %529
  %537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %538 = call i32 @fileno(ptr noundef %537) #11
  %539 = call i32 @isatty(i32 noundef %538) #11
  %540 = icmp ne i32 %539, 0
  br i1 %540, label %541, label %558

541:                                              ; preds = %536
  %542 = load i32, ptr %10, align 4, !tbaa !5
  %543 = call ptr @__errno_location() #12
  store i32 %542, ptr %543, align 4, !tbaa !5
  %544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %545 = load i32, ptr @test_count, align 4, !tbaa !5
  %546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %547 = load i32, ptr %546, align 4, !tbaa !5
  %548 = call ptr @s2n_strerror(i32 noundef %547, ptr noundef @.str.4)
  %549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %550 = load i32, ptr %549, align 4, !tbaa !5
  %551 = call ptr @s2n_strerror_debug(i32 noundef %550, ptr noundef @.str.4)
  %552 = call ptr @__errno_location() #12
  %553 = load i32, ptr %552, align 4, !tbaa !5
  %554 = call ptr @strerror(i32 noundef %553) #11
  %555 = call ptr @__errno_location() #12
  %556 = load i32, ptr %555, align 4, !tbaa !5
  %557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %544, ptr noundef @.str.2, i32 noundef %545, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 39, ptr noundef %548, ptr noundef %551, ptr noundef %554, i32 noundef %556) #11
  br label %575

558:                                              ; preds = %536, %529
  %559 = load i32, ptr %10, align 4, !tbaa !5
  %560 = call ptr @__errno_location() #12
  store i32 %559, ptr %560, align 4, !tbaa !5
  %561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %562 = load i32, ptr @test_count, align 4, !tbaa !5
  %563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %564 = load i32, ptr %563, align 4, !tbaa !5
  %565 = call ptr @s2n_strerror(i32 noundef %564, ptr noundef @.str.4)
  %566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %567 = load i32, ptr %566, align 4, !tbaa !5
  %568 = call ptr @s2n_strerror_debug(i32 noundef %567, ptr noundef @.str.4)
  %569 = call ptr @__errno_location() #12
  %570 = load i32, ptr %569, align 4, !tbaa !5
  %571 = call ptr @strerror(i32 noundef %570) #11
  %572 = call ptr @__errno_location() #12
  %573 = load i32, ptr %572, align 4, !tbaa !5
  %574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %561, ptr noundef @.str.5, i32 noundef %562, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 39, ptr noundef %565, ptr noundef %568, ptr noundef %571, i32 noundef %573) #11
  br label %575

575:                                              ; preds = %558, %541
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #11
  br label %576

576:                                              ; preds = %575
  br label %577

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

578:                                              ; No predecessors!
  br label %579

579:                                              ; preds = %578
  br label %580

580:                                              ; preds = %579, %516
  br label %581

581:                                              ; preds = %580
  br label %582

582:                                              ; preds = %581
  br label %583

583:                                              ; preds = %582
  %584 = load i32, ptr @test_count, align 4, !tbaa !5
  %585 = add nsw i32 %584, 1
  store i32 %585, ptr @test_count, align 4, !tbaa !5
  %586 = load i64, ptr %9, align 8, !tbaa !15
  %587 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %586
  %588 = call i32 @s2n_get_public_random_data(ptr noundef %587)
  %589 = getelementptr inbounds %struct.s2n_result, ptr %11, i32 0, i32 0
  store i32 %588, ptr %589, align 4
  %590 = getelementptr inbounds %struct.s2n_result, ptr %11, i32 0, i32 0
  %591 = load i32, ptr %590, align 4
  %592 = call zeroext i1 @s2n_result_is_ok(i32 %591)
  br i1 %592, label %646, label %593

593:                                              ; preds = %583
  br label %594

594:                                              ; preds = %593
  br label %595

595:                                              ; preds = %594
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #11
  %596 = call ptr @__errno_location() #12
  %597 = load i32, ptr %596, align 4, !tbaa !5
  store i32 %597, ptr %12, align 4, !tbaa !5
  %598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %599 = call i32 @s2n_print_stacktrace(ptr noundef %598)
  %600 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %601 = trunc i8 %600 to i1
  br i1 %601, label %602, label %624

602:                                              ; preds = %595
  %603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %604 = call i32 @fileno(ptr noundef %603) #11
  %605 = call i32 @isatty(i32 noundef %604) #11
  %606 = icmp ne i32 %605, 0
  br i1 %606, label %607, label %624

607:                                              ; preds = %602
  %608 = load i32, ptr %12, align 4, !tbaa !5
  %609 = call ptr @__errno_location() #12
  store i32 %608, ptr %609, align 4, !tbaa !5
  %610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %611 = load i32, ptr @test_count, align 4, !tbaa !5
  %612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %613 = load i32, ptr %612, align 4, !tbaa !5
  %614 = call ptr @s2n_strerror(i32 noundef %613, ptr noundef @.str.4)
  %615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %616 = load i32, ptr %615, align 4, !tbaa !5
  %617 = call ptr @s2n_strerror_debug(i32 noundef %616, ptr noundef @.str.4)
  %618 = call ptr @__errno_location() #12
  %619 = load i32, ptr %618, align 4, !tbaa !5
  %620 = call ptr @strerror(i32 noundef %619) #11
  %621 = call ptr @__errno_location() #12
  %622 = load i32, ptr %621, align 4, !tbaa !5
  %623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %610, ptr noundef @.str.2, i32 noundef %611, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 40, ptr noundef %614, ptr noundef %617, ptr noundef %620, i32 noundef %622) #11
  br label %641

624:                                              ; preds = %602, %595
  %625 = load i32, ptr %12, align 4, !tbaa !5
  %626 = call ptr @__errno_location() #12
  store i32 %625, ptr %626, align 4, !tbaa !5
  %627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %628 = load i32, ptr @test_count, align 4, !tbaa !5
  %629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %630 = load i32, ptr %629, align 4, !tbaa !5
  %631 = call ptr @s2n_strerror(i32 noundef %630, ptr noundef @.str.4)
  %632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %633 = load i32, ptr %632, align 4, !tbaa !5
  %634 = call ptr @s2n_strerror_debug(i32 noundef %633, ptr noundef @.str.4)
  %635 = call ptr @__errno_location() #12
  %636 = load i32, ptr %635, align 4, !tbaa !5
  %637 = call ptr @strerror(i32 noundef %636) #11
  %638 = call ptr @__errno_location() #12
  %639 = load i32, ptr %638, align 4, !tbaa !5
  %640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %627, ptr noundef @.str.5, i32 noundef %628, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 40, ptr noundef %631, ptr noundef %634, ptr noundef %637, i32 noundef %639) #11
  br label %641

641:                                              ; preds = %624, %607
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  br label %642

642:                                              ; preds = %641
  br label %643

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

644:                                              ; No predecessors!
  br label %645

645:                                              ; preds = %644
  br label %646

646:                                              ; preds = %645, %583
  br label %647

647:                                              ; preds = %646
  br label %648

648:                                              ; preds = %647
  br label %649

649:                                              ; preds = %648
  %650 = load i64, ptr %9, align 8, !tbaa !15
  %651 = add i64 %650, 1
  store i64 %651, ptr %9, align 8, !tbaa !15
  br label %511, !llvm.loop !19

652:                                              ; preds = %514
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #11
  %653 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %653, ptr %13, align 8, !tbaa !9
  br label %654

654:                                              ; preds = %652
  %655 = load i32, ptr @test_count, align 4, !tbaa !5
  %656 = add nsw i32 %655, 1
  store i32 %656, ptr @test_count, align 4, !tbaa !5
  %657 = load ptr, ptr %13, align 8, !tbaa !9
  %658 = icmp eq ptr %657, null
  br i1 %658, label %659, label %712

659:                                              ; preds = %654
  br label %660

660:                                              ; preds = %659
  br label %661

661:                                              ; preds = %660
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  %662 = call ptr @__errno_location() #12
  %663 = load i32, ptr %662, align 4, !tbaa !5
  store i32 %663, ptr %14, align 4, !tbaa !5
  %664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %665 = call i32 @s2n_print_stacktrace(ptr noundef %664)
  %666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %667 = trunc i8 %666 to i1
  br i1 %667, label %668, label %690

668:                                              ; preds = %661
  %669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %670 = call i32 @fileno(ptr noundef %669) #11
  %671 = call i32 @isatty(i32 noundef %670) #11
  %672 = icmp ne i32 %671, 0
  br i1 %672, label %673, label %690

673:                                              ; preds = %668
  %674 = load i32, ptr %14, align 4, !tbaa !5
  %675 = call ptr @__errno_location() #12
  store i32 %674, ptr %675, align 4, !tbaa !5
  %676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %677 = load i32, ptr @test_count, align 4, !tbaa !5
  %678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %679 = load i32, ptr %678, align 4, !tbaa !5
  %680 = call ptr @s2n_strerror(i32 noundef %679, ptr noundef @.str.4)
  %681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %682 = load i32, ptr %681, align 4, !tbaa !5
  %683 = call ptr @s2n_strerror_debug(i32 noundef %682, ptr noundef @.str.4)
  %684 = call ptr @__errno_location() #12
  %685 = load i32, ptr %684, align 4, !tbaa !5
  %686 = call ptr @strerror(i32 noundef %685) #11
  %687 = call ptr @__errno_location() #12
  %688 = load i32, ptr %687, align 4, !tbaa !5
  %689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %676, ptr noundef @.str.2, i32 noundef %677, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 54, ptr noundef %680, ptr noundef %683, ptr noundef %686, i32 noundef %688) #11
  br label %707

690:                                              ; preds = %668, %661
  %691 = load i32, ptr %14, align 4, !tbaa !5
  %692 = call ptr @__errno_location() #12
  store i32 %691, ptr %692, align 4, !tbaa !5
  %693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %694 = load i32, ptr @test_count, align 4, !tbaa !5
  %695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %696 = load i32, ptr %695, align 4, !tbaa !5
  %697 = call ptr @s2n_strerror(i32 noundef %696, ptr noundef @.str.4)
  %698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %699 = load i32, ptr %698, align 4, !tbaa !5
  %700 = call ptr @s2n_strerror_debug(i32 noundef %699, ptr noundef @.str.4)
  %701 = call ptr @__errno_location() #12
  %702 = load i32, ptr %701, align 4, !tbaa !5
  %703 = call ptr @strerror(i32 noundef %702) #11
  %704 = call ptr @__errno_location() #12
  %705 = load i32, ptr %704, align 4, !tbaa !5
  %706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %693, ptr noundef @.str.5, i32 noundef %694, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 54, ptr noundef %697, ptr noundef %700, ptr noundef %703, i32 noundef %705) #11
  br label %707

707:                                              ; preds = %690, %673
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  br label %708

708:                                              ; preds = %707
  br label %709

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

710:                                              ; No predecessors!
  br label %711

711:                                              ; preds = %710
  br label %712

712:                                              ; preds = %711, %654
  br label %713

713:                                              ; preds = %712
  br label %714

714:                                              ; preds = %713
  br label %715

715:                                              ; preds = %714
  %716 = load i32, ptr @test_count, align 4, !tbaa !5
  %717 = add nsw i32 %716, 1
  store i32 %717, ptr @test_count, align 4, !tbaa !5
  %718 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_cookie_extension, i32 0, i32 5), align 8, !tbaa !21
  %719 = load ptr, ptr %13, align 8, !tbaa !9
  %720 = call zeroext i1 %718(ptr noundef %719)
  br i1 %720, label %721, label %774

721:                                              ; preds = %715
  br label %722

722:                                              ; preds = %721
  br label %723

723:                                              ; preds = %722
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #11
  %724 = call ptr @__errno_location() #12
  %725 = load i32, ptr %724, align 4, !tbaa !5
  store i32 %725, ptr %15, align 4, !tbaa !5
  %726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %727 = call i32 @s2n_print_stacktrace(ptr noundef %726)
  %728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %729 = trunc i8 %728 to i1
  br i1 %729, label %730, label %752

730:                                              ; preds = %723
  %731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %732 = call i32 @fileno(ptr noundef %731) #11
  %733 = call i32 @isatty(i32 noundef %732) #11
  %734 = icmp ne i32 %733, 0
  br i1 %734, label %735, label %752

735:                                              ; preds = %730
  %736 = load i32, ptr %15, align 4, !tbaa !5
  %737 = call ptr @__errno_location() #12
  store i32 %736, ptr %737, align 4, !tbaa !5
  %738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %739 = load i32, ptr @test_count, align 4, !tbaa !5
  %740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %741 = load i32, ptr %740, align 4, !tbaa !5
  %742 = call ptr @s2n_strerror(i32 noundef %741, ptr noundef @.str.4)
  %743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %744 = load i32, ptr %743, align 4, !tbaa !5
  %745 = call ptr @s2n_strerror_debug(i32 noundef %744, ptr noundef @.str.4)
  %746 = call ptr @__errno_location() #12
  %747 = load i32, ptr %746, align 4, !tbaa !5
  %748 = call ptr @strerror(i32 noundef %747) #11
  %749 = call ptr @__errno_location() #12
  %750 = load i32, ptr %749, align 4, !tbaa !5
  %751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %738, ptr noundef @.str.2, i32 noundef %739, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 57, ptr noundef %742, ptr noundef %745, ptr noundef %748, i32 noundef %750) #11
  br label %769

752:                                              ; preds = %730, %723
  %753 = load i32, ptr %15, align 4, !tbaa !5
  %754 = call ptr @__errno_location() #12
  store i32 %753, ptr %754, align 4, !tbaa !5
  %755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %756 = load i32, ptr @test_count, align 4, !tbaa !5
  %757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %758 = load i32, ptr %757, align 4, !tbaa !5
  %759 = call ptr @s2n_strerror(i32 noundef %758, ptr noundef @.str.4)
  %760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %761 = load i32, ptr %760, align 4, !tbaa !5
  %762 = call ptr @s2n_strerror_debug(i32 noundef %761, ptr noundef @.str.4)
  %763 = call ptr @__errno_location() #12
  %764 = load i32, ptr %763, align 4, !tbaa !5
  %765 = call ptr @strerror(i32 noundef %764) #11
  %766 = call ptr @__errno_location() #12
  %767 = load i32, ptr %766, align 4, !tbaa !5
  %768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %755, ptr noundef @.str.5, i32 noundef %756, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 57, ptr noundef %759, ptr noundef %762, ptr noundef %765, i32 noundef %767) #11
  br label %769

769:                                              ; preds = %752, %735
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %770

770:                                              ; preds = %769
  br label %771

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

772:                                              ; No predecessors!
  br label %773

773:                                              ; preds = %772
  br label %774

774:                                              ; preds = %773, %715
  br label %775

775:                                              ; preds = %774
  br label %776

776:                                              ; preds = %775
  br label %777

777:                                              ; preds = %776
  %778 = load i32, ptr @test_count, align 4, !tbaa !5
  %779 = add nsw i32 %778, 1
  store i32 %779, ptr @test_count, align 4, !tbaa !5
  %780 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 0
  %781 = load ptr, ptr %13, align 8, !tbaa !9
  %782 = getelementptr inbounds %struct.s2n_connection, ptr %781, i32 0, i32 83
  %783 = call i32 @s2n_dup(ptr noundef %780, ptr noundef %782)
  %784 = icmp eq i32 %783, -1
  br i1 %784, label %785, label %838

785:                                              ; preds = %777
  br label %786

786:                                              ; preds = %785
  br label %787

787:                                              ; preds = %786
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #11
  %788 = call ptr @__errno_location() #12
  %789 = load i32, ptr %788, align 4, !tbaa !5
  store i32 %789, ptr %16, align 4, !tbaa !5
  %790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %791 = call i32 @s2n_print_stacktrace(ptr noundef %790)
  %792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %793 = trunc i8 %792 to i1
  br i1 %793, label %794, label %816

794:                                              ; preds = %787
  %795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %796 = call i32 @fileno(ptr noundef %795) #11
  %797 = call i32 @isatty(i32 noundef %796) #11
  %798 = icmp ne i32 %797, 0
  br i1 %798, label %799, label %816

799:                                              ; preds = %794
  %800 = load i32, ptr %16, align 4, !tbaa !5
  %801 = call ptr @__errno_location() #12
  store i32 %800, ptr %801, align 4, !tbaa !5
  %802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %803 = load i32, ptr @test_count, align 4, !tbaa !5
  %804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %805 = load i32, ptr %804, align 4, !tbaa !5
  %806 = call ptr @s2n_strerror(i32 noundef %805, ptr noundef @.str.4)
  %807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %808 = load i32, ptr %807, align 4, !tbaa !5
  %809 = call ptr @s2n_strerror_debug(i32 noundef %808, ptr noundef @.str.4)
  %810 = call ptr @__errno_location() #12
  %811 = load i32, ptr %810, align 4, !tbaa !5
  %812 = call ptr @strerror(i32 noundef %811) #11
  %813 = call ptr @__errno_location() #12
  %814 = load i32, ptr %813, align 4, !tbaa !5
  %815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %802, ptr noundef @.str.2, i32 noundef %803, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 60, ptr noundef %806, ptr noundef %809, ptr noundef %812, i32 noundef %814) #11
  br label %833

816:                                              ; preds = %794, %787
  %817 = load i32, ptr %16, align 4, !tbaa !5
  %818 = call ptr @__errno_location() #12
  store i32 %817, ptr %818, align 4, !tbaa !5
  %819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %820 = load i32, ptr @test_count, align 4, !tbaa !5
  %821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %822 = load i32, ptr %821, align 4, !tbaa !5
  %823 = call ptr @s2n_strerror(i32 noundef %822, ptr noundef @.str.4)
  %824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %825 = load i32, ptr %824, align 4, !tbaa !5
  %826 = call ptr @s2n_strerror_debug(i32 noundef %825, ptr noundef @.str.4)
  %827 = call ptr @__errno_location() #12
  %828 = load i32, ptr %827, align 4, !tbaa !5
  %829 = call ptr @strerror(i32 noundef %828) #11
  %830 = call ptr @__errno_location() #12
  %831 = load i32, ptr %830, align 4, !tbaa !5
  %832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %819, ptr noundef @.str.5, i32 noundef %820, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 60, ptr noundef %823, ptr noundef %826, ptr noundef %829, i32 noundef %831) #11
  br label %833

833:                                              ; preds = %816, %799
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  br label %834

834:                                              ; preds = %833
  br label %835

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

836:                                              ; No predecessors!
  br label %837

837:                                              ; preds = %836
  br label %838

838:                                              ; preds = %837, %777
  br label %839

839:                                              ; preds = %838
  br label %840

840:                                              ; preds = %839
  br label %841

841:                                              ; preds = %840
  %842 = load i32, ptr @test_count, align 4, !tbaa !5
  %843 = add nsw i32 %842, 1
  store i32 %843, ptr @test_count, align 4, !tbaa !5
  %844 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_cookie_extension, i32 0, i32 5), align 8, !tbaa !21
  %845 = load ptr, ptr %13, align 8, !tbaa !9
  %846 = call zeroext i1 %844(ptr noundef %845)
  br i1 %846, label %900, label %847

847:                                              ; preds = %841
  br label %848

848:                                              ; preds = %847
  br label %849

849:                                              ; preds = %848
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #11
  %850 = call ptr @__errno_location() #12
  %851 = load i32, ptr %850, align 4, !tbaa !5
  store i32 %851, ptr %17, align 4, !tbaa !5
  %852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %853 = call i32 @s2n_print_stacktrace(ptr noundef %852)
  %854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %855 = trunc i8 %854 to i1
  br i1 %855, label %856, label %878

856:                                              ; preds = %849
  %857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %858 = call i32 @fileno(ptr noundef %857) #11
  %859 = call i32 @isatty(i32 noundef %858) #11
  %860 = icmp ne i32 %859, 0
  br i1 %860, label %861, label %878

861:                                              ; preds = %856
  %862 = load i32, ptr %17, align 4, !tbaa !5
  %863 = call ptr @__errno_location() #12
  store i32 %862, ptr %863, align 4, !tbaa !5
  %864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %865 = load i32, ptr @test_count, align 4, !tbaa !5
  %866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %867 = load i32, ptr %866, align 4, !tbaa !5
  %868 = call ptr @s2n_strerror(i32 noundef %867, ptr noundef @.str.4)
  %869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %870 = load i32, ptr %869, align 4, !tbaa !5
  %871 = call ptr @s2n_strerror_debug(i32 noundef %870, ptr noundef @.str.4)
  %872 = call ptr @__errno_location() #12
  %873 = load i32, ptr %872, align 4, !tbaa !5
  %874 = call ptr @strerror(i32 noundef %873) #11
  %875 = call ptr @__errno_location() #12
  %876 = load i32, ptr %875, align 4, !tbaa !5
  %877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %864, ptr noundef @.str.2, i32 noundef %865, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 61, ptr noundef %868, ptr noundef %871, ptr noundef %874, i32 noundef %876) #11
  br label %895

878:                                              ; preds = %856, %849
  %879 = load i32, ptr %17, align 4, !tbaa !5
  %880 = call ptr @__errno_location() #12
  store i32 %879, ptr %880, align 4, !tbaa !5
  %881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %882 = load i32, ptr @test_count, align 4, !tbaa !5
  %883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %884 = load i32, ptr %883, align 4, !tbaa !5
  %885 = call ptr @s2n_strerror(i32 noundef %884, ptr noundef @.str.4)
  %886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %887 = load i32, ptr %886, align 4, !tbaa !5
  %888 = call ptr @s2n_strerror_debug(i32 noundef %887, ptr noundef @.str.4)
  %889 = call ptr @__errno_location() #12
  %890 = load i32, ptr %889, align 4, !tbaa !5
  %891 = call ptr @strerror(i32 noundef %890) #11
  %892 = call ptr @__errno_location() #12
  %893 = load i32, ptr %892, align 4, !tbaa !5
  %894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %881, ptr noundef @.str.5, i32 noundef %882, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 61, ptr noundef %885, ptr noundef %888, ptr noundef %891, i32 noundef %893) #11
  br label %895

895:                                              ; preds = %878, %861
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  br label %896

896:                                              ; preds = %895
  br label %897

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

898:                                              ; No predecessors!
  br label %899

899:                                              ; preds = %898
  br label %900

900:                                              ; preds = %899, %841
  br label %901

901:                                              ; preds = %900
  br label %902

902:                                              ; preds = %901
  %903 = call i32 @s2n_connection_ptr_free(ptr noundef %13)
  %904 = getelementptr inbounds %struct.s2n_result, ptr %18, i32 0, i32 0
  store i32 %903, ptr %904, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #11
  %905 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %905, ptr %19, align 8, !tbaa !9
  br label %906

906:                                              ; preds = %902
  %907 = load i32, ptr @test_count, align 4, !tbaa !5
  %908 = add nsw i32 %907, 1
  store i32 %908, ptr @test_count, align 4, !tbaa !5
  %909 = load ptr, ptr %19, align 8, !tbaa !9
  %910 = icmp eq ptr %909, null
  br i1 %910, label %911, label %964

911:                                              ; preds = %906
  br label %912

912:                                              ; preds = %911
  br label %913

913:                                              ; preds = %912
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  %914 = call ptr @__errno_location() #12
  %915 = load i32, ptr %914, align 4, !tbaa !5
  store i32 %915, ptr %20, align 4, !tbaa !5
  %916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %917 = call i32 @s2n_print_stacktrace(ptr noundef %916)
  %918 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %919 = trunc i8 %918 to i1
  br i1 %919, label %920, label %942

920:                                              ; preds = %913
  %921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %922 = call i32 @fileno(ptr noundef %921) #11
  %923 = call i32 @isatty(i32 noundef %922) #11
  %924 = icmp ne i32 %923, 0
  br i1 %924, label %925, label %942

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

942:                                              ; preds = %920, %913
  %943 = load i32, ptr %20, align 4, !tbaa !5
  %944 = call ptr @__errno_location() #12
  store i32 %943, ptr %944, align 4, !tbaa !5
  %945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %946 = load i32, ptr @test_count, align 4, !tbaa !5
  %947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %948 = load i32, ptr %947, align 4, !tbaa !5
  %949 = call ptr @s2n_strerror(i32 noundef %948, ptr noundef @.str.4)
  %950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %951 = load i32, ptr %950, align 4, !tbaa !5
  %952 = call ptr @s2n_strerror_debug(i32 noundef %951, ptr noundef @.str.4)
  %953 = call ptr @__errno_location() #12
  %954 = load i32, ptr %953, align 4, !tbaa !5
  %955 = call ptr @strerror(i32 noundef %954) #11
  %956 = call ptr @__errno_location() #12
  %957 = load i32, ptr %956, align 4, !tbaa !5
  %958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %945, ptr noundef @.str.5, i32 noundef %946, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 70, ptr noundef %949, ptr noundef %952, ptr noundef %955, i32 noundef %957) #11
  br label %959

959:                                              ; preds = %942, %925
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %960

960:                                              ; preds = %959
  br label %961

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

962:                                              ; No predecessors!
  br label %963

963:                                              ; preds = %962
  br label %964

964:                                              ; preds = %963, %906
  br label %965

965:                                              ; preds = %964
  br label %966

966:                                              ; preds = %965
  br label %967

967:                                              ; preds = %966
  %968 = load i32, ptr @test_count, align 4, !tbaa !5
  %969 = add nsw i32 %968, 1
  store i32 %969, ptr @test_count, align 4, !tbaa !5
  %970 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_cookie_extension, i32 0, i32 5), align 8, !tbaa !21
  %971 = load ptr, ptr %19, align 8, !tbaa !9
  %972 = call zeroext i1 %970(ptr noundef %971)
  br i1 %972, label %973, label %1026

973:                                              ; preds = %967
  br label %974

974:                                              ; preds = %973
  br label %975

975:                                              ; preds = %974
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #11
  %976 = call ptr @__errno_location() #12
  %977 = load i32, ptr %976, align 4, !tbaa !5
  store i32 %977, ptr %21, align 4, !tbaa !5
  %978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %979 = call i32 @s2n_print_stacktrace(ptr noundef %978)
  %980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %981 = trunc i8 %980 to i1
  br i1 %981, label %982, label %1004

982:                                              ; preds = %975
  %983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %984 = call i32 @fileno(ptr noundef %983) #11
  %985 = call i32 @isatty(i32 noundef %984) #11
  %986 = icmp ne i32 %985, 0
  br i1 %986, label %987, label %1004

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

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

1021:                                             ; preds = %1004, %987
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %1022

1022:                                             ; preds = %1021
  br label %1023

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

1024:                                             ; No predecessors!
  br label %1025

1025:                                             ; preds = %1024
  br label %1026

1026:                                             ; preds = %1025, %967
  br label %1027

1027:                                             ; preds = %1026
  br label %1028

1028:                                             ; preds = %1027
  br label %1029

1029:                                             ; preds = %1028
  %1030 = load i32, ptr @test_count, align 4, !tbaa !5
  %1031 = add nsw i32 %1030, 1
  store i32 %1031, ptr @test_count, align 4, !tbaa !5
  %1032 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 0
  %1033 = load ptr, ptr %19, align 8, !tbaa !9
  %1034 = getelementptr inbounds %struct.s2n_connection, ptr %1033, i32 0, i32 83
  %1035 = call i32 @s2n_dup(ptr noundef %1032, ptr noundef %1034)
  %1036 = icmp eq i32 %1035, -1
  br i1 %1036, label %1037, label %1090

1037:                                             ; preds = %1029
  br label %1038

1038:                                             ; preds = %1037
  br label %1039

1039:                                             ; preds = %1038
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #11
  %1040 = call ptr @__errno_location() #12
  %1041 = load i32, ptr %1040, align 4, !tbaa !5
  store i32 %1041, ptr %22, align 4, !tbaa !5
  %1042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1043 = call i32 @s2n_print_stacktrace(ptr noundef %1042)
  %1044 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1045 = trunc i8 %1044 to i1
  br i1 %1045, label %1046, label %1068

1046:                                             ; preds = %1039
  %1047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1048 = call i32 @fileno(ptr noundef %1047) #11
  %1049 = call i32 @isatty(i32 noundef %1048) #11
  %1050 = icmp ne i32 %1049, 0
  br i1 %1050, label %1051, label %1068

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

1068:                                             ; preds = %1046, %1039
  %1069 = load i32, ptr %22, align 4, !tbaa !5
  %1070 = call ptr @__errno_location() #12
  store i32 %1069, ptr %1070, align 4, !tbaa !5
  %1071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1072 = load i32, ptr @test_count, align 4, !tbaa !5
  %1073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1074 = load i32, ptr %1073, align 4, !tbaa !5
  %1075 = call ptr @s2n_strerror(i32 noundef %1074, ptr noundef @.str.4)
  %1076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1077 = load i32, ptr %1076, align 4, !tbaa !5
  %1078 = call ptr @s2n_strerror_debug(i32 noundef %1077, ptr noundef @.str.4)
  %1079 = call ptr @__errno_location() #12
  %1080 = load i32, ptr %1079, align 4, !tbaa !5
  %1081 = call ptr @strerror(i32 noundef %1080) #11
  %1082 = call ptr @__errno_location() #12
  %1083 = load i32, ptr %1082, align 4, !tbaa !5
  %1084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1071, ptr noundef @.str.5, i32 noundef %1072, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 76, ptr noundef %1075, ptr noundef %1078, ptr noundef %1081, i32 noundef %1083) #11
  br label %1085

1085:                                             ; preds = %1068, %1051
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %1086

1086:                                             ; preds = %1085
  br label %1087

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

1088:                                             ; No predecessors!
  br label %1089

1089:                                             ; preds = %1088
  br label %1090

1090:                                             ; preds = %1089, %1029
  br label %1091

1091:                                             ; preds = %1090
  br label %1092

1092:                                             ; preds = %1091
  br label %1093

1093:                                             ; preds = %1092
  %1094 = load i32, ptr @test_count, align 4, !tbaa !5
  %1095 = add nsw i32 %1094, 1
  store i32 %1095, ptr @test_count, align 4, !tbaa !5
  %1096 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_cookie_extension, i32 0, i32 5), align 8, !tbaa !21
  %1097 = load ptr, ptr %19, align 8, !tbaa !9
  %1098 = call zeroext i1 %1096(ptr noundef %1097)
  br i1 %1098, label %1152, label %1099

1099:                                             ; preds = %1093
  br label %1100

1100:                                             ; preds = %1099
  br label %1101

1101:                                             ; preds = %1100
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #11
  %1102 = call ptr @__errno_location() #12
  %1103 = load i32, ptr %1102, align 4, !tbaa !5
  store i32 %1103, ptr %23, align 4, !tbaa !5
  %1104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1105 = call i32 @s2n_print_stacktrace(ptr noundef %1104)
  %1106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1107 = trunc i8 %1106 to i1
  br i1 %1107, label %1108, label %1130

1108:                                             ; preds = %1101
  %1109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1110 = call i32 @fileno(ptr noundef %1109) #11
  %1111 = call i32 @isatty(i32 noundef %1110) #11
  %1112 = icmp ne i32 %1111, 0
  br i1 %1112, label %1113, label %1130

1113:                                             ; preds = %1108
  %1114 = load i32, ptr %23, align 4, !tbaa !5
  %1115 = call ptr @__errno_location() #12
  store i32 %1114, ptr %1115, align 4, !tbaa !5
  %1116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1117 = load i32, ptr @test_count, align 4, !tbaa !5
  %1118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = call ptr @s2n_strerror(i32 noundef %1119, ptr noundef @.str.4)
  %1121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = call ptr @s2n_strerror_debug(i32 noundef %1122, ptr noundef @.str.4)
  %1124 = call ptr @__errno_location() #12
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call ptr @strerror(i32 noundef %1125) #11
  %1127 = call ptr @__errno_location() #12
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  %1129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1116, ptr noundef @.str.2, i32 noundef %1117, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1120, ptr noundef %1123, ptr noundef %1126, i32 noundef %1128) #11
  br label %1147

1130:                                             ; preds = %1108, %1101
  %1131 = load i32, ptr %23, align 4, !tbaa !5
  %1132 = call ptr @__errno_location() #12
  store i32 %1131, ptr %1132, align 4, !tbaa !5
  %1133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1134 = load i32, ptr @test_count, align 4, !tbaa !5
  %1135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1136 = load i32, ptr %1135, align 4, !tbaa !5
  %1137 = call ptr @s2n_strerror(i32 noundef %1136, ptr noundef @.str.4)
  %1138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1139 = load i32, ptr %1138, align 4, !tbaa !5
  %1140 = call ptr @s2n_strerror_debug(i32 noundef %1139, ptr noundef @.str.4)
  %1141 = call ptr @__errno_location() #12
  %1142 = load i32, ptr %1141, align 4, !tbaa !5
  %1143 = call ptr @strerror(i32 noundef %1142) #11
  %1144 = call ptr @__errno_location() #12
  %1145 = load i32, ptr %1144, align 4, !tbaa !5
  %1146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1133, ptr noundef @.str.5, i32 noundef %1134, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1137, ptr noundef %1140, ptr noundef %1143, i32 noundef %1145) #11
  br label %1147

1147:                                             ; preds = %1130, %1113
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  br label %1148

1148:                                             ; preds = %1147
  br label %1149

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

1150:                                             ; No predecessors!
  br label %1151

1151:                                             ; preds = %1150
  br label %1152

1152:                                             ; preds = %1151, %1093
  br label %1153

1153:                                             ; preds = %1152
  br label %1154

1154:                                             ; preds = %1153
  %1155 = call i32 @s2n_connection_ptr_free(ptr noundef %19)
  %1156 = getelementptr inbounds %struct.s2n_result, ptr %24, i32 0, i32 0
  store i32 %1155, ptr %1156, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #11
  store i64 0, ptr %25, align 8, !tbaa !15
  br label %1157

1157:                                             ; preds = %1900, %1154
  %1158 = load i64, ptr %25, align 8, !tbaa !15
  %1159 = icmp ult i64 %1158, 5
  br i1 %1159, label %1161, label %1160

1160:                                             ; preds = %1157
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #11
  br label %1903

1161:                                             ; preds = %1157
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #11
  %1162 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1162, ptr %26, align 8, !tbaa !9
  br label %1163

1163:                                             ; preds = %1161
  %1164 = load i32, ptr @test_count, align 4, !tbaa !5
  %1165 = add nsw i32 %1164, 1
  store i32 %1165, ptr @test_count, align 4, !tbaa !5
  %1166 = load ptr, ptr %26, align 8, !tbaa !9
  %1167 = icmp eq ptr %1166, null
  br i1 %1167, label %1168, label %1221

1168:                                             ; preds = %1163
  br label %1169

1169:                                             ; preds = %1168
  br label %1170

1170:                                             ; preds = %1169
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #11
  %1171 = call ptr @__errno_location() #12
  %1172 = load i32, ptr %1171, align 4, !tbaa !5
  store i32 %1172, ptr %27, align 4, !tbaa !5
  %1173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1174 = call i32 @s2n_print_stacktrace(ptr noundef %1173)
  %1175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1176 = trunc i8 %1175 to i1
  br i1 %1176, label %1177, label %1199

1177:                                             ; preds = %1170
  %1178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1179 = call i32 @fileno(ptr noundef %1178) #11
  %1180 = call i32 @isatty(i32 noundef %1179) #11
  %1181 = icmp ne i32 %1180, 0
  br i1 %1181, label %1182, label %1199

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

1199:                                             ; preds = %1177, %1170
  %1200 = load i32, ptr %27, align 4, !tbaa !5
  %1201 = call ptr @__errno_location() #12
  store i32 %1200, ptr %1201, align 4, !tbaa !5
  %1202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1203 = load i32, ptr @test_count, align 4, !tbaa !5
  %1204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1205 = load i32, ptr %1204, align 4, !tbaa !5
  %1206 = call ptr @s2n_strerror(i32 noundef %1205, ptr noundef @.str.4)
  %1207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1208 = load i32, ptr %1207, align 4, !tbaa !5
  %1209 = call ptr @s2n_strerror_debug(i32 noundef %1208, ptr noundef @.str.4)
  %1210 = call ptr @__errno_location() #12
  %1211 = load i32, ptr %1210, align 4, !tbaa !5
  %1212 = call ptr @strerror(i32 noundef %1211) #11
  %1213 = call ptr @__errno_location() #12
  %1214 = load i32, ptr %1213, align 4, !tbaa !5
  %1215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1202, ptr noundef @.str.5, i32 noundef %1203, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 84, ptr noundef %1206, ptr noundef %1209, ptr noundef %1212, i32 noundef %1214) #11
  br label %1216

1216:                                             ; preds = %1199, %1182
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  br label %1217

1217:                                             ; preds = %1216
  br label %1218

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

1219:                                             ; No predecessors!
  br label %1220

1220:                                             ; preds = %1219
  br label %1221

1221:                                             ; preds = %1220, %1163
  br label %1222

1222:                                             ; preds = %1221
  br label %1223

1223:                                             ; preds = %1222
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #11
  %1224 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1224, ptr %28, align 8, !tbaa !9
  br label %1225

1225:                                             ; preds = %1223
  %1226 = load i32, ptr @test_count, align 4, !tbaa !5
  %1227 = add nsw i32 %1226, 1
  store i32 %1227, ptr @test_count, align 4, !tbaa !5
  %1228 = load ptr, ptr %26, align 8, !tbaa !9
  %1229 = icmp eq ptr %1228, null
  br i1 %1229, label %1230, label %1283

1230:                                             ; preds = %1225
  br label %1231

1231:                                             ; preds = %1230
  br label %1232

1232:                                             ; preds = %1231
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #11
  %1233 = call ptr @__errno_location() #12
  %1234 = load i32, ptr %1233, align 4, !tbaa !5
  store i32 %1234, ptr %29, align 4, !tbaa !5
  %1235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1236 = call i32 @s2n_print_stacktrace(ptr noundef %1235)
  %1237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1238 = trunc i8 %1237 to i1
  br i1 %1238, label %1239, label %1261

1239:                                             ; preds = %1232
  %1240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1241 = call i32 @fileno(ptr noundef %1240) #11
  %1242 = call i32 @isatty(i32 noundef %1241) #11
  %1243 = icmp ne i32 %1242, 0
  br i1 %1243, label %1244, label %1261

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

1261:                                             ; preds = %1239, %1232
  %1262 = load i32, ptr %29, align 4, !tbaa !5
  %1263 = call ptr @__errno_location() #12
  store i32 %1262, ptr %1263, align 4, !tbaa !5
  %1264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1265 = load i32, ptr @test_count, align 4, !tbaa !5
  %1266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1267 = load i32, ptr %1266, align 4, !tbaa !5
  %1268 = call ptr @s2n_strerror(i32 noundef %1267, ptr noundef @.str.4)
  %1269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1270 = load i32, ptr %1269, align 4, !tbaa !5
  %1271 = call ptr @s2n_strerror_debug(i32 noundef %1270, ptr noundef @.str.4)
  %1272 = call ptr @__errno_location() #12
  %1273 = load i32, ptr %1272, align 4, !tbaa !5
  %1274 = call ptr @strerror(i32 noundef %1273) #11
  %1275 = call ptr @__errno_location() #12
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1264, ptr noundef @.str.5, i32 noundef %1265, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1268, ptr noundef %1271, ptr noundef %1274, i32 noundef %1276) #11
  br label %1278

1278:                                             ; preds = %1261, %1244
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  br label %1279

1279:                                             ; preds = %1278
  br label %1280

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

1281:                                             ; No predecessors!
  br label %1282

1282:                                             ; preds = %1281
  br label %1283

1283:                                             ; preds = %1282, %1225
  br label %1284

1284:                                             ; preds = %1283
  br label %1285

1285:                                             ; preds = %1284
  call void @llvm.lifetime.start.p0(i64 40, ptr %30) #11
  call void @llvm.memset.p0.i64(ptr align 8 %30, i8 0, i64 40, i1 false)
  br label %1286

1286:                                             ; preds = %1285
  %1287 = load i32, ptr @test_count, align 4, !tbaa !5
  %1288 = add nsw i32 %1287, 1
  store i32 %1288, ptr @test_count, align 4, !tbaa !5
  %1289 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %30, i32 noundef 0)
  %1290 = icmp eq i32 %1289, -1
  br i1 %1290, label %1291, label %1344

1291:                                             ; preds = %1286
  br label %1292

1292:                                             ; preds = %1291
  br label %1293

1293:                                             ; preds = %1292
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #11
  %1294 = call ptr @__errno_location() #12
  %1295 = load i32, ptr %1294, align 4, !tbaa !5
  store i32 %1295, ptr %31, align 4, !tbaa !5
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = call i32 @s2n_print_stacktrace(ptr noundef %1296)
  %1298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1299 = trunc i8 %1298 to i1
  br i1 %1299, label %1300, label %1322

1300:                                             ; preds = %1293
  %1301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1302 = call i32 @fileno(ptr noundef %1301) #11
  %1303 = call i32 @isatty(i32 noundef %1302) #11
  %1304 = icmp ne i32 %1303, 0
  br i1 %1304, label %1305, label %1322

1305:                                             ; preds = %1300
  %1306 = load i32, ptr %31, align 4, !tbaa !5
  %1307 = call ptr @__errno_location() #12
  store i32 %1306, ptr %1307, align 4, !tbaa !5
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1309 = load i32, ptr @test_count, align 4, !tbaa !5
  %1310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1311 = load i32, ptr %1310, align 4, !tbaa !5
  %1312 = call ptr @s2n_strerror(i32 noundef %1311, ptr noundef @.str.4)
  %1313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1314 = load i32, ptr %1313, align 4, !tbaa !5
  %1315 = call ptr @s2n_strerror_debug(i32 noundef %1314, ptr noundef @.str.4)
  %1316 = call ptr @__errno_location() #12
  %1317 = load i32, ptr %1316, align 4, !tbaa !5
  %1318 = call ptr @strerror(i32 noundef %1317) #11
  %1319 = call ptr @__errno_location() #12
  %1320 = load i32, ptr %1319, align 4, !tbaa !5
  %1321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1308, ptr noundef @.str.2, i32 noundef %1309, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 91, ptr noundef %1312, ptr noundef %1315, ptr noundef %1318, i32 noundef %1320) #11
  br label %1339

1322:                                             ; preds = %1300, %1293
  %1323 = load i32, ptr %31, align 4, !tbaa !5
  %1324 = call ptr @__errno_location() #12
  store i32 %1323, ptr %1324, align 4, !tbaa !5
  %1325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1326 = load i32, ptr @test_count, align 4, !tbaa !5
  %1327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1328 = load i32, ptr %1327, align 4, !tbaa !5
  %1329 = call ptr @s2n_strerror(i32 noundef %1328, ptr noundef @.str.4)
  %1330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1331 = load i32, ptr %1330, align 4, !tbaa !5
  %1332 = call ptr @s2n_strerror_debug(i32 noundef %1331, ptr noundef @.str.4)
  %1333 = call ptr @__errno_location() #12
  %1334 = load i32, ptr %1333, align 4, !tbaa !5
  %1335 = call ptr @strerror(i32 noundef %1334) #11
  %1336 = call ptr @__errno_location() #12
  %1337 = load i32, ptr %1336, align 4, !tbaa !5
  %1338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1325, ptr noundef @.str.5, i32 noundef %1326, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 91, ptr noundef %1329, ptr noundef %1332, ptr noundef %1335, i32 noundef %1337) #11
  br label %1339

1339:                                             ; preds = %1322, %1305
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %1340

1340:                                             ; preds = %1339
  br label %1341

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

1342:                                             ; No predecessors!
  br label %1343

1343:                                             ; preds = %1342
  br label %1344

1344:                                             ; preds = %1343, %1286
  br label %1345

1345:                                             ; preds = %1344
  br label %1346

1346:                                             ; preds = %1345
  br label %1347

1347:                                             ; preds = %1346
  %1348 = load i32, ptr @test_count, align 4, !tbaa !5
  %1349 = add nsw i32 %1348, 1
  store i32 %1349, ptr @test_count, align 4, !tbaa !5
  %1350 = load i64, ptr %25, align 8, !tbaa !15
  %1351 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %1350
  %1352 = load ptr, ptr %26, align 8, !tbaa !9
  %1353 = getelementptr inbounds %struct.s2n_connection, ptr %1352, i32 0, i32 83
  %1354 = call i32 @s2n_dup(ptr noundef %1351, ptr noundef %1353)
  %1355 = icmp eq i32 %1354, -1
  br i1 %1355, label %1356, label %1409

1356:                                             ; preds = %1347
  br label %1357

1357:                                             ; preds = %1356
  br label %1358

1358:                                             ; preds = %1357
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #11
  %1359 = call ptr @__errno_location() #12
  %1360 = load i32, ptr %1359, align 4, !tbaa !5
  store i32 %1360, ptr %32, align 4, !tbaa !5
  %1361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1362 = call i32 @s2n_print_stacktrace(ptr noundef %1361)
  %1363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1364 = trunc i8 %1363 to i1
  br i1 %1364, label %1365, label %1387

1365:                                             ; preds = %1358
  %1366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1367 = call i32 @fileno(ptr noundef %1366) #11
  %1368 = call i32 @isatty(i32 noundef %1367) #11
  %1369 = icmp ne i32 %1368, 0
  br i1 %1369, label %1370, label %1387

1370:                                             ; preds = %1365
  %1371 = load i32, ptr %32, align 4, !tbaa !5
  %1372 = call ptr @__errno_location() #12
  store i32 %1371, ptr %1372, align 4, !tbaa !5
  %1373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1374 = load i32, ptr @test_count, align 4, !tbaa !5
  %1375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1376 = load i32, ptr %1375, align 4, !tbaa !5
  %1377 = call ptr @s2n_strerror(i32 noundef %1376, ptr noundef @.str.4)
  %1378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1379 = load i32, ptr %1378, align 4, !tbaa !5
  %1380 = call ptr @s2n_strerror_debug(i32 noundef %1379, ptr noundef @.str.4)
  %1381 = call ptr @__errno_location() #12
  %1382 = load i32, ptr %1381, align 4, !tbaa !5
  %1383 = call ptr @strerror(i32 noundef %1382) #11
  %1384 = call ptr @__errno_location() #12
  %1385 = load i32, ptr %1384, align 4, !tbaa !5
  %1386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1373, ptr noundef @.str.2, i32 noundef %1374, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1377, ptr noundef %1380, ptr noundef %1383, i32 noundef %1385) #11
  br label %1404

1387:                                             ; preds = %1365, %1358
  %1388 = load i32, ptr %32, align 4, !tbaa !5
  %1389 = call ptr @__errno_location() #12
  store i32 %1388, ptr %1389, align 4, !tbaa !5
  %1390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1391 = load i32, ptr @test_count, align 4, !tbaa !5
  %1392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1393 = load i32, ptr %1392, align 4, !tbaa !5
  %1394 = call ptr @s2n_strerror(i32 noundef %1393, ptr noundef @.str.4)
  %1395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1396 = load i32, ptr %1395, align 4, !tbaa !5
  %1397 = call ptr @s2n_strerror_debug(i32 noundef %1396, ptr noundef @.str.4)
  %1398 = call ptr @__errno_location() #12
  %1399 = load i32, ptr %1398, align 4, !tbaa !5
  %1400 = call ptr @strerror(i32 noundef %1399) #11
  %1401 = call ptr @__errno_location() #12
  %1402 = load i32, ptr %1401, align 4, !tbaa !5
  %1403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1390, ptr noundef @.str.5, i32 noundef %1391, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 94, ptr noundef %1394, ptr noundef %1397, ptr noundef %1400, i32 noundef %1402) #11
  br label %1404

1404:                                             ; preds = %1387, %1370
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %1405

1405:                                             ; preds = %1404
  br label %1406

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

1407:                                             ; No predecessors!
  br label %1408

1408:                                             ; preds = %1407
  br label %1409

1409:                                             ; preds = %1408, %1347
  br label %1410

1410:                                             ; preds = %1409
  br label %1411

1411:                                             ; preds = %1410
  br label %1412

1412:                                             ; preds = %1411
  %1413 = load i32, ptr @test_count, align 4, !tbaa !5
  %1414 = add nsw i32 %1413, 1
  store i32 %1414, ptr @test_count, align 4, !tbaa !5
  %1415 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_cookie_extension, i32 0, i32 3), align 8, !tbaa !23
  %1416 = load ptr, ptr %26, align 8, !tbaa !9
  %1417 = call i32 %1415(ptr noundef %1416, ptr noundef %30)
  %1418 = icmp eq i32 %1417, -1
  br i1 %1418, label %1419, label %1472

1419:                                             ; preds = %1412
  br label %1420

1420:                                             ; preds = %1419
  br label %1421

1421:                                             ; preds = %1420
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #11
  %1422 = call ptr @__errno_location() #12
  %1423 = load i32, ptr %1422, align 4, !tbaa !5
  store i32 %1423, ptr %33, align 4, !tbaa !5
  %1424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1425 = call i32 @s2n_print_stacktrace(ptr noundef %1424)
  %1426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1427 = trunc i8 %1426 to i1
  br i1 %1427, label %1428, label %1450

1428:                                             ; preds = %1421
  %1429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1430 = call i32 @fileno(ptr noundef %1429) #11
  %1431 = call i32 @isatty(i32 noundef %1430) #11
  %1432 = icmp ne i32 %1431, 0
  br i1 %1432, label %1433, label %1450

1433:                                             ; preds = %1428
  %1434 = load i32, ptr %33, align 4, !tbaa !5
  %1435 = call ptr @__errno_location() #12
  store i32 %1434, ptr %1435, align 4, !tbaa !5
  %1436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1437 = load i32, ptr @test_count, align 4, !tbaa !5
  %1438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1439 = load i32, ptr %1438, align 4, !tbaa !5
  %1440 = call ptr @s2n_strerror(i32 noundef %1439, ptr noundef @.str.4)
  %1441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1442 = load i32, ptr %1441, align 4, !tbaa !5
  %1443 = call ptr @s2n_strerror_debug(i32 noundef %1442, ptr noundef @.str.4)
  %1444 = call ptr @__errno_location() #12
  %1445 = load i32, ptr %1444, align 4, !tbaa !5
  %1446 = call ptr @strerror(i32 noundef %1445) #11
  %1447 = call ptr @__errno_location() #12
  %1448 = load i32, ptr %1447, align 4, !tbaa !5
  %1449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1436, ptr noundef @.str.2, i32 noundef %1437, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1440, ptr noundef %1443, ptr noundef %1446, i32 noundef %1448) #11
  br label %1467

1450:                                             ; preds = %1428, %1421
  %1451 = load i32, ptr %33, align 4, !tbaa !5
  %1452 = call ptr @__errno_location() #12
  store i32 %1451, ptr %1452, align 4, !tbaa !5
  %1453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1454 = load i32, ptr @test_count, align 4, !tbaa !5
  %1455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1456 = load i32, ptr %1455, align 4, !tbaa !5
  %1457 = call ptr @s2n_strerror(i32 noundef %1456, ptr noundef @.str.4)
  %1458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1459 = load i32, ptr %1458, align 4, !tbaa !5
  %1460 = call ptr @s2n_strerror_debug(i32 noundef %1459, ptr noundef @.str.4)
  %1461 = call ptr @__errno_location() #12
  %1462 = load i32, ptr %1461, align 4, !tbaa !5
  %1463 = call ptr @strerror(i32 noundef %1462) #11
  %1464 = call ptr @__errno_location() #12
  %1465 = load i32, ptr %1464, align 4, !tbaa !5
  %1466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1453, ptr noundef @.str.5, i32 noundef %1454, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 95, ptr noundef %1457, ptr noundef %1460, ptr noundef %1463, i32 noundef %1465) #11
  br label %1467

1467:                                             ; preds = %1450, %1433
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %1468

1468:                                             ; preds = %1467
  br label %1469

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

1470:                                             ; No predecessors!
  br label %1471

1471:                                             ; preds = %1470
  br label %1472

1472:                                             ; preds = %1471, %1412
  br label %1473

1473:                                             ; preds = %1472
  br label %1474

1474:                                             ; preds = %1473
  br label %1475

1475:                                             ; preds = %1474
  br label %1476

1476:                                             ; preds = %1475
  br label %1477

1477:                                             ; preds = %1476
  %1478 = load i32, ptr @test_count, align 4, !tbaa !5
  %1479 = add nsw i32 %1478, 1
  store i32 %1479, ptr @test_count, align 4, !tbaa !5
  %1480 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_cookie_extension, i32 0, i32 4), align 8, !tbaa !24
  %1481 = load ptr, ptr %28, align 8, !tbaa !9
  %1482 = call i32 %1480(ptr noundef %1481, ptr noundef %30)
  %1483 = icmp eq i32 %1482, -1
  br i1 %1483, label %1537, label %1484

1484:                                             ; preds = %1477
  br label %1485

1485:                                             ; preds = %1484
  br label %1486

1486:                                             ; preds = %1485
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #11
  %1487 = call ptr @__errno_location() #12
  %1488 = load i32, ptr %1487, align 4, !tbaa !5
  store i32 %1488, ptr %34, align 4, !tbaa !5
  %1489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1490 = call i32 @s2n_print_stacktrace(ptr noundef %1489)
  %1491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1492 = trunc i8 %1491 to i1
  br i1 %1492, label %1493, label %1515

1493:                                             ; preds = %1486
  %1494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1495 = call i32 @fileno(ptr noundef %1494) #11
  %1496 = call i32 @isatty(i32 noundef %1495) #11
  %1497 = icmp ne i32 %1496, 0
  br i1 %1497, label %1498, label %1515

1498:                                             ; preds = %1493
  %1499 = load i32, ptr %34, align 4, !tbaa !5
  %1500 = call ptr @__errno_location() #12
  store i32 %1499, ptr %1500, align 4, !tbaa !5
  %1501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1502 = load i32, ptr @test_count, align 4, !tbaa !5
  %1503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1504 = load i32, ptr %1503, align 4, !tbaa !5
  %1505 = call ptr @s2n_strerror(i32 noundef %1504, ptr noundef @.str.4)
  %1506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1507 = load i32, ptr %1506, align 4, !tbaa !5
  %1508 = call ptr @s2n_strerror_debug(i32 noundef %1507, ptr noundef @.str.4)
  %1509 = call ptr @__errno_location() #12
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  %1511 = call ptr @strerror(i32 noundef %1510) #11
  %1512 = call ptr @__errno_location() #12
  %1513 = load i32, ptr %1512, align 4, !tbaa !5
  %1514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1501, ptr noundef @.str.2, i32 noundef %1502, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 99, ptr noundef %1505, ptr noundef %1508, ptr noundef %1511, i32 noundef %1513) #11
  br label %1532

1515:                                             ; preds = %1493, %1486
  %1516 = load i32, ptr %34, align 4, !tbaa !5
  %1517 = call ptr @__errno_location() #12
  store i32 %1516, ptr %1517, align 4, !tbaa !5
  %1518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1519 = load i32, ptr @test_count, align 4, !tbaa !5
  %1520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1521 = load i32, ptr %1520, align 4, !tbaa !5
  %1522 = call ptr @s2n_strerror(i32 noundef %1521, ptr noundef @.str.4)
  %1523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1524 = load i32, ptr %1523, align 4, !tbaa !5
  %1525 = call ptr @s2n_strerror_debug(i32 noundef %1524, ptr noundef @.str.4)
  %1526 = call ptr @__errno_location() #12
  %1527 = load i32, ptr %1526, align 4, !tbaa !5
  %1528 = call ptr @strerror(i32 noundef %1527) #11
  %1529 = call ptr @__errno_location() #12
  %1530 = load i32, ptr %1529, align 4, !tbaa !5
  %1531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1518, ptr noundef @.str.5, i32 noundef %1519, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 99, ptr noundef %1522, ptr noundef %1525, ptr noundef %1528, i32 noundef %1530) #11
  br label %1532

1532:                                             ; preds = %1515, %1498
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  br label %1533

1533:                                             ; preds = %1532
  br label %1534

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

1535:                                             ; No predecessors!
  br label %1536

1536:                                             ; preds = %1535
  br label %1537

1537:                                             ; preds = %1536, %1477
  br label %1538

1538:                                             ; preds = %1537
  br label %1539

1539:                                             ; preds = %1538
  br label %1540

1540:                                             ; preds = %1539
  %1541 = load i32, ptr @test_count, align 4, !tbaa !5
  %1542 = add nsw i32 %1541, 1
  store i32 %1542, ptr @test_count, align 4, !tbaa !5
  %1543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1544 = load i32, ptr %1543, align 4, !tbaa !5
  %1545 = icmp eq i32 %1544, 335544394
  br i1 %1545, label %1599, label %1546

1546:                                             ; preds = %1540
  br label %1547

1547:                                             ; preds = %1546
  br label %1548

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

1555:                                             ; preds = %1548
  %1556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1557 = call i32 @fileno(ptr noundef %1556) #11
  %1558 = call i32 @isatty(i32 noundef %1557) #11
  %1559 = icmp ne i32 %1558, 0
  br i1 %1559, label %1560, label %1577

1560:                                             ; preds = %1555
  %1561 = load i32, ptr %35, align 4, !tbaa !5
  %1562 = call ptr @__errno_location() #12
  store i32 %1561, ptr %1562, align 4, !tbaa !5
  %1563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1564 = load i32, ptr @test_count, align 4, !tbaa !5
  %1565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1566 = load i32, ptr %1565, align 4, !tbaa !5
  %1567 = call ptr @s2n_strerror(i32 noundef %1566, ptr noundef @.str.4)
  %1568 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1569 = load i32, ptr %1568, align 4, !tbaa !5
  %1570 = call ptr @s2n_strerror_debug(i32 noundef %1569, ptr noundef @.str.4)
  %1571 = call ptr @__errno_location() #12
  %1572 = load i32, ptr %1571, align 4, !tbaa !5
  %1573 = call ptr @strerror(i32 noundef %1572) #11
  %1574 = call ptr @__errno_location() #12
  %1575 = load i32, ptr %1574, align 4, !tbaa !5
  %1576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1563, ptr noundef @.str.2, i32 noundef %1564, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 99, ptr noundef %1567, ptr noundef %1570, ptr noundef %1573, i32 noundef %1575) #11
  br label %1594

1577:                                             ; preds = %1555, %1548
  %1578 = load i32, ptr %35, align 4, !tbaa !5
  %1579 = call ptr @__errno_location() #12
  store i32 %1578, ptr %1579, align 4, !tbaa !5
  %1580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1581 = load i32, ptr @test_count, align 4, !tbaa !5
  %1582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1583 = load i32, ptr %1582, align 4, !tbaa !5
  %1584 = call ptr @s2n_strerror(i32 noundef %1583, ptr noundef @.str.4)
  %1585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1586 = load i32, ptr %1585, align 4, !tbaa !5
  %1587 = call ptr @s2n_strerror_debug(i32 noundef %1586, ptr noundef @.str.4)
  %1588 = call ptr @__errno_location() #12
  %1589 = load i32, ptr %1588, align 4, !tbaa !5
  %1590 = call ptr @strerror(i32 noundef %1589) #11
  %1591 = call ptr @__errno_location() #12
  %1592 = load i32, ptr %1591, align 4, !tbaa !5
  %1593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1580, ptr noundef @.str.5, i32 noundef %1581, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 99, ptr noundef %1584, ptr noundef %1587, ptr noundef %1590, i32 noundef %1592) #11
  br label %1594

1594:                                             ; preds = %1577, %1560
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #11
  br label %1595

1595:                                             ; preds = %1594
  br label %1596

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

1597:                                             ; No predecessors!
  br label %1598

1598:                                             ; preds = %1597
  br label %1599

1599:                                             ; preds = %1598, %1540
  br label %1600

1600:                                             ; preds = %1599
  br label %1601

1601:                                             ; preds = %1600
  br label %1602

1602:                                             ; preds = %1601
  %1603 = load i32, ptr @test_count, align 4, !tbaa !5
  %1604 = add nsw i32 %1603, 1
  store i32 %1604, ptr @test_count, align 4, !tbaa !5
  %1605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1606 = load i32, ptr %1605, align 4, !tbaa !5
  %1607 = call ptr @s2n_strerror_debug(i32 noundef %1606, ptr noundef @.str.4)
  %1608 = icmp eq ptr %1607, null
  br i1 %1608, label %1609, label %1662

1609:                                             ; preds = %1602
  br label %1610

1610:                                             ; preds = %1609
  br label %1611

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

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

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

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

1657:                                             ; preds = %1640, %1623
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  br label %1658

1658:                                             ; preds = %1657
  br label %1659

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

1660:                                             ; No predecessors!
  br label %1661

1661:                                             ; preds = %1660
  br label %1662

1662:                                             ; preds = %1661, %1602
  br label %1663

1663:                                             ; preds = %1662
  br label %1664

1664:                                             ; preds = %1663
  br label %1665

1665:                                             ; preds = %1664
  br label %1666

1666:                                             ; preds = %1665
  br label %1667

1667:                                             ; preds = %1666
  %1668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1668, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1669 = call ptr @__errno_location() #12
  store i32 0, ptr %1669, align 4, !tbaa !5
  br label %1670

1670:                                             ; preds = %1667
  br label %1671

1671:                                             ; preds = %1670
  br label %1672

1672:                                             ; preds = %1671
  br label %1673

1673:                                             ; preds = %1672
  %1674 = load ptr, ptr %28, align 8, !tbaa !9
  %1675 = getelementptr inbounds %struct.s2n_connection, ptr %1674, i32 0, i32 52
  %1676 = getelementptr inbounds %struct.s2n_handshake, ptr %1675, i32 0, i32 6
  store i32 16, ptr %1676, align 4, !tbaa !25
  br label %1677

1677:                                             ; preds = %1673
  %1678 = load i32, ptr @test_count, align 4, !tbaa !5
  %1679 = add nsw i32 %1678, 1
  store i32 %1679, ptr @test_count, align 4, !tbaa !5
  %1680 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_cookie_extension, i32 0, i32 4), align 8, !tbaa !24
  %1681 = load ptr, ptr %28, align 8, !tbaa !9
  %1682 = call i32 %1680(ptr noundef %1681, ptr noundef %30)
  %1683 = icmp eq i32 %1682, -1
  br i1 %1683, label %1684, label %1737

1684:                                             ; preds = %1677
  br label %1685

1685:                                             ; preds = %1684
  br label %1686

1686:                                             ; preds = %1685
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #11
  %1687 = call ptr @__errno_location() #12
  %1688 = load i32, ptr %1687, align 4, !tbaa !5
  store i32 %1688, ptr %37, align 4, !tbaa !5
  %1689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1690 = call i32 @s2n_print_stacktrace(ptr noundef %1689)
  %1691 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1692 = trunc i8 %1691 to i1
  br i1 %1692, label %1693, label %1715

1693:                                             ; preds = %1686
  %1694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1695 = call i32 @fileno(ptr noundef %1694) #11
  %1696 = call i32 @isatty(i32 noundef %1695) #11
  %1697 = icmp ne i32 %1696, 0
  br i1 %1697, label %1698, label %1715

1698:                                             ; preds = %1693
  %1699 = load i32, ptr %37, align 4, !tbaa !5
  %1700 = call ptr @__errno_location() #12
  store i32 %1699, ptr %1700, align 4, !tbaa !5
  %1701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1702 = load i32, ptr @test_count, align 4, !tbaa !5
  %1703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1704 = load i32, ptr %1703, align 4, !tbaa !5
  %1705 = call ptr @s2n_strerror(i32 noundef %1704, ptr noundef @.str.4)
  %1706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1707 = load i32, ptr %1706, align 4, !tbaa !5
  %1708 = call ptr @s2n_strerror_debug(i32 noundef %1707, ptr noundef @.str.4)
  %1709 = call ptr @__errno_location() #12
  %1710 = load i32, ptr %1709, align 4, !tbaa !5
  %1711 = call ptr @strerror(i32 noundef %1710) #11
  %1712 = call ptr @__errno_location() #12
  %1713 = load i32, ptr %1712, align 4, !tbaa !5
  %1714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1701, ptr noundef @.str.2, i32 noundef %1702, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1705, ptr noundef %1708, ptr noundef %1711, i32 noundef %1713) #11
  br label %1732

1715:                                             ; preds = %1693, %1686
  %1716 = load i32, ptr %37, align 4, !tbaa !5
  %1717 = call ptr @__errno_location() #12
  store i32 %1716, ptr %1717, align 4, !tbaa !5
  %1718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1719 = load i32, ptr @test_count, align 4, !tbaa !5
  %1720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1721 = load i32, ptr %1720, align 4, !tbaa !5
  %1722 = call ptr @s2n_strerror(i32 noundef %1721, ptr noundef @.str.4)
  %1723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1724 = load i32, ptr %1723, align 4, !tbaa !5
  %1725 = call ptr @s2n_strerror_debug(i32 noundef %1724, ptr noundef @.str.4)
  %1726 = call ptr @__errno_location() #12
  %1727 = load i32, ptr %1726, align 4, !tbaa !5
  %1728 = call ptr @strerror(i32 noundef %1727) #11
  %1729 = call ptr @__errno_location() #12
  %1730 = load i32, ptr %1729, align 4, !tbaa !5
  %1731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1718, ptr noundef @.str.5, i32 noundef %1719, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1722, ptr noundef %1725, ptr noundef %1728, i32 noundef %1730) #11
  br label %1732

1732:                                             ; preds = %1715, %1698
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #11
  br label %1733

1733:                                             ; preds = %1732
  br label %1734

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

1735:                                             ; No predecessors!
  br label %1736

1736:                                             ; preds = %1735
  br label %1737

1737:                                             ; preds = %1736, %1677
  br label %1738

1738:                                             ; preds = %1737
  br label %1739

1739:                                             ; preds = %1738
  br label %1740

1740:                                             ; preds = %1739
  br label %1741

1741:                                             ; preds = %1740
  %1742 = load i32, ptr @test_count, align 4, !tbaa !5
  %1743 = add nsw i32 %1742, 1
  store i32 %1743, ptr @test_count, align 4, !tbaa !5
  %1744 = load i64, ptr %25, align 8, !tbaa !15
  %1745 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %1744
  %1746 = getelementptr inbounds %struct.s2n_blob, ptr %1745, i32 0, i32 1
  %1747 = load i32, ptr %1746, align 8, !tbaa !50
  %1748 = load ptr, ptr %28, align 8, !tbaa !9
  %1749 = getelementptr inbounds %struct.s2n_connection, ptr %1748, i32 0, i32 83
  %1750 = getelementptr inbounds %struct.s2n_blob, ptr %1749, i32 0, i32 1
  %1751 = load i32, ptr %1750, align 8, !tbaa !51
  %1752 = icmp eq i32 %1747, %1751
  br i1 %1752, label %1806, label %1753

1753:                                             ; preds = %1741
  br label %1754

1754:                                             ; preds = %1753
  br label %1755

1755:                                             ; preds = %1754
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #11
  %1756 = call ptr @__errno_location() #12
  %1757 = load i32, ptr %1756, align 4, !tbaa !5
  store i32 %1757, ptr %38, align 4, !tbaa !5
  %1758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1759 = call i32 @s2n_print_stacktrace(ptr noundef %1758)
  %1760 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1761 = trunc i8 %1760 to i1
  br i1 %1761, label %1762, label %1784

1762:                                             ; preds = %1755
  %1763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1764 = call i32 @fileno(ptr noundef %1763) #11
  %1765 = call i32 @isatty(i32 noundef %1764) #11
  %1766 = icmp ne i32 %1765, 0
  br i1 %1766, label %1767, label %1784

1767:                                             ; preds = %1762
  %1768 = load i32, ptr %38, align 4, !tbaa !5
  %1769 = call ptr @__errno_location() #12
  store i32 %1768, ptr %1769, align 4, !tbaa !5
  %1770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1771 = load i32, ptr @test_count, align 4, !tbaa !5
  %1772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  %1774 = call ptr @s2n_strerror(i32 noundef %1773, ptr noundef @.str.4)
  %1775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1776 = load i32, ptr %1775, align 4, !tbaa !5
  %1777 = call ptr @s2n_strerror_debug(i32 noundef %1776, ptr noundef @.str.4)
  %1778 = call ptr @__errno_location() #12
  %1779 = load i32, ptr %1778, align 4, !tbaa !5
  %1780 = call ptr @strerror(i32 noundef %1779) #11
  %1781 = call ptr @__errno_location() #12
  %1782 = load i32, ptr %1781, align 4, !tbaa !5
  %1783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1770, ptr noundef @.str.2, i32 noundef %1771, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 104, ptr noundef %1774, ptr noundef %1777, ptr noundef %1780, i32 noundef %1782) #11
  br label %1801

1784:                                             ; preds = %1762, %1755
  %1785 = load i32, ptr %38, align 4, !tbaa !5
  %1786 = call ptr @__errno_location() #12
  store i32 %1785, ptr %1786, align 4, !tbaa !5
  %1787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1788 = load i32, ptr @test_count, align 4, !tbaa !5
  %1789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1790 = load i32, ptr %1789, align 4, !tbaa !5
  %1791 = call ptr @s2n_strerror(i32 noundef %1790, ptr noundef @.str.4)
  %1792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1793 = load i32, ptr %1792, align 4, !tbaa !5
  %1794 = call ptr @s2n_strerror_debug(i32 noundef %1793, ptr noundef @.str.4)
  %1795 = call ptr @__errno_location() #12
  %1796 = load i32, ptr %1795, align 4, !tbaa !5
  %1797 = call ptr @strerror(i32 noundef %1796) #11
  %1798 = call ptr @__errno_location() #12
  %1799 = load i32, ptr %1798, align 4, !tbaa !5
  %1800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1787, ptr noundef @.str.5, i32 noundef %1788, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 104, ptr noundef %1791, ptr noundef %1794, ptr noundef %1797, i32 noundef %1799) #11
  br label %1801

1801:                                             ; preds = %1784, %1767
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1802

1802:                                             ; preds = %1801
  br label %1803

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

1804:                                             ; No predecessors!
  br label %1805

1805:                                             ; preds = %1804
  br label %1806

1806:                                             ; preds = %1805, %1741
  br label %1807

1807:                                             ; preds = %1806
  br label %1808

1808:                                             ; preds = %1807
  br label %1809

1809:                                             ; preds = %1808
  %1810 = load i64, ptr %25, align 8, !tbaa !15
  %1811 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %1810
  %1812 = getelementptr inbounds %struct.s2n_blob, ptr %1811, i32 0, i32 1
  %1813 = load i32, ptr %1812, align 8, !tbaa !50
  %1814 = icmp ne i32 %1813, 0
  br i1 %1814, label %1815, label %1890

1815:                                             ; preds = %1809
  br label %1816

1816:                                             ; preds = %1815
  %1817 = load i32, ptr @test_count, align 4, !tbaa !5
  %1818 = add nsw i32 %1817, 1
  store i32 %1818, ptr @test_count, align 4, !tbaa !5
  %1819 = load i64, ptr %25, align 8, !tbaa !15
  %1820 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %1819
  %1821 = getelementptr inbounds %struct.s2n_blob, ptr %1820, i32 0, i32 0
  %1822 = load ptr, ptr %1821, align 8, !tbaa !52
  %1823 = load ptr, ptr %28, align 8, !tbaa !9
  %1824 = getelementptr inbounds %struct.s2n_connection, ptr %1823, i32 0, i32 83
  %1825 = getelementptr inbounds %struct.s2n_blob, ptr %1824, i32 0, i32 0
  %1826 = load ptr, ptr %1825, align 8, !tbaa !53
  %1827 = load i64, ptr %25, align 8, !tbaa !15
  %1828 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %1827
  %1829 = getelementptr inbounds %struct.s2n_blob, ptr %1828, i32 0, i32 1
  %1830 = load i32, ptr %1829, align 8, !tbaa !50
  %1831 = zext i32 %1830 to i64
  %1832 = call i32 @memcmp(ptr noundef %1822, ptr noundef %1826, i64 noundef %1831) #14
  %1833 = icmp eq i32 %1832, 0
  br i1 %1833, label %1887, label %1834

1834:                                             ; preds = %1816
  br label %1835

1835:                                             ; preds = %1834
  br label %1836

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

1843:                                             ; preds = %1836
  %1844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1845 = call i32 @fileno(ptr noundef %1844) #11
  %1846 = call i32 @isatty(i32 noundef %1845) #11
  %1847 = icmp ne i32 %1846, 0
  br i1 %1847, label %1848, label %1865

1848:                                             ; preds = %1843
  %1849 = load i32, ptr %39, align 4, !tbaa !5
  %1850 = call ptr @__errno_location() #12
  store i32 %1849, ptr %1850, align 4, !tbaa !5
  %1851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1852 = load i32, ptr @test_count, align 4, !tbaa !5
  %1853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1854 = load i32, ptr %1853, align 4, !tbaa !5
  %1855 = call ptr @s2n_strerror(i32 noundef %1854, ptr noundef @.str.4)
  %1856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1857 = load i32, ptr %1856, align 4, !tbaa !5
  %1858 = call ptr @s2n_strerror_debug(i32 noundef %1857, ptr noundef @.str.4)
  %1859 = call ptr @__errno_location() #12
  %1860 = load i32, ptr %1859, align 4, !tbaa !5
  %1861 = call ptr @strerror(i32 noundef %1860) #11
  %1862 = call ptr @__errno_location() #12
  %1863 = load i32, ptr %1862, align 4, !tbaa !5
  %1864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1851, ptr noundef @.str.2, i32 noundef %1852, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 104, ptr noundef %1855, ptr noundef %1858, ptr noundef %1861, i32 noundef %1863) #11
  br label %1882

1865:                                             ; preds = %1843, %1836
  %1866 = load i32, ptr %39, align 4, !tbaa !5
  %1867 = call ptr @__errno_location() #12
  store i32 %1866, ptr %1867, align 4, !tbaa !5
  %1868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1869 = load i32, ptr @test_count, align 4, !tbaa !5
  %1870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1871 = load i32, ptr %1870, align 4, !tbaa !5
  %1872 = call ptr @s2n_strerror(i32 noundef %1871, ptr noundef @.str.4)
  %1873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1874 = load i32, ptr %1873, align 4, !tbaa !5
  %1875 = call ptr @s2n_strerror_debug(i32 noundef %1874, ptr noundef @.str.4)
  %1876 = call ptr @__errno_location() #12
  %1877 = load i32, ptr %1876, align 4, !tbaa !5
  %1878 = call ptr @strerror(i32 noundef %1877) #11
  %1879 = call ptr @__errno_location() #12
  %1880 = load i32, ptr %1879, align 4, !tbaa !5
  %1881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1868, ptr noundef @.str.5, i32 noundef %1869, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 104, ptr noundef %1872, ptr noundef %1875, ptr noundef %1878, i32 noundef %1880) #11
  br label %1882

1882:                                             ; preds = %1865, %1848
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %1883

1883:                                             ; preds = %1882
  br label %1884

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

1885:                                             ; No predecessors!
  br label %1886

1886:                                             ; preds = %1885
  br label %1887

1887:                                             ; preds = %1886, %1816
  br label %1888

1888:                                             ; preds = %1887
  br label %1889

1889:                                             ; preds = %1888
  br label %1890

1890:                                             ; preds = %1889, %1809
  br label %1891

1891:                                             ; preds = %1890
  br label %1892

1892:                                             ; preds = %1891
  br label %1893

1893:                                             ; preds = %1892
  br label %1894

1894:                                             ; preds = %1893
  %1895 = call i32 @s2n_stuffer_free(ptr noundef %30)
  call void @llvm.lifetime.end.p0(i64 40, ptr %30) #11
  %1896 = call i32 @s2n_connection_ptr_free(ptr noundef %28)
  %1897 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  store i32 %1896, ptr %1897, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #11
  %1898 = call i32 @s2n_connection_ptr_free(ptr noundef %26)
  %1899 = getelementptr inbounds %struct.s2n_result, ptr %41, i32 0, i32 0
  store i32 %1898, ptr %1899, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #11
  br label %1900

1900:                                             ; preds = %1894
  %1901 = load i64, ptr %25, align 8, !tbaa !15
  %1902 = add i64 %1901, 1
  store i64 %1902, ptr %25, align 8, !tbaa !15
  br label %1157, !llvm.loop !54

1903:                                             ; preds = %1160
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #11
  store i64 0, ptr %42, align 8, !tbaa !15
  br label %1904

1904:                                             ; preds = %3150, %1903
  %1905 = load i64, ptr %42, align 8, !tbaa !15
  %1906 = icmp ult i64 %1905, 5
  br i1 %1906, label %1908, label %1907

1907:                                             ; preds = %1904
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  br label %3153

1908:                                             ; preds = %1904
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #11
  %1909 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1909, ptr %43, align 8, !tbaa !9
  br label %1910

1910:                                             ; preds = %1908
  %1911 = load i32, ptr @test_count, align 4, !tbaa !5
  %1912 = add nsw i32 %1911, 1
  store i32 %1912, ptr @test_count, align 4, !tbaa !5
  %1913 = load ptr, ptr %43, align 8, !tbaa !9
  %1914 = icmp eq ptr %1913, null
  br i1 %1914, label %1915, label %1968

1915:                                             ; preds = %1910
  br label %1916

1916:                                             ; preds = %1915
  br label %1917

1917:                                             ; preds = %1916
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #11
  %1918 = call ptr @__errno_location() #12
  %1919 = load i32, ptr %1918, align 4, !tbaa !5
  store i32 %1919, ptr %44, align 4, !tbaa !5
  %1920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1921 = call i32 @s2n_print_stacktrace(ptr noundef %1920)
  %1922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1923 = trunc i8 %1922 to i1
  br i1 %1923, label %1924, label %1946

1924:                                             ; preds = %1917
  %1925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1926 = call i32 @fileno(ptr noundef %1925) #11
  %1927 = call i32 @isatty(i32 noundef %1926) #11
  %1928 = icmp ne i32 %1927, 0
  br i1 %1928, label %1929, label %1946

1929:                                             ; preds = %1924
  %1930 = load i32, ptr %44, align 4, !tbaa !5
  %1931 = call ptr @__errno_location() #12
  store i32 %1930, ptr %1931, align 4, !tbaa !5
  %1932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1933 = load i32, ptr @test_count, align 4, !tbaa !5
  %1934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1935 = load i32, ptr %1934, align 4, !tbaa !5
  %1936 = call ptr @s2n_strerror(i32 noundef %1935, ptr noundef @.str.4)
  %1937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1938 = load i32, ptr %1937, align 4, !tbaa !5
  %1939 = call ptr @s2n_strerror_debug(i32 noundef %1938, ptr noundef @.str.4)
  %1940 = call ptr @__errno_location() #12
  %1941 = load i32, ptr %1940, align 4, !tbaa !5
  %1942 = call ptr @strerror(i32 noundef %1941) #11
  %1943 = call ptr @__errno_location() #12
  %1944 = load i32, ptr %1943, align 4, !tbaa !5
  %1945 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1932, ptr noundef @.str.2, i32 noundef %1933, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 111, ptr noundef %1936, ptr noundef %1939, ptr noundef %1942, i32 noundef %1944) #11
  br label %1963

1946:                                             ; preds = %1924, %1917
  %1947 = load i32, ptr %44, align 4, !tbaa !5
  %1948 = call ptr @__errno_location() #12
  store i32 %1947, ptr %1948, align 4, !tbaa !5
  %1949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1950 = load i32, ptr @test_count, align 4, !tbaa !5
  %1951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1952 = load i32, ptr %1951, align 4, !tbaa !5
  %1953 = call ptr @s2n_strerror(i32 noundef %1952, ptr noundef @.str.4)
  %1954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1955 = load i32, ptr %1954, align 4, !tbaa !5
  %1956 = call ptr @s2n_strerror_debug(i32 noundef %1955, ptr noundef @.str.4)
  %1957 = call ptr @__errno_location() #12
  %1958 = load i32, ptr %1957, align 4, !tbaa !5
  %1959 = call ptr @strerror(i32 noundef %1958) #11
  %1960 = call ptr @__errno_location() #12
  %1961 = load i32, ptr %1960, align 4, !tbaa !5
  %1962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1949, ptr noundef @.str.5, i32 noundef %1950, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 111, ptr noundef %1953, ptr noundef %1956, ptr noundef %1959, i32 noundef %1961) #11
  br label %1963

1963:                                             ; preds = %1946, %1929
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %1964

1964:                                             ; preds = %1963
  br label %1965

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

1966:                                             ; No predecessors!
  br label %1967

1967:                                             ; preds = %1966
  br label %1968

1968:                                             ; preds = %1967, %1910
  br label %1969

1969:                                             ; preds = %1968
  br label %1970

1970:                                             ; preds = %1969
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #11
  %1971 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1971, ptr %45, align 8, !tbaa !9
  br label %1972

1972:                                             ; preds = %1970
  %1973 = load i32, ptr @test_count, align 4, !tbaa !5
  %1974 = add nsw i32 %1973, 1
  store i32 %1974, ptr @test_count, align 4, !tbaa !5
  %1975 = load ptr, ptr %43, align 8, !tbaa !9
  %1976 = icmp eq ptr %1975, null
  br i1 %1976, label %1977, label %2030

1977:                                             ; preds = %1972
  br label %1978

1978:                                             ; preds = %1977
  br label %1979

1979:                                             ; preds = %1978
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #11
  %1980 = call ptr @__errno_location() #12
  %1981 = load i32, ptr %1980, align 4, !tbaa !5
  store i32 %1981, ptr %46, align 4, !tbaa !5
  %1982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1983 = call i32 @s2n_print_stacktrace(ptr noundef %1982)
  %1984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1985 = trunc i8 %1984 to i1
  br i1 %1985, label %1986, label %2008

1986:                                             ; preds = %1979
  %1987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1988 = call i32 @fileno(ptr noundef %1987) #11
  %1989 = call i32 @isatty(i32 noundef %1988) #11
  %1990 = icmp ne i32 %1989, 0
  br i1 %1990, label %1991, label %2008

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

2008:                                             ; preds = %1986, %1979
  %2009 = load i32, ptr %46, align 4, !tbaa !5
  %2010 = call ptr @__errno_location() #12
  store i32 %2009, ptr %2010, align 4, !tbaa !5
  %2011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2012 = load i32, ptr @test_count, align 4, !tbaa !5
  %2013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2014 = load i32, ptr %2013, align 4, !tbaa !5
  %2015 = call ptr @s2n_strerror(i32 noundef %2014, ptr noundef @.str.4)
  %2016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2017 = load i32, ptr %2016, align 4, !tbaa !5
  %2018 = call ptr @s2n_strerror_debug(i32 noundef %2017, ptr noundef @.str.4)
  %2019 = call ptr @__errno_location() #12
  %2020 = load i32, ptr %2019, align 4, !tbaa !5
  %2021 = call ptr @strerror(i32 noundef %2020) #11
  %2022 = call ptr @__errno_location() #12
  %2023 = load i32, ptr %2022, align 4, !tbaa !5
  %2024 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2011, ptr noundef @.str.5, i32 noundef %2012, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2015, ptr noundef %2018, ptr noundef %2021, i32 noundef %2023) #11
  br label %2025

2025:                                             ; preds = %2008, %1991
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #11
  br label %2026

2026:                                             ; preds = %2025
  br label %2027

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

2028:                                             ; No predecessors!
  br label %2029

2029:                                             ; preds = %2028
  br label %2030

2030:                                             ; preds = %2029, %1972
  br label %2031

2031:                                             ; preds = %2030
  br label %2032

2032:                                             ; preds = %2031
  call void @llvm.lifetime.start.p0(i64 40, ptr %47) #11
  call void @llvm.memset.p0.i64(ptr align 8 %47, i8 0, i64 40, i1 false)
  br label %2033

2033:                                             ; preds = %2032
  %2034 = load i32, ptr @test_count, align 4, !tbaa !5
  %2035 = add nsw i32 %2034, 1
  store i32 %2035, ptr @test_count, align 4, !tbaa !5
  %2036 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %47, i32 noundef 0)
  %2037 = icmp eq i32 %2036, -1
  br i1 %2037, label %2038, label %2091

2038:                                             ; preds = %2033
  br label %2039

2039:                                             ; preds = %2038
  br label %2040

2040:                                             ; preds = %2039
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #11
  %2041 = call ptr @__errno_location() #12
  %2042 = load i32, ptr %2041, align 4, !tbaa !5
  store i32 %2042, ptr %48, align 4, !tbaa !5
  %2043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2044 = call i32 @s2n_print_stacktrace(ptr noundef %2043)
  %2045 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2046 = trunc i8 %2045 to i1
  br i1 %2046, label %2047, label %2069

2047:                                             ; preds = %2040
  %2048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2049 = call i32 @fileno(ptr noundef %2048) #11
  %2050 = call i32 @isatty(i32 noundef %2049) #11
  %2051 = icmp ne i32 %2050, 0
  br i1 %2051, label %2052, label %2069

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

2069:                                             ; preds = %2047, %2040
  %2070 = load i32, ptr %48, align 4, !tbaa !5
  %2071 = call ptr @__errno_location() #12
  store i32 %2070, ptr %2071, align 4, !tbaa !5
  %2072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2073 = load i32, ptr @test_count, align 4, !tbaa !5
  %2074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2075 = load i32, ptr %2074, align 4, !tbaa !5
  %2076 = call ptr @s2n_strerror(i32 noundef %2075, ptr noundef @.str.4)
  %2077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2078 = load i32, ptr %2077, align 4, !tbaa !5
  %2079 = call ptr @s2n_strerror_debug(i32 noundef %2078, ptr noundef @.str.4)
  %2080 = call ptr @__errno_location() #12
  %2081 = load i32, ptr %2080, align 4, !tbaa !5
  %2082 = call ptr @strerror(i32 noundef %2081) #11
  %2083 = call ptr @__errno_location() #12
  %2084 = load i32, ptr %2083, align 4, !tbaa !5
  %2085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2072, ptr noundef @.str.5, i32 noundef %2073, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2076, ptr noundef %2079, ptr noundef %2082, i32 noundef %2084) #11
  br label %2086

2086:                                             ; preds = %2069, %2052
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %2087

2087:                                             ; preds = %2086
  br label %2088

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

2089:                                             ; No predecessors!
  br label %2090

2090:                                             ; preds = %2089
  br label %2091

2091:                                             ; preds = %2090, %2033
  br label %2092

2092:                                             ; preds = %2091
  br label %2093

2093:                                             ; preds = %2092
  br label %2094

2094:                                             ; preds = %2093
  %2095 = load i32, ptr @test_count, align 4, !tbaa !5
  %2096 = add nsw i32 %2095, 1
  store i32 %2096, ptr @test_count, align 4, !tbaa !5
  %2097 = load i64, ptr %42, align 8, !tbaa !15
  %2098 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %2097
  %2099 = load ptr, ptr %45, align 8, !tbaa !9
  %2100 = getelementptr inbounds %struct.s2n_connection, ptr %2099, i32 0, i32 83
  %2101 = call i32 @s2n_dup(ptr noundef %2098, ptr noundef %2100)
  %2102 = icmp eq i32 %2101, -1
  br i1 %2102, label %2103, label %2156

2103:                                             ; preds = %2094
  br label %2104

2104:                                             ; preds = %2103
  br label %2105

2105:                                             ; preds = %2104
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #11
  %2106 = call ptr @__errno_location() #12
  %2107 = load i32, ptr %2106, align 4, !tbaa !5
  store i32 %2107, ptr %49, align 4, !tbaa !5
  %2108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2109 = call i32 @s2n_print_stacktrace(ptr noundef %2108)
  %2110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2111 = trunc i8 %2110 to i1
  br i1 %2111, label %2112, label %2134

2112:                                             ; preds = %2105
  %2113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2114 = call i32 @fileno(ptr noundef %2113) #11
  %2115 = call i32 @isatty(i32 noundef %2114) #11
  %2116 = icmp ne i32 %2115, 0
  br i1 %2116, label %2117, label %2134

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

2134:                                             ; preds = %2112, %2105
  %2135 = load i32, ptr %49, align 4, !tbaa !5
  %2136 = call ptr @__errno_location() #12
  store i32 %2135, ptr %2136, align 4, !tbaa !5
  %2137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2138 = load i32, ptr @test_count, align 4, !tbaa !5
  %2139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = call ptr @s2n_strerror(i32 noundef %2140, ptr noundef @.str.4)
  %2142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2143 = load i32, ptr %2142, align 4, !tbaa !5
  %2144 = call ptr @s2n_strerror_debug(i32 noundef %2143, ptr noundef @.str.4)
  %2145 = call ptr @__errno_location() #12
  %2146 = load i32, ptr %2145, align 4, !tbaa !5
  %2147 = call ptr @strerror(i32 noundef %2146) #11
  %2148 = call ptr @__errno_location() #12
  %2149 = load i32, ptr %2148, align 4, !tbaa !5
  %2150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2137, ptr noundef @.str.5, i32 noundef %2138, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 121, ptr noundef %2141, ptr noundef %2144, ptr noundef %2147, i32 noundef %2149) #11
  br label %2151

2151:                                             ; preds = %2134, %2117
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %2152

2152:                                             ; preds = %2151
  br label %2153

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

2154:                                             ; No predecessors!
  br label %2155

2155:                                             ; preds = %2154
  br label %2156

2156:                                             ; preds = %2155, %2094
  br label %2157

2157:                                             ; preds = %2156
  br label %2158

2158:                                             ; preds = %2157
  br label %2159

2159:                                             ; preds = %2158
  %2160 = load i32, ptr @test_count, align 4, !tbaa !5
  %2161 = add nsw i32 %2160, 1
  store i32 %2161, ptr @test_count, align 4, !tbaa !5
  %2162 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_cookie_extension, i32 0, i32 3), align 8, !tbaa !23
  %2163 = load ptr, ptr %45, align 8, !tbaa !9
  %2164 = call i32 %2162(ptr noundef %2163, ptr noundef %47)
  %2165 = icmp eq i32 %2164, -1
  br i1 %2165, label %2166, label %2219

2166:                                             ; preds = %2159
  br label %2167

2167:                                             ; preds = %2166
  br label %2168

2168:                                             ; preds = %2167
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #11
  %2169 = call ptr @__errno_location() #12
  %2170 = load i32, ptr %2169, align 4, !tbaa !5
  store i32 %2170, ptr %50, align 4, !tbaa !5
  %2171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2172 = call i32 @s2n_print_stacktrace(ptr noundef %2171)
  %2173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2174 = trunc i8 %2173 to i1
  br i1 %2174, label %2175, label %2197

2175:                                             ; preds = %2168
  %2176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2177 = call i32 @fileno(ptr noundef %2176) #11
  %2178 = call i32 @isatty(i32 noundef %2177) #11
  %2179 = icmp ne i32 %2178, 0
  br i1 %2179, label %2180, label %2197

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

2197:                                             ; preds = %2175, %2168
  %2198 = load i32, ptr %50, align 4, !tbaa !5
  %2199 = call ptr @__errno_location() #12
  store i32 %2198, ptr %2199, align 4, !tbaa !5
  %2200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2201 = load i32, ptr @test_count, align 4, !tbaa !5
  %2202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2203 = load i32, ptr %2202, align 4, !tbaa !5
  %2204 = call ptr @s2n_strerror(i32 noundef %2203, ptr noundef @.str.4)
  %2205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2206 = load i32, ptr %2205, align 4, !tbaa !5
  %2207 = call ptr @s2n_strerror_debug(i32 noundef %2206, ptr noundef @.str.4)
  %2208 = call ptr @__errno_location() #12
  %2209 = load i32, ptr %2208, align 4, !tbaa !5
  %2210 = call ptr @strerror(i32 noundef %2209) #11
  %2211 = call ptr @__errno_location() #12
  %2212 = load i32, ptr %2211, align 4, !tbaa !5
  %2213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2200, ptr noundef @.str.5, i32 noundef %2201, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 122, ptr noundef %2204, ptr noundef %2207, ptr noundef %2210, i32 noundef %2212) #11
  br label %2214

2214:                                             ; preds = %2197, %2180
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %2215

2215:                                             ; preds = %2214
  br label %2216

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

2217:                                             ; No predecessors!
  br label %2218

2218:                                             ; preds = %2217
  br label %2219

2219:                                             ; preds = %2218, %2159
  br label %2220

2220:                                             ; preds = %2219
  br label %2221

2221:                                             ; preds = %2220
  br label %2222

2222:                                             ; preds = %2221
  %2223 = load i32, ptr @test_count, align 4, !tbaa !5
  %2224 = add nsw i32 %2223, 1
  store i32 %2224, ptr @test_count, align 4, !tbaa !5
  %2225 = load i64, ptr %42, align 8, !tbaa !15
  %2226 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %2225
  %2227 = load ptr, ptr %43, align 8, !tbaa !9
  %2228 = getelementptr inbounds %struct.s2n_connection, ptr %2227, i32 0, i32 83
  %2229 = call i32 @s2n_dup(ptr noundef %2226, ptr noundef %2228)
  %2230 = icmp eq i32 %2229, -1
  br i1 %2230, label %2231, label %2284

2231:                                             ; preds = %2222
  br label %2232

2232:                                             ; preds = %2231
  br label %2233

2233:                                             ; preds = %2232
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #11
  %2234 = call ptr @__errno_location() #12
  %2235 = load i32, ptr %2234, align 4, !tbaa !5
  store i32 %2235, ptr %51, align 4, !tbaa !5
  %2236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2237 = call i32 @s2n_print_stacktrace(ptr noundef %2236)
  %2238 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2239 = trunc i8 %2238 to i1
  br i1 %2239, label %2240, label %2262

2240:                                             ; preds = %2233
  %2241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2242 = call i32 @fileno(ptr noundef %2241) #11
  %2243 = call i32 @isatty(i32 noundef %2242) #11
  %2244 = icmp ne i32 %2243, 0
  br i1 %2244, label %2245, label %2262

2245:                                             ; preds = %2240
  %2246 = load i32, ptr %51, align 4, !tbaa !5
  %2247 = call ptr @__errno_location() #12
  store i32 %2246, ptr %2247, align 4, !tbaa !5
  %2248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2249 = load i32, ptr @test_count, align 4, !tbaa !5
  %2250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2251 = load i32, ptr %2250, align 4, !tbaa !5
  %2252 = call ptr @s2n_strerror(i32 noundef %2251, ptr noundef @.str.4)
  %2253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2254 = load i32, ptr %2253, align 4, !tbaa !5
  %2255 = call ptr @s2n_strerror_debug(i32 noundef %2254, ptr noundef @.str.4)
  %2256 = call ptr @__errno_location() #12
  %2257 = load i32, ptr %2256, align 4, !tbaa !5
  %2258 = call ptr @strerror(i32 noundef %2257) #11
  %2259 = call ptr @__errno_location() #12
  %2260 = load i32, ptr %2259, align 4, !tbaa !5
  %2261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2248, ptr noundef @.str.2, i32 noundef %2249, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2252, ptr noundef %2255, ptr noundef %2258, i32 noundef %2260) #11
  br label %2279

2262:                                             ; preds = %2240, %2233
  %2263 = load i32, ptr %51, align 4, !tbaa !5
  %2264 = call ptr @__errno_location() #12
  store i32 %2263, ptr %2264, align 4, !tbaa !5
  %2265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2266 = load i32, ptr @test_count, align 4, !tbaa !5
  %2267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2268 = load i32, ptr %2267, align 4, !tbaa !5
  %2269 = call ptr @s2n_strerror(i32 noundef %2268, ptr noundef @.str.4)
  %2270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2271 = load i32, ptr %2270, align 4, !tbaa !5
  %2272 = call ptr @s2n_strerror_debug(i32 noundef %2271, ptr noundef @.str.4)
  %2273 = call ptr @__errno_location() #12
  %2274 = load i32, ptr %2273, align 4, !tbaa !5
  %2275 = call ptr @strerror(i32 noundef %2274) #11
  %2276 = call ptr @__errno_location() #12
  %2277 = load i32, ptr %2276, align 4, !tbaa !5
  %2278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2265, ptr noundef @.str.5, i32 noundef %2266, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 125, ptr noundef %2269, ptr noundef %2272, ptr noundef %2275, i32 noundef %2277) #11
  br label %2279

2279:                                             ; preds = %2262, %2245
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %2280

2280:                                             ; preds = %2279
  br label %2281

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

2282:                                             ; No predecessors!
  br label %2283

2283:                                             ; preds = %2282
  br label %2284

2284:                                             ; preds = %2283, %2222
  br label %2285

2285:                                             ; preds = %2284
  br label %2286

2286:                                             ; preds = %2285
  %2287 = load ptr, ptr %43, align 8, !tbaa !9
  %2288 = getelementptr inbounds %struct.s2n_connection, ptr %2287, i32 0, i32 83
  %2289 = getelementptr inbounds %struct.s2n_blob, ptr %2288, i32 0, i32 1
  %2290 = load i32, ptr %2289, align 8, !tbaa !51
  %2291 = add i32 %2290, -1
  store i32 %2291, ptr %2289, align 8, !tbaa !51
  br label %2292

2292:                                             ; preds = %2286
  br label %2293

2293:                                             ; preds = %2292
  br label %2294

2294:                                             ; preds = %2293
  %2295 = load i32, ptr @test_count, align 4, !tbaa !5
  %2296 = add nsw i32 %2295, 1
  store i32 %2296, ptr @test_count, align 4, !tbaa !5
  %2297 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_cookie_extension, i32 0, i32 4), align 8, !tbaa !24
  %2298 = load ptr, ptr %43, align 8, !tbaa !9
  %2299 = call i32 %2297(ptr noundef %2298, ptr noundef %47)
  %2300 = icmp eq i32 %2299, -1
  br i1 %2300, label %2354, label %2301

2301:                                             ; preds = %2294
  br label %2302

2302:                                             ; preds = %2301
  br label %2303

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

2310:                                             ; preds = %2303
  %2311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2312 = call i32 @fileno(ptr noundef %2311) #11
  %2313 = call i32 @isatty(i32 noundef %2312) #11
  %2314 = icmp ne i32 %2313, 0
  br i1 %2314, label %2315, label %2332

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

2332:                                             ; preds = %2310, %2303
  %2333 = load i32, ptr %52, align 4, !tbaa !5
  %2334 = call ptr @__errno_location() #12
  store i32 %2333, ptr %2334, align 4, !tbaa !5
  %2335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2336 = load i32, ptr @test_count, align 4, !tbaa !5
  %2337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2338 = load i32, ptr %2337, align 4, !tbaa !5
  %2339 = call ptr @s2n_strerror(i32 noundef %2338, ptr noundef @.str.4)
  %2340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2341 = load i32, ptr %2340, align 4, !tbaa !5
  %2342 = call ptr @s2n_strerror_debug(i32 noundef %2341, ptr noundef @.str.4)
  %2343 = call ptr @__errno_location() #12
  %2344 = load i32, ptr %2343, align 4, !tbaa !5
  %2345 = call ptr @strerror(i32 noundef %2344) #11
  %2346 = call ptr @__errno_location() #12
  %2347 = load i32, ptr %2346, align 4, !tbaa !5
  %2348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2335, ptr noundef @.str.5, i32 noundef %2336, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2339, ptr noundef %2342, ptr noundef %2345, i32 noundef %2347) #11
  br label %2349

2349:                                             ; preds = %2332, %2315
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %2350

2350:                                             ; preds = %2349
  br label %2351

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

2352:                                             ; No predecessors!
  br label %2353

2353:                                             ; preds = %2352
  br label %2354

2354:                                             ; preds = %2353, %2294
  br label %2355

2355:                                             ; preds = %2354
  br label %2356

2356:                                             ; preds = %2355
  br label %2357

2357:                                             ; preds = %2356
  %2358 = load i32, ptr @test_count, align 4, !tbaa !5
  %2359 = add nsw i32 %2358, 1
  store i32 %2359, ptr @test_count, align 4, !tbaa !5
  %2360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2361 = load i32, ptr %2360, align 4, !tbaa !5
  %2362 = icmp eq i32 %2361, 335544322
  br i1 %2362, label %2416, label %2363

2363:                                             ; preds = %2357
  br label %2364

2364:                                             ; preds = %2363
  br label %2365

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

2372:                                             ; preds = %2365
  %2373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2374 = call i32 @fileno(ptr noundef %2373) #11
  %2375 = call i32 @isatty(i32 noundef %2374) #11
  %2376 = icmp ne i32 %2375, 0
  br i1 %2376, label %2377, label %2394

2377:                                             ; preds = %2372
  %2378 = load i32, ptr %53, align 4, !tbaa !5
  %2379 = call ptr @__errno_location() #12
  store i32 %2378, ptr %2379, align 4, !tbaa !5
  %2380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2381 = load i32, ptr @test_count, align 4, !tbaa !5
  %2382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2383 = load i32, ptr %2382, align 4, !tbaa !5
  %2384 = call ptr @s2n_strerror(i32 noundef %2383, ptr noundef @.str.4)
  %2385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2386 = load i32, ptr %2385, align 4, !tbaa !5
  %2387 = call ptr @s2n_strerror_debug(i32 noundef %2386, ptr noundef @.str.4)
  %2388 = call ptr @__errno_location() #12
  %2389 = load i32, ptr %2388, align 4, !tbaa !5
  %2390 = call ptr @strerror(i32 noundef %2389) #11
  %2391 = call ptr @__errno_location() #12
  %2392 = load i32, ptr %2391, align 4, !tbaa !5
  %2393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2380, ptr noundef @.str.2, i32 noundef %2381, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2384, ptr noundef %2387, ptr noundef %2390, i32 noundef %2392) #11
  br label %2411

2394:                                             ; preds = %2372, %2365
  %2395 = load i32, ptr %53, align 4, !tbaa !5
  %2396 = call ptr @__errno_location() #12
  store i32 %2395, ptr %2396, align 4, !tbaa !5
  %2397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2398 = load i32, ptr @test_count, align 4, !tbaa !5
  %2399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2400 = load i32, ptr %2399, align 4, !tbaa !5
  %2401 = call ptr @s2n_strerror(i32 noundef %2400, ptr noundef @.str.4)
  %2402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2403 = load i32, ptr %2402, align 4, !tbaa !5
  %2404 = call ptr @s2n_strerror_debug(i32 noundef %2403, ptr noundef @.str.4)
  %2405 = call ptr @__errno_location() #12
  %2406 = load i32, ptr %2405, align 4, !tbaa !5
  %2407 = call ptr @strerror(i32 noundef %2406) #11
  %2408 = call ptr @__errno_location() #12
  %2409 = load i32, ptr %2408, align 4, !tbaa !5
  %2410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2397, ptr noundef @.str.5, i32 noundef %2398, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2401, ptr noundef %2404, ptr noundef %2407, i32 noundef %2409) #11
  br label %2411

2411:                                             ; preds = %2394, %2377
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %2412

2412:                                             ; preds = %2411
  br label %2413

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

2414:                                             ; No predecessors!
  br label %2415

2415:                                             ; preds = %2414
  br label %2416

2416:                                             ; preds = %2415, %2357
  br label %2417

2417:                                             ; preds = %2416
  br label %2418

2418:                                             ; preds = %2417
  br label %2419

2419:                                             ; preds = %2418
  %2420 = load i32, ptr @test_count, align 4, !tbaa !5
  %2421 = add nsw i32 %2420, 1
  store i32 %2421, ptr @test_count, align 4, !tbaa !5
  %2422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2423 = load i32, ptr %2422, align 4, !tbaa !5
  %2424 = call ptr @s2n_strerror_debug(i32 noundef %2423, ptr noundef @.str.4)
  %2425 = icmp eq ptr %2424, null
  br i1 %2425, label %2426, label %2479

2426:                                             ; preds = %2419
  br label %2427

2427:                                             ; preds = %2426
  br label %2428

2428:                                             ; preds = %2427
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #11
  %2429 = call ptr @__errno_location() #12
  %2430 = load i32, ptr %2429, align 4, !tbaa !5
  store i32 %2430, ptr %54, align 4, !tbaa !5
  %2431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2432 = call i32 @s2n_print_stacktrace(ptr noundef %2431)
  %2433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2434 = trunc i8 %2433 to i1
  br i1 %2434, label %2435, label %2457

2435:                                             ; preds = %2428
  %2436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2437 = call i32 @fileno(ptr noundef %2436) #11
  %2438 = call i32 @isatty(i32 noundef %2437) #11
  %2439 = icmp ne i32 %2438, 0
  br i1 %2439, label %2440, label %2457

2440:                                             ; preds = %2435
  %2441 = load i32, ptr %54, align 4, !tbaa !5
  %2442 = call ptr @__errno_location() #12
  store i32 %2441, ptr %2442, align 4, !tbaa !5
  %2443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2444 = load i32, ptr @test_count, align 4, !tbaa !5
  %2445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2446 = load i32, ptr %2445, align 4, !tbaa !5
  %2447 = call ptr @s2n_strerror(i32 noundef %2446, ptr noundef @.str.4)
  %2448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2449 = load i32, ptr %2448, align 4, !tbaa !5
  %2450 = call ptr @s2n_strerror_debug(i32 noundef %2449, ptr noundef @.str.4)
  %2451 = call ptr @__errno_location() #12
  %2452 = load i32, ptr %2451, align 4, !tbaa !5
  %2453 = call ptr @strerror(i32 noundef %2452) #11
  %2454 = call ptr @__errno_location() #12
  %2455 = load i32, ptr %2454, align 4, !tbaa !5
  %2456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2443, ptr noundef @.str.2, i32 noundef %2444, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2447, ptr noundef %2450, ptr noundef %2453, i32 noundef %2455) #11
  br label %2474

2457:                                             ; preds = %2435, %2428
  %2458 = load i32, ptr %54, align 4, !tbaa !5
  %2459 = call ptr @__errno_location() #12
  store i32 %2458, ptr %2459, align 4, !tbaa !5
  %2460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2461 = load i32, ptr @test_count, align 4, !tbaa !5
  %2462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2463 = load i32, ptr %2462, align 4, !tbaa !5
  %2464 = call ptr @s2n_strerror(i32 noundef %2463, ptr noundef @.str.4)
  %2465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2466 = load i32, ptr %2465, align 4, !tbaa !5
  %2467 = call ptr @s2n_strerror_debug(i32 noundef %2466, ptr noundef @.str.4)
  %2468 = call ptr @__errno_location() #12
  %2469 = load i32, ptr %2468, align 4, !tbaa !5
  %2470 = call ptr @strerror(i32 noundef %2469) #11
  %2471 = call ptr @__errno_location() #12
  %2472 = load i32, ptr %2471, align 4, !tbaa !5
  %2473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2460, ptr noundef @.str.5, i32 noundef %2461, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 128, ptr noundef %2464, ptr noundef %2467, ptr noundef %2470, i32 noundef %2472) #11
  br label %2474

2474:                                             ; preds = %2457, %2440
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %2475

2475:                                             ; preds = %2474
  br label %2476

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

2477:                                             ; No predecessors!
  br label %2478

2478:                                             ; preds = %2477
  br label %2479

2479:                                             ; preds = %2478, %2419
  br label %2480

2480:                                             ; preds = %2479
  br label %2481

2481:                                             ; preds = %2480
  br label %2482

2482:                                             ; preds = %2481
  br label %2483

2483:                                             ; preds = %2482
  br label %2484

2484:                                             ; preds = %2483
  %2485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2485, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2486 = call ptr @__errno_location() #12
  store i32 0, ptr %2486, align 4, !tbaa !5
  br label %2487

2487:                                             ; preds = %2484
  br label %2488

2488:                                             ; preds = %2487
  br label %2489

2489:                                             ; preds = %2488
  br label %2490

2490:                                             ; preds = %2489
  br label %2491

2491:                                             ; preds = %2490
  %2492 = load i32, ptr @test_count, align 4, !tbaa !5
  %2493 = add nsw i32 %2492, 1
  store i32 %2493, ptr @test_count, align 4, !tbaa !5
  %2494 = load ptr, ptr %43, align 8, !tbaa !9
  %2495 = getelementptr inbounds %struct.s2n_connection, ptr %2494, i32 0, i32 83
  %2496 = call i32 @s2n_free(ptr noundef %2495)
  %2497 = icmp eq i32 %2496, -1
  br i1 %2497, label %2498, label %2551

2498:                                             ; preds = %2491
  br label %2499

2499:                                             ; preds = %2498
  br label %2500

2500:                                             ; preds = %2499
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #11
  %2501 = call ptr @__errno_location() #12
  %2502 = load i32, ptr %2501, align 4, !tbaa !5
  store i32 %2502, ptr %55, align 4, !tbaa !5
  %2503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2504 = call i32 @s2n_print_stacktrace(ptr noundef %2503)
  %2505 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2506 = trunc i8 %2505 to i1
  br i1 %2506, label %2507, label %2529

2507:                                             ; preds = %2500
  %2508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2509 = call i32 @fileno(ptr noundef %2508) #11
  %2510 = call i32 @isatty(i32 noundef %2509) #11
  %2511 = icmp ne i32 %2510, 0
  br i1 %2511, label %2512, label %2529

2512:                                             ; preds = %2507
  %2513 = load i32, ptr %55, align 4, !tbaa !5
  %2514 = call ptr @__errno_location() #12
  store i32 %2513, ptr %2514, align 4, !tbaa !5
  %2515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2516 = load i32, ptr @test_count, align 4, !tbaa !5
  %2517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2518 = load i32, ptr %2517, align 4, !tbaa !5
  %2519 = call ptr @s2n_strerror(i32 noundef %2518, ptr noundef @.str.4)
  %2520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2521 = load i32, ptr %2520, align 4, !tbaa !5
  %2522 = call ptr @s2n_strerror_debug(i32 noundef %2521, ptr noundef @.str.4)
  %2523 = call ptr @__errno_location() #12
  %2524 = load i32, ptr %2523, align 4, !tbaa !5
  %2525 = call ptr @strerror(i32 noundef %2524) #11
  %2526 = call ptr @__errno_location() #12
  %2527 = load i32, ptr %2526, align 4, !tbaa !5
  %2528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2515, ptr noundef @.str.2, i32 noundef %2516, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 129, ptr noundef %2519, ptr noundef %2522, ptr noundef %2525, i32 noundef %2527) #11
  br label %2546

2529:                                             ; preds = %2507, %2500
  %2530 = load i32, ptr %55, align 4, !tbaa !5
  %2531 = call ptr @__errno_location() #12
  store i32 %2530, ptr %2531, align 4, !tbaa !5
  %2532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2533 = load i32, ptr @test_count, align 4, !tbaa !5
  %2534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2535 = load i32, ptr %2534, align 4, !tbaa !5
  %2536 = call ptr @s2n_strerror(i32 noundef %2535, ptr noundef @.str.4)
  %2537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2538 = load i32, ptr %2537, align 4, !tbaa !5
  %2539 = call ptr @s2n_strerror_debug(i32 noundef %2538, ptr noundef @.str.4)
  %2540 = call ptr @__errno_location() #12
  %2541 = load i32, ptr %2540, align 4, !tbaa !5
  %2542 = call ptr @strerror(i32 noundef %2541) #11
  %2543 = call ptr @__errno_location() #12
  %2544 = load i32, ptr %2543, align 4, !tbaa !5
  %2545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2532, ptr noundef @.str.5, i32 noundef %2533, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 129, ptr noundef %2536, ptr noundef %2539, ptr noundef %2542, i32 noundef %2544) #11
  br label %2546

2546:                                             ; preds = %2529, %2512
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %2547

2547:                                             ; preds = %2546
  br label %2548

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

2549:                                             ; No predecessors!
  br label %2550

2550:                                             ; preds = %2549
  br label %2551

2551:                                             ; preds = %2550, %2491
  br label %2552

2552:                                             ; preds = %2551
  br label %2553

2553:                                             ; preds = %2552
  br label %2554

2554:                                             ; preds = %2553
  %2555 = load i32, ptr @test_count, align 4, !tbaa !5
  %2556 = add nsw i32 %2555, 1
  store i32 %2556, ptr @test_count, align 4, !tbaa !5
  %2557 = call i32 @s2n_stuffer_reread(ptr noundef %47)
  %2558 = icmp eq i32 %2557, -1
  br i1 %2558, label %2559, label %2612

2559:                                             ; preds = %2554
  br label %2560

2560:                                             ; preds = %2559
  br label %2561

2561:                                             ; preds = %2560
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #11
  %2562 = call ptr @__errno_location() #12
  %2563 = load i32, ptr %2562, align 4, !tbaa !5
  store i32 %2563, ptr %56, align 4, !tbaa !5
  %2564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2565 = call i32 @s2n_print_stacktrace(ptr noundef %2564)
  %2566 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2567 = trunc i8 %2566 to i1
  br i1 %2567, label %2568, label %2590

2568:                                             ; preds = %2561
  %2569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2570 = call i32 @fileno(ptr noundef %2569) #11
  %2571 = call i32 @isatty(i32 noundef %2570) #11
  %2572 = icmp ne i32 %2571, 0
  br i1 %2572, label %2573, label %2590

2573:                                             ; preds = %2568
  %2574 = load i32, ptr %56, align 4, !tbaa !5
  %2575 = call ptr @__errno_location() #12
  store i32 %2574, ptr %2575, align 4, !tbaa !5
  %2576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2577 = load i32, ptr @test_count, align 4, !tbaa !5
  %2578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2579 = load i32, ptr %2578, align 4, !tbaa !5
  %2580 = call ptr @s2n_strerror(i32 noundef %2579, ptr noundef @.str.4)
  %2581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2582 = load i32, ptr %2581, align 4, !tbaa !5
  %2583 = call ptr @s2n_strerror_debug(i32 noundef %2582, ptr noundef @.str.4)
  %2584 = call ptr @__errno_location() #12
  %2585 = load i32, ptr %2584, align 4, !tbaa !5
  %2586 = call ptr @strerror(i32 noundef %2585) #11
  %2587 = call ptr @__errno_location() #12
  %2588 = load i32, ptr %2587, align 4, !tbaa !5
  %2589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2576, ptr noundef @.str.2, i32 noundef %2577, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2580, ptr noundef %2583, ptr noundef %2586, i32 noundef %2588) #11
  br label %2607

2590:                                             ; preds = %2568, %2561
  %2591 = load i32, ptr %56, align 4, !tbaa !5
  %2592 = call ptr @__errno_location() #12
  store i32 %2591, ptr %2592, align 4, !tbaa !5
  %2593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2594 = load i32, ptr @test_count, align 4, !tbaa !5
  %2595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2596 = load i32, ptr %2595, align 4, !tbaa !5
  %2597 = call ptr @s2n_strerror(i32 noundef %2596, ptr noundef @.str.4)
  %2598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2599 = load i32, ptr %2598, align 4, !tbaa !5
  %2600 = call ptr @s2n_strerror_debug(i32 noundef %2599, ptr noundef @.str.4)
  %2601 = call ptr @__errno_location() #12
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  %2603 = call ptr @strerror(i32 noundef %2602) #11
  %2604 = call ptr @__errno_location() #12
  %2605 = load i32, ptr %2604, align 4, !tbaa !5
  %2606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2593, ptr noundef @.str.5, i32 noundef %2594, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 130, ptr noundef %2597, ptr noundef %2600, ptr noundef %2603, i32 noundef %2605) #11
  br label %2607

2607:                                             ; preds = %2590, %2573
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %2608

2608:                                             ; preds = %2607
  br label %2609

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

2610:                                             ; No predecessors!
  br label %2611

2611:                                             ; preds = %2610
  br label %2612

2612:                                             ; preds = %2611, %2554
  br label %2613

2613:                                             ; preds = %2612
  br label %2614

2614:                                             ; preds = %2613
  br label %2615

2615:                                             ; preds = %2614
  %2616 = load i32, ptr @test_count, align 4, !tbaa !5
  %2617 = add nsw i32 %2616, 1
  store i32 %2617, ptr @test_count, align 4, !tbaa !5
  %2618 = load i64, ptr %42, align 8, !tbaa !15
  %2619 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %2618
  %2620 = load ptr, ptr %43, align 8, !tbaa !9
  %2621 = getelementptr inbounds %struct.s2n_connection, ptr %2620, i32 0, i32 83
  %2622 = call i32 @s2n_dup(ptr noundef %2619, ptr noundef %2621)
  %2623 = icmp eq i32 %2622, -1
  br i1 %2623, label %2624, label %2677

2624:                                             ; preds = %2615
  br label %2625

2625:                                             ; preds = %2624
  br label %2626

2626:                                             ; preds = %2625
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #11
  %2627 = call ptr @__errno_location() #12
  %2628 = load i32, ptr %2627, align 4, !tbaa !5
  store i32 %2628, ptr %57, align 4, !tbaa !5
  %2629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2630 = call i32 @s2n_print_stacktrace(ptr noundef %2629)
  %2631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2632 = trunc i8 %2631 to i1
  br i1 %2632, label %2633, label %2655

2633:                                             ; preds = %2626
  %2634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2635 = call i32 @fileno(ptr noundef %2634) #11
  %2636 = call i32 @isatty(i32 noundef %2635) #11
  %2637 = icmp ne i32 %2636, 0
  br i1 %2637, label %2638, label %2655

2638:                                             ; preds = %2633
  %2639 = load i32, ptr %57, align 4, !tbaa !5
  %2640 = call ptr @__errno_location() #12
  store i32 %2639, ptr %2640, align 4, !tbaa !5
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2642 = load i32, ptr @test_count, align 4, !tbaa !5
  %2643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2644 = load i32, ptr %2643, align 4, !tbaa !5
  %2645 = call ptr @s2n_strerror(i32 noundef %2644, ptr noundef @.str.4)
  %2646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2647 = load i32, ptr %2646, align 4, !tbaa !5
  %2648 = call ptr @s2n_strerror_debug(i32 noundef %2647, ptr noundef @.str.4)
  %2649 = call ptr @__errno_location() #12
  %2650 = load i32, ptr %2649, align 4, !tbaa !5
  %2651 = call ptr @strerror(i32 noundef %2650) #11
  %2652 = call ptr @__errno_location() #12
  %2653 = load i32, ptr %2652, align 4, !tbaa !5
  %2654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2641, ptr noundef @.str.2, i32 noundef %2642, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2645, ptr noundef %2648, ptr noundef %2651, i32 noundef %2653) #11
  br label %2672

2655:                                             ; preds = %2633, %2626
  %2656 = load i32, ptr %57, align 4, !tbaa !5
  %2657 = call ptr @__errno_location() #12
  store i32 %2656, ptr %2657, align 4, !tbaa !5
  %2658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2659 = load i32, ptr @test_count, align 4, !tbaa !5
  %2660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2661 = load i32, ptr %2660, align 4, !tbaa !5
  %2662 = call ptr @s2n_strerror(i32 noundef %2661, ptr noundef @.str.4)
  %2663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2664 = load i32, ptr %2663, align 4, !tbaa !5
  %2665 = call ptr @s2n_strerror_debug(i32 noundef %2664, ptr noundef @.str.4)
  %2666 = call ptr @__errno_location() #12
  %2667 = load i32, ptr %2666, align 4, !tbaa !5
  %2668 = call ptr @strerror(i32 noundef %2667) #11
  %2669 = call ptr @__errno_location() #12
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  %2671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2658, ptr noundef @.str.5, i32 noundef %2659, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2662, ptr noundef %2665, ptr noundef %2668, i32 noundef %2670) #11
  br label %2672

2672:                                             ; preds = %2655, %2638
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %2673

2673:                                             ; preds = %2672
  br label %2674

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

2675:                                             ; No predecessors!
  br label %2676

2676:                                             ; preds = %2675
  br label %2677

2677:                                             ; preds = %2676, %2615
  br label %2678

2678:                                             ; preds = %2677
  br label %2679

2679:                                             ; preds = %2678
  %2680 = load ptr, ptr %43, align 8, !tbaa !9
  %2681 = getelementptr inbounds %struct.s2n_connection, ptr %2680, i32 0, i32 83
  %2682 = getelementptr inbounds %struct.s2n_blob, ptr %2681, i32 0, i32 0
  %2683 = load ptr, ptr %2682, align 8, !tbaa !53
  %2684 = getelementptr inbounds i8, ptr %2683, i64 0
  %2685 = load i8, ptr %2684, align 1, !tbaa !55
  %2686 = zext i8 %2685 to i32
  %2687 = add nsw i32 %2686, 1
  %2688 = trunc i32 %2687 to i8
  %2689 = load ptr, ptr %43, align 8, !tbaa !9
  %2690 = getelementptr inbounds %struct.s2n_connection, ptr %2689, i32 0, i32 83
  %2691 = getelementptr inbounds %struct.s2n_blob, ptr %2690, i32 0, i32 0
  %2692 = load ptr, ptr %2691, align 8, !tbaa !53
  %2693 = getelementptr inbounds i8, ptr %2692, i64 0
  store i8 %2688, ptr %2693, align 1, !tbaa !55
  br label %2694

2694:                                             ; preds = %2679
  br label %2695

2695:                                             ; preds = %2694
  br label %2696

2696:                                             ; preds = %2695
  %2697 = load i32, ptr @test_count, align 4, !tbaa !5
  %2698 = add nsw i32 %2697, 1
  store i32 %2698, ptr @test_count, align 4, !tbaa !5
  %2699 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_cookie_extension, i32 0, i32 4), align 8, !tbaa !24
  %2700 = load ptr, ptr %43, align 8, !tbaa !9
  %2701 = call i32 %2699(ptr noundef %2700, ptr noundef %47)
  %2702 = icmp eq i32 %2701, -1
  br i1 %2702, label %2756, label %2703

2703:                                             ; preds = %2696
  br label %2704

2704:                                             ; preds = %2703
  br label %2705

2705:                                             ; preds = %2704
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %2706 = call ptr @__errno_location() #12
  %2707 = load i32, ptr %2706, align 4, !tbaa !5
  store i32 %2707, ptr %58, align 4, !tbaa !5
  %2708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2709 = call i32 @s2n_print_stacktrace(ptr noundef %2708)
  %2710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2711 = trunc i8 %2710 to i1
  br i1 %2711, label %2712, label %2734

2712:                                             ; preds = %2705
  %2713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2714 = call i32 @fileno(ptr noundef %2713) #11
  %2715 = call i32 @isatty(i32 noundef %2714) #11
  %2716 = icmp ne i32 %2715, 0
  br i1 %2716, label %2717, label %2734

2717:                                             ; preds = %2712
  %2718 = load i32, ptr %58, align 4, !tbaa !5
  %2719 = call ptr @__errno_location() #12
  store i32 %2718, ptr %2719, align 4, !tbaa !5
  %2720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2721 = load i32, ptr @test_count, align 4, !tbaa !5
  %2722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2723 = load i32, ptr %2722, align 4, !tbaa !5
  %2724 = call ptr @s2n_strerror(i32 noundef %2723, ptr noundef @.str.4)
  %2725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2726 = load i32, ptr %2725, align 4, !tbaa !5
  %2727 = call ptr @s2n_strerror_debug(i32 noundef %2726, ptr noundef @.str.4)
  %2728 = call ptr @__errno_location() #12
  %2729 = load i32, ptr %2728, align 4, !tbaa !5
  %2730 = call ptr @strerror(i32 noundef %2729) #11
  %2731 = call ptr @__errno_location() #12
  %2732 = load i32, ptr %2731, align 4, !tbaa !5
  %2733 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2720, ptr noundef @.str.2, i32 noundef %2721, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 136, ptr noundef %2724, ptr noundef %2727, ptr noundef %2730, i32 noundef %2732) #11
  br label %2751

2734:                                             ; preds = %2712, %2705
  %2735 = load i32, ptr %58, 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.5, i32 noundef %2738, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 136, ptr noundef %2741, ptr noundef %2744, ptr noundef %2747, i32 noundef %2749) #11
  br label %2751

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

2752:                                             ; preds = %2751
  br label %2753

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

2754:                                             ; No predecessors!
  br label %2755

2755:                                             ; preds = %2754
  br label %2756

2756:                                             ; preds = %2755, %2696
  br label %2757

2757:                                             ; preds = %2756
  br label %2758

2758:                                             ; preds = %2757
  br label %2759

2759:                                             ; preds = %2758
  %2760 = load i32, ptr @test_count, align 4, !tbaa !5
  %2761 = add nsw i32 %2760, 1
  store i32 %2761, ptr @test_count, align 4, !tbaa !5
  %2762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2763 = load i32, ptr %2762, align 4, !tbaa !5
  %2764 = icmp eq i32 %2763, 335544322
  br i1 %2764, label %2818, label %2765

2765:                                             ; preds = %2759
  br label %2766

2766:                                             ; preds = %2765
  br label %2767

2767:                                             ; preds = %2766
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #11
  %2768 = call ptr @__errno_location() #12
  %2769 = load i32, ptr %2768, align 4, !tbaa !5
  store i32 %2769, ptr %59, align 4, !tbaa !5
  %2770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2771 = call i32 @s2n_print_stacktrace(ptr noundef %2770)
  %2772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2773 = trunc i8 %2772 to i1
  br i1 %2773, label %2774, label %2796

2774:                                             ; preds = %2767
  %2775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2776 = call i32 @fileno(ptr noundef %2775) #11
  %2777 = call i32 @isatty(i32 noundef %2776) #11
  %2778 = icmp ne i32 %2777, 0
  br i1 %2778, label %2779, label %2796

2779:                                             ; preds = %2774
  %2780 = load i32, ptr %59, align 4, !tbaa !5
  %2781 = call ptr @__errno_location() #12
  store i32 %2780, ptr %2781, align 4, !tbaa !5
  %2782 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2783 = load i32, ptr @test_count, align 4, !tbaa !5
  %2784 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2785 = load i32, ptr %2784, align 4, !tbaa !5
  %2786 = call ptr @s2n_strerror(i32 noundef %2785, ptr noundef @.str.4)
  %2787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2788 = load i32, ptr %2787, align 4, !tbaa !5
  %2789 = call ptr @s2n_strerror_debug(i32 noundef %2788, ptr noundef @.str.4)
  %2790 = call ptr @__errno_location() #12
  %2791 = load i32, ptr %2790, align 4, !tbaa !5
  %2792 = call ptr @strerror(i32 noundef %2791) #11
  %2793 = call ptr @__errno_location() #12
  %2794 = load i32, ptr %2793, align 4, !tbaa !5
  %2795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2782, ptr noundef @.str.2, i32 noundef %2783, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 136, ptr noundef %2786, ptr noundef %2789, ptr noundef %2792, i32 noundef %2794) #11
  br label %2813

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

2813:                                             ; preds = %2796, %2779
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %2814

2814:                                             ; preds = %2813
  br label %2815

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

2816:                                             ; No predecessors!
  br label %2817

2817:                                             ; preds = %2816
  br label %2818

2818:                                             ; preds = %2817, %2759
  br label %2819

2819:                                             ; preds = %2818
  br label %2820

2820:                                             ; preds = %2819
  br label %2821

2821:                                             ; preds = %2820
  %2822 = load i32, ptr @test_count, align 4, !tbaa !5
  %2823 = add nsw i32 %2822, 1
  store i32 %2823, ptr @test_count, align 4, !tbaa !5
  %2824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2825 = load i32, ptr %2824, align 4, !tbaa !5
  %2826 = call ptr @s2n_strerror_debug(i32 noundef %2825, ptr noundef @.str.4)
  %2827 = icmp eq ptr %2826, null
  br i1 %2827, label %2828, label %2881

2828:                                             ; preds = %2821
  br label %2829

2829:                                             ; preds = %2828
  br label %2830

2830:                                             ; preds = %2829
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #11
  %2831 = call ptr @__errno_location() #12
  %2832 = load i32, ptr %2831, align 4, !tbaa !5
  store i32 %2832, ptr %60, align 4, !tbaa !5
  %2833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2834 = call i32 @s2n_print_stacktrace(ptr noundef %2833)
  %2835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2836 = trunc i8 %2835 to i1
  br i1 %2836, label %2837, label %2859

2837:                                             ; preds = %2830
  %2838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2839 = call i32 @fileno(ptr noundef %2838) #11
  %2840 = call i32 @isatty(i32 noundef %2839) #11
  %2841 = icmp ne i32 %2840, 0
  br i1 %2841, label %2842, label %2859

2842:                                             ; preds = %2837
  %2843 = load i32, ptr %60, align 4, !tbaa !5
  %2844 = call ptr @__errno_location() #12
  store i32 %2843, ptr %2844, align 4, !tbaa !5
  %2845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2846 = load i32, ptr @test_count, align 4, !tbaa !5
  %2847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2848 = load i32, ptr %2847, align 4, !tbaa !5
  %2849 = call ptr @s2n_strerror(i32 noundef %2848, ptr noundef @.str.4)
  %2850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2851 = load i32, ptr %2850, align 4, !tbaa !5
  %2852 = call ptr @s2n_strerror_debug(i32 noundef %2851, ptr noundef @.str.4)
  %2853 = call ptr @__errno_location() #12
  %2854 = load i32, ptr %2853, align 4, !tbaa !5
  %2855 = call ptr @strerror(i32 noundef %2854) #11
  %2856 = call ptr @__errno_location() #12
  %2857 = load i32, ptr %2856, align 4, !tbaa !5
  %2858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2845, ptr noundef @.str.2, i32 noundef %2846, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 136, ptr noundef %2849, ptr noundef %2852, ptr noundef %2855, i32 noundef %2857) #11
  br label %2876

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

2876:                                             ; preds = %2859, %2842
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %2877

2877:                                             ; preds = %2876
  br label %2878

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

2879:                                             ; No predecessors!
  br label %2880

2880:                                             ; preds = %2879
  br label %2881

2881:                                             ; preds = %2880, %2821
  br label %2882

2882:                                             ; preds = %2881
  br label %2883

2883:                                             ; preds = %2882
  br label %2884

2884:                                             ; preds = %2883
  br label %2885

2885:                                             ; preds = %2884
  br label %2886

2886:                                             ; preds = %2885
  %2887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2887, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2888 = call ptr @__errno_location() #12
  store i32 0, ptr %2888, align 4, !tbaa !5
  br label %2889

2889:                                             ; preds = %2886
  br label %2890

2890:                                             ; preds = %2889
  br label %2891

2891:                                             ; preds = %2890
  br label %2892

2892:                                             ; preds = %2891
  br label %2893

2893:                                             ; preds = %2892
  %2894 = load i32, ptr @test_count, align 4, !tbaa !5
  %2895 = add nsw i32 %2894, 1
  store i32 %2895, ptr @test_count, align 4, !tbaa !5
  %2896 = load ptr, ptr %43, align 8, !tbaa !9
  %2897 = getelementptr inbounds %struct.s2n_connection, ptr %2896, i32 0, i32 83
  %2898 = call i32 @s2n_free(ptr noundef %2897)
  %2899 = icmp eq i32 %2898, -1
  br i1 %2899, label %2900, label %2953

2900:                                             ; preds = %2893
  br label %2901

2901:                                             ; preds = %2900
  br label %2902

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

2909:                                             ; preds = %2902
  %2910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2911 = call i32 @fileno(ptr noundef %2910) #11
  %2912 = call i32 @isatty(i32 noundef %2911) #11
  %2913 = icmp ne i32 %2912, 0
  br i1 %2913, label %2914, label %2931

2914:                                             ; preds = %2909
  %2915 = load i32, ptr %61, align 4, !tbaa !5
  %2916 = call ptr @__errno_location() #12
  store i32 %2915, ptr %2916, align 4, !tbaa !5
  %2917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2918 = load i32, ptr @test_count, align 4, !tbaa !5
  %2919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2920 = load i32, ptr %2919, align 4, !tbaa !5
  %2921 = call ptr @s2n_strerror(i32 noundef %2920, ptr noundef @.str.4)
  %2922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2923 = load i32, ptr %2922, align 4, !tbaa !5
  %2924 = call ptr @s2n_strerror_debug(i32 noundef %2923, ptr noundef @.str.4)
  %2925 = call ptr @__errno_location() #12
  %2926 = load i32, ptr %2925, align 4, !tbaa !5
  %2927 = call ptr @strerror(i32 noundef %2926) #11
  %2928 = call ptr @__errno_location() #12
  %2929 = load i32, ptr %2928, align 4, !tbaa !5
  %2930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2917, ptr noundef @.str.2, i32 noundef %2918, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 137, ptr noundef %2921, ptr noundef %2924, ptr noundef %2927, i32 noundef %2929) #11
  br label %2948

2931:                                             ; preds = %2909, %2902
  %2932 = load i32, ptr %61, align 4, !tbaa !5
  %2933 = call ptr @__errno_location() #12
  store i32 %2932, ptr %2933, align 4, !tbaa !5
  %2934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2935 = load i32, ptr @test_count, align 4, !tbaa !5
  %2936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2937 = load i32, ptr %2936, align 4, !tbaa !5
  %2938 = call ptr @s2n_strerror(i32 noundef %2937, ptr noundef @.str.4)
  %2939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2940 = load i32, ptr %2939, align 4, !tbaa !5
  %2941 = call ptr @s2n_strerror_debug(i32 noundef %2940, ptr noundef @.str.4)
  %2942 = call ptr @__errno_location() #12
  %2943 = load i32, ptr %2942, align 4, !tbaa !5
  %2944 = call ptr @strerror(i32 noundef %2943) #11
  %2945 = call ptr @__errno_location() #12
  %2946 = load i32, ptr %2945, align 4, !tbaa !5
  %2947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2934, ptr noundef @.str.5, i32 noundef %2935, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 137, ptr noundef %2938, ptr noundef %2941, ptr noundef %2944, i32 noundef %2946) #11
  br label %2948

2948:                                             ; preds = %2931, %2914
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %2949

2949:                                             ; preds = %2948
  br label %2950

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

2951:                                             ; No predecessors!
  br label %2952

2952:                                             ; preds = %2951
  br label %2953

2953:                                             ; preds = %2952, %2893
  br label %2954

2954:                                             ; preds = %2953
  br label %2955

2955:                                             ; preds = %2954
  br label %2956

2956:                                             ; preds = %2955
  %2957 = load i32, ptr @test_count, align 4, !tbaa !5
  %2958 = add nsw i32 %2957, 1
  store i32 %2958, ptr @test_count, align 4, !tbaa !5
  %2959 = call i32 @s2n_stuffer_reread(ptr noundef %47)
  %2960 = icmp eq i32 %2959, -1
  br i1 %2960, label %2961, label %3014

2961:                                             ; preds = %2956
  br label %2962

2962:                                             ; preds = %2961
  br label %2963

2963:                                             ; preds = %2962
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #11
  %2964 = call ptr @__errno_location() #12
  %2965 = load i32, ptr %2964, align 4, !tbaa !5
  store i32 %2965, ptr %62, align 4, !tbaa !5
  %2966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2967 = call i32 @s2n_print_stacktrace(ptr noundef %2966)
  %2968 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2969 = trunc i8 %2968 to i1
  br i1 %2969, label %2970, label %2992

2970:                                             ; preds = %2963
  %2971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2972 = call i32 @fileno(ptr noundef %2971) #11
  %2973 = call i32 @isatty(i32 noundef %2972) #11
  %2974 = icmp ne i32 %2973, 0
  br i1 %2974, label %2975, label %2992

2975:                                             ; preds = %2970
  %2976 = load i32, ptr %62, align 4, !tbaa !5
  %2977 = call ptr @__errno_location() #12
  store i32 %2976, ptr %2977, align 4, !tbaa !5
  %2978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2979 = load i32, ptr @test_count, align 4, !tbaa !5
  %2980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2981 = load i32, ptr %2980, align 4, !tbaa !5
  %2982 = call ptr @s2n_strerror(i32 noundef %2981, ptr noundef @.str.4)
  %2983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2984 = load i32, ptr %2983, align 4, !tbaa !5
  %2985 = call ptr @s2n_strerror_debug(i32 noundef %2984, ptr noundef @.str.4)
  %2986 = call ptr @__errno_location() #12
  %2987 = load i32, ptr %2986, align 4, !tbaa !5
  %2988 = call ptr @strerror(i32 noundef %2987) #11
  %2989 = call ptr @__errno_location() #12
  %2990 = load i32, ptr %2989, align 4, !tbaa !5
  %2991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2978, ptr noundef @.str.2, i32 noundef %2979, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 138, ptr noundef %2982, ptr noundef %2985, ptr noundef %2988, i32 noundef %2990) #11
  br label %3009

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

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

3010:                                             ; preds = %3009
  br label %3011

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

3012:                                             ; No predecessors!
  br label %3013

3013:                                             ; preds = %3012
  br label %3014

3014:                                             ; preds = %3013, %2956
  br label %3015

3015:                                             ; preds = %3014
  br label %3016

3016:                                             ; preds = %3015
  br label %3017

3017:                                             ; preds = %3016
  %3018 = load i32, ptr @test_count, align 4, !tbaa !5
  %3019 = add nsw i32 %3018, 1
  store i32 %3019, ptr @test_count, align 4, !tbaa !5
  %3020 = load i64, ptr %42, align 8, !tbaa !15
  %3021 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %3020
  %3022 = load ptr, ptr %43, align 8, !tbaa !9
  %3023 = getelementptr inbounds %struct.s2n_connection, ptr %3022, i32 0, i32 83
  %3024 = call i32 @s2n_dup(ptr noundef %3021, ptr noundef %3023)
  %3025 = icmp eq i32 %3024, -1
  br i1 %3025, label %3026, label %3079

3026:                                             ; preds = %3017
  br label %3027

3027:                                             ; preds = %3026
  br label %3028

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

3035:                                             ; preds = %3028
  %3036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3037 = call i32 @fileno(ptr noundef %3036) #11
  %3038 = call i32 @isatty(i32 noundef %3037) #11
  %3039 = icmp ne i32 %3038, 0
  br i1 %3039, label %3040, label %3057

3040:                                             ; preds = %3035
  %3041 = load i32, ptr %63, align 4, !tbaa !5
  %3042 = call ptr @__errno_location() #12
  store i32 %3041, ptr %3042, align 4, !tbaa !5
  %3043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3044 = load i32, ptr @test_count, align 4, !tbaa !5
  %3045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3046 = load i32, ptr %3045, align 4, !tbaa !5
  %3047 = call ptr @s2n_strerror(i32 noundef %3046, ptr noundef @.str.4)
  %3048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3049 = load i32, ptr %3048, align 4, !tbaa !5
  %3050 = call ptr @s2n_strerror_debug(i32 noundef %3049, ptr noundef @.str.4)
  %3051 = call ptr @__errno_location() #12
  %3052 = load i32, ptr %3051, align 4, !tbaa !5
  %3053 = call ptr @strerror(i32 noundef %3052) #11
  %3054 = call ptr @__errno_location() #12
  %3055 = load i32, ptr %3054, align 4, !tbaa !5
  %3056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3043, ptr noundef @.str.2, i32 noundef %3044, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 141, ptr noundef %3047, ptr noundef %3050, ptr noundef %3053, i32 noundef %3055) #11
  br label %3074

3057:                                             ; preds = %3035, %3028
  %3058 = load i32, ptr %63, align 4, !tbaa !5
  %3059 = call ptr @__errno_location() #12
  store i32 %3058, ptr %3059, align 4, !tbaa !5
  %3060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3061 = load i32, ptr @test_count, align 4, !tbaa !5
  %3062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3063 = load i32, ptr %3062, align 4, !tbaa !5
  %3064 = call ptr @s2n_strerror(i32 noundef %3063, ptr noundef @.str.4)
  %3065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3066 = load i32, ptr %3065, align 4, !tbaa !5
  %3067 = call ptr @s2n_strerror_debug(i32 noundef %3066, ptr noundef @.str.4)
  %3068 = call ptr @__errno_location() #12
  %3069 = load i32, ptr %3068, align 4, !tbaa !5
  %3070 = call ptr @strerror(i32 noundef %3069) #11
  %3071 = call ptr @__errno_location() #12
  %3072 = load i32, ptr %3071, align 4, !tbaa !5
  %3073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3060, ptr noundef @.str.5, i32 noundef %3061, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 141, ptr noundef %3064, ptr noundef %3067, ptr noundef %3070, i32 noundef %3072) #11
  br label %3074

3074:                                             ; preds = %3057, %3040
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %3075

3075:                                             ; preds = %3074
  br label %3076

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

3077:                                             ; No predecessors!
  br label %3078

3078:                                             ; preds = %3077
  br label %3079

3079:                                             ; preds = %3078, %3017
  br label %3080

3080:                                             ; preds = %3079
  br label %3081

3081:                                             ; preds = %3080
  br label %3082

3082:                                             ; preds = %3081
  %3083 = load i32, ptr @test_count, align 4, !tbaa !5
  %3084 = add nsw i32 %3083, 1
  store i32 %3084, ptr @test_count, align 4, !tbaa !5
  %3085 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_cookie_extension, i32 0, i32 4), align 8, !tbaa !24
  %3086 = load ptr, ptr %43, align 8, !tbaa !9
  %3087 = call i32 %3085(ptr noundef %3086, ptr noundef %47)
  %3088 = icmp eq i32 %3087, -1
  br i1 %3088, label %3089, label %3142

3089:                                             ; preds = %3082
  br label %3090

3090:                                             ; preds = %3089
  br label %3091

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

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

3103:                                             ; preds = %3098
  %3104 = load i32, ptr %64, align 4, !tbaa !5
  %3105 = call ptr @__errno_location() #12
  store i32 %3104, ptr %3105, align 4, !tbaa !5
  %3106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3107 = load i32, ptr @test_count, align 4, !tbaa !5
  %3108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3109 = load i32, ptr %3108, align 4, !tbaa !5
  %3110 = call ptr @s2n_strerror(i32 noundef %3109, ptr noundef @.str.4)
  %3111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3112 = load i32, ptr %3111, align 4, !tbaa !5
  %3113 = call ptr @s2n_strerror_debug(i32 noundef %3112, ptr noundef @.str.4)
  %3114 = call ptr @__errno_location() #12
  %3115 = load i32, ptr %3114, align 4, !tbaa !5
  %3116 = call ptr @strerror(i32 noundef %3115) #11
  %3117 = call ptr @__errno_location() #12
  %3118 = load i32, ptr %3117, align 4, !tbaa !5
  %3119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3106, ptr noundef @.str.2, i32 noundef %3107, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 142, ptr noundef %3110, ptr noundef %3113, ptr noundef %3116, i32 noundef %3118) #11
  br label %3137

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

3137:                                             ; preds = %3120, %3103
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %3138

3138:                                             ; preds = %3137
  br label %3139

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

3140:                                             ; No predecessors!
  br label %3141

3141:                                             ; preds = %3140
  br label %3142

3142:                                             ; preds = %3141, %3082
  br label %3143

3143:                                             ; preds = %3142
  br label %3144

3144:                                             ; preds = %3143
  %3145 = call i32 @s2n_stuffer_free(ptr noundef %47)
  call void @llvm.lifetime.end.p0(i64 40, ptr %47) #11
  %3146 = call i32 @s2n_connection_ptr_free(ptr noundef %45)
  %3147 = getelementptr inbounds %struct.s2n_result, ptr %65, i32 0, i32 0
  store i32 %3146, ptr %3147, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #11
  %3148 = call i32 @s2n_connection_ptr_free(ptr noundef %43)
  %3149 = getelementptr inbounds %struct.s2n_result, ptr %66, i32 0, i32 0
  store i32 %3148, ptr %3149, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #11
  br label %3150

3150:                                             ; preds = %3144
  %3151 = load i64, ptr %42, align 8, !tbaa !15
  %3152 = add i64 %3151, 1
  store i64 %3152, ptr %42, align 8, !tbaa !15
  br label %1904, !llvm.loop !56

3153:                                             ; preds = %1907
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #11
  store ptr null, ptr %67, align 8, !tbaa !9
  br label %3154

3154:                                             ; preds = %3153
  %3155 = load i32, ptr @test_count, align 4, !tbaa !5
  %3156 = add nsw i32 %3155, 1
  store i32 %3156, ptr @test_count, align 4, !tbaa !5
  %3157 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %67, ptr noundef @.str.41, ptr noundef @.str.42)
  %3158 = icmp eq i32 %3157, -1
  br i1 %3158, label %3159, label %3212

3159:                                             ; preds = %3154
  br label %3160

3160:                                             ; preds = %3159
  br label %3161

3161:                                             ; preds = %3160
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %3162 = call ptr @__errno_location() #12
  %3163 = load i32, ptr %3162, align 4, !tbaa !5
  store i32 %3163, ptr %68, align 4, !tbaa !5
  %3164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3165 = call i32 @s2n_print_stacktrace(ptr noundef %3164)
  %3166 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3167 = trunc i8 %3166 to i1
  br i1 %3167, label %3168, label %3190

3168:                                             ; preds = %3161
  %3169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3170 = call i32 @fileno(ptr noundef %3169) #11
  %3171 = call i32 @isatty(i32 noundef %3170) #11
  %3172 = icmp ne i32 %3171, 0
  br i1 %3172, label %3173, label %3190

3173:                                             ; preds = %3168
  %3174 = load i32, ptr %68, align 4, !tbaa !5
  %3175 = call ptr @__errno_location() #12
  store i32 %3174, ptr %3175, align 4, !tbaa !5
  %3176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3177 = load i32, ptr @test_count, align 4, !tbaa !5
  %3178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3179 = load i32, ptr %3178, align 4, !tbaa !5
  %3180 = call ptr @s2n_strerror(i32 noundef %3179, ptr noundef @.str.4)
  %3181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3182 = load i32, ptr %3181, align 4, !tbaa !5
  %3183 = call ptr @s2n_strerror_debug(i32 noundef %3182, ptr noundef @.str.4)
  %3184 = call ptr @__errno_location() #12
  %3185 = load i32, ptr %3184, align 4, !tbaa !5
  %3186 = call ptr @strerror(i32 noundef %3185) #11
  %3187 = call ptr @__errno_location() #12
  %3188 = load i32, ptr %3187, align 4, !tbaa !5
  %3189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3176, ptr noundef @.str.2, i32 noundef %3177, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 148, ptr noundef %3180, ptr noundef %3183, ptr noundef %3186, i32 noundef %3188) #11
  br label %3207

3190:                                             ; preds = %3168, %3161
  %3191 = load i32, ptr %68, align 4, !tbaa !5
  %3192 = call ptr @__errno_location() #12
  store i32 %3191, ptr %3192, align 4, !tbaa !5
  %3193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3194 = load i32, ptr @test_count, align 4, !tbaa !5
  %3195 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3196 = load i32, ptr %3195, align 4, !tbaa !5
  %3197 = call ptr @s2n_strerror(i32 noundef %3196, ptr noundef @.str.4)
  %3198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3199 = load i32, ptr %3198, align 4, !tbaa !5
  %3200 = call ptr @s2n_strerror_debug(i32 noundef %3199, ptr noundef @.str.4)
  %3201 = call ptr @__errno_location() #12
  %3202 = load i32, ptr %3201, align 4, !tbaa !5
  %3203 = call ptr @strerror(i32 noundef %3202) #11
  %3204 = call ptr @__errno_location() #12
  %3205 = load i32, ptr %3204, align 4, !tbaa !5
  %3206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3193, ptr noundef @.str.5, i32 noundef %3194, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 148, ptr noundef %3197, ptr noundef %3200, ptr noundef %3203, i32 noundef %3205) #11
  br label %3207

3207:                                             ; preds = %3190, %3173
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %3208

3208:                                             ; preds = %3207
  br label %3209

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

3210:                                             ; No predecessors!
  br label %3211

3211:                                             ; preds = %3210
  br label %3212

3212:                                             ; preds = %3211, %3154
  br label %3213

3213:                                             ; preds = %3212
  br label %3214

3214:                                             ; preds = %3213
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #11
  %3215 = call ptr @s2n_config_new()
  store ptr %3215, ptr %69, align 8, !tbaa !9
  br label %3216

3216:                                             ; preds = %3214
  %3217 = load i32, ptr @test_count, align 4, !tbaa !5
  %3218 = add nsw i32 %3217, 1
  store i32 %3218, ptr @test_count, align 4, !tbaa !5
  %3219 = load ptr, ptr %69, align 8, !tbaa !9
  %3220 = load ptr, ptr %67, align 8, !tbaa !9
  %3221 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %3219, ptr noundef %3220)
  %3222 = icmp eq i32 %3221, -1
  br i1 %3222, label %3223, label %3276

3223:                                             ; preds = %3216
  br label %3224

3224:                                             ; preds = %3223
  br label %3225

3225:                                             ; preds = %3224
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  %3226 = call ptr @__errno_location() #12
  %3227 = load i32, ptr %3226, align 4, !tbaa !5
  store i32 %3227, ptr %70, align 4, !tbaa !5
  %3228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3229 = call i32 @s2n_print_stacktrace(ptr noundef %3228)
  %3230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3231 = trunc i8 %3230 to i1
  br i1 %3231, label %3232, label %3254

3232:                                             ; preds = %3225
  %3233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3234 = call i32 @fileno(ptr noundef %3233) #11
  %3235 = call i32 @isatty(i32 noundef %3234) #11
  %3236 = icmp ne i32 %3235, 0
  br i1 %3236, label %3237, label %3254

3237:                                             ; preds = %3232
  %3238 = load i32, ptr %70, align 4, !tbaa !5
  %3239 = call ptr @__errno_location() #12
  store i32 %3238, ptr %3239, align 4, !tbaa !5
  %3240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3241 = load i32, ptr @test_count, align 4, !tbaa !5
  %3242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3243 = load i32, ptr %3242, align 4, !tbaa !5
  %3244 = call ptr @s2n_strerror(i32 noundef %3243, ptr noundef @.str.4)
  %3245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3246 = load i32, ptr %3245, align 4, !tbaa !5
  %3247 = call ptr @s2n_strerror_debug(i32 noundef %3246, ptr noundef @.str.4)
  %3248 = call ptr @__errno_location() #12
  %3249 = load i32, ptr %3248, align 4, !tbaa !5
  %3250 = call ptr @strerror(i32 noundef %3249) #11
  %3251 = call ptr @__errno_location() #12
  %3252 = load i32, ptr %3251, align 4, !tbaa !5
  %3253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3240, ptr noundef @.str.2, i32 noundef %3241, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 152, ptr noundef %3244, ptr noundef %3247, ptr noundef %3250, i32 noundef %3252) #11
  br label %3271

3254:                                             ; preds = %3232, %3225
  %3255 = load i32, ptr %70, align 4, !tbaa !5
  %3256 = call ptr @__errno_location() #12
  store i32 %3255, ptr %3256, align 4, !tbaa !5
  %3257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3258 = load i32, ptr @test_count, align 4, !tbaa !5
  %3259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3260 = load i32, ptr %3259, align 4, !tbaa !5
  %3261 = call ptr @s2n_strerror(i32 noundef %3260, ptr noundef @.str.4)
  %3262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3263 = load i32, ptr %3262, align 4, !tbaa !5
  %3264 = call ptr @s2n_strerror_debug(i32 noundef %3263, ptr noundef @.str.4)
  %3265 = call ptr @__errno_location() #12
  %3266 = load i32, ptr %3265, align 4, !tbaa !5
  %3267 = call ptr @strerror(i32 noundef %3266) #11
  %3268 = call ptr @__errno_location() #12
  %3269 = load i32, ptr %3268, align 4, !tbaa !5
  %3270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3257, ptr noundef @.str.5, i32 noundef %3258, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 152, ptr noundef %3261, ptr noundef %3264, ptr noundef %3267, i32 noundef %3269) #11
  br label %3271

3271:                                             ; preds = %3254, %3237
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %3272

3272:                                             ; preds = %3271
  br label %3273

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

3274:                                             ; No predecessors!
  br label %3275

3275:                                             ; preds = %3274
  br label %3276

3276:                                             ; preds = %3275, %3216
  br label %3277

3277:                                             ; preds = %3276
  br label %3278

3278:                                             ; preds = %3277
  br label %3279

3279:                                             ; preds = %3278
  %3280 = load i32, ptr @test_count, align 4, !tbaa !5
  %3281 = add nsw i32 %3280, 1
  store i32 %3281, ptr @test_count, align 4, !tbaa !5
  %3282 = load ptr, ptr %69, align 8, !tbaa !9
  %3283 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %3282, ptr noundef @.str.45)
  %3284 = icmp eq i32 %3283, -1
  br i1 %3284, label %3285, label %3338

3285:                                             ; preds = %3279
  br label %3286

3286:                                             ; preds = %3285
  br label %3287

3287:                                             ; preds = %3286
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #11
  %3288 = call ptr @__errno_location() #12
  %3289 = load i32, ptr %3288, align 4, !tbaa !5
  store i32 %3289, ptr %71, align 4, !tbaa !5
  %3290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3291 = call i32 @s2n_print_stacktrace(ptr noundef %3290)
  %3292 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3293 = trunc i8 %3292 to i1
  br i1 %3293, label %3294, label %3316

3294:                                             ; preds = %3287
  %3295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3296 = call i32 @fileno(ptr noundef %3295) #11
  %3297 = call i32 @isatty(i32 noundef %3296) #11
  %3298 = icmp ne i32 %3297, 0
  br i1 %3298, label %3299, label %3316

3299:                                             ; preds = %3294
  %3300 = load i32, ptr %71, align 4, !tbaa !5
  %3301 = call ptr @__errno_location() #12
  store i32 %3300, ptr %3301, align 4, !tbaa !5
  %3302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3303 = load i32, ptr @test_count, align 4, !tbaa !5
  %3304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3305 = load i32, ptr %3304, align 4, !tbaa !5
  %3306 = call ptr @s2n_strerror(i32 noundef %3305, ptr noundef @.str.4)
  %3307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3308 = load i32, ptr %3307, align 4, !tbaa !5
  %3309 = call ptr @s2n_strerror_debug(i32 noundef %3308, ptr noundef @.str.4)
  %3310 = call ptr @__errno_location() #12
  %3311 = load i32, ptr %3310, align 4, !tbaa !5
  %3312 = call ptr @strerror(i32 noundef %3311) #11
  %3313 = call ptr @__errno_location() #12
  %3314 = load i32, ptr %3313, align 4, !tbaa !5
  %3315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3302, ptr noundef @.str.2, i32 noundef %3303, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 153, ptr noundef %3306, ptr noundef %3309, ptr noundef %3312, i32 noundef %3314) #11
  br label %3333

3316:                                             ; preds = %3294, %3287
  %3317 = load i32, ptr %71, align 4, !tbaa !5
  %3318 = call ptr @__errno_location() #12
  store i32 %3317, ptr %3318, align 4, !tbaa !5
  %3319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3320 = load i32, ptr @test_count, align 4, !tbaa !5
  %3321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3322 = load i32, ptr %3321, align 4, !tbaa !5
  %3323 = call ptr @s2n_strerror(i32 noundef %3322, ptr noundef @.str.4)
  %3324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3325 = load i32, ptr %3324, align 4, !tbaa !5
  %3326 = call ptr @s2n_strerror_debug(i32 noundef %3325, ptr noundef @.str.4)
  %3327 = call ptr @__errno_location() #12
  %3328 = load i32, ptr %3327, align 4, !tbaa !5
  %3329 = call ptr @strerror(i32 noundef %3328) #11
  %3330 = call ptr @__errno_location() #12
  %3331 = load i32, ptr %3330, align 4, !tbaa !5
  %3332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3319, ptr noundef @.str.5, i32 noundef %3320, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 153, ptr noundef %3323, ptr noundef %3326, ptr noundef %3329, i32 noundef %3331) #11
  br label %3333

3333:                                             ; preds = %3316, %3299
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %3334

3334:                                             ; preds = %3333
  br label %3335

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

3336:                                             ; No predecessors!
  br label %3337

3337:                                             ; preds = %3336
  br label %3338

3338:                                             ; preds = %3337, %3279
  br label %3339

3339:                                             ; preds = %3338
  br label %3340

3340:                                             ; preds = %3339
  br label %3341

3341:                                             ; preds = %3340
  %3342 = load i32, ptr @test_count, align 4, !tbaa !5
  %3343 = add nsw i32 %3342, 1
  store i32 %3343, ptr @test_count, align 4, !tbaa !5
  %3344 = load ptr, ptr %69, align 8, !tbaa !9
  %3345 = call i32 @s2n_config_disable_x509_verification(ptr noundef %3344)
  %3346 = icmp eq i32 %3345, -1
  br i1 %3346, label %3347, label %3400

3347:                                             ; preds = %3341
  br label %3348

3348:                                             ; preds = %3347
  br label %3349

3349:                                             ; preds = %3348
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #11
  %3350 = call ptr @__errno_location() #12
  %3351 = load i32, ptr %3350, align 4, !tbaa !5
  store i32 %3351, ptr %72, align 4, !tbaa !5
  %3352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3353 = call i32 @s2n_print_stacktrace(ptr noundef %3352)
  %3354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3355 = trunc i8 %3354 to i1
  br i1 %3355, label %3356, label %3378

3356:                                             ; preds = %3349
  %3357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3358 = call i32 @fileno(ptr noundef %3357) #11
  %3359 = call i32 @isatty(i32 noundef %3358) #11
  %3360 = icmp ne i32 %3359, 0
  br i1 %3360, label %3361, label %3378

3361:                                             ; preds = %3356
  %3362 = load i32, ptr %72, align 4, !tbaa !5
  %3363 = call ptr @__errno_location() #12
  store i32 %3362, ptr %3363, align 4, !tbaa !5
  %3364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3365 = load i32, ptr @test_count, align 4, !tbaa !5
  %3366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3367 = load i32, ptr %3366, align 4, !tbaa !5
  %3368 = call ptr @s2n_strerror(i32 noundef %3367, ptr noundef @.str.4)
  %3369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3370 = load i32, ptr %3369, align 4, !tbaa !5
  %3371 = call ptr @s2n_strerror_debug(i32 noundef %3370, ptr noundef @.str.4)
  %3372 = call ptr @__errno_location() #12
  %3373 = load i32, ptr %3372, align 4, !tbaa !5
  %3374 = call ptr @strerror(i32 noundef %3373) #11
  %3375 = call ptr @__errno_location() #12
  %3376 = load i32, ptr %3375, align 4, !tbaa !5
  %3377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3364, ptr noundef @.str.2, i32 noundef %3365, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 154, ptr noundef %3368, ptr noundef %3371, ptr noundef %3374, i32 noundef %3376) #11
  br label %3395

3378:                                             ; preds = %3356, %3349
  %3379 = load i32, ptr %72, align 4, !tbaa !5
  %3380 = call ptr @__errno_location() #12
  store i32 %3379, ptr %3380, align 4, !tbaa !5
  %3381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3382 = load i32, ptr @test_count, align 4, !tbaa !5
  %3383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3384 = load i32, ptr %3383, align 4, !tbaa !5
  %3385 = call ptr @s2n_strerror(i32 noundef %3384, ptr noundef @.str.4)
  %3386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3387 = load i32, ptr %3386, align 4, !tbaa !5
  %3388 = call ptr @s2n_strerror_debug(i32 noundef %3387, ptr noundef @.str.4)
  %3389 = call ptr @__errno_location() #12
  %3390 = load i32, ptr %3389, align 4, !tbaa !5
  %3391 = call ptr @strerror(i32 noundef %3390) #11
  %3392 = call ptr @__errno_location() #12
  %3393 = load i32, ptr %3392, align 4, !tbaa !5
  %3394 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3381, ptr noundef @.str.5, i32 noundef %3382, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 154, ptr noundef %3385, ptr noundef %3388, ptr noundef %3391, i32 noundef %3393) #11
  br label %3395

3395:                                             ; preds = %3378, %3361
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %3396

3396:                                             ; preds = %3395
  br label %3397

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

3398:                                             ; No predecessors!
  br label %3399

3399:                                             ; preds = %3398
  br label %3400

3400:                                             ; preds = %3399, %3341
  br label %3401

3401:                                             ; preds = %3400
  br label %3402

3402:                                             ; preds = %3401
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #11
  store i64 0, ptr %73, align 8, !tbaa !15
  br label %3403

3403:                                             ; preds = %3424, %3402
  %3404 = load i64, ptr %73, align 8, !tbaa !15
  %3405 = icmp ult i64 %3404, 5
  br i1 %3405, label %3407, label %3406

3406:                                             ; preds = %3403
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #11
  br label %3427

3407:                                             ; preds = %3403
  %3408 = load i64, ptr %73, align 8, !tbaa !15
  %3409 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %3408
  %3410 = getelementptr inbounds %struct.s2n_blob, ptr %3409, i32 0, i32 1
  %3411 = load i32, ptr %3410, align 8, !tbaa !50
  %3412 = icmp ult i32 %3411, 32767
  br i1 %3412, label %3413, label %3418

3413:                                             ; preds = %3407
  %3414 = load i64, ptr %73, align 8, !tbaa !15
  %3415 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %3414
  %3416 = getelementptr inbounds %struct.s2n_blob, ptr %3415, i32 0, i32 1
  %3417 = load i32, ptr %3416, align 8, !tbaa !50
  br label %3419

3418:                                             ; preds = %3407
  br label %3419

3419:                                             ; preds = %3418, %3413
  %3420 = phi i32 [ %3417, %3413 ], [ 32767, %3418 ]
  %3421 = load i64, ptr %73, align 8, !tbaa !15
  %3422 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %3421
  %3423 = getelementptr inbounds %struct.s2n_blob, ptr %3422, i32 0, i32 1
  store i32 %3420, ptr %3423, align 8, !tbaa !50
  br label %3424

3424:                                             ; preds = %3419
  %3425 = load i64, ptr %73, align 8, !tbaa !15
  %3426 = add i64 %3425, 1
  store i64 %3426, ptr %73, align 8, !tbaa !15
  br label %3403, !llvm.loop !57

3427:                                             ; preds = %3406
  call void @llvm.lifetime.start.p0(i64 8, ptr %74) #11
  %3428 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3428, ptr %74, align 8, !tbaa !9
  br label %3429

3429:                                             ; preds = %3427
  %3430 = load i32, ptr @test_count, align 4, !tbaa !5
  %3431 = add nsw i32 %3430, 1
  store i32 %3431, ptr @test_count, align 4, !tbaa !5
  %3432 = load ptr, ptr %74, align 8, !tbaa !9
  %3433 = icmp eq ptr %3432, null
  br i1 %3433, label %3434, label %3487

3434:                                             ; preds = %3429
  br label %3435

3435:                                             ; preds = %3434
  br label %3436

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

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

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

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

3482:                                             ; preds = %3465, %3448
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #11
  br label %3483

3483:                                             ; preds = %3482
  br label %3484

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

3485:                                             ; No predecessors!
  br label %3486

3486:                                             ; preds = %3485
  br label %3487

3487:                                             ; preds = %3486, %3429
  br label %3488

3488:                                             ; preds = %3487
  br label %3489

3489:                                             ; preds = %3488
  br label %3490

3490:                                             ; preds = %3489
  %3491 = load i32, ptr @test_count, align 4, !tbaa !5
  %3492 = add nsw i32 %3491, 1
  store i32 %3492, ptr @test_count, align 4, !tbaa !5
  %3493 = load ptr, ptr %74, align 8, !tbaa !9
  %3494 = load ptr, ptr %69, align 8, !tbaa !9
  %3495 = call i32 @s2n_connection_set_config(ptr noundef %3493, ptr noundef %3494)
  %3496 = icmp eq i32 %3495, -1
  br i1 %3496, label %3497, label %3550

3497:                                             ; preds = %3490
  br label %3498

3498:                                             ; preds = %3497
  br label %3499

3499:                                             ; preds = %3498
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #11
  %3500 = call ptr @__errno_location() #12
  %3501 = load i32, ptr %3500, align 4, !tbaa !5
  store i32 %3501, ptr %76, align 4, !tbaa !5
  %3502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3503 = call i32 @s2n_print_stacktrace(ptr noundef %3502)
  %3504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3505 = trunc i8 %3504 to i1
  br i1 %3505, label %3506, label %3528

3506:                                             ; preds = %3499
  %3507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3508 = call i32 @fileno(ptr noundef %3507) #11
  %3509 = call i32 @isatty(i32 noundef %3508) #11
  %3510 = icmp ne i32 %3509, 0
  br i1 %3510, label %3511, label %3528

3511:                                             ; preds = %3506
  %3512 = load i32, ptr %76, align 4, !tbaa !5
  %3513 = call ptr @__errno_location() #12
  store i32 %3512, ptr %3513, align 4, !tbaa !5
  %3514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3515 = load i32, ptr @test_count, align 4, !tbaa !5
  %3516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3517 = load i32, ptr %3516, align 4, !tbaa !5
  %3518 = call ptr @s2n_strerror(i32 noundef %3517, ptr noundef @.str.4)
  %3519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3520 = load i32, ptr %3519, align 4, !tbaa !5
  %3521 = call ptr @s2n_strerror_debug(i32 noundef %3520, ptr noundef @.str.4)
  %3522 = call ptr @__errno_location() #12
  %3523 = load i32, ptr %3522, align 4, !tbaa !5
  %3524 = call ptr @strerror(i32 noundef %3523) #11
  %3525 = call ptr @__errno_location() #12
  %3526 = load i32, ptr %3525, align 4, !tbaa !5
  %3527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3514, ptr noundef @.str.2, i32 noundef %3515, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 171, ptr noundef %3518, ptr noundef %3521, ptr noundef %3524, i32 noundef %3526) #11
  br label %3545

3528:                                             ; preds = %3506, %3499
  %3529 = load i32, ptr %76, align 4, !tbaa !5
  %3530 = call ptr @__errno_location() #12
  store i32 %3529, ptr %3530, align 4, !tbaa !5
  %3531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3532 = load i32, ptr @test_count, align 4, !tbaa !5
  %3533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3534 = load i32, ptr %3533, align 4, !tbaa !5
  %3535 = call ptr @s2n_strerror(i32 noundef %3534, ptr noundef @.str.4)
  %3536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3537 = load i32, ptr %3536, align 4, !tbaa !5
  %3538 = call ptr @s2n_strerror_debug(i32 noundef %3537, ptr noundef @.str.4)
  %3539 = call ptr @__errno_location() #12
  %3540 = load i32, ptr %3539, align 4, !tbaa !5
  %3541 = call ptr @strerror(i32 noundef %3540) #11
  %3542 = call ptr @__errno_location() #12
  %3543 = load i32, ptr %3542, align 4, !tbaa !5
  %3544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3531, ptr noundef @.str.5, i32 noundef %3532, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 171, ptr noundef %3535, ptr noundef %3538, ptr noundef %3541, i32 noundef %3543) #11
  br label %3545

3545:                                             ; preds = %3528, %3511
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #11
  br label %3546

3546:                                             ; preds = %3545
  br label %3547

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

3548:                                             ; No predecessors!
  br label %3549

3549:                                             ; preds = %3548
  br label %3550

3550:                                             ; preds = %3549, %3490
  br label %3551

3551:                                             ; preds = %3550
  br label %3552

3552:                                             ; preds = %3551
  br label %3553

3553:                                             ; preds = %3552
  %3554 = load i32, ptr @test_count, align 4, !tbaa !5
  %3555 = add nsw i32 %3554, 1
  store i32 %3555, ptr @test_count, align 4, !tbaa !5
  %3556 = load ptr, ptr %74, align 8, !tbaa !9
  %3557 = call i32 @s2n_connection_set_blinding(ptr noundef %3556, i32 noundef 1)
  %3558 = icmp eq i32 %3557, -1
  br i1 %3558, label %3559, label %3612

3559:                                             ; preds = %3553
  br label %3560

3560:                                             ; preds = %3559
  br label %3561

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

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

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

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

3607:                                             ; preds = %3590, %3573
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  br label %3608

3608:                                             ; preds = %3607
  br label %3609

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

3610:                                             ; No predecessors!
  br label %3611

3611:                                             ; preds = %3610
  br label %3612

3612:                                             ; preds = %3611, %3553
  br label %3613

3613:                                             ; preds = %3612
  br label %3614

3614:                                             ; preds = %3613
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #11
  %3615 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3615, ptr %78, align 8, !tbaa !9
  br label %3616

3616:                                             ; preds = %3614
  %3617 = load i32, ptr @test_count, align 4, !tbaa !5
  %3618 = add nsw i32 %3617, 1
  store i32 %3618, ptr @test_count, align 4, !tbaa !5
  %3619 = load ptr, ptr %74, align 8, !tbaa !9
  %3620 = icmp eq ptr %3619, null
  br i1 %3620, label %3621, label %3674

3621:                                             ; preds = %3616
  br label %3622

3622:                                             ; preds = %3621
  br label %3623

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

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

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

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

3669:                                             ; preds = %3652, %3635
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %3670

3670:                                             ; preds = %3669
  br label %3671

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

3672:                                             ; No predecessors!
  br label %3673

3673:                                             ; preds = %3672
  br label %3674

3674:                                             ; preds = %3673, %3616
  br label %3675

3675:                                             ; preds = %3674
  br label %3676

3676:                                             ; preds = %3675
  br label %3677

3677:                                             ; preds = %3676
  %3678 = load i32, ptr @test_count, align 4, !tbaa !5
  %3679 = add nsw i32 %3678, 1
  store i32 %3679, ptr @test_count, align 4, !tbaa !5
  %3680 = load ptr, ptr %78, align 8, !tbaa !9
  %3681 = load ptr, ptr %69, align 8, !tbaa !9
  %3682 = call i32 @s2n_connection_set_config(ptr noundef %3680, ptr noundef %3681)
  %3683 = icmp eq i32 %3682, -1
  br i1 %3683, label %3684, label %3737

3684:                                             ; preds = %3677
  br label %3685

3685:                                             ; preds = %3684
  br label %3686

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

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

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

3715:                                             ; preds = %3693, %3686
  %3716 = load i32, ptr %80, align 4, !tbaa !5
  %3717 = call ptr @__errno_location() #12
  store i32 %3716, ptr %3717, align 4, !tbaa !5
  %3718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3719 = load i32, ptr @test_count, align 4, !tbaa !5
  %3720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3721 = load i32, ptr %3720, align 4, !tbaa !5
  %3722 = call ptr @s2n_strerror(i32 noundef %3721, ptr noundef @.str.4)
  %3723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3724 = load i32, ptr %3723, align 4, !tbaa !5
  %3725 = call ptr @s2n_strerror_debug(i32 noundef %3724, ptr noundef @.str.4)
  %3726 = call ptr @__errno_location() #12
  %3727 = load i32, ptr %3726, align 4, !tbaa !5
  %3728 = call ptr @strerror(i32 noundef %3727) #11
  %3729 = call ptr @__errno_location() #12
  %3730 = load i32, ptr %3729, align 4, !tbaa !5
  %3731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3718, ptr noundef @.str.5, i32 noundef %3719, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 177, ptr noundef %3722, ptr noundef %3725, ptr noundef %3728, i32 noundef %3730) #11
  br label %3732

3732:                                             ; preds = %3715, %3698
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %3733

3733:                                             ; preds = %3732
  br label %3734

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

3735:                                             ; No predecessors!
  br label %3736

3736:                                             ; preds = %3735
  br label %3737

3737:                                             ; preds = %3736, %3677
  br label %3738

3738:                                             ; preds = %3737
  br label %3739

3739:                                             ; preds = %3738
  call void @llvm.lifetime.start.p0(i64 8, ptr %81) #11
  call void @llvm.memset.p0.i64(ptr align 4 %81, i8 0, i64 8, i1 false)
  br label %3740

3740:                                             ; preds = %3739
  %3741 = load i32, ptr @test_count, align 4, !tbaa !5
  %3742 = add nsw i32 %3741, 1
  store i32 %3742, ptr @test_count, align 4, !tbaa !5
  %3743 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %81)
  %3744 = icmp eq i32 %3743, -1
  br i1 %3744, label %3745, label %3798

3745:                                             ; preds = %3740
  br label %3746

3746:                                             ; preds = %3745
  br label %3747

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

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

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

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

3793:                                             ; preds = %3776, %3759
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %3794

3794:                                             ; preds = %3793
  br label %3795

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

3796:                                             ; No predecessors!
  br label %3797

3797:                                             ; preds = %3796
  br label %3798

3798:                                             ; preds = %3797, %3740
  br label %3799

3799:                                             ; preds = %3798
  br label %3800

3800:                                             ; preds = %3799
  br label %3801

3801:                                             ; preds = %3800
  %3802 = load i32, ptr @test_count, align 4, !tbaa !5
  %3803 = add nsw i32 %3802, 1
  store i32 %3803, ptr @test_count, align 4, !tbaa !5
  %3804 = load ptr, ptr %78, align 8, !tbaa !9
  %3805 = load ptr, ptr %74, align 8, !tbaa !9
  %3806 = call i32 @s2n_connections_set_io_pair(ptr noundef %3804, ptr noundef %3805, ptr noundef %81)
  %3807 = icmp eq i32 %3806, -1
  br i1 %3807, label %3808, label %3861

3808:                                             ; preds = %3801
  br label %3809

3809:                                             ; preds = %3808
  br label %3810

3810:                                             ; preds = %3809
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #11
  %3811 = call ptr @__errno_location() #12
  %3812 = load i32, ptr %3811, align 4, !tbaa !5
  store i32 %3812, ptr %83, align 4, !tbaa !5
  %3813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3814 = call i32 @s2n_print_stacktrace(ptr noundef %3813)
  %3815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3816 = trunc i8 %3815 to i1
  br i1 %3816, label %3817, label %3839

3817:                                             ; preds = %3810
  %3818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3819 = call i32 @fileno(ptr noundef %3818) #11
  %3820 = call i32 @isatty(i32 noundef %3819) #11
  %3821 = icmp ne i32 %3820, 0
  br i1 %3821, label %3822, label %3839

3822:                                             ; preds = %3817
  %3823 = load i32, ptr %83, align 4, !tbaa !5
  %3824 = call ptr @__errno_location() #12
  store i32 %3823, ptr %3824, align 4, !tbaa !5
  %3825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3826 = load i32, ptr @test_count, align 4, !tbaa !5
  %3827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3828 = load i32, ptr %3827, align 4, !tbaa !5
  %3829 = call ptr @s2n_strerror(i32 noundef %3828, ptr noundef @.str.4)
  %3830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3831 = load i32, ptr %3830, align 4, !tbaa !5
  %3832 = call ptr @s2n_strerror_debug(i32 noundef %3831, ptr noundef @.str.4)
  %3833 = call ptr @__errno_location() #12
  %3834 = load i32, ptr %3833, align 4, !tbaa !5
  %3835 = call ptr @strerror(i32 noundef %3834) #11
  %3836 = call ptr @__errno_location() #12
  %3837 = load i32, ptr %3836, align 4, !tbaa !5
  %3838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3825, ptr noundef @.str.2, i32 noundef %3826, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3829, ptr noundef %3832, ptr noundef %3835, i32 noundef %3837) #11
  br label %3856

3839:                                             ; preds = %3817, %3810
  %3840 = load i32, ptr %83, align 4, !tbaa !5
  %3841 = call ptr @__errno_location() #12
  store i32 %3840, ptr %3841, align 4, !tbaa !5
  %3842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3843 = load i32, ptr @test_count, align 4, !tbaa !5
  %3844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3845 = load i32, ptr %3844, align 4, !tbaa !5
  %3846 = call ptr @s2n_strerror(i32 noundef %3845, ptr noundef @.str.4)
  %3847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3848 = load i32, ptr %3847, align 4, !tbaa !5
  %3849 = call ptr @s2n_strerror_debug(i32 noundef %3848, ptr noundef @.str.4)
  %3850 = call ptr @__errno_location() #12
  %3851 = load i32, ptr %3850, align 4, !tbaa !5
  %3852 = call ptr @strerror(i32 noundef %3851) #11
  %3853 = call ptr @__errno_location() #12
  %3854 = load i32, ptr %3853, align 4, !tbaa !5
  %3855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3842, ptr noundef @.str.5, i32 noundef %3843, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3846, ptr noundef %3849, ptr noundef %3852, i32 noundef %3854) #11
  br label %3856

3856:                                             ; preds = %3839, %3822
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %3857

3857:                                             ; preds = %3856
  br label %3858

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

3859:                                             ; No predecessors!
  br label %3860

3860:                                             ; preds = %3859
  br label %3861

3861:                                             ; preds = %3860, %3801
  br label %3862

3862:                                             ; preds = %3861
  br label %3863

3863:                                             ; preds = %3862
  %3864 = load ptr, ptr %78, align 8, !tbaa !9
  %3865 = getelementptr inbounds %struct.s2n_connection, ptr %3864, i32 0, i32 2
  store ptr @security_policy_test_tls13_retry, ptr %3865, align 8, !tbaa !58
  br label %3866

3866:                                             ; preds = %3863
  %3867 = load i32, ptr @test_count, align 4, !tbaa !5
  %3868 = add nsw i32 %3867, 1
  store i32 %3868, ptr @test_count, align 4, !tbaa !5
  %3869 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 0
  %3870 = load ptr, ptr %74, align 8, !tbaa !9
  %3871 = getelementptr inbounds %struct.s2n_connection, ptr %3870, i32 0, i32 83
  %3872 = call i32 @s2n_dup(ptr noundef %3869, ptr noundef %3871)
  %3873 = icmp eq i32 %3872, -1
  br i1 %3873, label %3874, label %3927

3874:                                             ; preds = %3866
  br label %3875

3875:                                             ; preds = %3874
  br label %3876

3876:                                             ; preds = %3875
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #11
  %3877 = call ptr @__errno_location() #12
  %3878 = load i32, ptr %3877, align 4, !tbaa !5
  store i32 %3878, ptr %84, align 4, !tbaa !5
  %3879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3880 = call i32 @s2n_print_stacktrace(ptr noundef %3879)
  %3881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3882 = trunc i8 %3881 to i1
  br i1 %3882, label %3883, label %3905

3883:                                             ; preds = %3876
  %3884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3885 = call i32 @fileno(ptr noundef %3884) #11
  %3886 = call i32 @isatty(i32 noundef %3885) #11
  %3887 = icmp ne i32 %3886, 0
  br i1 %3887, label %3888, label %3905

3888:                                             ; preds = %3883
  %3889 = load i32, ptr %84, align 4, !tbaa !5
  %3890 = call ptr @__errno_location() #12
  store i32 %3889, ptr %3890, align 4, !tbaa !5
  %3891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3892 = load i32, ptr @test_count, align 4, !tbaa !5
  %3893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3894 = load i32, ptr %3893, align 4, !tbaa !5
  %3895 = call ptr @s2n_strerror(i32 noundef %3894, ptr noundef @.str.4)
  %3896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3897 = load i32, ptr %3896, align 4, !tbaa !5
  %3898 = call ptr @s2n_strerror_debug(i32 noundef %3897, ptr noundef @.str.4)
  %3899 = call ptr @__errno_location() #12
  %3900 = load i32, ptr %3899, align 4, !tbaa !5
  %3901 = call ptr @strerror(i32 noundef %3900) #11
  %3902 = call ptr @__errno_location() #12
  %3903 = load i32, ptr %3902, align 4, !tbaa !5
  %3904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3891, ptr noundef @.str.2, i32 noundef %3892, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3895, ptr noundef %3898, ptr noundef %3901, i32 noundef %3903) #11
  br label %3922

3905:                                             ; preds = %3883, %3876
  %3906 = load i32, ptr %84, align 4, !tbaa !5
  %3907 = call ptr @__errno_location() #12
  store i32 %3906, ptr %3907, align 4, !tbaa !5
  %3908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3909 = load i32, ptr @test_count, align 4, !tbaa !5
  %3910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3911 = load i32, ptr %3910, align 4, !tbaa !5
  %3912 = call ptr @s2n_strerror(i32 noundef %3911, ptr noundef @.str.4)
  %3913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3914 = load i32, ptr %3913, align 4, !tbaa !5
  %3915 = call ptr @s2n_strerror_debug(i32 noundef %3914, ptr noundef @.str.4)
  %3916 = call ptr @__errno_location() #12
  %3917 = load i32, ptr %3916, align 4, !tbaa !5
  %3918 = call ptr @strerror(i32 noundef %3917) #11
  %3919 = call ptr @__errno_location() #12
  %3920 = load i32, ptr %3919, align 4, !tbaa !5
  %3921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3908, ptr noundef @.str.5, i32 noundef %3909, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 187, ptr noundef %3912, ptr noundef %3915, ptr noundef %3918, i32 noundef %3920) #11
  br label %3922

3922:                                             ; preds = %3905, %3888
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #11
  br label %3923

3923:                                             ; preds = %3922
  br label %3924

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

3925:                                             ; No predecessors!
  br label %3926

3926:                                             ; preds = %3925
  br label %3927

3927:                                             ; preds = %3926, %3866
  br label %3928

3928:                                             ; preds = %3927
  br label %3929

3929:                                             ; preds = %3928
  br label %3930

3930:                                             ; preds = %3929
  br label %3931

3931:                                             ; preds = %3930
  br label %3932

3932:                                             ; preds = %3931
  %3933 = load i32, ptr @test_count, align 4, !tbaa !5
  %3934 = add nsw i32 %3933, 1
  store i32 %3934, ptr @test_count, align 4, !tbaa !5
  %3935 = load ptr, ptr %74, align 8, !tbaa !9
  %3936 = load ptr, ptr %78, align 8, !tbaa !9
  %3937 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %3935, ptr noundef %3936, i32 noundef 18)
  %3938 = getelementptr inbounds %struct.s2n_result, ptr %85, i32 0, i32 0
  store i32 %3937, ptr %3938, align 4
  %3939 = getelementptr inbounds %struct.s2n_result, ptr %85, i32 0, i32 0
  %3940 = load i32, ptr %3939, align 4
  %3941 = call zeroext i1 @s2n_result_is_error(i32 %3940)
  br i1 %3941, label %3995, label %3942

3942:                                             ; preds = %3932
  br label %3943

3943:                                             ; preds = %3942
  br label %3944

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

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

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

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

3990:                                             ; preds = %3973, %3956
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  br label %3991

3991:                                             ; preds = %3990
  br label %3992

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

3993:                                             ; No predecessors!
  br label %3994

3994:                                             ; preds = %3993
  br label %3995

3995:                                             ; preds = %3994, %3932
  br label %3996

3996:                                             ; preds = %3995
  br label %3997

3997:                                             ; preds = %3996
  br label %3998

3998:                                             ; preds = %3997
  %3999 = load i32, ptr @test_count, align 4, !tbaa !5
  %4000 = add nsw i32 %3999, 1
  store i32 %4000, ptr @test_count, align 4, !tbaa !5
  %4001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4002 = load i32, ptr %4001, align 4, !tbaa !5
  %4003 = icmp eq i32 %4002, 201326592
  br i1 %4003, label %4057, label %4004

4004:                                             ; preds = %3998
  br label %4005

4005:                                             ; preds = %4004
  br label %4006

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

4013:                                             ; preds = %4006
  %4014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4015 = call i32 @fileno(ptr noundef %4014) #11
  %4016 = call i32 @isatty(i32 noundef %4015) #11
  %4017 = icmp ne i32 %4016, 0
  br i1 %4017, label %4018, label %4035

4018:                                             ; preds = %4013
  %4019 = load i32, ptr %87, align 4, !tbaa !5
  %4020 = call ptr @__errno_location() #12
  store i32 %4019, ptr %4020, align 4, !tbaa !5
  %4021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4022 = load i32, ptr @test_count, align 4, !tbaa !5
  %4023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4024 = load i32, ptr %4023, align 4, !tbaa !5
  %4025 = call ptr @s2n_strerror(i32 noundef %4024, ptr noundef @.str.4)
  %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_debug(i32 noundef %4027, ptr noundef @.str.4)
  %4029 = call ptr @__errno_location() #12
  %4030 = load i32, ptr %4029, align 4, !tbaa !5
  %4031 = call ptr @strerror(i32 noundef %4030) #11
  %4032 = call ptr @__errno_location() #12
  %4033 = load i32, ptr %4032, align 4, !tbaa !5
  %4034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4021, ptr noundef @.str.2, i32 noundef %4022, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 194, ptr noundef %4025, ptr noundef %4028, ptr noundef %4031, i32 noundef %4033) #11
  br label %4052

4035:                                             ; preds = %4013, %4006
  %4036 = load i32, ptr %87, align 4, !tbaa !5
  %4037 = call ptr @__errno_location() #12
  store i32 %4036, ptr %4037, align 4, !tbaa !5
  %4038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4039 = load i32, ptr @test_count, align 4, !tbaa !5
  %4040 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4041 = load i32, ptr %4040, align 4, !tbaa !5
  %4042 = call ptr @s2n_strerror(i32 noundef %4041, ptr noundef @.str.4)
  %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_debug(i32 noundef %4044, ptr noundef @.str.4)
  %4046 = call ptr @__errno_location() #12
  %4047 = load i32, ptr %4046, align 4, !tbaa !5
  %4048 = call ptr @strerror(i32 noundef %4047) #11
  %4049 = call ptr @__errno_location() #12
  %4050 = load i32, ptr %4049, align 4, !tbaa !5
  %4051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4038, ptr noundef @.str.5, i32 noundef %4039, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 194, ptr noundef %4042, ptr noundef %4045, ptr noundef %4048, i32 noundef %4050) #11
  br label %4052

4052:                                             ; preds = %4035, %4018
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  br label %4053

4053:                                             ; preds = %4052
  br label %4054

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

4055:                                             ; No predecessors!
  br label %4056

4056:                                             ; preds = %4055
  br label %4057

4057:                                             ; preds = %4056, %3998
  br label %4058

4058:                                             ; preds = %4057
  br label %4059

4059:                                             ; preds = %4058
  br label %4060

4060:                                             ; preds = %4059
  %4061 = load i32, ptr @test_count, align 4, !tbaa !5
  %4062 = add nsw i32 %4061, 1
  store i32 %4062, ptr @test_count, align 4, !tbaa !5
  %4063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4064 = load i32, ptr %4063, align 4, !tbaa !5
  %4065 = call ptr @s2n_strerror_debug(i32 noundef %4064, ptr noundef @.str.4)
  %4066 = icmp eq ptr %4065, null
  br i1 %4066, label %4067, label %4120

4067:                                             ; preds = %4060
  br label %4068

4068:                                             ; preds = %4067
  br label %4069

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

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

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

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

4115:                                             ; preds = %4098, %4081
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %4116

4116:                                             ; preds = %4115
  br label %4117

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

4118:                                             ; No predecessors!
  br label %4119

4119:                                             ; preds = %4118
  br label %4120

4120:                                             ; preds = %4119, %4060
  br label %4121

4121:                                             ; preds = %4120
  br label %4122

4122:                                             ; preds = %4121
  br label %4123

4123:                                             ; preds = %4122
  br label %4124

4124:                                             ; preds = %4123
  br label %4125

4125:                                             ; preds = %4124
  %4126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4126, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4127 = call ptr @__errno_location() #12
  store i32 0, ptr %4127, align 4, !tbaa !5
  br label %4128

4128:                                             ; preds = %4125
  br label %4129

4129:                                             ; preds = %4128
  br label %4130

4130:                                             ; preds = %4129
  br label %4131

4131:                                             ; preds = %4130
  br label %4132

4132:                                             ; preds = %4131
  %4133 = load i32, ptr @test_count, align 4, !tbaa !5
  %4134 = add nsw i32 %4133, 1
  store i32 %4134, ptr @test_count, align 4, !tbaa !5
  %4135 = load ptr, ptr %74, align 8, !tbaa !9
  %4136 = call i32 @s2n_conn_get_current_message_type(ptr noundef %4135)
  %4137 = icmp eq i32 %4136, 18
  br i1 %4137, label %4191, label %4138

4138:                                             ; preds = %4132
  br label %4139

4139:                                             ; preds = %4138
  br label %4140

4140:                                             ; preds = %4139
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #11
  %4141 = call ptr @__errno_location() #12
  %4142 = load i32, ptr %4141, align 4, !tbaa !5
  store i32 %4142, ptr %89, align 4, !tbaa !5
  %4143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4144 = call i32 @s2n_print_stacktrace(ptr noundef %4143)
  %4145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4146 = trunc i8 %4145 to i1
  br i1 %4146, label %4147, label %4169

4147:                                             ; preds = %4140
  %4148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4149 = call i32 @fileno(ptr noundef %4148) #11
  %4150 = call i32 @isatty(i32 noundef %4149) #11
  %4151 = icmp ne i32 %4150, 0
  br i1 %4151, label %4152, label %4169

4152:                                             ; preds = %4147
  %4153 = load i32, ptr %89, align 4, !tbaa !5
  %4154 = call ptr @__errno_location() #12
  store i32 %4153, ptr %4154, align 4, !tbaa !5
  %4155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4156 = load i32, ptr @test_count, align 4, !tbaa !5
  %4157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4158 = load i32, ptr %4157, align 4, !tbaa !5
  %4159 = call ptr @s2n_strerror(i32 noundef %4158, ptr noundef @.str.4)
  %4160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4161 = load i32, ptr %4160, align 4, !tbaa !5
  %4162 = call ptr @s2n_strerror_debug(i32 noundef %4161, ptr noundef @.str.4)
  %4163 = call ptr @__errno_location() #12
  %4164 = load i32, ptr %4163, align 4, !tbaa !5
  %4165 = call ptr @strerror(i32 noundef %4164) #11
  %4166 = call ptr @__errno_location() #12
  %4167 = load i32, ptr %4166, align 4, !tbaa !5
  %4168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4155, ptr noundef @.str.2, i32 noundef %4156, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 195, ptr noundef %4159, ptr noundef %4162, ptr noundef %4165, i32 noundef %4167) #11
  br label %4186

4169:                                             ; preds = %4147, %4140
  %4170 = load i32, ptr %89, align 4, !tbaa !5
  %4171 = call ptr @__errno_location() #12
  store i32 %4170, ptr %4171, align 4, !tbaa !5
  %4172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4173 = load i32, ptr @test_count, align 4, !tbaa !5
  %4174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4175 = load i32, ptr %4174, align 4, !tbaa !5
  %4176 = call ptr @s2n_strerror(i32 noundef %4175, ptr noundef @.str.4)
  %4177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4178 = load i32, ptr %4177, align 4, !tbaa !5
  %4179 = call ptr @s2n_strerror_debug(i32 noundef %4178, ptr noundef @.str.4)
  %4180 = call ptr @__errno_location() #12
  %4181 = load i32, ptr %4180, align 4, !tbaa !5
  %4182 = call ptr @strerror(i32 noundef %4181) #11
  %4183 = call ptr @__errno_location() #12
  %4184 = load i32, ptr %4183, align 4, !tbaa !5
  %4185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4172, ptr noundef @.str.5, i32 noundef %4173, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 195, ptr noundef %4176, ptr noundef %4179, ptr noundef %4182, i32 noundef %4184) #11
  br label %4186

4186:                                             ; preds = %4169, %4152
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %4187

4187:                                             ; preds = %4186
  br label %4188

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

4189:                                             ; No predecessors!
  br label %4190

4190:                                             ; preds = %4189
  br label %4191

4191:                                             ; preds = %4190, %4132
  br label %4192

4192:                                             ; preds = %4191
  br label %4193

4193:                                             ; preds = %4192
  br label %4194

4194:                                             ; preds = %4193
  %4195 = load i32, ptr @test_count, align 4, !tbaa !5
  %4196 = add nsw i32 %4195, 1
  store i32 %4196, ptr @test_count, align 4, !tbaa !5
  %4197 = load ptr, ptr %78, align 8, !tbaa !9
  %4198 = call i32 @s2n_conn_get_current_message_type(ptr noundef %4197)
  %4199 = icmp eq i32 %4198, 1
  br i1 %4199, label %4253, label %4200

4200:                                             ; preds = %4194
  br label %4201

4201:                                             ; preds = %4200
  br label %4202

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

4209:                                             ; preds = %4202
  %4210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4211 = call i32 @fileno(ptr noundef %4210) #11
  %4212 = call i32 @isatty(i32 noundef %4211) #11
  %4213 = icmp ne i32 %4212, 0
  br i1 %4213, label %4214, label %4231

4214:                                             ; preds = %4209
  %4215 = load i32, ptr %90, align 4, !tbaa !5
  %4216 = call ptr @__errno_location() #12
  store i32 %4215, ptr %4216, align 4, !tbaa !5
  %4217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4218 = load i32, ptr @test_count, align 4, !tbaa !5
  %4219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4220 = load i32, ptr %4219, align 4, !tbaa !5
  %4221 = call ptr @s2n_strerror(i32 noundef %4220, ptr noundef @.str.4)
  %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_debug(i32 noundef %4223, ptr noundef @.str.4)
  %4225 = call ptr @__errno_location() #12
  %4226 = load i32, ptr %4225, align 4, !tbaa !5
  %4227 = call ptr @strerror(i32 noundef %4226) #11
  %4228 = call ptr @__errno_location() #12
  %4229 = load i32, ptr %4228, align 4, !tbaa !5
  %4230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4217, ptr noundef @.str.2, i32 noundef %4218, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 196, ptr noundef %4221, ptr noundef %4224, ptr noundef %4227, i32 noundef %4229) #11
  br label %4248

4231:                                             ; preds = %4209, %4202
  %4232 = load i32, ptr %90, align 4, !tbaa !5
  %4233 = call ptr @__errno_location() #12
  store i32 %4232, ptr %4233, align 4, !tbaa !5
  %4234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4235 = load i32, ptr @test_count, align 4, !tbaa !5
  %4236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4237 = load i32, ptr %4236, align 4, !tbaa !5
  %4238 = call ptr @s2n_strerror(i32 noundef %4237, ptr noundef @.str.4)
  %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_debug(i32 noundef %4240, ptr noundef @.str.4)
  %4242 = call ptr @__errno_location() #12
  %4243 = load i32, ptr %4242, align 4, !tbaa !5
  %4244 = call ptr @strerror(i32 noundef %4243) #11
  %4245 = call ptr @__errno_location() #12
  %4246 = load i32, ptr %4245, align 4, !tbaa !5
  %4247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4234, ptr noundef @.str.5, i32 noundef %4235, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 196, ptr noundef %4238, ptr noundef %4241, ptr noundef %4244, i32 noundef %4246) #11
  br label %4248

4248:                                             ; preds = %4231, %4214
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %4249

4249:                                             ; preds = %4248
  br label %4250

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

4251:                                             ; No predecessors!
  br label %4252

4252:                                             ; preds = %4251
  br label %4253

4253:                                             ; preds = %4252, %4194
  br label %4254

4254:                                             ; preds = %4253
  br label %4255

4255:                                             ; preds = %4254
  br label %4256

4256:                                             ; preds = %4255
  %4257 = load i32, ptr @test_count, align 4, !tbaa !5
  %4258 = add nsw i32 %4257, 1
  store i32 %4258, ptr @test_count, align 4, !tbaa !5
  %4259 = load ptr, ptr %74, align 8, !tbaa !9
  %4260 = load ptr, ptr %78, align 8, !tbaa !9
  %4261 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %4259, ptr noundef %4260, i32 noundef 0)
  %4262 = getelementptr inbounds %struct.s2n_result, ptr %91, i32 0, i32 0
  store i32 %4261, ptr %4262, align 4
  %4263 = getelementptr inbounds %struct.s2n_result, ptr %91, i32 0, i32 0
  %4264 = load i32, ptr %4263, align 4
  %4265 = call zeroext i1 @s2n_result_is_ok(i32 %4264)
  br i1 %4265, label %4319, label %4266

4266:                                             ; preds = %4256
  br label %4267

4267:                                             ; preds = %4266
  br label %4268

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

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

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

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

4314:                                             ; preds = %4297, %4280
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %4315

4315:                                             ; preds = %4314
  br label %4316

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

4317:                                             ; No predecessors!
  br label %4318

4318:                                             ; preds = %4317
  br label %4319

4319:                                             ; preds = %4318, %4256
  br label %4320

4320:                                             ; preds = %4319
  br label %4321

4321:                                             ; preds = %4320
  br label %4322

4322:                                             ; preds = %4321
  %4323 = load i32, ptr @test_count, align 4, !tbaa !5
  %4324 = add nsw i32 %4323, 1
  store i32 %4324, ptr @test_count, align 4, !tbaa !5
  %4325 = load ptr, ptr %74, align 8, !tbaa !9
  %4326 = call i32 @s2n_conn_get_current_message_type(ptr noundef %4325)
  %4327 = icmp eq i32 %4326, 0
  br i1 %4327, label %4381, label %4328

4328:                                             ; preds = %4322
  br label %4329

4329:                                             ; preds = %4328
  br label %4330

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

4337:                                             ; preds = %4330
  %4338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4339 = call i32 @fileno(ptr noundef %4338) #11
  %4340 = call i32 @isatty(i32 noundef %4339) #11
  %4341 = icmp ne i32 %4340, 0
  br i1 %4341, label %4342, label %4359

4342:                                             ; preds = %4337
  %4343 = load i32, ptr %93, align 4, !tbaa !5
  %4344 = call ptr @__errno_location() #12
  store i32 %4343, ptr %4344, align 4, !tbaa !5
  %4345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4346 = load i32, ptr @test_count, align 4, !tbaa !5
  %4347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4348 = load i32, ptr %4347, align 4, !tbaa !5
  %4349 = call ptr @s2n_strerror(i32 noundef %4348, ptr noundef @.str.4)
  %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_debug(i32 noundef %4351, ptr noundef @.str.4)
  %4353 = call ptr @__errno_location() #12
  %4354 = load i32, ptr %4353, align 4, !tbaa !5
  %4355 = call ptr @strerror(i32 noundef %4354) #11
  %4356 = call ptr @__errno_location() #12
  %4357 = load i32, ptr %4356, align 4, !tbaa !5
  %4358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4345, ptr noundef @.str.2, i32 noundef %4346, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 198, ptr noundef %4349, ptr noundef %4352, ptr noundef %4355, i32 noundef %4357) #11
  br label %4376

4359:                                             ; preds = %4337, %4330
  %4360 = load i32, ptr %93, align 4, !tbaa !5
  %4361 = call ptr @__errno_location() #12
  store i32 %4360, ptr %4361, align 4, !tbaa !5
  %4362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4363 = load i32, ptr @test_count, align 4, !tbaa !5
  %4364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4365 = load i32, ptr %4364, align 4, !tbaa !5
  %4366 = call ptr @s2n_strerror(i32 noundef %4365, ptr noundef @.str.4)
  %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_debug(i32 noundef %4368, ptr noundef @.str.4)
  %4370 = call ptr @__errno_location() #12
  %4371 = load i32, ptr %4370, align 4, !tbaa !5
  %4372 = call ptr @strerror(i32 noundef %4371) #11
  %4373 = call ptr @__errno_location() #12
  %4374 = load i32, ptr %4373, align 4, !tbaa !5
  %4375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4362, ptr noundef @.str.5, i32 noundef %4363, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 198, ptr noundef %4366, ptr noundef %4369, ptr noundef %4372, i32 noundef %4374) #11
  br label %4376

4376:                                             ; preds = %4359, %4342
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #11
  br label %4377

4377:                                             ; preds = %4376
  br label %4378

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

4379:                                             ; No predecessors!
  br label %4380

4380:                                             ; preds = %4379
  br label %4381

4381:                                             ; preds = %4380, %4322
  br label %4382

4382:                                             ; preds = %4381
  br label %4383

4383:                                             ; preds = %4382
  br label %4384

4384:                                             ; preds = %4383
  %4385 = load i32, ptr @test_count, align 4, !tbaa !5
  %4386 = add nsw i32 %4385, 1
  store i32 %4386, ptr @test_count, align 4, !tbaa !5
  %4387 = load ptr, ptr %78, align 8, !tbaa !9
  %4388 = call i32 @s2n_conn_get_current_message_type(ptr noundef %4387)
  %4389 = icmp eq i32 %4388, 0
  br i1 %4389, label %4443, label %4390

4390:                                             ; preds = %4384
  br label %4391

4391:                                             ; preds = %4390
  br label %4392

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

4399:                                             ; preds = %4392
  %4400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4401 = call i32 @fileno(ptr noundef %4400) #11
  %4402 = call i32 @isatty(i32 noundef %4401) #11
  %4403 = icmp ne i32 %4402, 0
  br i1 %4403, label %4404, label %4421

4404:                                             ; preds = %4399
  %4405 = load i32, ptr %94, align 4, !tbaa !5
  %4406 = call ptr @__errno_location() #12
  store i32 %4405, ptr %4406, align 4, !tbaa !5
  %4407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4408 = load i32, ptr @test_count, align 4, !tbaa !5
  %4409 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4410 = load i32, ptr %4409, align 4, !tbaa !5
  %4411 = call ptr @s2n_strerror(i32 noundef %4410, ptr noundef @.str.4)
  %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_debug(i32 noundef %4413, ptr noundef @.str.4)
  %4415 = call ptr @__errno_location() #12
  %4416 = load i32, ptr %4415, align 4, !tbaa !5
  %4417 = call ptr @strerror(i32 noundef %4416) #11
  %4418 = call ptr @__errno_location() #12
  %4419 = load i32, ptr %4418, align 4, !tbaa !5
  %4420 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4407, ptr noundef @.str.2, i32 noundef %4408, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 199, ptr noundef %4411, ptr noundef %4414, ptr noundef %4417, i32 noundef %4419) #11
  br label %4438

4421:                                             ; preds = %4399, %4392
  %4422 = load i32, ptr %94, align 4, !tbaa !5
  %4423 = call ptr @__errno_location() #12
  store i32 %4422, ptr %4423, align 4, !tbaa !5
  %4424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4425 = load i32, ptr @test_count, align 4, !tbaa !5
  %4426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4427 = load i32, ptr %4426, align 4, !tbaa !5
  %4428 = call ptr @s2n_strerror(i32 noundef %4427, ptr noundef @.str.4)
  %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_debug(i32 noundef %4430, ptr noundef @.str.4)
  %4432 = call ptr @__errno_location() #12
  %4433 = load i32, ptr %4432, align 4, !tbaa !5
  %4434 = call ptr @strerror(i32 noundef %4433) #11
  %4435 = call ptr @__errno_location() #12
  %4436 = load i32, ptr %4435, align 4, !tbaa !5
  %4437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4424, ptr noundef @.str.5, i32 noundef %4425, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 199, ptr noundef %4428, ptr noundef %4431, ptr noundef %4434, i32 noundef %4436) #11
  br label %4438

4438:                                             ; preds = %4421, %4404
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %4439

4439:                                             ; preds = %4438
  br label %4440

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

4441:                                             ; No predecessors!
  br label %4442

4442:                                             ; preds = %4441
  br label %4443

4443:                                             ; preds = %4442, %4384
  br label %4444

4444:                                             ; preds = %4443
  br label %4445

4445:                                             ; preds = %4444
  br label %4446

4446:                                             ; preds = %4445
  %4447 = load i32, ptr @test_count, align 4, !tbaa !5
  %4448 = add nsw i32 %4447, 1
  store i32 %4448, ptr @test_count, align 4, !tbaa !5
  %4449 = load ptr, ptr %74, align 8, !tbaa !9
  %4450 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %4449, i32 noundef 16)
  br i1 %4450, label %4504, label %4451

4451:                                             ; preds = %4446
  br label %4452

4452:                                             ; preds = %4451
  br label %4453

4453:                                             ; preds = %4452
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #11
  %4454 = call ptr @__errno_location() #12
  %4455 = load i32, ptr %4454, align 4, !tbaa !5
  store i32 %4455, ptr %95, align 4, !tbaa !5
  %4456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4457 = call i32 @s2n_print_stacktrace(ptr noundef %4456)
  %4458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4459 = trunc i8 %4458 to i1
  br i1 %4459, label %4460, label %4482

4460:                                             ; preds = %4453
  %4461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4462 = call i32 @fileno(ptr noundef %4461) #11
  %4463 = call i32 @isatty(i32 noundef %4462) #11
  %4464 = icmp ne i32 %4463, 0
  br i1 %4464, label %4465, label %4482

4465:                                             ; preds = %4460
  %4466 = load i32, ptr %95, align 4, !tbaa !5
  %4467 = call ptr @__errno_location() #12
  store i32 %4466, ptr %4467, align 4, !tbaa !5
  %4468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4469 = load i32, ptr @test_count, align 4, !tbaa !5
  %4470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4471 = load i32, ptr %4470, align 4, !tbaa !5
  %4472 = call ptr @s2n_strerror(i32 noundef %4471, ptr noundef @.str.4)
  %4473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4474 = load i32, ptr %4473, align 4, !tbaa !5
  %4475 = call ptr @s2n_strerror_debug(i32 noundef %4474, ptr noundef @.str.4)
  %4476 = call ptr @__errno_location() #12
  %4477 = load i32, ptr %4476, align 4, !tbaa !5
  %4478 = call ptr @strerror(i32 noundef %4477) #11
  %4479 = call ptr @__errno_location() #12
  %4480 = load i32, ptr %4479, align 4, !tbaa !5
  %4481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4468, ptr noundef @.str.2, i32 noundef %4469, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 202, ptr noundef %4472, ptr noundef %4475, ptr noundef %4478, i32 noundef %4480) #11
  br label %4499

4482:                                             ; preds = %4460, %4453
  %4483 = load i32, ptr %95, align 4, !tbaa !5
  %4484 = call ptr @__errno_location() #12
  store i32 %4483, ptr %4484, align 4, !tbaa !5
  %4485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4486 = load i32, ptr @test_count, align 4, !tbaa !5
  %4487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4488 = load i32, ptr %4487, align 4, !tbaa !5
  %4489 = call ptr @s2n_strerror(i32 noundef %4488, ptr noundef @.str.4)
  %4490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4491 = load i32, ptr %4490, align 4, !tbaa !5
  %4492 = call ptr @s2n_strerror_debug(i32 noundef %4491, ptr noundef @.str.4)
  %4493 = call ptr @__errno_location() #12
  %4494 = load i32, ptr %4493, align 4, !tbaa !5
  %4495 = call ptr @strerror(i32 noundef %4494) #11
  %4496 = call ptr @__errno_location() #12
  %4497 = load i32, ptr %4496, align 4, !tbaa !5
  %4498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4485, ptr noundef @.str.5, i32 noundef %4486, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 202, ptr noundef %4489, ptr noundef %4492, ptr noundef %4495, i32 noundef %4497) #11
  br label %4499

4499:                                             ; preds = %4482, %4465
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #11
  br label %4500

4500:                                             ; preds = %4499
  br label %4501

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

4502:                                             ; No predecessors!
  br label %4503

4503:                                             ; preds = %4502
  br label %4504

4504:                                             ; preds = %4503, %4446
  br label %4505

4505:                                             ; preds = %4504
  br label %4506

4506:                                             ; preds = %4505
  br label %4507

4507:                                             ; preds = %4506
  %4508 = load i32, ptr @test_count, align 4, !tbaa !5
  %4509 = add nsw i32 %4508, 1
  store i32 %4509, ptr @test_count, align 4, !tbaa !5
  %4510 = load ptr, ptr %78, align 8, !tbaa !9
  %4511 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %4510, i32 noundef 16)
  br i1 %4511, label %4565, label %4512

4512:                                             ; preds = %4507
  br label %4513

4513:                                             ; preds = %4512
  br label %4514

4514:                                             ; preds = %4513
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #11
  %4515 = call ptr @__errno_location() #12
  %4516 = load i32, ptr %4515, align 4, !tbaa !5
  store i32 %4516, ptr %96, align 4, !tbaa !5
  %4517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4518 = call i32 @s2n_print_stacktrace(ptr noundef %4517)
  %4519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4520 = trunc i8 %4519 to i1
  br i1 %4520, label %4521, label %4543

4521:                                             ; preds = %4514
  %4522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4523 = call i32 @fileno(ptr noundef %4522) #11
  %4524 = call i32 @isatty(i32 noundef %4523) #11
  %4525 = icmp ne i32 %4524, 0
  br i1 %4525, label %4526, label %4543

4526:                                             ; preds = %4521
  %4527 = load i32, ptr %96, align 4, !tbaa !5
  %4528 = call ptr @__errno_location() #12
  store i32 %4527, ptr %4528, align 4, !tbaa !5
  %4529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4530 = load i32, ptr @test_count, align 4, !tbaa !5
  %4531 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4532 = load i32, ptr %4531, align 4, !tbaa !5
  %4533 = call ptr @s2n_strerror(i32 noundef %4532, ptr noundef @.str.4)
  %4534 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4535 = load i32, ptr %4534, align 4, !tbaa !5
  %4536 = call ptr @s2n_strerror_debug(i32 noundef %4535, ptr noundef @.str.4)
  %4537 = call ptr @__errno_location() #12
  %4538 = load i32, ptr %4537, align 4, !tbaa !5
  %4539 = call ptr @strerror(i32 noundef %4538) #11
  %4540 = call ptr @__errno_location() #12
  %4541 = load i32, ptr %4540, align 4, !tbaa !5
  %4542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4529, ptr noundef @.str.2, i32 noundef %4530, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 203, ptr noundef %4533, ptr noundef %4536, ptr noundef %4539, i32 noundef %4541) #11
  br label %4560

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

4560:                                             ; preds = %4543, %4526
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #11
  br label %4561

4561:                                             ; preds = %4560
  br label %4562

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

4563:                                             ; No predecessors!
  br label %4564

4564:                                             ; preds = %4563
  br label %4565

4565:                                             ; preds = %4564, %4507
  br label %4566

4566:                                             ; preds = %4565
  br label %4567

4567:                                             ; preds = %4566
  br label %4568

4568:                                             ; preds = %4567
  %4569 = load i32, ptr @test_count, align 4, !tbaa !5
  %4570 = add nsw i32 %4569, 1
  store i32 %4570, ptr @test_count, align 4, !tbaa !5
  %4571 = load ptr, ptr %78, align 8, !tbaa !9
  %4572 = getelementptr inbounds %struct.s2n_connection, ptr %4571, i32 0, i32 83
  %4573 = getelementptr inbounds %struct.s2n_blob, ptr %4572, i32 0, i32 1
  %4574 = load i32, ptr %4573, align 8, !tbaa !51
  %4575 = icmp eq i32 %4574, 0
  br i1 %4575, label %4576, label %4629

4576:                                             ; preds = %4568
  br label %4577

4577:                                             ; preds = %4576
  br label %4578

4578:                                             ; preds = %4577
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #11
  %4579 = call ptr @__errno_location() #12
  %4580 = load i32, ptr %4579, align 4, !tbaa !5
  store i32 %4580, ptr %97, align 4, !tbaa !5
  %4581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4582 = call i32 @s2n_print_stacktrace(ptr noundef %4581)
  %4583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4584 = trunc i8 %4583 to i1
  br i1 %4584, label %4585, label %4607

4585:                                             ; preds = %4578
  %4586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4587 = call i32 @fileno(ptr noundef %4586) #11
  %4588 = call i32 @isatty(i32 noundef %4587) #11
  %4589 = icmp ne i32 %4588, 0
  br i1 %4589, label %4590, label %4607

4590:                                             ; preds = %4585
  %4591 = load i32, ptr %97, align 4, !tbaa !5
  %4592 = call ptr @__errno_location() #12
  store i32 %4591, ptr %4592, align 4, !tbaa !5
  %4593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4594 = load i32, ptr @test_count, align 4, !tbaa !5
  %4595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4596 = load i32, ptr %4595, align 4, !tbaa !5
  %4597 = call ptr @s2n_strerror(i32 noundef %4596, ptr noundef @.str.4)
  %4598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4599 = load i32, ptr %4598, align 4, !tbaa !5
  %4600 = call ptr @s2n_strerror_debug(i32 noundef %4599, ptr noundef @.str.4)
  %4601 = call ptr @__errno_location() #12
  %4602 = load i32, ptr %4601, align 4, !tbaa !5
  %4603 = call ptr @strerror(i32 noundef %4602) #11
  %4604 = call ptr @__errno_location() #12
  %4605 = load i32, ptr %4604, align 4, !tbaa !5
  %4606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4593, ptr noundef @.str.2, i32 noundef %4594, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 209, ptr noundef %4597, ptr noundef %4600, ptr noundef %4603, i32 noundef %4605) #11
  br label %4624

4607:                                             ; preds = %4585, %4578
  %4608 = load i32, ptr %97, 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.5, i32 noundef %4611, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 209, ptr noundef %4614, ptr noundef %4617, ptr noundef %4620, i32 noundef %4622) #11
  br label %4624

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

4625:                                             ; preds = %4624
  br label %4626

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

4627:                                             ; No predecessors!
  br label %4628

4628:                                             ; preds = %4627
  br label %4629

4629:                                             ; preds = %4628, %4568
  br label %4630

4630:                                             ; preds = %4629
  br label %4631

4631:                                             ; preds = %4630
  br label %4632

4632:                                             ; preds = %4631
  %4633 = load i32, ptr @test_count, align 4, !tbaa !5
  %4634 = add nsw i32 %4633, 1
  store i32 %4634, ptr @test_count, align 4, !tbaa !5
  %4635 = load ptr, ptr %78, align 8, !tbaa !9
  %4636 = getelementptr inbounds %struct.s2n_connection, ptr %4635, i32 0, i32 83
  %4637 = call i32 @s2n_free(ptr noundef %4636)
  %4638 = icmp eq i32 %4637, -1
  br i1 %4638, label %4639, label %4692

4639:                                             ; preds = %4632
  br label %4640

4640:                                             ; preds = %4639
  br label %4641

4641:                                             ; preds = %4640
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #11
  %4642 = call ptr @__errno_location() #12
  %4643 = load i32, ptr %4642, align 4, !tbaa !5
  store i32 %4643, ptr %98, align 4, !tbaa !5
  %4644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4645 = call i32 @s2n_print_stacktrace(ptr noundef %4644)
  %4646 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4647 = trunc i8 %4646 to i1
  br i1 %4647, label %4648, label %4670

4648:                                             ; preds = %4641
  %4649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4650 = call i32 @fileno(ptr noundef %4649) #11
  %4651 = call i32 @isatty(i32 noundef %4650) #11
  %4652 = icmp ne i32 %4651, 0
  br i1 %4652, label %4653, label %4670

4653:                                             ; preds = %4648
  %4654 = load i32, ptr %98, align 4, !tbaa !5
  %4655 = call ptr @__errno_location() #12
  store i32 %4654, ptr %4655, align 4, !tbaa !5
  %4656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4657 = load i32, ptr @test_count, align 4, !tbaa !5
  %4658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4659 = load i32, ptr %4658, align 4, !tbaa !5
  %4660 = call ptr @s2n_strerror(i32 noundef %4659, ptr noundef @.str.4)
  %4661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4662 = load i32, ptr %4661, align 4, !tbaa !5
  %4663 = call ptr @s2n_strerror_debug(i32 noundef %4662, ptr noundef @.str.4)
  %4664 = call ptr @__errno_location() #12
  %4665 = load i32, ptr %4664, align 4, !tbaa !5
  %4666 = call ptr @strerror(i32 noundef %4665) #11
  %4667 = call ptr @__errno_location() #12
  %4668 = load i32, ptr %4667, align 4, !tbaa !5
  %4669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4656, ptr noundef @.str.2, i32 noundef %4657, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 210, ptr noundef %4660, ptr noundef %4663, ptr noundef %4666, i32 noundef %4668) #11
  br label %4687

4670:                                             ; preds = %4648, %4641
  %4671 = load i32, ptr %98, 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.5, i32 noundef %4674, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 210, ptr noundef %4677, ptr noundef %4680, ptr noundef %4683, i32 noundef %4685) #11
  br label %4687

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

4688:                                             ; preds = %4687
  br label %4689

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

4690:                                             ; No predecessors!
  br label %4691

4691:                                             ; preds = %4690
  br label %4692

4692:                                             ; preds = %4691, %4632
  br label %4693

4693:                                             ; preds = %4692
  br label %4694

4694:                                             ; preds = %4693
  br label %4695

4695:                                             ; preds = %4694
  br label %4696

4696:                                             ; preds = %4695
  br label %4697

4697:                                             ; preds = %4696
  %4698 = load i32, ptr @test_count, align 4, !tbaa !5
  %4699 = add nsw i32 %4698, 1
  store i32 %4699, ptr @test_count, align 4, !tbaa !5
  %4700 = load ptr, ptr %74, align 8, !tbaa !9
  %4701 = load ptr, ptr %78, align 8, !tbaa !9
  %4702 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %4700, ptr noundef %4701)
  %4703 = icmp eq i32 %4702, -1
  br i1 %4703, label %4757, label %4704

4704:                                             ; preds = %4697
  br label %4705

4705:                                             ; preds = %4704
  br label %4706

4706:                                             ; preds = %4705
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #11
  %4707 = call ptr @__errno_location() #12
  %4708 = load i32, ptr %4707, align 4, !tbaa !5
  store i32 %4708, ptr %99, align 4, !tbaa !5
  %4709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4710 = call i32 @s2n_print_stacktrace(ptr noundef %4709)
  %4711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4712 = trunc i8 %4711 to i1
  br i1 %4712, label %4713, label %4735

4713:                                             ; preds = %4706
  %4714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4715 = call i32 @fileno(ptr noundef %4714) #11
  %4716 = call i32 @isatty(i32 noundef %4715) #11
  %4717 = icmp ne i32 %4716, 0
  br i1 %4717, label %4718, label %4735

4718:                                             ; preds = %4713
  %4719 = load i32, ptr %99, align 4, !tbaa !5
  %4720 = call ptr @__errno_location() #12
  store i32 %4719, ptr %4720, align 4, !tbaa !5
  %4721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4722 = load i32, ptr @test_count, align 4, !tbaa !5
  %4723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4724 = load i32, ptr %4723, align 4, !tbaa !5
  %4725 = call ptr @s2n_strerror(i32 noundef %4724, ptr noundef @.str.4)
  %4726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4727 = load i32, ptr %4726, align 4, !tbaa !5
  %4728 = call ptr @s2n_strerror_debug(i32 noundef %4727, ptr noundef @.str.4)
  %4729 = call ptr @__errno_location() #12
  %4730 = load i32, ptr %4729, align 4, !tbaa !5
  %4731 = call ptr @strerror(i32 noundef %4730) #11
  %4732 = call ptr @__errno_location() #12
  %4733 = load i32, ptr %4732, align 4, !tbaa !5
  %4734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4721, ptr noundef @.str.2, i32 noundef %4722, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 214, ptr noundef %4725, ptr noundef %4728, ptr noundef %4731, i32 noundef %4733) #11
  br label %4752

4735:                                             ; preds = %4713, %4706
  %4736 = load i32, ptr %99, align 4, !tbaa !5
  %4737 = call ptr @__errno_location() #12
  store i32 %4736, ptr %4737, align 4, !tbaa !5
  %4738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4739 = load i32, ptr @test_count, align 4, !tbaa !5
  %4740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4741 = load i32, ptr %4740, align 4, !tbaa !5
  %4742 = call ptr @s2n_strerror(i32 noundef %4741, ptr noundef @.str.4)
  %4743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4744 = load i32, ptr %4743, align 4, !tbaa !5
  %4745 = call ptr @s2n_strerror_debug(i32 noundef %4744, ptr noundef @.str.4)
  %4746 = call ptr @__errno_location() #12
  %4747 = load i32, ptr %4746, align 4, !tbaa !5
  %4748 = call ptr @strerror(i32 noundef %4747) #11
  %4749 = call ptr @__errno_location() #12
  %4750 = load i32, ptr %4749, align 4, !tbaa !5
  %4751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4738, ptr noundef @.str.5, i32 noundef %4739, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 214, ptr noundef %4742, ptr noundef %4745, ptr noundef %4748, i32 noundef %4750) #11
  br label %4752

4752:                                             ; preds = %4735, %4718
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #11
  br label %4753

4753:                                             ; preds = %4752
  br label %4754

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

4755:                                             ; No predecessors!
  br label %4756

4756:                                             ; preds = %4755
  br label %4757

4757:                                             ; preds = %4756, %4697
  br label %4758

4758:                                             ; preds = %4757
  br label %4759

4759:                                             ; preds = %4758
  br label %4760

4760:                                             ; preds = %4759
  %4761 = load i32, ptr @test_count, align 4, !tbaa !5
  %4762 = add nsw i32 %4761, 1
  store i32 %4762, ptr @test_count, align 4, !tbaa !5
  %4763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4764 = load i32, ptr %4763, align 4, !tbaa !5
  %4765 = icmp eq i32 %4764, 335544393
  br i1 %4765, label %4819, label %4766

4766:                                             ; preds = %4760
  br label %4767

4767:                                             ; preds = %4766
  br label %4768

4768:                                             ; preds = %4767
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #11
  %4769 = call ptr @__errno_location() #12
  %4770 = load i32, ptr %4769, align 4, !tbaa !5
  store i32 %4770, ptr %100, align 4, !tbaa !5
  %4771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4772 = call i32 @s2n_print_stacktrace(ptr noundef %4771)
  %4773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4774 = trunc i8 %4773 to i1
  br i1 %4774, label %4775, label %4797

4775:                                             ; preds = %4768
  %4776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4777 = call i32 @fileno(ptr noundef %4776) #11
  %4778 = call i32 @isatty(i32 noundef %4777) #11
  %4779 = icmp ne i32 %4778, 0
  br i1 %4779, label %4780, label %4797

4780:                                             ; preds = %4775
  %4781 = load i32, ptr %100, align 4, !tbaa !5
  %4782 = call ptr @__errno_location() #12
  store i32 %4781, ptr %4782, align 4, !tbaa !5
  %4783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4784 = load i32, ptr @test_count, align 4, !tbaa !5
  %4785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4786 = load i32, ptr %4785, align 4, !tbaa !5
  %4787 = call ptr @s2n_strerror(i32 noundef %4786, ptr noundef @.str.4)
  %4788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4789 = load i32, ptr %4788, align 4, !tbaa !5
  %4790 = call ptr @s2n_strerror_debug(i32 noundef %4789, ptr noundef @.str.4)
  %4791 = call ptr @__errno_location() #12
  %4792 = load i32, ptr %4791, align 4, !tbaa !5
  %4793 = call ptr @strerror(i32 noundef %4792) #11
  %4794 = call ptr @__errno_location() #12
  %4795 = load i32, ptr %4794, align 4, !tbaa !5
  %4796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4783, ptr noundef @.str.2, i32 noundef %4784, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 214, ptr noundef %4787, ptr noundef %4790, ptr noundef %4793, i32 noundef %4795) #11
  br label %4814

4797:                                             ; preds = %4775, %4768
  %4798 = load i32, ptr %100, align 4, !tbaa !5
  %4799 = call ptr @__errno_location() #12
  store i32 %4798, ptr %4799, align 4, !tbaa !5
  %4800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4801 = load i32, ptr @test_count, align 4, !tbaa !5
  %4802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4803 = load i32, ptr %4802, align 4, !tbaa !5
  %4804 = call ptr @s2n_strerror(i32 noundef %4803, ptr noundef @.str.4)
  %4805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4806 = load i32, ptr %4805, align 4, !tbaa !5
  %4807 = call ptr @s2n_strerror_debug(i32 noundef %4806, ptr noundef @.str.4)
  %4808 = call ptr @__errno_location() #12
  %4809 = load i32, ptr %4808, align 4, !tbaa !5
  %4810 = call ptr @strerror(i32 noundef %4809) #11
  %4811 = call ptr @__errno_location() #12
  %4812 = load i32, ptr %4811, align 4, !tbaa !5
  %4813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4800, ptr noundef @.str.5, i32 noundef %4801, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 214, ptr noundef %4804, ptr noundef %4807, ptr noundef %4810, i32 noundef %4812) #11
  br label %4814

4814:                                             ; preds = %4797, %4780
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #11
  br label %4815

4815:                                             ; preds = %4814
  br label %4816

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

4817:                                             ; No predecessors!
  br label %4818

4818:                                             ; preds = %4817
  br label %4819

4819:                                             ; preds = %4818, %4760
  br label %4820

4820:                                             ; preds = %4819
  br label %4821

4821:                                             ; preds = %4820
  br label %4822

4822:                                             ; preds = %4821
  %4823 = load i32, ptr @test_count, align 4, !tbaa !5
  %4824 = add nsw i32 %4823, 1
  store i32 %4824, ptr @test_count, align 4, !tbaa !5
  %4825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4826 = load i32, ptr %4825, align 4, !tbaa !5
  %4827 = call ptr @s2n_strerror_debug(i32 noundef %4826, ptr noundef @.str.4)
  %4828 = icmp eq ptr %4827, null
  br i1 %4828, label %4829, label %4882

4829:                                             ; preds = %4822
  br label %4830

4830:                                             ; preds = %4829
  br label %4831

4831:                                             ; preds = %4830
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #11
  %4832 = call ptr @__errno_location() #12
  %4833 = load i32, ptr %4832, align 4, !tbaa !5
  store i32 %4833, ptr %101, align 4, !tbaa !5
  %4834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4835 = call i32 @s2n_print_stacktrace(ptr noundef %4834)
  %4836 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4837 = trunc i8 %4836 to i1
  br i1 %4837, label %4838, label %4860

4838:                                             ; preds = %4831
  %4839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4840 = call i32 @fileno(ptr noundef %4839) #11
  %4841 = call i32 @isatty(i32 noundef %4840) #11
  %4842 = icmp ne i32 %4841, 0
  br i1 %4842, label %4843, label %4860

4843:                                             ; preds = %4838
  %4844 = load i32, ptr %101, align 4, !tbaa !5
  %4845 = call ptr @__errno_location() #12
  store i32 %4844, ptr %4845, align 4, !tbaa !5
  %4846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4847 = load i32, ptr @test_count, align 4, !tbaa !5
  %4848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4849 = load i32, ptr %4848, align 4, !tbaa !5
  %4850 = call ptr @s2n_strerror(i32 noundef %4849, ptr noundef @.str.4)
  %4851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4852 = load i32, ptr %4851, align 4, !tbaa !5
  %4853 = call ptr @s2n_strerror_debug(i32 noundef %4852, ptr noundef @.str.4)
  %4854 = call ptr @__errno_location() #12
  %4855 = load i32, ptr %4854, align 4, !tbaa !5
  %4856 = call ptr @strerror(i32 noundef %4855) #11
  %4857 = call ptr @__errno_location() #12
  %4858 = load i32, ptr %4857, align 4, !tbaa !5
  %4859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4846, ptr noundef @.str.2, i32 noundef %4847, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 214, ptr noundef %4850, ptr noundef %4853, ptr noundef %4856, i32 noundef %4858) #11
  br label %4877

4860:                                             ; preds = %4838, %4831
  %4861 = load i32, ptr %101, align 4, !tbaa !5
  %4862 = call ptr @__errno_location() #12
  store i32 %4861, ptr %4862, align 4, !tbaa !5
  %4863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4864 = load i32, ptr @test_count, align 4, !tbaa !5
  %4865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4866 = load i32, ptr %4865, align 4, !tbaa !5
  %4867 = call ptr @s2n_strerror(i32 noundef %4866, ptr noundef @.str.4)
  %4868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4869 = load i32, ptr %4868, align 4, !tbaa !5
  %4870 = call ptr @s2n_strerror_debug(i32 noundef %4869, ptr noundef @.str.4)
  %4871 = call ptr @__errno_location() #12
  %4872 = load i32, ptr %4871, align 4, !tbaa !5
  %4873 = call ptr @strerror(i32 noundef %4872) #11
  %4874 = call ptr @__errno_location() #12
  %4875 = load i32, ptr %4874, align 4, !tbaa !5
  %4876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4863, ptr noundef @.str.5, i32 noundef %4864, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 214, ptr noundef %4867, ptr noundef %4870, ptr noundef %4873, i32 noundef %4875) #11
  br label %4877

4877:                                             ; preds = %4860, %4843
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %4878

4878:                                             ; preds = %4877
  br label %4879

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

4880:                                             ; No predecessors!
  br label %4881

4881:                                             ; preds = %4880
  br label %4882

4882:                                             ; preds = %4881, %4822
  br label %4883

4883:                                             ; preds = %4882
  br label %4884

4884:                                             ; preds = %4883
  br label %4885

4885:                                             ; preds = %4884
  br label %4886

4886:                                             ; preds = %4885
  br label %4887

4887:                                             ; preds = %4886
  %4888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4888, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4889 = call ptr @__errno_location() #12
  store i32 0, ptr %4889, align 4, !tbaa !5
  br label %4890

4890:                                             ; preds = %4887
  br label %4891

4891:                                             ; preds = %4890
  br label %4892

4892:                                             ; preds = %4891
  br label %4893

4893:                                             ; preds = %4892
  br label %4894

4894:                                             ; preds = %4893
  %4895 = load i32, ptr @test_count, align 4, !tbaa !5
  %4896 = add nsw i32 %4895, 1
  store i32 %4896, ptr @test_count, align 4, !tbaa !5
  %4897 = call i32 @s2n_io_pair_close(ptr noundef %81)
  %4898 = icmp eq i32 %4897, -1
  br i1 %4898, label %4899, label %4952

4899:                                             ; preds = %4894
  br label %4900

4900:                                             ; preds = %4899
  br label %4901

4901:                                             ; preds = %4900
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #11
  %4902 = call ptr @__errno_location() #12
  %4903 = load i32, ptr %4902, align 4, !tbaa !5
  store i32 %4903, ptr %102, align 4, !tbaa !5
  %4904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4905 = call i32 @s2n_print_stacktrace(ptr noundef %4904)
  %4906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4907 = trunc i8 %4906 to i1
  br i1 %4907, label %4908, label %4930

4908:                                             ; preds = %4901
  %4909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4910 = call i32 @fileno(ptr noundef %4909) #11
  %4911 = call i32 @isatty(i32 noundef %4910) #11
  %4912 = icmp ne i32 %4911, 0
  br i1 %4912, label %4913, label %4930

4913:                                             ; preds = %4908
  %4914 = load i32, ptr %102, align 4, !tbaa !5
  %4915 = call ptr @__errno_location() #12
  store i32 %4914, ptr %4915, align 4, !tbaa !5
  %4916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4917 = load i32, ptr @test_count, align 4, !tbaa !5
  %4918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4919 = load i32, ptr %4918, align 4, !tbaa !5
  %4920 = call ptr @s2n_strerror(i32 noundef %4919, ptr noundef @.str.4)
  %4921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4922 = load i32, ptr %4921, align 4, !tbaa !5
  %4923 = call ptr @s2n_strerror_debug(i32 noundef %4922, ptr noundef @.str.4)
  %4924 = call ptr @__errno_location() #12
  %4925 = load i32, ptr %4924, align 4, !tbaa !5
  %4926 = call ptr @strerror(i32 noundef %4925) #11
  %4927 = call ptr @__errno_location() #12
  %4928 = load i32, ptr %4927, align 4, !tbaa !5
  %4929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4916, ptr noundef @.str.2, i32 noundef %4917, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 216, ptr noundef %4920, ptr noundef %4923, ptr noundef %4926, i32 noundef %4928) #11
  br label %4947

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

4947:                                             ; preds = %4930, %4913
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #11
  br label %4948

4948:                                             ; preds = %4947
  br label %4949

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

4950:                                             ; No predecessors!
  br label %4951

4951:                                             ; preds = %4950
  br label %4952

4952:                                             ; preds = %4951, %4894
  br label %4953

4953:                                             ; preds = %4952
  br label %4954

4954:                                             ; preds = %4953
  call void @llvm.lifetime.end.p0(i64 8, ptr %81) #11
  %4955 = call i32 @s2n_connection_ptr_free(ptr noundef %78)
  %4956 = getelementptr inbounds %struct.s2n_result, ptr %103, i32 0, i32 0
  store i32 %4955, ptr %4956, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #11
  %4957 = call i32 @s2n_connection_ptr_free(ptr noundef %74)
  %4958 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  store i32 %4957, ptr %4958, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %74) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %105) #11
  %4959 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %4959, ptr %105, align 8, !tbaa !9
  br label %4960

4960:                                             ; preds = %4954
  %4961 = load i32, ptr @test_count, align 4, !tbaa !5
  %4962 = add nsw i32 %4961, 1
  store i32 %4962, ptr @test_count, align 4, !tbaa !5
  %4963 = load ptr, ptr %105, align 8, !tbaa !9
  %4964 = icmp eq ptr %4963, null
  br i1 %4964, label %4965, label %5018

4965:                                             ; preds = %4960
  br label %4966

4966:                                             ; preds = %4965
  br label %4967

4967:                                             ; preds = %4966
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #11
  %4968 = call ptr @__errno_location() #12
  %4969 = load i32, ptr %4968, align 4, !tbaa !5
  store i32 %4969, ptr %106, align 4, !tbaa !5
  %4970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4971 = call i32 @s2n_print_stacktrace(ptr noundef %4970)
  %4972 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4973 = trunc i8 %4972 to i1
  br i1 %4973, label %4974, label %4996

4974:                                             ; preds = %4967
  %4975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4976 = call i32 @fileno(ptr noundef %4975) #11
  %4977 = call i32 @isatty(i32 noundef %4976) #11
  %4978 = icmp ne i32 %4977, 0
  br i1 %4978, label %4979, label %4996

4979:                                             ; preds = %4974
  %4980 = load i32, ptr %106, align 4, !tbaa !5
  %4981 = call ptr @__errno_location() #12
  store i32 %4980, ptr %4981, align 4, !tbaa !5
  %4982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4983 = load i32, ptr @test_count, align 4, !tbaa !5
  %4984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4985 = load i32, ptr %4984, align 4, !tbaa !5
  %4986 = call ptr @s2n_strerror(i32 noundef %4985, ptr noundef @.str.4)
  %4987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4988 = load i32, ptr %4987, align 4, !tbaa !5
  %4989 = call ptr @s2n_strerror_debug(i32 noundef %4988, ptr noundef @.str.4)
  %4990 = call ptr @__errno_location() #12
  %4991 = load i32, ptr %4990, align 4, !tbaa !5
  %4992 = call ptr @strerror(i32 noundef %4991) #11
  %4993 = call ptr @__errno_location() #12
  %4994 = load i32, ptr %4993, align 4, !tbaa !5
  %4995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4982, ptr noundef @.str.2, i32 noundef %4983, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 223, ptr noundef %4986, ptr noundef %4989, ptr noundef %4992, i32 noundef %4994) #11
  br label %5013

4996:                                             ; preds = %4974, %4967
  %4997 = load i32, ptr %106, align 4, !tbaa !5
  %4998 = call ptr @__errno_location() #12
  store i32 %4997, ptr %4998, align 4, !tbaa !5
  %4999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5000 = load i32, ptr @test_count, align 4, !tbaa !5
  %5001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5002 = load i32, ptr %5001, align 4, !tbaa !5
  %5003 = call ptr @s2n_strerror(i32 noundef %5002, ptr noundef @.str.4)
  %5004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5005 = load i32, ptr %5004, align 4, !tbaa !5
  %5006 = call ptr @s2n_strerror_debug(i32 noundef %5005, ptr noundef @.str.4)
  %5007 = call ptr @__errno_location() #12
  %5008 = load i32, ptr %5007, align 4, !tbaa !5
  %5009 = call ptr @strerror(i32 noundef %5008) #11
  %5010 = call ptr @__errno_location() #12
  %5011 = load i32, ptr %5010, align 4, !tbaa !5
  %5012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4999, ptr noundef @.str.5, i32 noundef %5000, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 223, ptr noundef %5003, ptr noundef %5006, ptr noundef %5009, i32 noundef %5011) #11
  br label %5013

5013:                                             ; preds = %4996, %4979
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #11
  br label %5014

5014:                                             ; preds = %5013
  br label %5015

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

5016:                                             ; No predecessors!
  br label %5017

5017:                                             ; preds = %5016
  br label %5018

5018:                                             ; preds = %5017, %4960
  br label %5019

5019:                                             ; preds = %5018
  br label %5020

5020:                                             ; preds = %5019
  br label %5021

5021:                                             ; preds = %5020
  %5022 = load i32, ptr @test_count, align 4, !tbaa !5
  %5023 = add nsw i32 %5022, 1
  store i32 %5023, ptr @test_count, align 4, !tbaa !5
  %5024 = load ptr, ptr %105, align 8, !tbaa !9
  %5025 = load ptr, ptr %69, align 8, !tbaa !9
  %5026 = call i32 @s2n_connection_set_config(ptr noundef %5024, ptr noundef %5025)
  %5027 = icmp eq i32 %5026, -1
  br i1 %5027, label %5028, label %5081

5028:                                             ; preds = %5021
  br label %5029

5029:                                             ; preds = %5028
  br label %5030

5030:                                             ; preds = %5029
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #11
  %5031 = call ptr @__errno_location() #12
  %5032 = load i32, ptr %5031, align 4, !tbaa !5
  store i32 %5032, ptr %107, align 4, !tbaa !5
  %5033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5034 = call i32 @s2n_print_stacktrace(ptr noundef %5033)
  %5035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5036 = trunc i8 %5035 to i1
  br i1 %5036, label %5037, label %5059

5037:                                             ; preds = %5030
  %5038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5039 = call i32 @fileno(ptr noundef %5038) #11
  %5040 = call i32 @isatty(i32 noundef %5039) #11
  %5041 = icmp ne i32 %5040, 0
  br i1 %5041, label %5042, label %5059

5042:                                             ; preds = %5037
  %5043 = load i32, ptr %107, align 4, !tbaa !5
  %5044 = call ptr @__errno_location() #12
  store i32 %5043, ptr %5044, align 4, !tbaa !5
  %5045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5046 = load i32, ptr @test_count, align 4, !tbaa !5
  %5047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5048 = load i32, ptr %5047, align 4, !tbaa !5
  %5049 = call ptr @s2n_strerror(i32 noundef %5048, ptr noundef @.str.4)
  %5050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5051 = load i32, ptr %5050, align 4, !tbaa !5
  %5052 = call ptr @s2n_strerror_debug(i32 noundef %5051, ptr noundef @.str.4)
  %5053 = call ptr @__errno_location() #12
  %5054 = load i32, ptr %5053, align 4, !tbaa !5
  %5055 = call ptr @strerror(i32 noundef %5054) #11
  %5056 = call ptr @__errno_location() #12
  %5057 = load i32, ptr %5056, align 4, !tbaa !5
  %5058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5045, ptr noundef @.str.2, i32 noundef %5046, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 224, ptr noundef %5049, ptr noundef %5052, ptr noundef %5055, i32 noundef %5057) #11
  br label %5076

5059:                                             ; preds = %5037, %5030
  %5060 = load i32, ptr %107, align 4, !tbaa !5
  %5061 = call ptr @__errno_location() #12
  store i32 %5060, ptr %5061, align 4, !tbaa !5
  %5062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5063 = load i32, ptr @test_count, align 4, !tbaa !5
  %5064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5065 = load i32, ptr %5064, align 4, !tbaa !5
  %5066 = call ptr @s2n_strerror(i32 noundef %5065, ptr noundef @.str.4)
  %5067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5068 = load i32, ptr %5067, align 4, !tbaa !5
  %5069 = call ptr @s2n_strerror_debug(i32 noundef %5068, ptr noundef @.str.4)
  %5070 = call ptr @__errno_location() #12
  %5071 = load i32, ptr %5070, align 4, !tbaa !5
  %5072 = call ptr @strerror(i32 noundef %5071) #11
  %5073 = call ptr @__errno_location() #12
  %5074 = load i32, ptr %5073, align 4, !tbaa !5
  %5075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5062, ptr noundef @.str.5, i32 noundef %5063, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 224, ptr noundef %5066, ptr noundef %5069, ptr noundef %5072, i32 noundef %5074) #11
  br label %5076

5076:                                             ; preds = %5059, %5042
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #11
  br label %5077

5077:                                             ; preds = %5076
  br label %5078

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

5079:                                             ; No predecessors!
  br label %5080

5080:                                             ; preds = %5079
  br label %5081

5081:                                             ; preds = %5080, %5021
  br label %5082

5082:                                             ; preds = %5081
  br label %5083

5083:                                             ; preds = %5082
  call void @llvm.lifetime.start.p0(i64 8, ptr %108) #11
  %5084 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5084, ptr %108, align 8, !tbaa !9
  br label %5085

5085:                                             ; preds = %5083
  %5086 = load i32, ptr @test_count, align 4, !tbaa !5
  %5087 = add nsw i32 %5086, 1
  store i32 %5087, ptr @test_count, align 4, !tbaa !5
  %5088 = load ptr, ptr %105, align 8, !tbaa !9
  %5089 = icmp eq ptr %5088, null
  br i1 %5089, label %5090, label %5143

5090:                                             ; preds = %5085
  br label %5091

5091:                                             ; preds = %5090
  br label %5092

5092:                                             ; preds = %5091
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #11
  %5093 = call ptr @__errno_location() #12
  %5094 = load i32, ptr %5093, align 4, !tbaa !5
  store i32 %5094, ptr %109, align 4, !tbaa !5
  %5095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5096 = call i32 @s2n_print_stacktrace(ptr noundef %5095)
  %5097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5098 = trunc i8 %5097 to i1
  br i1 %5098, label %5099, label %5121

5099:                                             ; preds = %5092
  %5100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5101 = call i32 @fileno(ptr noundef %5100) #11
  %5102 = call i32 @isatty(i32 noundef %5101) #11
  %5103 = icmp ne i32 %5102, 0
  br i1 %5103, label %5104, label %5121

5104:                                             ; preds = %5099
  %5105 = load i32, ptr %109, align 4, !tbaa !5
  %5106 = call ptr @__errno_location() #12
  store i32 %5105, ptr %5106, align 4, !tbaa !5
  %5107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5108 = load i32, ptr @test_count, align 4, !tbaa !5
  %5109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5110 = load i32, ptr %5109, align 4, !tbaa !5
  %5111 = call ptr @s2n_strerror(i32 noundef %5110, ptr noundef @.str.4)
  %5112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5113 = load i32, ptr %5112, align 4, !tbaa !5
  %5114 = call ptr @s2n_strerror_debug(i32 noundef %5113, ptr noundef @.str.4)
  %5115 = call ptr @__errno_location() #12
  %5116 = load i32, ptr %5115, align 4, !tbaa !5
  %5117 = call ptr @strerror(i32 noundef %5116) #11
  %5118 = call ptr @__errno_location() #12
  %5119 = load i32, ptr %5118, align 4, !tbaa !5
  %5120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5107, ptr noundef @.str.2, i32 noundef %5108, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 228, ptr noundef %5111, ptr noundef %5114, ptr noundef %5117, i32 noundef %5119) #11
  br label %5138

5121:                                             ; preds = %5099, %5092
  %5122 = load i32, ptr %109, align 4, !tbaa !5
  %5123 = call ptr @__errno_location() #12
  store i32 %5122, ptr %5123, align 4, !tbaa !5
  %5124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5125 = load i32, ptr @test_count, align 4, !tbaa !5
  %5126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5127 = load i32, ptr %5126, align 4, !tbaa !5
  %5128 = call ptr @s2n_strerror(i32 noundef %5127, ptr noundef @.str.4)
  %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_debug(i32 noundef %5130, ptr noundef @.str.4)
  %5132 = call ptr @__errno_location() #12
  %5133 = load i32, ptr %5132, align 4, !tbaa !5
  %5134 = call ptr @strerror(i32 noundef %5133) #11
  %5135 = call ptr @__errno_location() #12
  %5136 = load i32, ptr %5135, align 4, !tbaa !5
  %5137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5124, ptr noundef @.str.5, i32 noundef %5125, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 228, ptr noundef %5128, ptr noundef %5131, ptr noundef %5134, i32 noundef %5136) #11
  br label %5138

5138:                                             ; preds = %5121, %5104
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  br label %5139

5139:                                             ; preds = %5138
  br label %5140

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

5141:                                             ; No predecessors!
  br label %5142

5142:                                             ; preds = %5141
  br label %5143

5143:                                             ; preds = %5142, %5085
  br label %5144

5144:                                             ; preds = %5143
  br label %5145

5145:                                             ; preds = %5144
  br label %5146

5146:                                             ; preds = %5145
  %5147 = load i32, ptr @test_count, align 4, !tbaa !5
  %5148 = add nsw i32 %5147, 1
  store i32 %5148, ptr @test_count, align 4, !tbaa !5
  %5149 = load ptr, ptr %108, align 8, !tbaa !9
  %5150 = load ptr, ptr %69, align 8, !tbaa !9
  %5151 = call i32 @s2n_connection_set_config(ptr noundef %5149, ptr noundef %5150)
  %5152 = icmp eq i32 %5151, -1
  br i1 %5152, label %5153, label %5206

5153:                                             ; preds = %5146
  br label %5154

5154:                                             ; preds = %5153
  br label %5155

5155:                                             ; preds = %5154
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #11
  %5156 = call ptr @__errno_location() #12
  %5157 = load i32, ptr %5156, align 4, !tbaa !5
  store i32 %5157, ptr %110, align 4, !tbaa !5
  %5158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5159 = call i32 @s2n_print_stacktrace(ptr noundef %5158)
  %5160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5161 = trunc i8 %5160 to i1
  br i1 %5161, label %5162, label %5184

5162:                                             ; preds = %5155
  %5163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5164 = call i32 @fileno(ptr noundef %5163) #11
  %5165 = call i32 @isatty(i32 noundef %5164) #11
  %5166 = icmp ne i32 %5165, 0
  br i1 %5166, label %5167, label %5184

5167:                                             ; preds = %5162
  %5168 = load i32, ptr %110, align 4, !tbaa !5
  %5169 = call ptr @__errno_location() #12
  store i32 %5168, ptr %5169, align 4, !tbaa !5
  %5170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5171 = load i32, ptr @test_count, align 4, !tbaa !5
  %5172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5173 = load i32, ptr %5172, align 4, !tbaa !5
  %5174 = call ptr @s2n_strerror(i32 noundef %5173, ptr noundef @.str.4)
  %5175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5176 = load i32, ptr %5175, align 4, !tbaa !5
  %5177 = call ptr @s2n_strerror_debug(i32 noundef %5176, ptr noundef @.str.4)
  %5178 = call ptr @__errno_location() #12
  %5179 = load i32, ptr %5178, align 4, !tbaa !5
  %5180 = call ptr @strerror(i32 noundef %5179) #11
  %5181 = call ptr @__errno_location() #12
  %5182 = load i32, ptr %5181, align 4, !tbaa !5
  %5183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5170, ptr noundef @.str.2, i32 noundef %5171, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 229, ptr noundef %5174, ptr noundef %5177, ptr noundef %5180, i32 noundef %5182) #11
  br label %5201

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

5201:                                             ; preds = %5184, %5167
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #11
  br label %5202

5202:                                             ; preds = %5201
  br label %5203

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

5204:                                             ; No predecessors!
  br label %5205

5205:                                             ; preds = %5204
  br label %5206

5206:                                             ; preds = %5205, %5146
  br label %5207

5207:                                             ; preds = %5206
  br label %5208

5208:                                             ; preds = %5207
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #11
  call void @llvm.memset.p0.i64(ptr align 4 %111, i8 0, i64 8, i1 false)
  br label %5209

5209:                                             ; preds = %5208
  %5210 = load i32, ptr @test_count, align 4, !tbaa !5
  %5211 = add nsw i32 %5210, 1
  store i32 %5211, ptr @test_count, align 4, !tbaa !5
  %5212 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %111)
  %5213 = icmp eq i32 %5212, -1
  br i1 %5213, label %5214, label %5267

5214:                                             ; preds = %5209
  br label %5215

5215:                                             ; preds = %5214
  br label %5216

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

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

5228:                                             ; preds = %5223
  %5229 = load i32, ptr %112, align 4, !tbaa !5
  %5230 = call ptr @__errno_location() #12
  store i32 %5229, ptr %5230, align 4, !tbaa !5
  %5231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5232 = load i32, ptr @test_count, align 4, !tbaa !5
  %5233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5234 = load i32, ptr %5233, align 4, !tbaa !5
  %5235 = call ptr @s2n_strerror(i32 noundef %5234, ptr noundef @.str.4)
  %5236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5237 = load i32, ptr %5236, align 4, !tbaa !5
  %5238 = call ptr @s2n_strerror_debug(i32 noundef %5237, ptr noundef @.str.4)
  %5239 = call ptr @__errno_location() #12
  %5240 = load i32, ptr %5239, align 4, !tbaa !5
  %5241 = call ptr @strerror(i32 noundef %5240) #11
  %5242 = call ptr @__errno_location() #12
  %5243 = load i32, ptr %5242, align 4, !tbaa !5
  %5244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5231, ptr noundef @.str.2, i32 noundef %5232, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 232, ptr noundef %5235, ptr noundef %5238, ptr noundef %5241, i32 noundef %5243) #11
  br label %5262

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

5262:                                             ; preds = %5245, %5228
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %5263

5263:                                             ; preds = %5262
  br label %5264

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

5265:                                             ; No predecessors!
  br label %5266

5266:                                             ; preds = %5265
  br label %5267

5267:                                             ; preds = %5266, %5209
  br label %5268

5268:                                             ; preds = %5267
  br label %5269

5269:                                             ; preds = %5268
  br label %5270

5270:                                             ; preds = %5269
  %5271 = load i32, ptr @test_count, align 4, !tbaa !5
  %5272 = add nsw i32 %5271, 1
  store i32 %5272, ptr @test_count, align 4, !tbaa !5
  %5273 = load ptr, ptr %108, align 8, !tbaa !9
  %5274 = load ptr, ptr %105, align 8, !tbaa !9
  %5275 = call i32 @s2n_connections_set_io_pair(ptr noundef %5273, ptr noundef %5274, ptr noundef %111)
  %5276 = icmp eq i32 %5275, -1
  br i1 %5276, label %5277, label %5330

5277:                                             ; preds = %5270
  br label %5278

5278:                                             ; preds = %5277
  br label %5279

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

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

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

5308:                                             ; preds = %5286, %5279
  %5309 = load i32, ptr %113, 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.5, i32 noundef %5312, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 233, ptr noundef %5315, ptr noundef %5318, ptr noundef %5321, i32 noundef %5323) #11
  br label %5325

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

5326:                                             ; preds = %5325
  br label %5327

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

5328:                                             ; No predecessors!
  br label %5329

5329:                                             ; preds = %5328
  br label %5330

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

5331:                                             ; preds = %5330
  br label %5332

5332:                                             ; preds = %5331
  %5333 = load ptr, ptr %108, align 8, !tbaa !9
  %5334 = getelementptr inbounds %struct.s2n_connection, ptr %5333, i32 0, i32 2
  store ptr @security_policy_test_tls13_retry, ptr %5334, align 8, !tbaa !58
  br label %5335

5335:                                             ; preds = %5332
  %5336 = load i32, ptr @test_count, align 4, !tbaa !5
  %5337 = add nsw i32 %5336, 1
  store i32 %5337, ptr @test_count, align 4, !tbaa !5
  %5338 = load ptr, ptr %105, align 8, !tbaa !9
  %5339 = load ptr, ptr %108, align 8, !tbaa !9
  %5340 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %5338, ptr noundef %5339)
  %5341 = icmp eq i32 %5340, -1
  br i1 %5341, label %5342, label %5395

5342:                                             ; preds = %5335
  br label %5343

5343:                                             ; preds = %5342
  br label %5344

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

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

5356:                                             ; preds = %5351
  %5357 = load i32, ptr %114, align 4, !tbaa !5
  %5358 = call ptr @__errno_location() #12
  store i32 %5357, ptr %5358, align 4, !tbaa !5
  %5359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5360 = load i32, ptr @test_count, align 4, !tbaa !5
  %5361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5362 = load i32, ptr %5361, align 4, !tbaa !5
  %5363 = call ptr @s2n_strerror(i32 noundef %5362, ptr noundef @.str.4)
  %5364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5365 = load i32, ptr %5364, align 4, !tbaa !5
  %5366 = call ptr @s2n_strerror_debug(i32 noundef %5365, ptr noundef @.str.4)
  %5367 = call ptr @__errno_location() #12
  %5368 = load i32, ptr %5367, align 4, !tbaa !5
  %5369 = call ptr @strerror(i32 noundef %5368) #11
  %5370 = call ptr @__errno_location() #12
  %5371 = load i32, ptr %5370, align 4, !tbaa !5
  %5372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5359, ptr noundef @.str.2, i32 noundef %5360, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 239, ptr noundef %5363, ptr noundef %5366, ptr noundef %5369, i32 noundef %5371) #11
  br label %5390

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

5390:                                             ; preds = %5373, %5356
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #11
  br label %5391

5391:                                             ; preds = %5390
  br label %5392

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

5393:                                             ; No predecessors!
  br label %5394

5394:                                             ; preds = %5393
  br label %5395

5395:                                             ; preds = %5394, %5335
  br label %5396

5396:                                             ; preds = %5395
  br label %5397

5397:                                             ; preds = %5396
  br label %5398

5398:                                             ; preds = %5397
  %5399 = load i32, ptr @test_count, align 4, !tbaa !5
  %5400 = add nsw i32 %5399, 1
  store i32 %5400, ptr @test_count, align 4, !tbaa !5
  %5401 = load ptr, ptr %105, align 8, !tbaa !9
  %5402 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %5401, i32 noundef 16)
  br i1 %5402, label %5456, label %5403

5403:                                             ; preds = %5398
  br label %5404

5404:                                             ; preds = %5403
  br label %5405

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

5412:                                             ; preds = %5405
  %5413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5414 = call i32 @fileno(ptr noundef %5413) #11
  %5415 = call i32 @isatty(i32 noundef %5414) #11
  %5416 = icmp ne i32 %5415, 0
  br i1 %5416, label %5417, label %5434

5417:                                             ; preds = %5412
  %5418 = load i32, ptr %115, align 4, !tbaa !5
  %5419 = call ptr @__errno_location() #12
  store i32 %5418, ptr %5419, align 4, !tbaa !5
  %5420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5421 = load i32, ptr @test_count, align 4, !tbaa !5
  %5422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5423 = load i32, ptr %5422, align 4, !tbaa !5
  %5424 = call ptr @s2n_strerror(i32 noundef %5423, ptr noundef @.str.4)
  %5425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5426 = load i32, ptr %5425, align 4, !tbaa !5
  %5427 = call ptr @s2n_strerror_debug(i32 noundef %5426, ptr noundef @.str.4)
  %5428 = call ptr @__errno_location() #12
  %5429 = load i32, ptr %5428, align 4, !tbaa !5
  %5430 = call ptr @strerror(i32 noundef %5429) #11
  %5431 = call ptr @__errno_location() #12
  %5432 = load i32, ptr %5431, align 4, !tbaa !5
  %5433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5420, ptr noundef @.str.2, i32 noundef %5421, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 242, ptr noundef %5424, ptr noundef %5427, ptr noundef %5430, i32 noundef %5432) #11
  br label %5451

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

5451:                                             ; preds = %5434, %5417
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %5452

5452:                                             ; preds = %5451
  br label %5453

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

5454:                                             ; No predecessors!
  br label %5455

5455:                                             ; preds = %5454
  br label %5456

5456:                                             ; preds = %5455, %5398
  br label %5457

5457:                                             ; preds = %5456
  br label %5458

5458:                                             ; preds = %5457
  br label %5459

5459:                                             ; preds = %5458
  %5460 = load i32, ptr @test_count, align 4, !tbaa !5
  %5461 = add nsw i32 %5460, 1
  store i32 %5461, ptr @test_count, align 4, !tbaa !5
  %5462 = load ptr, ptr %108, align 8, !tbaa !9
  %5463 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %5462, i32 noundef 16)
  br i1 %5463, label %5517, label %5464

5464:                                             ; preds = %5459
  br label %5465

5465:                                             ; preds = %5464
  br label %5466

5466:                                             ; preds = %5465
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #11
  %5467 = call ptr @__errno_location() #12
  %5468 = load i32, ptr %5467, align 4, !tbaa !5
  store i32 %5468, ptr %116, align 4, !tbaa !5
  %5469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5470 = call i32 @s2n_print_stacktrace(ptr noundef %5469)
  %5471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5472 = trunc i8 %5471 to i1
  br i1 %5472, label %5473, label %5495

5473:                                             ; preds = %5466
  %5474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5475 = call i32 @fileno(ptr noundef %5474) #11
  %5476 = call i32 @isatty(i32 noundef %5475) #11
  %5477 = icmp ne i32 %5476, 0
  br i1 %5477, label %5478, label %5495

5478:                                             ; preds = %5473
  %5479 = load i32, ptr %116, align 4, !tbaa !5
  %5480 = call ptr @__errno_location() #12
  store i32 %5479, ptr %5480, align 4, !tbaa !5
  %5481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5482 = load i32, ptr @test_count, align 4, !tbaa !5
  %5483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5484 = load i32, ptr %5483, align 4, !tbaa !5
  %5485 = call ptr @s2n_strerror(i32 noundef %5484, ptr noundef @.str.4)
  %5486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5487 = load i32, ptr %5486, align 4, !tbaa !5
  %5488 = call ptr @s2n_strerror_debug(i32 noundef %5487, ptr noundef @.str.4)
  %5489 = call ptr @__errno_location() #12
  %5490 = load i32, ptr %5489, align 4, !tbaa !5
  %5491 = call ptr @strerror(i32 noundef %5490) #11
  %5492 = call ptr @__errno_location() #12
  %5493 = load i32, ptr %5492, align 4, !tbaa !5
  %5494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5481, ptr noundef @.str.2, i32 noundef %5482, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 243, ptr noundef %5485, ptr noundef %5488, ptr noundef %5491, i32 noundef %5493) #11
  br label %5512

5495:                                             ; preds = %5473, %5466
  %5496 = load i32, ptr %116, align 4, !tbaa !5
  %5497 = call ptr @__errno_location() #12
  store i32 %5496, ptr %5497, align 4, !tbaa !5
  %5498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5499 = load i32, ptr @test_count, align 4, !tbaa !5
  %5500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5501 = load i32, ptr %5500, align 4, !tbaa !5
  %5502 = call ptr @s2n_strerror(i32 noundef %5501, ptr noundef @.str.4)
  %5503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5504 = load i32, ptr %5503, align 4, !tbaa !5
  %5505 = call ptr @s2n_strerror_debug(i32 noundef %5504, ptr noundef @.str.4)
  %5506 = call ptr @__errno_location() #12
  %5507 = load i32, ptr %5506, align 4, !tbaa !5
  %5508 = call ptr @strerror(i32 noundef %5507) #11
  %5509 = call ptr @__errno_location() #12
  %5510 = load i32, ptr %5509, align 4, !tbaa !5
  %5511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5498, ptr noundef @.str.5, i32 noundef %5499, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 243, ptr noundef %5502, ptr noundef %5505, ptr noundef %5508, i32 noundef %5510) #11
  br label %5512

5512:                                             ; preds = %5495, %5478
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #11
  br label %5513

5513:                                             ; preds = %5512
  br label %5514

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

5515:                                             ; No predecessors!
  br label %5516

5516:                                             ; preds = %5515
  br label %5517

5517:                                             ; preds = %5516, %5459
  br label %5518

5518:                                             ; preds = %5517
  br label %5519

5519:                                             ; preds = %5518
  br label %5520

5520:                                             ; preds = %5519
  %5521 = load i32, ptr @test_count, align 4, !tbaa !5
  %5522 = add nsw i32 %5521, 1
  store i32 %5522, ptr @test_count, align 4, !tbaa !5
  %5523 = load ptr, ptr %108, align 8, !tbaa !9
  %5524 = getelementptr inbounds %struct.s2n_connection, ptr %5523, i32 0, i32 83
  %5525 = getelementptr inbounds %struct.s2n_blob, ptr %5524, i32 0, i32 1
  %5526 = load i32, ptr %5525, align 8, !tbaa !51
  %5527 = icmp eq i32 %5526, 0
  br i1 %5527, label %5581, label %5528

5528:                                             ; preds = %5520
  br label %5529

5529:                                             ; preds = %5528
  br label %5530

5530:                                             ; preds = %5529
  call void @llvm.lifetime.start.p0(i64 4, ptr %117) #11
  %5531 = call ptr @__errno_location() #12
  %5532 = load i32, ptr %5531, align 4, !tbaa !5
  store i32 %5532, ptr %117, align 4, !tbaa !5
  %5533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5534 = call i32 @s2n_print_stacktrace(ptr noundef %5533)
  %5535 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5536 = trunc i8 %5535 to i1
  br i1 %5536, label %5537, label %5559

5537:                                             ; preds = %5530
  %5538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5539 = call i32 @fileno(ptr noundef %5538) #11
  %5540 = call i32 @isatty(i32 noundef %5539) #11
  %5541 = icmp ne i32 %5540, 0
  br i1 %5541, label %5542, label %5559

5542:                                             ; preds = %5537
  %5543 = load i32, ptr %117, align 4, !tbaa !5
  %5544 = call ptr @__errno_location() #12
  store i32 %5543, ptr %5544, align 4, !tbaa !5
  %5545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5546 = load i32, ptr @test_count, align 4, !tbaa !5
  %5547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5548 = load i32, ptr %5547, align 4, !tbaa !5
  %5549 = call ptr @s2n_strerror(i32 noundef %5548, ptr noundef @.str.4)
  %5550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5551 = load i32, ptr %5550, align 4, !tbaa !5
  %5552 = call ptr @s2n_strerror_debug(i32 noundef %5551, ptr noundef @.str.4)
  %5553 = call ptr @__errno_location() #12
  %5554 = load i32, ptr %5553, align 4, !tbaa !5
  %5555 = call ptr @strerror(i32 noundef %5554) #11
  %5556 = call ptr @__errno_location() #12
  %5557 = load i32, ptr %5556, align 4, !tbaa !5
  %5558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5545, ptr noundef @.str.2, i32 noundef %5546, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 246, ptr noundef %5549, ptr noundef %5552, ptr noundef %5555, i32 noundef %5557) #11
  br label %5576

5559:                                             ; preds = %5537, %5530
  %5560 = load i32, ptr %117, align 4, !tbaa !5
  %5561 = call ptr @__errno_location() #12
  store i32 %5560, ptr %5561, align 4, !tbaa !5
  %5562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5563 = load i32, ptr @test_count, align 4, !tbaa !5
  %5564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5565 = load i32, ptr %5564, align 4, !tbaa !5
  %5566 = call ptr @s2n_strerror(i32 noundef %5565, ptr noundef @.str.4)
  %5567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5568 = load i32, ptr %5567, align 4, !tbaa !5
  %5569 = call ptr @s2n_strerror_debug(i32 noundef %5568, ptr noundef @.str.4)
  %5570 = call ptr @__errno_location() #12
  %5571 = load i32, ptr %5570, align 4, !tbaa !5
  %5572 = call ptr @strerror(i32 noundef %5571) #11
  %5573 = call ptr @__errno_location() #12
  %5574 = load i32, ptr %5573, align 4, !tbaa !5
  %5575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5562, ptr noundef @.str.5, i32 noundef %5563, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 246, ptr noundef %5566, ptr noundef %5569, ptr noundef %5572, i32 noundef %5574) #11
  br label %5576

5576:                                             ; preds = %5559, %5542
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %5577

5577:                                             ; preds = %5576
  br label %5578

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

5579:                                             ; No predecessors!
  br label %5580

5580:                                             ; preds = %5579
  br label %5581

5581:                                             ; preds = %5580, %5520
  br label %5582

5582:                                             ; preds = %5581
  br label %5583

5583:                                             ; preds = %5582
  br label %5584

5584:                                             ; preds = %5583
  %5585 = load i32, ptr @test_count, align 4, !tbaa !5
  %5586 = add nsw i32 %5585, 1
  store i32 %5586, ptr @test_count, align 4, !tbaa !5
  %5587 = load ptr, ptr %105, align 8, !tbaa !9
  %5588 = getelementptr inbounds %struct.s2n_connection, ptr %5587, i32 0, i32 83
  %5589 = getelementptr inbounds %struct.s2n_blob, ptr %5588, i32 0, i32 1
  %5590 = load i32, ptr %5589, align 8, !tbaa !51
  %5591 = icmp eq i32 %5590, 0
  br i1 %5591, label %5645, label %5592

5592:                                             ; preds = %5584
  br label %5593

5593:                                             ; preds = %5592
  br label %5594

5594:                                             ; preds = %5593
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #11
  %5595 = call ptr @__errno_location() #12
  %5596 = load i32, ptr %5595, align 4, !tbaa !5
  store i32 %5596, ptr %118, align 4, !tbaa !5
  %5597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5598 = call i32 @s2n_print_stacktrace(ptr noundef %5597)
  %5599 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5600 = trunc i8 %5599 to i1
  br i1 %5600, label %5601, label %5623

5601:                                             ; preds = %5594
  %5602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5603 = call i32 @fileno(ptr noundef %5602) #11
  %5604 = call i32 @isatty(i32 noundef %5603) #11
  %5605 = icmp ne i32 %5604, 0
  br i1 %5605, label %5606, label %5623

5606:                                             ; preds = %5601
  %5607 = load i32, ptr %118, align 4, !tbaa !5
  %5608 = call ptr @__errno_location() #12
  store i32 %5607, ptr %5608, align 4, !tbaa !5
  %5609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5610 = load i32, ptr @test_count, align 4, !tbaa !5
  %5611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5612 = load i32, ptr %5611, align 4, !tbaa !5
  %5613 = call ptr @s2n_strerror(i32 noundef %5612, ptr noundef @.str.4)
  %5614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5615 = load i32, ptr %5614, align 4, !tbaa !5
  %5616 = call ptr @s2n_strerror_debug(i32 noundef %5615, ptr noundef @.str.4)
  %5617 = call ptr @__errno_location() #12
  %5618 = load i32, ptr %5617, align 4, !tbaa !5
  %5619 = call ptr @strerror(i32 noundef %5618) #11
  %5620 = call ptr @__errno_location() #12
  %5621 = load i32, ptr %5620, align 4, !tbaa !5
  %5622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5609, ptr noundef @.str.2, i32 noundef %5610, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 247, ptr noundef %5613, ptr noundef %5616, ptr noundef %5619, i32 noundef %5621) #11
  br label %5640

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

5640:                                             ; preds = %5623, %5606
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %5641

5641:                                             ; preds = %5640
  br label %5642

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

5643:                                             ; No predecessors!
  br label %5644

5644:                                             ; preds = %5643
  br label %5645

5645:                                             ; preds = %5644, %5584
  br label %5646

5646:                                             ; preds = %5645
  br label %5647

5647:                                             ; preds = %5646
  br label %5648

5648:                                             ; preds = %5647
  %5649 = load i32, ptr @test_count, align 4, !tbaa !5
  %5650 = add nsw i32 %5649, 1
  store i32 %5650, ptr @test_count, align 4, !tbaa !5
  %5651 = load ptr, ptr %105, align 8, !tbaa !9
  %5652 = load ptr, ptr %108, align 8, !tbaa !9
  %5653 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef %5651, ptr noundef %5652)
  %5654 = icmp eq i32 %5653, -1
  br i1 %5654, label %5655, label %5708

5655:                                             ; preds = %5648
  br label %5656

5656:                                             ; preds = %5655
  br label %5657

5657:                                             ; preds = %5656
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #11
  %5658 = call ptr @__errno_location() #12
  %5659 = load i32, ptr %5658, align 4, !tbaa !5
  store i32 %5659, ptr %119, align 4, !tbaa !5
  %5660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5661 = call i32 @s2n_print_stacktrace(ptr noundef %5660)
  %5662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5663 = trunc i8 %5662 to i1
  br i1 %5663, label %5664, label %5686

5664:                                             ; preds = %5657
  %5665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5666 = call i32 @fileno(ptr noundef %5665) #11
  %5667 = call i32 @isatty(i32 noundef %5666) #11
  %5668 = icmp ne i32 %5667, 0
  br i1 %5668, label %5669, label %5686

5669:                                             ; preds = %5664
  %5670 = load i32, ptr %119, align 4, !tbaa !5
  %5671 = call ptr @__errno_location() #12
  store i32 %5670, ptr %5671, align 4, !tbaa !5
  %5672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5673 = load i32, ptr @test_count, align 4, !tbaa !5
  %5674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5675 = load i32, ptr %5674, align 4, !tbaa !5
  %5676 = call ptr @s2n_strerror(i32 noundef %5675, ptr noundef @.str.4)
  %5677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5678 = load i32, ptr %5677, align 4, !tbaa !5
  %5679 = call ptr @s2n_strerror_debug(i32 noundef %5678, ptr noundef @.str.4)
  %5680 = call ptr @__errno_location() #12
  %5681 = load i32, ptr %5680, align 4, !tbaa !5
  %5682 = call ptr @strerror(i32 noundef %5681) #11
  %5683 = call ptr @__errno_location() #12
  %5684 = load i32, ptr %5683, align 4, !tbaa !5
  %5685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5672, ptr noundef @.str.2, i32 noundef %5673, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 249, ptr noundef %5676, ptr noundef %5679, ptr noundef %5682, i32 noundef %5684) #11
  br label %5703

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

5703:                                             ; preds = %5686, %5669
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #11
  br label %5704

5704:                                             ; preds = %5703
  br label %5705

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

5706:                                             ; No predecessors!
  br label %5707

5707:                                             ; preds = %5706
  br label %5708

5708:                                             ; preds = %5707, %5648
  br label %5709

5709:                                             ; preds = %5708
  br label %5710

5710:                                             ; preds = %5709
  br label %5711

5711:                                             ; preds = %5710
  %5712 = load i32, ptr @test_count, align 4, !tbaa !5
  %5713 = add nsw i32 %5712, 1
  store i32 %5713, ptr @test_count, align 4, !tbaa !5
  %5714 = call i32 @s2n_io_pair_close(ptr noundef %111)
  %5715 = icmp eq i32 %5714, -1
  br i1 %5715, label %5716, label %5769

5716:                                             ; preds = %5711
  br label %5717

5717:                                             ; preds = %5716
  br label %5718

5718:                                             ; preds = %5717
  call void @llvm.lifetime.start.p0(i64 4, ptr %120) #11
  %5719 = call ptr @__errno_location() #12
  %5720 = load i32, ptr %5719, align 4, !tbaa !5
  store i32 %5720, ptr %120, align 4, !tbaa !5
  %5721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5722 = call i32 @s2n_print_stacktrace(ptr noundef %5721)
  %5723 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5724 = trunc i8 %5723 to i1
  br i1 %5724, label %5725, label %5747

5725:                                             ; preds = %5718
  %5726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5727 = call i32 @fileno(ptr noundef %5726) #11
  %5728 = call i32 @isatty(i32 noundef %5727) #11
  %5729 = icmp ne i32 %5728, 0
  br i1 %5729, label %5730, label %5747

5730:                                             ; preds = %5725
  %5731 = load i32, ptr %120, align 4, !tbaa !5
  %5732 = call ptr @__errno_location() #12
  store i32 %5731, ptr %5732, align 4, !tbaa !5
  %5733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5734 = load i32, ptr @test_count, align 4, !tbaa !5
  %5735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5736 = load i32, ptr %5735, align 4, !tbaa !5
  %5737 = call ptr @s2n_strerror(i32 noundef %5736, ptr noundef @.str.4)
  %5738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5739 = load i32, ptr %5738, align 4, !tbaa !5
  %5740 = call ptr @s2n_strerror_debug(i32 noundef %5739, ptr noundef @.str.4)
  %5741 = call ptr @__errno_location() #12
  %5742 = load i32, ptr %5741, align 4, !tbaa !5
  %5743 = call ptr @strerror(i32 noundef %5742) #11
  %5744 = call ptr @__errno_location() #12
  %5745 = load i32, ptr %5744, align 4, !tbaa !5
  %5746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5733, ptr noundef @.str.2, i32 noundef %5734, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 250, ptr noundef %5737, ptr noundef %5740, ptr noundef %5743, i32 noundef %5745) #11
  br label %5764

5747:                                             ; preds = %5725, %5718
  %5748 = load i32, ptr %120, align 4, !tbaa !5
  %5749 = call ptr @__errno_location() #12
  store i32 %5748, ptr %5749, align 4, !tbaa !5
  %5750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5751 = load i32, ptr @test_count, align 4, !tbaa !5
  %5752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5753 = load i32, ptr %5752, align 4, !tbaa !5
  %5754 = call ptr @s2n_strerror(i32 noundef %5753, ptr noundef @.str.4)
  %5755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5756 = load i32, ptr %5755, align 4, !tbaa !5
  %5757 = call ptr @s2n_strerror_debug(i32 noundef %5756, ptr noundef @.str.4)
  %5758 = call ptr @__errno_location() #12
  %5759 = load i32, ptr %5758, align 4, !tbaa !5
  %5760 = call ptr @strerror(i32 noundef %5759) #11
  %5761 = call ptr @__errno_location() #12
  %5762 = load i32, ptr %5761, align 4, !tbaa !5
  %5763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5750, ptr noundef @.str.5, i32 noundef %5751, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 250, ptr noundef %5754, ptr noundef %5757, ptr noundef %5760, i32 noundef %5762) #11
  br label %5764

5764:                                             ; preds = %5747, %5730
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #11
  br label %5765

5765:                                             ; preds = %5764
  br label %5766

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

5767:                                             ; No predecessors!
  br label %5768

5768:                                             ; preds = %5767
  br label %5769

5769:                                             ; preds = %5768, %5711
  br label %5770

5770:                                             ; preds = %5769
  br label %5771

5771:                                             ; preds = %5770
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #11
  %5772 = call i32 @s2n_connection_ptr_free(ptr noundef %108)
  %5773 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  store i32 %5772, ptr %5773, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %108) #11
  %5774 = call i32 @s2n_connection_ptr_free(ptr noundef %105)
  %5775 = getelementptr inbounds %struct.s2n_result, ptr %122, i32 0, i32 0
  store i32 %5774, ptr %5775, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %105) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %123) #11
  store i64 0, ptr %123, align 8, !tbaa !15
  br label %5776

5776:                                             ; preds = %6845, %5771
  %5777 = load i64, ptr %123, align 8, !tbaa !15
  %5778 = icmp ult i64 %5777, 5
  br i1 %5778, label %5780, label %5779

5779:                                             ; preds = %5776
  call void @llvm.lifetime.end.p0(i64 8, ptr %123) #11
  br label %6848

5780:                                             ; preds = %5776
  call void @llvm.lifetime.start.p0(i64 8, ptr %124) #11
  %5781 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %5781, ptr %124, align 8, !tbaa !9
  br label %5782

5782:                                             ; preds = %5780
  %5783 = load i32, ptr @test_count, align 4, !tbaa !5
  %5784 = add nsw i32 %5783, 1
  store i32 %5784, ptr @test_count, align 4, !tbaa !5
  %5785 = load ptr, ptr %124, align 8, !tbaa !9
  %5786 = icmp eq ptr %5785, null
  br i1 %5786, label %5787, label %5840

5787:                                             ; preds = %5782
  br label %5788

5788:                                             ; preds = %5787
  br label %5789

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

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

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

5818:                                             ; preds = %5796, %5789
  %5819 = load i32, ptr %125, 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.5, i32 noundef %5822, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 267, ptr noundef %5825, ptr noundef %5828, ptr noundef %5831, i32 noundef %5833) #11
  br label %5835

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

5836:                                             ; preds = %5835
  br label %5837

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

5838:                                             ; No predecessors!
  br label %5839

5839:                                             ; preds = %5838
  br label %5840

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

5841:                                             ; preds = %5840
  br label %5842

5842:                                             ; preds = %5841
  br label %5843

5843:                                             ; preds = %5842
  %5844 = load i32, ptr @test_count, align 4, !tbaa !5
  %5845 = add nsw i32 %5844, 1
  store i32 %5845, ptr @test_count, align 4, !tbaa !5
  %5846 = load ptr, ptr %124, align 8, !tbaa !9
  %5847 = load ptr, ptr %69, align 8, !tbaa !9
  %5848 = call i32 @s2n_connection_set_config(ptr noundef %5846, ptr noundef %5847)
  %5849 = icmp eq i32 %5848, -1
  br i1 %5849, label %5850, label %5903

5850:                                             ; preds = %5843
  br label %5851

5851:                                             ; preds = %5850
  br label %5852

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

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

5864:                                             ; preds = %5859
  %5865 = load i32, ptr %126, align 4, !tbaa !5
  %5866 = call ptr @__errno_location() #12
  store i32 %5865, ptr %5866, align 4, !tbaa !5
  %5867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5868 = load i32, ptr @test_count, align 4, !tbaa !5
  %5869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5870 = load i32, ptr %5869, align 4, !tbaa !5
  %5871 = call ptr @s2n_strerror(i32 noundef %5870, ptr noundef @.str.4)
  %5872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5873 = load i32, ptr %5872, align 4, !tbaa !5
  %5874 = call ptr @s2n_strerror_debug(i32 noundef %5873, ptr noundef @.str.4)
  %5875 = call ptr @__errno_location() #12
  %5876 = load i32, ptr %5875, align 4, !tbaa !5
  %5877 = call ptr @strerror(i32 noundef %5876) #11
  %5878 = call ptr @__errno_location() #12
  %5879 = load i32, ptr %5878, align 4, !tbaa !5
  %5880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5867, ptr noundef @.str.2, i32 noundef %5868, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 268, ptr noundef %5871, ptr noundef %5874, ptr noundef %5877, i32 noundef %5879) #11
  br label %5898

5881:                                             ; preds = %5859, %5852
  %5882 = load i32, ptr %126, align 4, !tbaa !5
  %5883 = call ptr @__errno_location() #12
  store i32 %5882, ptr %5883, align 4, !tbaa !5
  %5884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5885 = load i32, ptr @test_count, align 4, !tbaa !5
  %5886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5887 = load i32, ptr %5886, align 4, !tbaa !5
  %5888 = call ptr @s2n_strerror(i32 noundef %5887, ptr noundef @.str.4)
  %5889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5890 = load i32, ptr %5889, align 4, !tbaa !5
  %5891 = call ptr @s2n_strerror_debug(i32 noundef %5890, ptr noundef @.str.4)
  %5892 = call ptr @__errno_location() #12
  %5893 = load i32, ptr %5892, align 4, !tbaa !5
  %5894 = call ptr @strerror(i32 noundef %5893) #11
  %5895 = call ptr @__errno_location() #12
  %5896 = load i32, ptr %5895, align 4, !tbaa !5
  %5897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5884, ptr noundef @.str.5, i32 noundef %5885, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 268, ptr noundef %5888, ptr noundef %5891, ptr noundef %5894, i32 noundef %5896) #11
  br label %5898

5898:                                             ; preds = %5881, %5864
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #11
  br label %5899

5899:                                             ; preds = %5898
  br label %5900

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

5901:                                             ; No predecessors!
  br label %5902

5902:                                             ; preds = %5901
  br label %5903

5903:                                             ; preds = %5902, %5843
  br label %5904

5904:                                             ; preds = %5903
  br label %5905

5905:                                             ; preds = %5904
  call void @llvm.lifetime.start.p0(i64 8, ptr %127) #11
  %5906 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %5906, ptr %127, align 8, !tbaa !9
  br label %5907

5907:                                             ; preds = %5905
  %5908 = load i32, ptr @test_count, align 4, !tbaa !5
  %5909 = add nsw i32 %5908, 1
  store i32 %5909, ptr @test_count, align 4, !tbaa !5
  %5910 = load ptr, ptr %124, align 8, !tbaa !9
  %5911 = icmp eq ptr %5910, null
  br i1 %5911, label %5912, label %5965

5912:                                             ; preds = %5907
  br label %5913

5913:                                             ; preds = %5912
  br label %5914

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

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

5926:                                             ; preds = %5921
  %5927 = load i32, ptr %128, align 4, !tbaa !5
  %5928 = call ptr @__errno_location() #12
  store i32 %5927, ptr %5928, align 4, !tbaa !5
  %5929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5930 = load i32, ptr @test_count, align 4, !tbaa !5
  %5931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5932 = load i32, ptr %5931, align 4, !tbaa !5
  %5933 = call ptr @s2n_strerror(i32 noundef %5932, ptr noundef @.str.4)
  %5934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5935 = load i32, ptr %5934, align 4, !tbaa !5
  %5936 = call ptr @s2n_strerror_debug(i32 noundef %5935, ptr noundef @.str.4)
  %5937 = call ptr @__errno_location() #12
  %5938 = load i32, ptr %5937, align 4, !tbaa !5
  %5939 = call ptr @strerror(i32 noundef %5938) #11
  %5940 = call ptr @__errno_location() #12
  %5941 = load i32, ptr %5940, align 4, !tbaa !5
  %5942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5929, ptr noundef @.str.2, i32 noundef %5930, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 272, ptr noundef %5933, ptr noundef %5936, ptr noundef %5939, i32 noundef %5941) #11
  br label %5960

5943:                                             ; preds = %5921, %5914
  %5944 = load i32, ptr %128, align 4, !tbaa !5
  %5945 = call ptr @__errno_location() #12
  store i32 %5944, ptr %5945, align 4, !tbaa !5
  %5946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5947 = load i32, ptr @test_count, align 4, !tbaa !5
  %5948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5949 = load i32, ptr %5948, align 4, !tbaa !5
  %5950 = call ptr @s2n_strerror(i32 noundef %5949, ptr noundef @.str.4)
  %5951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5952 = load i32, ptr %5951, align 4, !tbaa !5
  %5953 = call ptr @s2n_strerror_debug(i32 noundef %5952, ptr noundef @.str.4)
  %5954 = call ptr @__errno_location() #12
  %5955 = load i32, ptr %5954, align 4, !tbaa !5
  %5956 = call ptr @strerror(i32 noundef %5955) #11
  %5957 = call ptr @__errno_location() #12
  %5958 = load i32, ptr %5957, align 4, !tbaa !5
  %5959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5946, ptr noundef @.str.5, i32 noundef %5947, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 272, ptr noundef %5950, ptr noundef %5953, ptr noundef %5956, i32 noundef %5958) #11
  br label %5960

5960:                                             ; preds = %5943, %5926
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #11
  br label %5961

5961:                                             ; preds = %5960
  br label %5962

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

5963:                                             ; No predecessors!
  br label %5964

5964:                                             ; preds = %5963
  br label %5965

5965:                                             ; preds = %5964, %5907
  br label %5966

5966:                                             ; preds = %5965
  br label %5967

5967:                                             ; preds = %5966
  br label %5968

5968:                                             ; preds = %5967
  %5969 = load i32, ptr @test_count, align 4, !tbaa !5
  %5970 = add nsw i32 %5969, 1
  store i32 %5970, ptr @test_count, align 4, !tbaa !5
  %5971 = load ptr, ptr %127, align 8, !tbaa !9
  %5972 = load ptr, ptr %69, align 8, !tbaa !9
  %5973 = call i32 @s2n_connection_set_config(ptr noundef %5971, ptr noundef %5972)
  %5974 = icmp eq i32 %5973, -1
  br i1 %5974, label %5975, label %6028

5975:                                             ; preds = %5968
  br label %5976

5976:                                             ; preds = %5975
  br label %5977

5977:                                             ; preds = %5976
  call void @llvm.lifetime.start.p0(i64 4, ptr %129) #11
  %5978 = call ptr @__errno_location() #12
  %5979 = load i32, ptr %5978, align 4, !tbaa !5
  store i32 %5979, ptr %129, align 4, !tbaa !5
  %5980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5981 = call i32 @s2n_print_stacktrace(ptr noundef %5980)
  %5982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5983 = trunc i8 %5982 to i1
  br i1 %5983, label %5984, label %6006

5984:                                             ; preds = %5977
  %5985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5986 = call i32 @fileno(ptr noundef %5985) #11
  %5987 = call i32 @isatty(i32 noundef %5986) #11
  %5988 = icmp ne i32 %5987, 0
  br i1 %5988, label %5989, label %6006

5989:                                             ; preds = %5984
  %5990 = load i32, ptr %129, align 4, !tbaa !5
  %5991 = call ptr @__errno_location() #12
  store i32 %5990, ptr %5991, align 4, !tbaa !5
  %5992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5993 = load i32, ptr @test_count, align 4, !tbaa !5
  %5994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5995 = load i32, ptr %5994, align 4, !tbaa !5
  %5996 = call ptr @s2n_strerror(i32 noundef %5995, ptr noundef @.str.4)
  %5997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5998 = load i32, ptr %5997, align 4, !tbaa !5
  %5999 = call ptr @s2n_strerror_debug(i32 noundef %5998, ptr noundef @.str.4)
  %6000 = call ptr @__errno_location() #12
  %6001 = load i32, ptr %6000, align 4, !tbaa !5
  %6002 = call ptr @strerror(i32 noundef %6001) #11
  %6003 = call ptr @__errno_location() #12
  %6004 = load i32, ptr %6003, align 4, !tbaa !5
  %6005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5992, ptr noundef @.str.2, i32 noundef %5993, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 273, ptr noundef %5996, ptr noundef %5999, ptr noundef %6002, i32 noundef %6004) #11
  br label %6023

6006:                                             ; preds = %5984, %5977
  %6007 = load i32, ptr %129, align 4, !tbaa !5
  %6008 = call ptr @__errno_location() #12
  store i32 %6007, ptr %6008, align 4, !tbaa !5
  %6009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6010 = load i32, ptr @test_count, align 4, !tbaa !5
  %6011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6012 = load i32, ptr %6011, align 4, !tbaa !5
  %6013 = call ptr @s2n_strerror(i32 noundef %6012, ptr noundef @.str.4)
  %6014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6015 = load i32, ptr %6014, align 4, !tbaa !5
  %6016 = call ptr @s2n_strerror_debug(i32 noundef %6015, ptr noundef @.str.4)
  %6017 = call ptr @__errno_location() #12
  %6018 = load i32, ptr %6017, align 4, !tbaa !5
  %6019 = call ptr @strerror(i32 noundef %6018) #11
  %6020 = call ptr @__errno_location() #12
  %6021 = load i32, ptr %6020, align 4, !tbaa !5
  %6022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6009, ptr noundef @.str.5, i32 noundef %6010, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 273, ptr noundef %6013, ptr noundef %6016, ptr noundef %6019, i32 noundef %6021) #11
  br label %6023

6023:                                             ; preds = %6006, %5989
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #11
  br label %6024

6024:                                             ; preds = %6023
  br label %6025

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

6026:                                             ; No predecessors!
  br label %6027

6027:                                             ; preds = %6026
  br label %6028

6028:                                             ; preds = %6027, %5968
  br label %6029

6029:                                             ; preds = %6028
  br label %6030

6030:                                             ; preds = %6029
  call void @llvm.lifetime.start.p0(i64 8, ptr %130) #11
  call void @llvm.memset.p0.i64(ptr align 4 %130, i8 0, i64 8, i1 false)
  br label %6031

6031:                                             ; preds = %6030
  %6032 = load i32, ptr @test_count, align 4, !tbaa !5
  %6033 = add nsw i32 %6032, 1
  store i32 %6033, ptr @test_count, align 4, !tbaa !5
  %6034 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %130)
  %6035 = icmp eq i32 %6034, -1
  br i1 %6035, label %6036, label %6089

6036:                                             ; preds = %6031
  br label %6037

6037:                                             ; preds = %6036
  br label %6038

6038:                                             ; preds = %6037
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #11
  %6039 = call ptr @__errno_location() #12
  %6040 = load i32, ptr %6039, align 4, !tbaa !5
  store i32 %6040, ptr %131, align 4, !tbaa !5
  %6041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6042 = call i32 @s2n_print_stacktrace(ptr noundef %6041)
  %6043 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6044 = trunc i8 %6043 to i1
  br i1 %6044, label %6045, label %6067

6045:                                             ; preds = %6038
  %6046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6047 = call i32 @fileno(ptr noundef %6046) #11
  %6048 = call i32 @isatty(i32 noundef %6047) #11
  %6049 = icmp ne i32 %6048, 0
  br i1 %6049, label %6050, label %6067

6050:                                             ; preds = %6045
  %6051 = load i32, ptr %131, align 4, !tbaa !5
  %6052 = call ptr @__errno_location() #12
  store i32 %6051, ptr %6052, align 4, !tbaa !5
  %6053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6054 = load i32, ptr @test_count, align 4, !tbaa !5
  %6055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6056 = load i32, ptr %6055, align 4, !tbaa !5
  %6057 = call ptr @s2n_strerror(i32 noundef %6056, ptr noundef @.str.4)
  %6058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6059 = load i32, ptr %6058, align 4, !tbaa !5
  %6060 = call ptr @s2n_strerror_debug(i32 noundef %6059, ptr noundef @.str.4)
  %6061 = call ptr @__errno_location() #12
  %6062 = load i32, ptr %6061, align 4, !tbaa !5
  %6063 = call ptr @strerror(i32 noundef %6062) #11
  %6064 = call ptr @__errno_location() #12
  %6065 = load i32, ptr %6064, align 4, !tbaa !5
  %6066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6053, ptr noundef @.str.2, i32 noundef %6054, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 276, ptr noundef %6057, ptr noundef %6060, ptr noundef %6063, i32 noundef %6065) #11
  br label %6084

6067:                                             ; preds = %6045, %6038
  %6068 = load i32, ptr %131, align 4, !tbaa !5
  %6069 = call ptr @__errno_location() #12
  store i32 %6068, ptr %6069, align 4, !tbaa !5
  %6070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6071 = load i32, ptr @test_count, align 4, !tbaa !5
  %6072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6073 = load i32, ptr %6072, align 4, !tbaa !5
  %6074 = call ptr @s2n_strerror(i32 noundef %6073, ptr noundef @.str.4)
  %6075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6076 = load i32, ptr %6075, align 4, !tbaa !5
  %6077 = call ptr @s2n_strerror_debug(i32 noundef %6076, ptr noundef @.str.4)
  %6078 = call ptr @__errno_location() #12
  %6079 = load i32, ptr %6078, align 4, !tbaa !5
  %6080 = call ptr @strerror(i32 noundef %6079) #11
  %6081 = call ptr @__errno_location() #12
  %6082 = load i32, ptr %6081, align 4, !tbaa !5
  %6083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6070, ptr noundef @.str.5, i32 noundef %6071, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 276, ptr noundef %6074, ptr noundef %6077, ptr noundef %6080, i32 noundef %6082) #11
  br label %6084

6084:                                             ; preds = %6067, %6050
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  br label %6085

6085:                                             ; preds = %6084
  br label %6086

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

6087:                                             ; No predecessors!
  br label %6088

6088:                                             ; preds = %6087
  br label %6089

6089:                                             ; preds = %6088, %6031
  br label %6090

6090:                                             ; preds = %6089
  br label %6091

6091:                                             ; preds = %6090
  br label %6092

6092:                                             ; preds = %6091
  %6093 = load i32, ptr @test_count, align 4, !tbaa !5
  %6094 = add nsw i32 %6093, 1
  store i32 %6094, ptr @test_count, align 4, !tbaa !5
  %6095 = load ptr, ptr %127, align 8, !tbaa !9
  %6096 = load ptr, ptr %124, align 8, !tbaa !9
  %6097 = call i32 @s2n_connections_set_io_pair(ptr noundef %6095, ptr noundef %6096, ptr noundef %130)
  %6098 = icmp eq i32 %6097, -1
  br i1 %6098, label %6099, label %6152

6099:                                             ; preds = %6092
  br label %6100

6100:                                             ; preds = %6099
  br label %6101

6101:                                             ; preds = %6100
  call void @llvm.lifetime.start.p0(i64 4, ptr %132) #11
  %6102 = call ptr @__errno_location() #12
  %6103 = load i32, ptr %6102, align 4, !tbaa !5
  store i32 %6103, ptr %132, align 4, !tbaa !5
  %6104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6105 = call i32 @s2n_print_stacktrace(ptr noundef %6104)
  %6106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6107 = trunc i8 %6106 to i1
  br i1 %6107, label %6108, label %6130

6108:                                             ; preds = %6101
  %6109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6110 = call i32 @fileno(ptr noundef %6109) #11
  %6111 = call i32 @isatty(i32 noundef %6110) #11
  %6112 = icmp ne i32 %6111, 0
  br i1 %6112, label %6113, label %6130

6113:                                             ; preds = %6108
  %6114 = load i32, ptr %132, align 4, !tbaa !5
  %6115 = call ptr @__errno_location() #12
  store i32 %6114, ptr %6115, align 4, !tbaa !5
  %6116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6117 = load i32, ptr @test_count, align 4, !tbaa !5
  %6118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6119 = load i32, ptr %6118, align 4, !tbaa !5
  %6120 = call ptr @s2n_strerror(i32 noundef %6119, ptr noundef @.str.4)
  %6121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6122 = load i32, ptr %6121, align 4, !tbaa !5
  %6123 = call ptr @s2n_strerror_debug(i32 noundef %6122, ptr noundef @.str.4)
  %6124 = call ptr @__errno_location() #12
  %6125 = load i32, ptr %6124, align 4, !tbaa !5
  %6126 = call ptr @strerror(i32 noundef %6125) #11
  %6127 = call ptr @__errno_location() #12
  %6128 = load i32, ptr %6127, align 4, !tbaa !5
  %6129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6116, ptr noundef @.str.2, i32 noundef %6117, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 277, ptr noundef %6120, ptr noundef %6123, ptr noundef %6126, i32 noundef %6128) #11
  br label %6147

6130:                                             ; preds = %6108, %6101
  %6131 = load i32, ptr %132, align 4, !tbaa !5
  %6132 = call ptr @__errno_location() #12
  store i32 %6131, ptr %6132, align 4, !tbaa !5
  %6133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6134 = load i32, ptr @test_count, align 4, !tbaa !5
  %6135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6136 = load i32, ptr %6135, align 4, !tbaa !5
  %6137 = call ptr @s2n_strerror(i32 noundef %6136, ptr noundef @.str.4)
  %6138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6139 = load i32, ptr %6138, align 4, !tbaa !5
  %6140 = call ptr @s2n_strerror_debug(i32 noundef %6139, ptr noundef @.str.4)
  %6141 = call ptr @__errno_location() #12
  %6142 = load i32, ptr %6141, align 4, !tbaa !5
  %6143 = call ptr @strerror(i32 noundef %6142) #11
  %6144 = call ptr @__errno_location() #12
  %6145 = load i32, ptr %6144, align 4, !tbaa !5
  %6146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6133, ptr noundef @.str.5, i32 noundef %6134, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 277, ptr noundef %6137, ptr noundef %6140, ptr noundef %6143, i32 noundef %6145) #11
  br label %6147

6147:                                             ; preds = %6130, %6113
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #11
  br label %6148

6148:                                             ; preds = %6147
  br label %6149

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

6150:                                             ; No predecessors!
  br label %6151

6151:                                             ; preds = %6150
  br label %6152

6152:                                             ; preds = %6151, %6092
  br label %6153

6153:                                             ; preds = %6152
  br label %6154

6154:                                             ; preds = %6153
  %6155 = load ptr, ptr %127, align 8, !tbaa !9
  %6156 = getelementptr inbounds %struct.s2n_connection, ptr %6155, i32 0, i32 2
  store ptr @security_policy_test_tls13_retry, ptr %6156, align 8, !tbaa !58
  br label %6157

6157:                                             ; preds = %6154
  %6158 = load i32, ptr @test_count, align 4, !tbaa !5
  %6159 = add nsw i32 %6158, 1
  store i32 %6159, ptr @test_count, align 4, !tbaa !5
  %6160 = load i64, ptr %123, align 8, !tbaa !15
  %6161 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %6160
  %6162 = load ptr, ptr %124, align 8, !tbaa !9
  %6163 = getelementptr inbounds %struct.s2n_connection, ptr %6162, i32 0, i32 83
  %6164 = call i32 @s2n_dup(ptr noundef %6161, ptr noundef %6163)
  %6165 = icmp eq i32 %6164, -1
  br i1 %6165, label %6166, label %6219

6166:                                             ; preds = %6157
  br label %6167

6167:                                             ; preds = %6166
  br label %6168

6168:                                             ; preds = %6167
  call void @llvm.lifetime.start.p0(i64 4, ptr %133) #11
  %6169 = call ptr @__errno_location() #12
  %6170 = load i32, ptr %6169, align 4, !tbaa !5
  store i32 %6170, ptr %133, align 4, !tbaa !5
  %6171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6172 = call i32 @s2n_print_stacktrace(ptr noundef %6171)
  %6173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6174 = trunc i8 %6173 to i1
  br i1 %6174, label %6175, label %6197

6175:                                             ; preds = %6168
  %6176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6177 = call i32 @fileno(ptr noundef %6176) #11
  %6178 = call i32 @isatty(i32 noundef %6177) #11
  %6179 = icmp ne i32 %6178, 0
  br i1 %6179, label %6180, label %6197

6180:                                             ; preds = %6175
  %6181 = load i32, ptr %133, align 4, !tbaa !5
  %6182 = call ptr @__errno_location() #12
  store i32 %6181, ptr %6182, align 4, !tbaa !5
  %6183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6184 = load i32, ptr @test_count, align 4, !tbaa !5
  %6185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6186 = load i32, ptr %6185, align 4, !tbaa !5
  %6187 = call ptr @s2n_strerror(i32 noundef %6186, ptr noundef @.str.4)
  %6188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6189 = load i32, ptr %6188, align 4, !tbaa !5
  %6190 = call ptr @s2n_strerror_debug(i32 noundef %6189, ptr noundef @.str.4)
  %6191 = call ptr @__errno_location() #12
  %6192 = load i32, ptr %6191, align 4, !tbaa !5
  %6193 = call ptr @strerror(i32 noundef %6192) #11
  %6194 = call ptr @__errno_location() #12
  %6195 = load i32, ptr %6194, align 4, !tbaa !5
  %6196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6183, ptr noundef @.str.2, i32 noundef %6184, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 283, ptr noundef %6187, ptr noundef %6190, ptr noundef %6193, i32 noundef %6195) #11
  br label %6214

6197:                                             ; preds = %6175, %6168
  %6198 = load i32, ptr %133, align 4, !tbaa !5
  %6199 = call ptr @__errno_location() #12
  store i32 %6198, ptr %6199, align 4, !tbaa !5
  %6200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6201 = load i32, ptr @test_count, align 4, !tbaa !5
  %6202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6203 = load i32, ptr %6202, align 4, !tbaa !5
  %6204 = call ptr @s2n_strerror(i32 noundef %6203, ptr noundef @.str.4)
  %6205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6206 = load i32, ptr %6205, align 4, !tbaa !5
  %6207 = call ptr @s2n_strerror_debug(i32 noundef %6206, ptr noundef @.str.4)
  %6208 = call ptr @__errno_location() #12
  %6209 = load i32, ptr %6208, align 4, !tbaa !5
  %6210 = call ptr @strerror(i32 noundef %6209) #11
  %6211 = call ptr @__errno_location() #12
  %6212 = load i32, ptr %6211, align 4, !tbaa !5
  %6213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6200, ptr noundef @.str.5, i32 noundef %6201, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 283, ptr noundef %6204, ptr noundef %6207, ptr noundef %6210, i32 noundef %6212) #11
  br label %6214

6214:                                             ; preds = %6197, %6180
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #11
  br label %6215

6215:                                             ; preds = %6214
  br label %6216

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

6217:                                             ; No predecessors!
  br label %6218

6218:                                             ; preds = %6217
  br label %6219

6219:                                             ; preds = %6218, %6157
  br label %6220

6220:                                             ; preds = %6219
  br label %6221

6221:                                             ; preds = %6220
  br label %6222

6222:                                             ; preds = %6221
  %6223 = load i32, ptr @test_count, align 4, !tbaa !5
  %6224 = add nsw i32 %6223, 1
  store i32 %6224, ptr @test_count, align 4, !tbaa !5
  %6225 = load ptr, ptr %124, align 8, !tbaa !9
  %6226 = load ptr, ptr %127, align 8, !tbaa !9
  %6227 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %6225, ptr noundef %6226)
  %6228 = icmp eq i32 %6227, -1
  br i1 %6228, label %6229, label %6282

6229:                                             ; preds = %6222
  br label %6230

6230:                                             ; preds = %6229
  br label %6231

6231:                                             ; preds = %6230
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #11
  %6232 = call ptr @__errno_location() #12
  %6233 = load i32, ptr %6232, align 4, !tbaa !5
  store i32 %6233, ptr %134, align 4, !tbaa !5
  %6234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6235 = call i32 @s2n_print_stacktrace(ptr noundef %6234)
  %6236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6237 = trunc i8 %6236 to i1
  br i1 %6237, label %6238, label %6260

6238:                                             ; preds = %6231
  %6239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6240 = call i32 @fileno(ptr noundef %6239) #11
  %6241 = call i32 @isatty(i32 noundef %6240) #11
  %6242 = icmp ne i32 %6241, 0
  br i1 %6242, label %6243, label %6260

6243:                                             ; preds = %6238
  %6244 = load i32, ptr %134, align 4, !tbaa !5
  %6245 = call ptr @__errno_location() #12
  store i32 %6244, ptr %6245, align 4, !tbaa !5
  %6246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6247 = load i32, ptr @test_count, align 4, !tbaa !5
  %6248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6249 = load i32, ptr %6248, align 4, !tbaa !5
  %6250 = call ptr @s2n_strerror(i32 noundef %6249, ptr noundef @.str.4)
  %6251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6252 = load i32, ptr %6251, align 4, !tbaa !5
  %6253 = call ptr @s2n_strerror_debug(i32 noundef %6252, ptr noundef @.str.4)
  %6254 = call ptr @__errno_location() #12
  %6255 = load i32, ptr %6254, align 4, !tbaa !5
  %6256 = call ptr @strerror(i32 noundef %6255) #11
  %6257 = call ptr @__errno_location() #12
  %6258 = load i32, ptr %6257, align 4, !tbaa !5
  %6259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6246, ptr noundef @.str.2, i32 noundef %6247, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 286, ptr noundef %6250, ptr noundef %6253, ptr noundef %6256, i32 noundef %6258) #11
  br label %6277

6260:                                             ; preds = %6238, %6231
  %6261 = load i32, ptr %134, align 4, !tbaa !5
  %6262 = call ptr @__errno_location() #12
  store i32 %6261, ptr %6262, align 4, !tbaa !5
  %6263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6264 = load i32, ptr @test_count, align 4, !tbaa !5
  %6265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6266 = load i32, ptr %6265, align 4, !tbaa !5
  %6267 = call ptr @s2n_strerror(i32 noundef %6266, ptr noundef @.str.4)
  %6268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6269 = load i32, ptr %6268, align 4, !tbaa !5
  %6270 = call ptr @s2n_strerror_debug(i32 noundef %6269, ptr noundef @.str.4)
  %6271 = call ptr @__errno_location() #12
  %6272 = load i32, ptr %6271, align 4, !tbaa !5
  %6273 = call ptr @strerror(i32 noundef %6272) #11
  %6274 = call ptr @__errno_location() #12
  %6275 = load i32, ptr %6274, align 4, !tbaa !5
  %6276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6263, ptr noundef @.str.5, i32 noundef %6264, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 286, ptr noundef %6267, ptr noundef %6270, ptr noundef %6273, i32 noundef %6275) #11
  br label %6277

6277:                                             ; preds = %6260, %6243
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #11
  br label %6278

6278:                                             ; preds = %6277
  br label %6279

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

6280:                                             ; No predecessors!
  br label %6281

6281:                                             ; preds = %6280
  br label %6282

6282:                                             ; preds = %6281, %6222
  br label %6283

6283:                                             ; preds = %6282
  br label %6284

6284:                                             ; preds = %6283
  br label %6285

6285:                                             ; preds = %6284
  %6286 = load i32, ptr @test_count, align 4, !tbaa !5
  %6287 = add nsw i32 %6286, 1
  store i32 %6287, ptr @test_count, align 4, !tbaa !5
  %6288 = load ptr, ptr %124, align 8, !tbaa !9
  %6289 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %6288, i32 noundef 16)
  br i1 %6289, label %6343, label %6290

6290:                                             ; preds = %6285
  br label %6291

6291:                                             ; preds = %6290
  br label %6292

6292:                                             ; preds = %6291
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #11
  %6293 = call ptr @__errno_location() #12
  %6294 = load i32, ptr %6293, align 4, !tbaa !5
  store i32 %6294, ptr %135, align 4, !tbaa !5
  %6295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6296 = call i32 @s2n_print_stacktrace(ptr noundef %6295)
  %6297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6298 = trunc i8 %6297 to i1
  br i1 %6298, label %6299, label %6321

6299:                                             ; preds = %6292
  %6300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6301 = call i32 @fileno(ptr noundef %6300) #11
  %6302 = call i32 @isatty(i32 noundef %6301) #11
  %6303 = icmp ne i32 %6302, 0
  br i1 %6303, label %6304, label %6321

6304:                                             ; preds = %6299
  %6305 = load i32, ptr %135, align 4, !tbaa !5
  %6306 = call ptr @__errno_location() #12
  store i32 %6305, ptr %6306, align 4, !tbaa !5
  %6307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6308 = load i32, ptr @test_count, align 4, !tbaa !5
  %6309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6310 = load i32, ptr %6309, align 4, !tbaa !5
  %6311 = call ptr @s2n_strerror(i32 noundef %6310, ptr noundef @.str.4)
  %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 = call ptr @__errno_location() #12
  %6316 = load i32, ptr %6315, align 4, !tbaa !5
  %6317 = call ptr @strerror(i32 noundef %6316) #11
  %6318 = call ptr @__errno_location() #12
  %6319 = load i32, ptr %6318, align 4, !tbaa !5
  %6320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6307, ptr noundef @.str.2, i32 noundef %6308, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 289, ptr noundef %6311, ptr noundef %6314, ptr noundef %6317, i32 noundef %6319) #11
  br label %6338

6321:                                             ; preds = %6299, %6292
  %6322 = load i32, ptr %135, align 4, !tbaa !5
  %6323 = call ptr @__errno_location() #12
  store i32 %6322, ptr %6323, align 4, !tbaa !5
  %6324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6325 = load i32, ptr @test_count, align 4, !tbaa !5
  %6326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6327 = load i32, ptr %6326, align 4, !tbaa !5
  %6328 = call ptr @s2n_strerror(i32 noundef %6327, ptr noundef @.str.4)
  %6329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6330 = load i32, ptr %6329, align 4, !tbaa !5
  %6331 = call ptr @s2n_strerror_debug(i32 noundef %6330, ptr noundef @.str.4)
  %6332 = call ptr @__errno_location() #12
  %6333 = load i32, ptr %6332, align 4, !tbaa !5
  %6334 = call ptr @strerror(i32 noundef %6333) #11
  %6335 = call ptr @__errno_location() #12
  %6336 = load i32, ptr %6335, align 4, !tbaa !5
  %6337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6324, ptr noundef @.str.5, i32 noundef %6325, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 289, ptr noundef %6328, ptr noundef %6331, ptr noundef %6334, i32 noundef %6336) #11
  br label %6338

6338:                                             ; preds = %6321, %6304
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #11
  br label %6339

6339:                                             ; preds = %6338
  br label %6340

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

6341:                                             ; No predecessors!
  br label %6342

6342:                                             ; preds = %6341
  br label %6343

6343:                                             ; preds = %6342, %6285
  br label %6344

6344:                                             ; preds = %6343
  br label %6345

6345:                                             ; preds = %6344
  br label %6346

6346:                                             ; preds = %6345
  %6347 = load i32, ptr @test_count, align 4, !tbaa !5
  %6348 = add nsw i32 %6347, 1
  store i32 %6348, ptr @test_count, align 4, !tbaa !5
  %6349 = load ptr, ptr %127, align 8, !tbaa !9
  %6350 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %6349, i32 noundef 16)
  br i1 %6350, label %6404, label %6351

6351:                                             ; preds = %6346
  br label %6352

6352:                                             ; preds = %6351
  br label %6353

6353:                                             ; preds = %6352
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #11
  %6354 = call ptr @__errno_location() #12
  %6355 = load i32, ptr %6354, align 4, !tbaa !5
  store i32 %6355, ptr %136, align 4, !tbaa !5
  %6356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6357 = call i32 @s2n_print_stacktrace(ptr noundef %6356)
  %6358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6359 = trunc i8 %6358 to i1
  br i1 %6359, label %6360, label %6382

6360:                                             ; preds = %6353
  %6361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6362 = call i32 @fileno(ptr noundef %6361) #11
  %6363 = call i32 @isatty(i32 noundef %6362) #11
  %6364 = icmp ne i32 %6363, 0
  br i1 %6364, label %6365, label %6382

6365:                                             ; preds = %6360
  %6366 = load i32, ptr %136, align 4, !tbaa !5
  %6367 = call ptr @__errno_location() #12
  store i32 %6366, ptr %6367, align 4, !tbaa !5
  %6368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6369 = load i32, ptr @test_count, align 4, !tbaa !5
  %6370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6371 = load i32, ptr %6370, align 4, !tbaa !5
  %6372 = call ptr @s2n_strerror(i32 noundef %6371, ptr noundef @.str.4)
  %6373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6374 = load i32, ptr %6373, align 4, !tbaa !5
  %6375 = call ptr @s2n_strerror_debug(i32 noundef %6374, ptr noundef @.str.4)
  %6376 = call ptr @__errno_location() #12
  %6377 = load i32, ptr %6376, align 4, !tbaa !5
  %6378 = call ptr @strerror(i32 noundef %6377) #11
  %6379 = call ptr @__errno_location() #12
  %6380 = load i32, ptr %6379, align 4, !tbaa !5
  %6381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6368, ptr noundef @.str.2, i32 noundef %6369, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 290, ptr noundef %6372, ptr noundef %6375, ptr noundef %6378, i32 noundef %6380) #11
  br label %6399

6382:                                             ; preds = %6360, %6353
  %6383 = load i32, ptr %136, align 4, !tbaa !5
  %6384 = call ptr @__errno_location() #12
  store i32 %6383, ptr %6384, align 4, !tbaa !5
  %6385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6386 = load i32, ptr @test_count, align 4, !tbaa !5
  %6387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6388 = load i32, ptr %6387, align 4, !tbaa !5
  %6389 = call ptr @s2n_strerror(i32 noundef %6388, ptr noundef @.str.4)
  %6390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6391 = load i32, ptr %6390, align 4, !tbaa !5
  %6392 = call ptr @s2n_strerror_debug(i32 noundef %6391, ptr noundef @.str.4)
  %6393 = call ptr @__errno_location() #12
  %6394 = load i32, ptr %6393, align 4, !tbaa !5
  %6395 = call ptr @strerror(i32 noundef %6394) #11
  %6396 = call ptr @__errno_location() #12
  %6397 = load i32, ptr %6396, align 4, !tbaa !5
  %6398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6385, ptr noundef @.str.5, i32 noundef %6386, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 290, ptr noundef %6389, ptr noundef %6392, ptr noundef %6395, i32 noundef %6397) #11
  br label %6399

6399:                                             ; preds = %6382, %6365
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #11
  br label %6400

6400:                                             ; preds = %6399
  br label %6401

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

6402:                                             ; No predecessors!
  br label %6403

6403:                                             ; preds = %6402
  br label %6404

6404:                                             ; preds = %6403, %6346
  br label %6405

6405:                                             ; preds = %6404
  br label %6406

6406:                                             ; preds = %6405
  br label %6407

6407:                                             ; preds = %6406
  br label %6408

6408:                                             ; preds = %6407
  %6409 = load i32, ptr @test_count, align 4, !tbaa !5
  %6410 = add nsw i32 %6409, 1
  store i32 %6410, ptr @test_count, align 4, !tbaa !5
  %6411 = load i64, ptr %123, align 8, !tbaa !15
  %6412 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %6411
  %6413 = getelementptr inbounds %struct.s2n_blob, ptr %6412, i32 0, i32 1
  %6414 = load i32, ptr %6413, align 8, !tbaa !50
  %6415 = load ptr, ptr %127, align 8, !tbaa !9
  %6416 = getelementptr inbounds %struct.s2n_connection, ptr %6415, i32 0, i32 83
  %6417 = getelementptr inbounds %struct.s2n_blob, ptr %6416, i32 0, i32 1
  %6418 = load i32, ptr %6417, align 8, !tbaa !51
  %6419 = icmp eq i32 %6414, %6418
  br i1 %6419, label %6473, label %6420

6420:                                             ; preds = %6408
  br label %6421

6421:                                             ; preds = %6420
  br label %6422

6422:                                             ; preds = %6421
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #11
  %6423 = call ptr @__errno_location() #12
  %6424 = load i32, ptr %6423, align 4, !tbaa !5
  store i32 %6424, ptr %137, align 4, !tbaa !5
  %6425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6426 = call i32 @s2n_print_stacktrace(ptr noundef %6425)
  %6427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6428 = trunc i8 %6427 to i1
  br i1 %6428, label %6429, label %6451

6429:                                             ; preds = %6422
  %6430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6431 = call i32 @fileno(ptr noundef %6430) #11
  %6432 = call i32 @isatty(i32 noundef %6431) #11
  %6433 = icmp ne i32 %6432, 0
  br i1 %6433, label %6434, label %6451

6434:                                             ; preds = %6429
  %6435 = load i32, ptr %137, align 4, !tbaa !5
  %6436 = call ptr @__errno_location() #12
  store i32 %6435, ptr %6436, align 4, !tbaa !5
  %6437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6438 = load i32, ptr @test_count, align 4, !tbaa !5
  %6439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6440 = load i32, ptr %6439, align 4, !tbaa !5
  %6441 = call ptr @s2n_strerror(i32 noundef %6440, ptr noundef @.str.4)
  %6442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6443 = load i32, ptr %6442, align 4, !tbaa !5
  %6444 = call ptr @s2n_strerror_debug(i32 noundef %6443, ptr noundef @.str.4)
  %6445 = call ptr @__errno_location() #12
  %6446 = load i32, ptr %6445, align 4, !tbaa !5
  %6447 = call ptr @strerror(i32 noundef %6446) #11
  %6448 = call ptr @__errno_location() #12
  %6449 = load i32, ptr %6448, align 4, !tbaa !5
  %6450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6437, ptr noundef @.str.2, i32 noundef %6438, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 293, ptr noundef %6441, ptr noundef %6444, ptr noundef %6447, i32 noundef %6449) #11
  br label %6468

6451:                                             ; preds = %6429, %6422
  %6452 = load i32, ptr %137, align 4, !tbaa !5
  %6453 = call ptr @__errno_location() #12
  store i32 %6452, ptr %6453, align 4, !tbaa !5
  %6454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6455 = load i32, ptr @test_count, align 4, !tbaa !5
  %6456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6457 = load i32, ptr %6456, align 4, !tbaa !5
  %6458 = call ptr @s2n_strerror(i32 noundef %6457, ptr noundef @.str.4)
  %6459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6460 = load i32, ptr %6459, align 4, !tbaa !5
  %6461 = call ptr @s2n_strerror_debug(i32 noundef %6460, ptr noundef @.str.4)
  %6462 = call ptr @__errno_location() #12
  %6463 = load i32, ptr %6462, align 4, !tbaa !5
  %6464 = call ptr @strerror(i32 noundef %6463) #11
  %6465 = call ptr @__errno_location() #12
  %6466 = load i32, ptr %6465, align 4, !tbaa !5
  %6467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6454, ptr noundef @.str.5, i32 noundef %6455, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 293, ptr noundef %6458, ptr noundef %6461, ptr noundef %6464, i32 noundef %6466) #11
  br label %6468

6468:                                             ; preds = %6451, %6434
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #11
  br label %6469

6469:                                             ; preds = %6468
  br label %6470

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

6471:                                             ; No predecessors!
  br label %6472

6472:                                             ; preds = %6471
  br label %6473

6473:                                             ; preds = %6472, %6408
  br label %6474

6474:                                             ; preds = %6473
  br label %6475

6475:                                             ; preds = %6474
  br label %6476

6476:                                             ; preds = %6475
  %6477 = load i64, ptr %123, align 8, !tbaa !15
  %6478 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %6477
  %6479 = getelementptr inbounds %struct.s2n_blob, ptr %6478, i32 0, i32 1
  %6480 = load i32, ptr %6479, align 8, !tbaa !50
  %6481 = icmp ne i32 %6480, 0
  br i1 %6481, label %6482, label %6557

6482:                                             ; preds = %6476
  br label %6483

6483:                                             ; preds = %6482
  %6484 = load i32, ptr @test_count, align 4, !tbaa !5
  %6485 = add nsw i32 %6484, 1
  store i32 %6485, ptr @test_count, align 4, !tbaa !5
  %6486 = load i64, ptr %123, align 8, !tbaa !15
  %6487 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %6486
  %6488 = getelementptr inbounds %struct.s2n_blob, ptr %6487, i32 0, i32 0
  %6489 = load ptr, ptr %6488, align 8, !tbaa !52
  %6490 = load ptr, ptr %127, align 8, !tbaa !9
  %6491 = getelementptr inbounds %struct.s2n_connection, ptr %6490, i32 0, i32 83
  %6492 = getelementptr inbounds %struct.s2n_blob, ptr %6491, i32 0, i32 0
  %6493 = load ptr, ptr %6492, align 8, !tbaa !53
  %6494 = load i64, ptr %123, align 8, !tbaa !15
  %6495 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %6494
  %6496 = getelementptr inbounds %struct.s2n_blob, ptr %6495, i32 0, i32 1
  %6497 = load i32, ptr %6496, align 8, !tbaa !50
  %6498 = zext i32 %6497 to i64
  %6499 = call i32 @memcmp(ptr noundef %6489, ptr noundef %6493, i64 noundef %6498) #14
  %6500 = icmp eq i32 %6499, 0
  br i1 %6500, label %6554, label %6501

6501:                                             ; preds = %6483
  br label %6502

6502:                                             ; preds = %6501
  br label %6503

6503:                                             ; preds = %6502
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #11
  %6504 = call ptr @__errno_location() #12
  %6505 = load i32, ptr %6504, align 4, !tbaa !5
  store i32 %6505, ptr %138, align 4, !tbaa !5
  %6506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6507 = call i32 @s2n_print_stacktrace(ptr noundef %6506)
  %6508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6509 = trunc i8 %6508 to i1
  br i1 %6509, label %6510, label %6532

6510:                                             ; preds = %6503
  %6511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6512 = call i32 @fileno(ptr noundef %6511) #11
  %6513 = call i32 @isatty(i32 noundef %6512) #11
  %6514 = icmp ne i32 %6513, 0
  br i1 %6514, label %6515, label %6532

6515:                                             ; preds = %6510
  %6516 = load i32, ptr %138, align 4, !tbaa !5
  %6517 = call ptr @__errno_location() #12
  store i32 %6516, ptr %6517, align 4, !tbaa !5
  %6518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6519 = load i32, ptr @test_count, align 4, !tbaa !5
  %6520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6521 = load i32, ptr %6520, align 4, !tbaa !5
  %6522 = call ptr @s2n_strerror(i32 noundef %6521, ptr noundef @.str.4)
  %6523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6524 = load i32, ptr %6523, align 4, !tbaa !5
  %6525 = call ptr @s2n_strerror_debug(i32 noundef %6524, ptr noundef @.str.4)
  %6526 = call ptr @__errno_location() #12
  %6527 = load i32, ptr %6526, align 4, !tbaa !5
  %6528 = call ptr @strerror(i32 noundef %6527) #11
  %6529 = call ptr @__errno_location() #12
  %6530 = load i32, ptr %6529, align 4, !tbaa !5
  %6531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6518, ptr noundef @.str.2, i32 noundef %6519, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 293, ptr noundef %6522, ptr noundef %6525, ptr noundef %6528, i32 noundef %6530) #11
  br label %6549

6532:                                             ; preds = %6510, %6503
  %6533 = load i32, ptr %138, align 4, !tbaa !5
  %6534 = call ptr @__errno_location() #12
  store i32 %6533, ptr %6534, align 4, !tbaa !5
  %6535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6536 = load i32, ptr @test_count, align 4, !tbaa !5
  %6537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6538 = load i32, ptr %6537, align 4, !tbaa !5
  %6539 = call ptr @s2n_strerror(i32 noundef %6538, ptr noundef @.str.4)
  %6540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6541 = load i32, ptr %6540, align 4, !tbaa !5
  %6542 = call ptr @s2n_strerror_debug(i32 noundef %6541, ptr noundef @.str.4)
  %6543 = call ptr @__errno_location() #12
  %6544 = load i32, ptr %6543, align 4, !tbaa !5
  %6545 = call ptr @strerror(i32 noundef %6544) #11
  %6546 = call ptr @__errno_location() #12
  %6547 = load i32, ptr %6546, align 4, !tbaa !5
  %6548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6535, ptr noundef @.str.5, i32 noundef %6536, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 293, ptr noundef %6539, ptr noundef %6542, ptr noundef %6545, i32 noundef %6547) #11
  br label %6549

6549:                                             ; preds = %6532, %6515
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  br label %6550

6550:                                             ; preds = %6549
  br label %6551

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

6552:                                             ; No predecessors!
  br label %6553

6553:                                             ; preds = %6552
  br label %6554

6554:                                             ; preds = %6553, %6483
  br label %6555

6555:                                             ; preds = %6554
  br label %6556

6556:                                             ; preds = %6555
  br label %6557

6557:                                             ; preds = %6556, %6476
  br label %6558

6558:                                             ; preds = %6557
  br label %6559

6559:                                             ; preds = %6558
  br label %6560

6560:                                             ; preds = %6559
  br label %6561

6561:                                             ; preds = %6560
  br label %6562

6562:                                             ; preds = %6561
  br label %6563

6563:                                             ; preds = %6562
  %6564 = load i32, ptr @test_count, align 4, !tbaa !5
  %6565 = add nsw i32 %6564, 1
  store i32 %6565, ptr @test_count, align 4, !tbaa !5
  %6566 = load i64, ptr %123, align 8, !tbaa !15
  %6567 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %6566
  %6568 = getelementptr inbounds %struct.s2n_blob, ptr %6567, i32 0, i32 1
  %6569 = load i32, ptr %6568, align 8, !tbaa !50
  %6570 = load ptr, ptr %124, align 8, !tbaa !9
  %6571 = getelementptr inbounds %struct.s2n_connection, ptr %6570, i32 0, i32 83
  %6572 = getelementptr inbounds %struct.s2n_blob, ptr %6571, i32 0, i32 1
  %6573 = load i32, ptr %6572, align 8, !tbaa !51
  %6574 = icmp eq i32 %6569, %6573
  br i1 %6574, label %6628, label %6575

6575:                                             ; preds = %6563
  br label %6576

6576:                                             ; preds = %6575
  br label %6577

6577:                                             ; preds = %6576
  call void @llvm.lifetime.start.p0(i64 4, ptr %139) #11
  %6578 = call ptr @__errno_location() #12
  %6579 = load i32, ptr %6578, align 4, !tbaa !5
  store i32 %6579, ptr %139, align 4, !tbaa !5
  %6580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6581 = call i32 @s2n_print_stacktrace(ptr noundef %6580)
  %6582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6583 = trunc i8 %6582 to i1
  br i1 %6583, label %6584, label %6606

6584:                                             ; preds = %6577
  %6585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6586 = call i32 @fileno(ptr noundef %6585) #11
  %6587 = call i32 @isatty(i32 noundef %6586) #11
  %6588 = icmp ne i32 %6587, 0
  br i1 %6588, label %6589, label %6606

6589:                                             ; preds = %6584
  %6590 = load i32, ptr %139, align 4, !tbaa !5
  %6591 = call ptr @__errno_location() #12
  store i32 %6590, ptr %6591, align 4, !tbaa !5
  %6592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6593 = load i32, ptr @test_count, align 4, !tbaa !5
  %6594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6595 = load i32, ptr %6594, align 4, !tbaa !5
  %6596 = call ptr @s2n_strerror(i32 noundef %6595, ptr noundef @.str.4)
  %6597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6598 = load i32, ptr %6597, align 4, !tbaa !5
  %6599 = call ptr @s2n_strerror_debug(i32 noundef %6598, ptr noundef @.str.4)
  %6600 = call ptr @__errno_location() #12
  %6601 = load i32, ptr %6600, align 4, !tbaa !5
  %6602 = call ptr @strerror(i32 noundef %6601) #11
  %6603 = call ptr @__errno_location() #12
  %6604 = load i32, ptr %6603, align 4, !tbaa !5
  %6605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6592, ptr noundef @.str.2, i32 noundef %6593, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 294, ptr noundef %6596, ptr noundef %6599, ptr noundef %6602, i32 noundef %6604) #11
  br label %6623

6606:                                             ; preds = %6584, %6577
  %6607 = load i32, ptr %139, align 4, !tbaa !5
  %6608 = call ptr @__errno_location() #12
  store i32 %6607, ptr %6608, align 4, !tbaa !5
  %6609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6610 = load i32, ptr @test_count, align 4, !tbaa !5
  %6611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6612 = load i32, ptr %6611, align 4, !tbaa !5
  %6613 = call ptr @s2n_strerror(i32 noundef %6612, ptr noundef @.str.4)
  %6614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6615 = load i32, ptr %6614, align 4, !tbaa !5
  %6616 = call ptr @s2n_strerror_debug(i32 noundef %6615, ptr noundef @.str.4)
  %6617 = call ptr @__errno_location() #12
  %6618 = load i32, ptr %6617, align 4, !tbaa !5
  %6619 = call ptr @strerror(i32 noundef %6618) #11
  %6620 = call ptr @__errno_location() #12
  %6621 = load i32, ptr %6620, align 4, !tbaa !5
  %6622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6609, ptr noundef @.str.5, i32 noundef %6610, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 294, ptr noundef %6613, ptr noundef %6616, ptr noundef %6619, i32 noundef %6621) #11
  br label %6623

6623:                                             ; preds = %6606, %6589
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #11
  br label %6624

6624:                                             ; preds = %6623
  br label %6625

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

6626:                                             ; No predecessors!
  br label %6627

6627:                                             ; preds = %6626
  br label %6628

6628:                                             ; preds = %6627, %6563
  br label %6629

6629:                                             ; preds = %6628
  br label %6630

6630:                                             ; preds = %6629
  br label %6631

6631:                                             ; preds = %6630
  %6632 = load i64, ptr %123, align 8, !tbaa !15
  %6633 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %6632
  %6634 = getelementptr inbounds %struct.s2n_blob, ptr %6633, i32 0, i32 1
  %6635 = load i32, ptr %6634, align 8, !tbaa !50
  %6636 = icmp ne i32 %6635, 0
  br i1 %6636, label %6637, label %6712

6637:                                             ; preds = %6631
  br label %6638

6638:                                             ; preds = %6637
  %6639 = load i32, ptr @test_count, align 4, !tbaa !5
  %6640 = add nsw i32 %6639, 1
  store i32 %6640, ptr @test_count, align 4, !tbaa !5
  %6641 = load i64, ptr %123, align 8, !tbaa !15
  %6642 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %6641
  %6643 = getelementptr inbounds %struct.s2n_blob, ptr %6642, i32 0, i32 0
  %6644 = load ptr, ptr %6643, align 8, !tbaa !52
  %6645 = load ptr, ptr %124, align 8, !tbaa !9
  %6646 = getelementptr inbounds %struct.s2n_connection, ptr %6645, i32 0, i32 83
  %6647 = getelementptr inbounds %struct.s2n_blob, ptr %6646, i32 0, i32 0
  %6648 = load ptr, ptr %6647, align 8, !tbaa !53
  %6649 = load i64, ptr %123, align 8, !tbaa !15
  %6650 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %6649
  %6651 = getelementptr inbounds %struct.s2n_blob, ptr %6650, i32 0, i32 1
  %6652 = load i32, ptr %6651, align 8, !tbaa !50
  %6653 = zext i32 %6652 to i64
  %6654 = call i32 @memcmp(ptr noundef %6644, ptr noundef %6648, i64 noundef %6653) #14
  %6655 = icmp eq i32 %6654, 0
  br i1 %6655, label %6709, label %6656

6656:                                             ; preds = %6638
  br label %6657

6657:                                             ; preds = %6656
  br label %6658

6658:                                             ; preds = %6657
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #11
  %6659 = call ptr @__errno_location() #12
  %6660 = load i32, ptr %6659, align 4, !tbaa !5
  store i32 %6660, ptr %140, align 4, !tbaa !5
  %6661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6662 = call i32 @s2n_print_stacktrace(ptr noundef %6661)
  %6663 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6664 = trunc i8 %6663 to i1
  br i1 %6664, label %6665, label %6687

6665:                                             ; preds = %6658
  %6666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6667 = call i32 @fileno(ptr noundef %6666) #11
  %6668 = call i32 @isatty(i32 noundef %6667) #11
  %6669 = icmp ne i32 %6668, 0
  br i1 %6669, label %6670, label %6687

6670:                                             ; preds = %6665
  %6671 = load i32, ptr %140, align 4, !tbaa !5
  %6672 = call ptr @__errno_location() #12
  store i32 %6671, ptr %6672, align 4, !tbaa !5
  %6673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6674 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6676, ptr noundef @.str.4)
  %6678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6679 = load i32, ptr %6678, align 4, !tbaa !5
  %6680 = call ptr @s2n_strerror_debug(i32 noundef %6679, ptr noundef @.str.4)
  %6681 = call ptr @__errno_location() #12
  %6682 = load i32, ptr %6681, align 4, !tbaa !5
  %6683 = call ptr @strerror(i32 noundef %6682) #11
  %6684 = call ptr @__errno_location() #12
  %6685 = load i32, ptr %6684, align 4, !tbaa !5
  %6686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6673, ptr noundef @.str.2, i32 noundef %6674, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 294, ptr noundef %6677, ptr noundef %6680, ptr noundef %6683, i32 noundef %6685) #11
  br label %6704

6687:                                             ; preds = %6665, %6658
  %6688 = load i32, ptr %140, align 4, !tbaa !5
  %6689 = call ptr @__errno_location() #12
  store i32 %6688, ptr %6689, align 4, !tbaa !5
  %6690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6691 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %6693, ptr noundef @.str.4)
  %6695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6696 = load i32, ptr %6695, align 4, !tbaa !5
  %6697 = call ptr @s2n_strerror_debug(i32 noundef %6696, ptr noundef @.str.4)
  %6698 = call ptr @__errno_location() #12
  %6699 = load i32, ptr %6698, align 4, !tbaa !5
  %6700 = call ptr @strerror(i32 noundef %6699) #11
  %6701 = call ptr @__errno_location() #12
  %6702 = load i32, ptr %6701, align 4, !tbaa !5
  %6703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6690, ptr noundef @.str.5, i32 noundef %6691, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 294, ptr noundef %6694, ptr noundef %6697, ptr noundef %6700, i32 noundef %6702) #11
  br label %6704

6704:                                             ; preds = %6687, %6670
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #11
  br label %6705

6705:                                             ; preds = %6704
  br label %6706

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

6707:                                             ; No predecessors!
  br label %6708

6708:                                             ; preds = %6707
  br label %6709

6709:                                             ; preds = %6708, %6638
  br label %6710

6710:                                             ; preds = %6709
  br label %6711

6711:                                             ; preds = %6710
  br label %6712

6712:                                             ; preds = %6711, %6631
  br label %6713

6713:                                             ; preds = %6712
  br label %6714

6714:                                             ; preds = %6713
  br label %6715

6715:                                             ; preds = %6714
  br label %6716

6716:                                             ; preds = %6715
  br label %6717

6717:                                             ; preds = %6716
  %6718 = load i32, ptr @test_count, align 4, !tbaa !5
  %6719 = add nsw i32 %6718, 1
  store i32 %6719, ptr @test_count, align 4, !tbaa !5
  %6720 = load ptr, ptr %124, align 8, !tbaa !9
  %6721 = load ptr, ptr %127, align 8, !tbaa !9
  %6722 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef %6720, ptr noundef %6721)
  %6723 = icmp eq i32 %6722, -1
  br i1 %6723, label %6724, label %6777

6724:                                             ; preds = %6717
  br label %6725

6725:                                             ; preds = %6724
  br label %6726

6726:                                             ; preds = %6725
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #11
  %6727 = call ptr @__errno_location() #12
  %6728 = load i32, ptr %6727, align 4, !tbaa !5
  store i32 %6728, ptr %141, align 4, !tbaa !5
  %6729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6730 = call i32 @s2n_print_stacktrace(ptr noundef %6729)
  %6731 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6732 = trunc i8 %6731 to i1
  br i1 %6732, label %6733, label %6755

6733:                                             ; preds = %6726
  %6734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6735 = call i32 @fileno(ptr noundef %6734) #11
  %6736 = call i32 @isatty(i32 noundef %6735) #11
  %6737 = icmp ne i32 %6736, 0
  br i1 %6737, label %6738, label %6755

6738:                                             ; preds = %6733
  %6739 = load i32, ptr %141, align 4, !tbaa !5
  %6740 = call ptr @__errno_location() #12
  store i32 %6739, ptr %6740, align 4, !tbaa !5
  %6741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6742 = load i32, ptr @test_count, align 4, !tbaa !5
  %6743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6744 = load i32, ptr %6743, align 4, !tbaa !5
  %6745 = call ptr @s2n_strerror(i32 noundef %6744, ptr noundef @.str.4)
  %6746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6747 = load i32, ptr %6746, align 4, !tbaa !5
  %6748 = call ptr @s2n_strerror_debug(i32 noundef %6747, ptr noundef @.str.4)
  %6749 = call ptr @__errno_location() #12
  %6750 = load i32, ptr %6749, align 4, !tbaa !5
  %6751 = call ptr @strerror(i32 noundef %6750) #11
  %6752 = call ptr @__errno_location() #12
  %6753 = load i32, ptr %6752, align 4, !tbaa !5
  %6754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6741, ptr noundef @.str.2, i32 noundef %6742, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 296, ptr noundef %6745, ptr noundef %6748, ptr noundef %6751, i32 noundef %6753) #11
  br label %6772

6755:                                             ; preds = %6733, %6726
  %6756 = load i32, ptr %141, align 4, !tbaa !5
  %6757 = call ptr @__errno_location() #12
  store i32 %6756, ptr %6757, align 4, !tbaa !5
  %6758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6759 = load i32, ptr @test_count, align 4, !tbaa !5
  %6760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6761 = load i32, ptr %6760, align 4, !tbaa !5
  %6762 = call ptr @s2n_strerror(i32 noundef %6761, ptr noundef @.str.4)
  %6763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6764 = load i32, ptr %6763, align 4, !tbaa !5
  %6765 = call ptr @s2n_strerror_debug(i32 noundef %6764, ptr noundef @.str.4)
  %6766 = call ptr @__errno_location() #12
  %6767 = load i32, ptr %6766, align 4, !tbaa !5
  %6768 = call ptr @strerror(i32 noundef %6767) #11
  %6769 = call ptr @__errno_location() #12
  %6770 = load i32, ptr %6769, align 4, !tbaa !5
  %6771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6758, ptr noundef @.str.5, i32 noundef %6759, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 296, ptr noundef %6762, ptr noundef %6765, ptr noundef %6768, i32 noundef %6770) #11
  br label %6772

6772:                                             ; preds = %6755, %6738
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #11
  br label %6773

6773:                                             ; preds = %6772
  br label %6774

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

6775:                                             ; No predecessors!
  br label %6776

6776:                                             ; preds = %6775
  br label %6777

6777:                                             ; preds = %6776, %6717
  br label %6778

6778:                                             ; preds = %6777
  br label %6779

6779:                                             ; preds = %6778
  br label %6780

6780:                                             ; preds = %6779
  %6781 = load i32, ptr @test_count, align 4, !tbaa !5
  %6782 = add nsw i32 %6781, 1
  store i32 %6782, ptr @test_count, align 4, !tbaa !5
  %6783 = call i32 @s2n_io_pair_close(ptr noundef %130)
  %6784 = icmp eq i32 %6783, -1
  br i1 %6784, label %6785, label %6838

6785:                                             ; preds = %6780
  br label %6786

6786:                                             ; preds = %6785
  br label %6787

6787:                                             ; preds = %6786
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #11
  %6788 = call ptr @__errno_location() #12
  %6789 = load i32, ptr %6788, align 4, !tbaa !5
  store i32 %6789, ptr %142, align 4, !tbaa !5
  %6790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6791 = call i32 @s2n_print_stacktrace(ptr noundef %6790)
  %6792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6793 = trunc i8 %6792 to i1
  br i1 %6793, label %6794, label %6816

6794:                                             ; preds = %6787
  %6795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6796 = call i32 @fileno(ptr noundef %6795) #11
  %6797 = call i32 @isatty(i32 noundef %6796) #11
  %6798 = icmp ne i32 %6797, 0
  br i1 %6798, label %6799, label %6816

6799:                                             ; preds = %6794
  %6800 = load i32, ptr %142, align 4, !tbaa !5
  %6801 = call ptr @__errno_location() #12
  store i32 %6800, ptr %6801, align 4, !tbaa !5
  %6802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6803 = load i32, ptr @test_count, align 4, !tbaa !5
  %6804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6805 = load i32, ptr %6804, align 4, !tbaa !5
  %6806 = call ptr @s2n_strerror(i32 noundef %6805, ptr noundef @.str.4)
  %6807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6808 = load i32, ptr %6807, align 4, !tbaa !5
  %6809 = call ptr @s2n_strerror_debug(i32 noundef %6808, ptr noundef @.str.4)
  %6810 = call ptr @__errno_location() #12
  %6811 = load i32, ptr %6810, align 4, !tbaa !5
  %6812 = call ptr @strerror(i32 noundef %6811) #11
  %6813 = call ptr @__errno_location() #12
  %6814 = load i32, ptr %6813, align 4, !tbaa !5
  %6815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6802, ptr noundef @.str.2, i32 noundef %6803, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 297, ptr noundef %6806, ptr noundef %6809, ptr noundef %6812, i32 noundef %6814) #11
  br label %6833

6816:                                             ; preds = %6794, %6787
  %6817 = load i32, ptr %142, align 4, !tbaa !5
  %6818 = call ptr @__errno_location() #12
  store i32 %6817, ptr %6818, align 4, !tbaa !5
  %6819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6820 = load i32, ptr @test_count, align 4, !tbaa !5
  %6821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6822 = load i32, ptr %6821, align 4, !tbaa !5
  %6823 = call ptr @s2n_strerror(i32 noundef %6822, ptr noundef @.str.4)
  %6824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6825 = load i32, ptr %6824, align 4, !tbaa !5
  %6826 = call ptr @s2n_strerror_debug(i32 noundef %6825, ptr noundef @.str.4)
  %6827 = call ptr @__errno_location() #12
  %6828 = load i32, ptr %6827, align 4, !tbaa !5
  %6829 = call ptr @strerror(i32 noundef %6828) #11
  %6830 = call ptr @__errno_location() #12
  %6831 = load i32, ptr %6830, align 4, !tbaa !5
  %6832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6819, ptr noundef @.str.5, i32 noundef %6820, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 297, ptr noundef %6823, ptr noundef %6826, ptr noundef %6829, i32 noundef %6831) #11
  br label %6833

6833:                                             ; preds = %6816, %6799
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #11
  br label %6834

6834:                                             ; preds = %6833
  br label %6835

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

6836:                                             ; No predecessors!
  br label %6837

6837:                                             ; preds = %6836
  br label %6838

6838:                                             ; preds = %6837, %6780
  br label %6839

6839:                                             ; preds = %6838
  br label %6840

6840:                                             ; preds = %6839
  call void @llvm.lifetime.end.p0(i64 8, ptr %130) #11
  %6841 = call i32 @s2n_connection_ptr_free(ptr noundef %127)
  %6842 = getelementptr inbounds %struct.s2n_result, ptr %143, i32 0, i32 0
  store i32 %6841, ptr %6842, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %127) #11
  %6843 = call i32 @s2n_connection_ptr_free(ptr noundef %124)
  %6844 = getelementptr inbounds %struct.s2n_result, ptr %144, i32 0, i32 0
  store i32 %6843, ptr %6844, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %124) #11
  br label %6845

6845:                                             ; preds = %6840
  %6846 = load i64, ptr %123, align 8, !tbaa !15
  %6847 = add i64 %6846, 1
  store i64 %6847, ptr %123, align 8, !tbaa !15
  br label %5776, !llvm.loop !59

6848:                                             ; preds = %5779
  call void @llvm.lifetime.start.p0(i64 8, ptr %145) #11
  %6849 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %6849, ptr %145, align 8, !tbaa !9
  br label %6850

6850:                                             ; preds = %6848
  %6851 = load i32, ptr @test_count, align 4, !tbaa !5
  %6852 = add nsw i32 %6851, 1
  store i32 %6852, ptr @test_count, align 4, !tbaa !5
  %6853 = load ptr, ptr %145, align 8, !tbaa !9
  %6854 = icmp eq ptr %6853, null
  br i1 %6854, label %6855, label %6908

6855:                                             ; preds = %6850
  br label %6856

6856:                                             ; preds = %6855
  br label %6857

6857:                                             ; preds = %6856
  call void @llvm.lifetime.start.p0(i64 4, ptr %146) #11
  %6858 = call ptr @__errno_location() #12
  %6859 = load i32, ptr %6858, align 4, !tbaa !5
  store i32 %6859, ptr %146, align 4, !tbaa !5
  %6860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6861 = call i32 @s2n_print_stacktrace(ptr noundef %6860)
  %6862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6863 = trunc i8 %6862 to i1
  br i1 %6863, label %6864, label %6886

6864:                                             ; preds = %6857
  %6865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6866 = call i32 @fileno(ptr noundef %6865) #11
  %6867 = call i32 @isatty(i32 noundef %6866) #11
  %6868 = icmp ne i32 %6867, 0
  br i1 %6868, label %6869, label %6886

6869:                                             ; preds = %6864
  %6870 = load i32, ptr %146, align 4, !tbaa !5
  %6871 = call ptr @__errno_location() #12
  store i32 %6870, ptr %6871, align 4, !tbaa !5
  %6872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6873 = load i32, ptr @test_count, align 4, !tbaa !5
  %6874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6875 = load i32, ptr %6874, align 4, !tbaa !5
  %6876 = call ptr @s2n_strerror(i32 noundef %6875, ptr noundef @.str.4)
  %6877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6878 = load i32, ptr %6877, align 4, !tbaa !5
  %6879 = call ptr @s2n_strerror_debug(i32 noundef %6878, ptr noundef @.str.4)
  %6880 = call ptr @__errno_location() #12
  %6881 = load i32, ptr %6880, align 4, !tbaa !5
  %6882 = call ptr @strerror(i32 noundef %6881) #11
  %6883 = call ptr @__errno_location() #12
  %6884 = load i32, ptr %6883, align 4, !tbaa !5
  %6885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6872, ptr noundef @.str.2, i32 noundef %6873, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 306, ptr noundef %6876, ptr noundef %6879, ptr noundef %6882, i32 noundef %6884) #11
  br label %6903

6886:                                             ; preds = %6864, %6857
  %6887 = load i32, ptr %146, align 4, !tbaa !5
  %6888 = call ptr @__errno_location() #12
  store i32 %6887, ptr %6888, align 4, !tbaa !5
  %6889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6890 = load i32, ptr @test_count, align 4, !tbaa !5
  %6891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6892 = load i32, ptr %6891, align 4, !tbaa !5
  %6893 = call ptr @s2n_strerror(i32 noundef %6892, ptr noundef @.str.4)
  %6894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6895 = load i32, ptr %6894, align 4, !tbaa !5
  %6896 = call ptr @s2n_strerror_debug(i32 noundef %6895, ptr noundef @.str.4)
  %6897 = call ptr @__errno_location() #12
  %6898 = load i32, ptr %6897, align 4, !tbaa !5
  %6899 = call ptr @strerror(i32 noundef %6898) #11
  %6900 = call ptr @__errno_location() #12
  %6901 = load i32, ptr %6900, align 4, !tbaa !5
  %6902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6889, ptr noundef @.str.5, i32 noundef %6890, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 306, ptr noundef %6893, ptr noundef %6896, ptr noundef %6899, i32 noundef %6901) #11
  br label %6903

6903:                                             ; preds = %6886, %6869
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #11
  br label %6904

6904:                                             ; preds = %6903
  br label %6905

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

6906:                                             ; No predecessors!
  br label %6907

6907:                                             ; preds = %6906
  br label %6908

6908:                                             ; preds = %6907, %6850
  br label %6909

6909:                                             ; preds = %6908
  br label %6910

6910:                                             ; preds = %6909
  br label %6911

6911:                                             ; preds = %6910
  %6912 = load i32, ptr @test_count, align 4, !tbaa !5
  %6913 = add nsw i32 %6912, 1
  store i32 %6913, ptr @test_count, align 4, !tbaa !5
  %6914 = load ptr, ptr %145, align 8, !tbaa !9
  %6915 = load ptr, ptr %69, align 8, !tbaa !9
  %6916 = call i32 @s2n_connection_set_config(ptr noundef %6914, ptr noundef %6915)
  %6917 = icmp eq i32 %6916, -1
  br i1 %6917, label %6918, label %6971

6918:                                             ; preds = %6911
  br label %6919

6919:                                             ; preds = %6918
  br label %6920

6920:                                             ; preds = %6919
  call void @llvm.lifetime.start.p0(i64 4, ptr %147) #11
  %6921 = call ptr @__errno_location() #12
  %6922 = load i32, ptr %6921, align 4, !tbaa !5
  store i32 %6922, ptr %147, align 4, !tbaa !5
  %6923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6924 = call i32 @s2n_print_stacktrace(ptr noundef %6923)
  %6925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6926 = trunc i8 %6925 to i1
  br i1 %6926, label %6927, label %6949

6927:                                             ; preds = %6920
  %6928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6929 = call i32 @fileno(ptr noundef %6928) #11
  %6930 = call i32 @isatty(i32 noundef %6929) #11
  %6931 = icmp ne i32 %6930, 0
  br i1 %6931, label %6932, label %6949

6932:                                             ; preds = %6927
  %6933 = load i32, ptr %147, align 4, !tbaa !5
  %6934 = call ptr @__errno_location() #12
  store i32 %6933, ptr %6934, align 4, !tbaa !5
  %6935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6936 = load i32, ptr @test_count, align 4, !tbaa !5
  %6937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6938 = load i32, ptr %6937, align 4, !tbaa !5
  %6939 = call ptr @s2n_strerror(i32 noundef %6938, ptr noundef @.str.4)
  %6940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6941 = load i32, ptr %6940, align 4, !tbaa !5
  %6942 = call ptr @s2n_strerror_debug(i32 noundef %6941, ptr noundef @.str.4)
  %6943 = call ptr @__errno_location() #12
  %6944 = load i32, ptr %6943, align 4, !tbaa !5
  %6945 = call ptr @strerror(i32 noundef %6944) #11
  %6946 = call ptr @__errno_location() #12
  %6947 = load i32, ptr %6946, align 4, !tbaa !5
  %6948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6935, ptr noundef @.str.2, i32 noundef %6936, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 307, ptr noundef %6939, ptr noundef %6942, ptr noundef %6945, i32 noundef %6947) #11
  br label %6966

6949:                                             ; preds = %6927, %6920
  %6950 = load i32, ptr %147, align 4, !tbaa !5
  %6951 = call ptr @__errno_location() #12
  store i32 %6950, ptr %6951, align 4, !tbaa !5
  %6952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6953 = load i32, ptr @test_count, align 4, !tbaa !5
  %6954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6955 = load i32, ptr %6954, align 4, !tbaa !5
  %6956 = call ptr @s2n_strerror(i32 noundef %6955, ptr noundef @.str.4)
  %6957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6958 = load i32, ptr %6957, align 4, !tbaa !5
  %6959 = call ptr @s2n_strerror_debug(i32 noundef %6958, ptr noundef @.str.4)
  %6960 = call ptr @__errno_location() #12
  %6961 = load i32, ptr %6960, align 4, !tbaa !5
  %6962 = call ptr @strerror(i32 noundef %6961) #11
  %6963 = call ptr @__errno_location() #12
  %6964 = load i32, ptr %6963, align 4, !tbaa !5
  %6965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6952, ptr noundef @.str.5, i32 noundef %6953, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 307, ptr noundef %6956, ptr noundef %6959, ptr noundef %6962, i32 noundef %6964) #11
  br label %6966

6966:                                             ; preds = %6949, %6932
  call void @llvm.lifetime.end.p0(i64 4, ptr %147) #11
  br label %6967

6967:                                             ; preds = %6966
  br label %6968

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

6969:                                             ; No predecessors!
  br label %6970

6970:                                             ; preds = %6969
  br label %6971

6971:                                             ; preds = %6970, %6911
  br label %6972

6972:                                             ; preds = %6971
  br label %6973

6973:                                             ; preds = %6972
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #11
  %6974 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %6974, ptr %148, align 8, !tbaa !9
  br label %6975

6975:                                             ; preds = %6973
  %6976 = load i32, ptr @test_count, align 4, !tbaa !5
  %6977 = add nsw i32 %6976, 1
  store i32 %6977, ptr @test_count, align 4, !tbaa !5
  %6978 = load ptr, ptr %145, align 8, !tbaa !9
  %6979 = icmp eq ptr %6978, null
  br i1 %6979, label %6980, label %7033

6980:                                             ; preds = %6975
  br label %6981

6981:                                             ; preds = %6980
  br label %6982

6982:                                             ; preds = %6981
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #11
  %6983 = call ptr @__errno_location() #12
  %6984 = load i32, ptr %6983, align 4, !tbaa !5
  store i32 %6984, ptr %149, align 4, !tbaa !5
  %6985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6986 = call i32 @s2n_print_stacktrace(ptr noundef %6985)
  %6987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6988 = trunc i8 %6987 to i1
  br i1 %6988, label %6989, label %7011

6989:                                             ; preds = %6982
  %6990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6991 = call i32 @fileno(ptr noundef %6990) #11
  %6992 = call i32 @isatty(i32 noundef %6991) #11
  %6993 = icmp ne i32 %6992, 0
  br i1 %6993, label %6994, label %7011

6994:                                             ; preds = %6989
  %6995 = load i32, ptr %149, align 4, !tbaa !5
  %6996 = call ptr @__errno_location() #12
  store i32 %6995, ptr %6996, align 4, !tbaa !5
  %6997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6998 = load i32, ptr @test_count, align 4, !tbaa !5
  %6999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7000 = load i32, ptr %6999, align 4, !tbaa !5
  %7001 = call ptr @s2n_strerror(i32 noundef %7000, ptr noundef @.str.4)
  %7002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7003 = load i32, ptr %7002, align 4, !tbaa !5
  %7004 = call ptr @s2n_strerror_debug(i32 noundef %7003, ptr noundef @.str.4)
  %7005 = call ptr @__errno_location() #12
  %7006 = load i32, ptr %7005, align 4, !tbaa !5
  %7007 = call ptr @strerror(i32 noundef %7006) #11
  %7008 = call ptr @__errno_location() #12
  %7009 = load i32, ptr %7008, align 4, !tbaa !5
  %7010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6997, ptr noundef @.str.2, i32 noundef %6998, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 311, ptr noundef %7001, ptr noundef %7004, ptr noundef %7007, i32 noundef %7009) #11
  br label %7028

7011:                                             ; preds = %6989, %6982
  %7012 = load i32, ptr %149, align 4, !tbaa !5
  %7013 = call ptr @__errno_location() #12
  store i32 %7012, ptr %7013, align 4, !tbaa !5
  %7014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7015 = load i32, ptr @test_count, align 4, !tbaa !5
  %7016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7017 = load i32, ptr %7016, align 4, !tbaa !5
  %7018 = call ptr @s2n_strerror(i32 noundef %7017, ptr noundef @.str.4)
  %7019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7020 = load i32, ptr %7019, align 4, !tbaa !5
  %7021 = call ptr @s2n_strerror_debug(i32 noundef %7020, ptr noundef @.str.4)
  %7022 = call ptr @__errno_location() #12
  %7023 = load i32, ptr %7022, align 4, !tbaa !5
  %7024 = call ptr @strerror(i32 noundef %7023) #11
  %7025 = call ptr @__errno_location() #12
  %7026 = load i32, ptr %7025, align 4, !tbaa !5
  %7027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7014, ptr noundef @.str.5, i32 noundef %7015, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 311, ptr noundef %7018, ptr noundef %7021, ptr noundef %7024, i32 noundef %7026) #11
  br label %7028

7028:                                             ; preds = %7011, %6994
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #11
  br label %7029

7029:                                             ; preds = %7028
  br label %7030

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

7031:                                             ; No predecessors!
  br label %7032

7032:                                             ; preds = %7031
  br label %7033

7033:                                             ; preds = %7032, %6975
  br label %7034

7034:                                             ; preds = %7033
  br label %7035

7035:                                             ; preds = %7034
  br label %7036

7036:                                             ; preds = %7035
  %7037 = load i32, ptr @test_count, align 4, !tbaa !5
  %7038 = add nsw i32 %7037, 1
  store i32 %7038, ptr @test_count, align 4, !tbaa !5
  %7039 = load ptr, ptr %148, align 8, !tbaa !9
  %7040 = load ptr, ptr %69, align 8, !tbaa !9
  %7041 = call i32 @s2n_connection_set_config(ptr noundef %7039, ptr noundef %7040)
  %7042 = icmp eq i32 %7041, -1
  br i1 %7042, label %7043, label %7096

7043:                                             ; preds = %7036
  br label %7044

7044:                                             ; preds = %7043
  br label %7045

7045:                                             ; preds = %7044
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #11
  %7046 = call ptr @__errno_location() #12
  %7047 = load i32, ptr %7046, align 4, !tbaa !5
  store i32 %7047, ptr %150, align 4, !tbaa !5
  %7048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7049 = call i32 @s2n_print_stacktrace(ptr noundef %7048)
  %7050 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7051 = trunc i8 %7050 to i1
  br i1 %7051, label %7052, label %7074

7052:                                             ; preds = %7045
  %7053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7054 = call i32 @fileno(ptr noundef %7053) #11
  %7055 = call i32 @isatty(i32 noundef %7054) #11
  %7056 = icmp ne i32 %7055, 0
  br i1 %7056, label %7057, label %7074

7057:                                             ; preds = %7052
  %7058 = load i32, ptr %150, align 4, !tbaa !5
  %7059 = call ptr @__errno_location() #12
  store i32 %7058, ptr %7059, align 4, !tbaa !5
  %7060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7061 = load i32, ptr @test_count, align 4, !tbaa !5
  %7062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7063 = load i32, ptr %7062, align 4, !tbaa !5
  %7064 = call ptr @s2n_strerror(i32 noundef %7063, ptr noundef @.str.4)
  %7065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7066 = load i32, ptr %7065, align 4, !tbaa !5
  %7067 = call ptr @s2n_strerror_debug(i32 noundef %7066, ptr noundef @.str.4)
  %7068 = call ptr @__errno_location() #12
  %7069 = load i32, ptr %7068, align 4, !tbaa !5
  %7070 = call ptr @strerror(i32 noundef %7069) #11
  %7071 = call ptr @__errno_location() #12
  %7072 = load i32, ptr %7071, align 4, !tbaa !5
  %7073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7060, ptr noundef @.str.2, i32 noundef %7061, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 312, ptr noundef %7064, ptr noundef %7067, ptr noundef %7070, i32 noundef %7072) #11
  br label %7091

7074:                                             ; preds = %7052, %7045
  %7075 = load i32, ptr %150, align 4, !tbaa !5
  %7076 = call ptr @__errno_location() #12
  store i32 %7075, ptr %7076, align 4, !tbaa !5
  %7077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7078 = load i32, ptr @test_count, align 4, !tbaa !5
  %7079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7080 = load i32, ptr %7079, align 4, !tbaa !5
  %7081 = call ptr @s2n_strerror(i32 noundef %7080, ptr noundef @.str.4)
  %7082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7083 = load i32, ptr %7082, align 4, !tbaa !5
  %7084 = call ptr @s2n_strerror_debug(i32 noundef %7083, ptr noundef @.str.4)
  %7085 = call ptr @__errno_location() #12
  %7086 = load i32, ptr %7085, align 4, !tbaa !5
  %7087 = call ptr @strerror(i32 noundef %7086) #11
  %7088 = call ptr @__errno_location() #12
  %7089 = load i32, ptr %7088, align 4, !tbaa !5
  %7090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7077, ptr noundef @.str.5, i32 noundef %7078, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 312, ptr noundef %7081, ptr noundef %7084, ptr noundef %7087, i32 noundef %7089) #11
  br label %7091

7091:                                             ; preds = %7074, %7057
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #11
  br label %7092

7092:                                             ; preds = %7091
  br label %7093

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

7094:                                             ; No predecessors!
  br label %7095

7095:                                             ; preds = %7094
  br label %7096

7096:                                             ; preds = %7095, %7036
  br label %7097

7097:                                             ; preds = %7096
  br label %7098

7098:                                             ; preds = %7097
  call void @srand(i32 noundef 0) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %151) #11
  store i64 0, ptr %151, align 8, !tbaa !15
  br label %7099

7099:                                             ; preds = %8233, %7098
  %7100 = load i64, ptr %151, align 8, !tbaa !15
  %7101 = icmp ult i64 %7100, 250
  br i1 %7101, label %7103, label %7102

7102:                                             ; preds = %7099
  call void @llvm.lifetime.end.p0(i64 8, ptr %151) #11
  br label %8236

7103:                                             ; preds = %7099
  call void @llvm.lifetime.start.p0(i64 4, ptr %152) #11
  %7104 = call i32 @rand() #11
  store i32 %7104, ptr %152, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %153) #11
  %7105 = load i32, ptr %152, align 4, !tbaa !5
  %7106 = srem i32 %7105, 2
  %7107 = icmp eq i32 %7106, 0
  %7108 = zext i1 %7107 to i8
  store i8 %7108, ptr %153, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %154) #11
  %7109 = load i32, ptr %152, align 4, !tbaa !5
  %7110 = srem i32 %7109, 3
  %7111 = icmp eq i32 %7110, 0
  %7112 = zext i1 %7111 to i8
  store i8 %7112, ptr %154, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %155) #11
  %7113 = load i64, ptr %151, align 8, !tbaa !15
  %7114 = urem i64 %7113, 5
  store i64 %7114, ptr %155, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr %156) #11
  %7115 = load i32, ptr %152, align 4, !tbaa !5
  %7116 = srem i32 %7115, 7
  %7117 = icmp eq i32 %7116, 0
  %7118 = zext i1 %7117 to i8
  store i8 %7118, ptr %156, align 1, !tbaa !11
  br label %7119

7119:                                             ; preds = %7103
  %7120 = load i32, ptr @test_count, align 4, !tbaa !5
  %7121 = add nsw i32 %7120, 1
  store i32 %7121, ptr @test_count, align 4, !tbaa !5
  %7122 = load ptr, ptr %148, align 8, !tbaa !9
  %7123 = call i32 @s2n_connection_wipe(ptr noundef %7122)
  %7124 = icmp eq i32 %7123, -1
  br i1 %7124, label %7125, label %7178

7125:                                             ; preds = %7119
  br label %7126

7126:                                             ; preds = %7125
  br label %7127

7127:                                             ; preds = %7126
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #11
  %7128 = call ptr @__errno_location() #12
  %7129 = load i32, ptr %7128, align 4, !tbaa !5
  store i32 %7129, ptr %157, align 4, !tbaa !5
  %7130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7131 = call i32 @s2n_print_stacktrace(ptr noundef %7130)
  %7132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7133 = trunc i8 %7132 to i1
  br i1 %7133, label %7134, label %7156

7134:                                             ; preds = %7127
  %7135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7136 = call i32 @fileno(ptr noundef %7135) #11
  %7137 = call i32 @isatty(i32 noundef %7136) #11
  %7138 = icmp ne i32 %7137, 0
  br i1 %7138, label %7139, label %7156

7139:                                             ; preds = %7134
  %7140 = load i32, ptr %157, align 4, !tbaa !5
  %7141 = call ptr @__errno_location() #12
  store i32 %7140, ptr %7141, align 4, !tbaa !5
  %7142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7143 = load i32, ptr @test_count, align 4, !tbaa !5
  %7144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7145 = load i32, ptr %7144, align 4, !tbaa !5
  %7146 = call ptr @s2n_strerror(i32 noundef %7145, ptr noundef @.str.4)
  %7147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7148 = load i32, ptr %7147, align 4, !tbaa !5
  %7149 = call ptr @s2n_strerror_debug(i32 noundef %7148, ptr noundef @.str.4)
  %7150 = call ptr @__errno_location() #12
  %7151 = load i32, ptr %7150, align 4, !tbaa !5
  %7152 = call ptr @strerror(i32 noundef %7151) #11
  %7153 = call ptr @__errno_location() #12
  %7154 = load i32, ptr %7153, align 4, !tbaa !5
  %7155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7142, ptr noundef @.str.2, i32 noundef %7143, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 327, ptr noundef %7146, ptr noundef %7149, ptr noundef %7152, i32 noundef %7154) #11
  br label %7173

7156:                                             ; preds = %7134, %7127
  %7157 = load i32, ptr %157, align 4, !tbaa !5
  %7158 = call ptr @__errno_location() #12
  store i32 %7157, ptr %7158, align 4, !tbaa !5
  %7159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7160 = load i32, ptr @test_count, align 4, !tbaa !5
  %7161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7162 = load i32, ptr %7161, align 4, !tbaa !5
  %7163 = call ptr @s2n_strerror(i32 noundef %7162, ptr noundef @.str.4)
  %7164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7165 = load i32, ptr %7164, align 4, !tbaa !5
  %7166 = call ptr @s2n_strerror_debug(i32 noundef %7165, ptr noundef @.str.4)
  %7167 = call ptr @__errno_location() #12
  %7168 = load i32, ptr %7167, align 4, !tbaa !5
  %7169 = call ptr @strerror(i32 noundef %7168) #11
  %7170 = call ptr @__errno_location() #12
  %7171 = load i32, ptr %7170, align 4, !tbaa !5
  %7172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7159, ptr noundef @.str.5, i32 noundef %7160, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 327, ptr noundef %7163, ptr noundef %7166, ptr noundef %7169, i32 noundef %7171) #11
  br label %7173

7173:                                             ; preds = %7156, %7139
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #11
  br label %7174

7174:                                             ; preds = %7173
  br label %7175

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

7176:                                             ; No predecessors!
  br label %7177

7177:                                             ; preds = %7176
  br label %7178

7178:                                             ; preds = %7177, %7119
  br label %7179

7179:                                             ; preds = %7178
  br label %7180

7180:                                             ; preds = %7179
  br label %7181

7181:                                             ; preds = %7180
  %7182 = load i32, ptr @test_count, align 4, !tbaa !5
  %7183 = add nsw i32 %7182, 1
  store i32 %7183, ptr @test_count, align 4, !tbaa !5
  %7184 = load ptr, ptr %145, align 8, !tbaa !9
  %7185 = call i32 @s2n_connection_wipe(ptr noundef %7184)
  %7186 = icmp eq i32 %7185, -1
  br i1 %7186, label %7187, label %7240

7187:                                             ; preds = %7181
  br label %7188

7188:                                             ; preds = %7187
  br label %7189

7189:                                             ; preds = %7188
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #11
  %7190 = call ptr @__errno_location() #12
  %7191 = load i32, ptr %7190, align 4, !tbaa !5
  store i32 %7191, ptr %158, align 4, !tbaa !5
  %7192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7193 = call i32 @s2n_print_stacktrace(ptr noundef %7192)
  %7194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7195 = trunc i8 %7194 to i1
  br i1 %7195, label %7196, label %7218

7196:                                             ; preds = %7189
  %7197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7198 = call i32 @fileno(ptr noundef %7197) #11
  %7199 = call i32 @isatty(i32 noundef %7198) #11
  %7200 = icmp ne i32 %7199, 0
  br i1 %7200, label %7201, label %7218

7201:                                             ; preds = %7196
  %7202 = load i32, ptr %158, align 4, !tbaa !5
  %7203 = call ptr @__errno_location() #12
  store i32 %7202, ptr %7203, align 4, !tbaa !5
  %7204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7205 = load i32, ptr @test_count, align 4, !tbaa !5
  %7206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7207 = load i32, ptr %7206, align 4, !tbaa !5
  %7208 = call ptr @s2n_strerror(i32 noundef %7207, ptr noundef @.str.4)
  %7209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7210 = load i32, ptr %7209, align 4, !tbaa !5
  %7211 = call ptr @s2n_strerror_debug(i32 noundef %7210, ptr noundef @.str.4)
  %7212 = call ptr @__errno_location() #12
  %7213 = load i32, ptr %7212, align 4, !tbaa !5
  %7214 = call ptr @strerror(i32 noundef %7213) #11
  %7215 = call ptr @__errno_location() #12
  %7216 = load i32, ptr %7215, align 4, !tbaa !5
  %7217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7204, ptr noundef @.str.2, i32 noundef %7205, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 328, ptr noundef %7208, ptr noundef %7211, ptr noundef %7214, i32 noundef %7216) #11
  br label %7235

7218:                                             ; preds = %7196, %7189
  %7219 = load i32, ptr %158, align 4, !tbaa !5
  %7220 = call ptr @__errno_location() #12
  store i32 %7219, ptr %7220, align 4, !tbaa !5
  %7221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7222 = load i32, ptr @test_count, align 4, !tbaa !5
  %7223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7224 = load i32, ptr %7223, align 4, !tbaa !5
  %7225 = call ptr @s2n_strerror(i32 noundef %7224, ptr noundef @.str.4)
  %7226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7227 = load i32, ptr %7226, align 4, !tbaa !5
  %7228 = call ptr @s2n_strerror_debug(i32 noundef %7227, ptr noundef @.str.4)
  %7229 = call ptr @__errno_location() #12
  %7230 = load i32, ptr %7229, align 4, !tbaa !5
  %7231 = call ptr @strerror(i32 noundef %7230) #11
  %7232 = call ptr @__errno_location() #12
  %7233 = load i32, ptr %7232, align 4, !tbaa !5
  %7234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7221, ptr noundef @.str.5, i32 noundef %7222, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 328, ptr noundef %7225, ptr noundef %7228, ptr noundef %7231, i32 noundef %7233) #11
  br label %7235

7235:                                             ; preds = %7218, %7201
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #11
  br label %7236

7236:                                             ; preds = %7235
  br label %7237

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

7238:                                             ; No predecessors!
  br label %7239

7239:                                             ; preds = %7238
  br label %7240

7240:                                             ; preds = %7239, %7181
  br label %7241

7241:                                             ; preds = %7240
  br label %7242

7242:                                             ; preds = %7241
  call void @llvm.lifetime.start.p0(i64 8, ptr %159) #11
  call void @llvm.memset.p0.i64(ptr align 4 %159, i8 0, i64 8, i1 false)
  br label %7243

7243:                                             ; preds = %7242
  %7244 = load i32, ptr @test_count, align 4, !tbaa !5
  %7245 = add nsw i32 %7244, 1
  store i32 %7245, ptr @test_count, align 4, !tbaa !5
  %7246 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %159)
  %7247 = icmp eq i32 %7246, -1
  br i1 %7247, label %7248, label %7301

7248:                                             ; preds = %7243
  br label %7249

7249:                                             ; preds = %7248
  br label %7250

7250:                                             ; preds = %7249
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #11
  %7251 = call ptr @__errno_location() #12
  %7252 = load i32, ptr %7251, align 4, !tbaa !5
  store i32 %7252, ptr %160, align 4, !tbaa !5
  %7253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7254 = call i32 @s2n_print_stacktrace(ptr noundef %7253)
  %7255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7256 = trunc i8 %7255 to i1
  br i1 %7256, label %7257, label %7279

7257:                                             ; preds = %7250
  %7258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7259 = call i32 @fileno(ptr noundef %7258) #11
  %7260 = call i32 @isatty(i32 noundef %7259) #11
  %7261 = icmp ne i32 %7260, 0
  br i1 %7261, label %7262, label %7279

7262:                                             ; preds = %7257
  %7263 = load i32, ptr %160, align 4, !tbaa !5
  %7264 = call ptr @__errno_location() #12
  store i32 %7263, ptr %7264, align 4, !tbaa !5
  %7265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7266 = load i32, ptr @test_count, align 4, !tbaa !5
  %7267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7268 = load i32, ptr %7267, align 4, !tbaa !5
  %7269 = call ptr @s2n_strerror(i32 noundef %7268, ptr noundef @.str.4)
  %7270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7271 = load i32, ptr %7270, align 4, !tbaa !5
  %7272 = call ptr @s2n_strerror_debug(i32 noundef %7271, ptr noundef @.str.4)
  %7273 = call ptr @__errno_location() #12
  %7274 = load i32, ptr %7273, align 4, !tbaa !5
  %7275 = call ptr @strerror(i32 noundef %7274) #11
  %7276 = call ptr @__errno_location() #12
  %7277 = load i32, ptr %7276, align 4, !tbaa !5
  %7278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7265, ptr noundef @.str.2, i32 noundef %7266, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 332, ptr noundef %7269, ptr noundef %7272, ptr noundef %7275, i32 noundef %7277) #11
  br label %7296

7279:                                             ; preds = %7257, %7250
  %7280 = load i32, ptr %160, align 4, !tbaa !5
  %7281 = call ptr @__errno_location() #12
  store i32 %7280, ptr %7281, align 4, !tbaa !5
  %7282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7283 = load i32, ptr @test_count, align 4, !tbaa !5
  %7284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7285 = load i32, ptr %7284, align 4, !tbaa !5
  %7286 = call ptr @s2n_strerror(i32 noundef %7285, ptr noundef @.str.4)
  %7287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7288 = load i32, ptr %7287, align 4, !tbaa !5
  %7289 = call ptr @s2n_strerror_debug(i32 noundef %7288, ptr noundef @.str.4)
  %7290 = call ptr @__errno_location() #12
  %7291 = load i32, ptr %7290, align 4, !tbaa !5
  %7292 = call ptr @strerror(i32 noundef %7291) #11
  %7293 = call ptr @__errno_location() #12
  %7294 = load i32, ptr %7293, align 4, !tbaa !5
  %7295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7282, ptr noundef @.str.5, i32 noundef %7283, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 332, ptr noundef %7286, ptr noundef %7289, ptr noundef %7292, i32 noundef %7294) #11
  br label %7296

7296:                                             ; preds = %7279, %7262
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #11
  br label %7297

7297:                                             ; preds = %7296
  br label %7298

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

7299:                                             ; No predecessors!
  br label %7300

7300:                                             ; preds = %7299
  br label %7301

7301:                                             ; preds = %7300, %7243
  br label %7302

7302:                                             ; preds = %7301
  br label %7303

7303:                                             ; preds = %7302
  br label %7304

7304:                                             ; preds = %7303
  %7305 = load i32, ptr @test_count, align 4, !tbaa !5
  %7306 = add nsw i32 %7305, 1
  store i32 %7306, ptr @test_count, align 4, !tbaa !5
  %7307 = load ptr, ptr %148, align 8, !tbaa !9
  %7308 = load ptr, ptr %145, align 8, !tbaa !9
  %7309 = call i32 @s2n_connections_set_io_pair(ptr noundef %7307, ptr noundef %7308, ptr noundef %159)
  %7310 = icmp eq i32 %7309, -1
  br i1 %7310, label %7311, label %7364

7311:                                             ; preds = %7304
  br label %7312

7312:                                             ; preds = %7311
  br label %7313

7313:                                             ; preds = %7312
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #11
  %7314 = call ptr @__errno_location() #12
  %7315 = load i32, ptr %7314, align 4, !tbaa !5
  store i32 %7315, ptr %161, align 4, !tbaa !5
  %7316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7317 = call i32 @s2n_print_stacktrace(ptr noundef %7316)
  %7318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7319 = trunc i8 %7318 to i1
  br i1 %7319, label %7320, label %7342

7320:                                             ; preds = %7313
  %7321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7322 = call i32 @fileno(ptr noundef %7321) #11
  %7323 = call i32 @isatty(i32 noundef %7322) #11
  %7324 = icmp ne i32 %7323, 0
  br i1 %7324, label %7325, label %7342

7325:                                             ; preds = %7320
  %7326 = load i32, ptr %161, align 4, !tbaa !5
  %7327 = call ptr @__errno_location() #12
  store i32 %7326, ptr %7327, align 4, !tbaa !5
  %7328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7329 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7331, ptr noundef @.str.4)
  %7333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7334 = load i32, ptr %7333, align 4, !tbaa !5
  %7335 = call ptr @s2n_strerror_debug(i32 noundef %7334, ptr noundef @.str.4)
  %7336 = call ptr @__errno_location() #12
  %7337 = load i32, ptr %7336, align 4, !tbaa !5
  %7338 = call ptr @strerror(i32 noundef %7337) #11
  %7339 = call ptr @__errno_location() #12
  %7340 = load i32, ptr %7339, align 4, !tbaa !5
  %7341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7328, ptr noundef @.str.2, i32 noundef %7329, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 333, ptr noundef %7332, ptr noundef %7335, ptr noundef %7338, i32 noundef %7340) #11
  br label %7359

7342:                                             ; preds = %7320, %7313
  %7343 = load i32, ptr %161, align 4, !tbaa !5
  %7344 = call ptr @__errno_location() #12
  store i32 %7343, ptr %7344, align 4, !tbaa !5
  %7345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7346 = load i32, ptr @test_count, align 4, !tbaa !5
  %7347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7348 = load i32, ptr %7347, align 4, !tbaa !5
  %7349 = call ptr @s2n_strerror(i32 noundef %7348, ptr noundef @.str.4)
  %7350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7351 = load i32, ptr %7350, align 4, !tbaa !5
  %7352 = call ptr @s2n_strerror_debug(i32 noundef %7351, ptr noundef @.str.4)
  %7353 = call ptr @__errno_location() #12
  %7354 = load i32, ptr %7353, align 4, !tbaa !5
  %7355 = call ptr @strerror(i32 noundef %7354) #11
  %7356 = call ptr @__errno_location() #12
  %7357 = load i32, ptr %7356, align 4, !tbaa !5
  %7358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7345, ptr noundef @.str.5, i32 noundef %7346, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 333, ptr noundef %7349, ptr noundef %7352, ptr noundef %7355, i32 noundef %7357) #11
  br label %7359

7359:                                             ; preds = %7342, %7325
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #11
  br label %7360

7360:                                             ; preds = %7359
  br label %7361

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

7362:                                             ; No predecessors!
  br label %7363

7363:                                             ; preds = %7362
  br label %7364

7364:                                             ; preds = %7363, %7304
  br label %7365

7365:                                             ; preds = %7364
  br label %7366

7366:                                             ; preds = %7365
  %7367 = load i8, ptr %153, align 1, !tbaa !11, !range !13, !noundef !14
  %7368 = trunc i8 %7367 to i1
  br i1 %7368, label %7369, label %7372

7369:                                             ; preds = %7366
  %7370 = load ptr, ptr %148, align 8, !tbaa !9
  %7371 = getelementptr inbounds %struct.s2n_connection, ptr %7370, i32 0, i32 2
  store ptr @security_policy_test_tls13_retry, ptr %7371, align 8, !tbaa !58
  br label %7372

7372:                                             ; preds = %7369, %7366
  %7373 = load i8, ptr %154, align 1, !tbaa !11, !range !13, !noundef !14
  %7374 = trunc i8 %7373 to i1
  br i1 %7374, label %7375, label %7441

7375:                                             ; preds = %7372
  br label %7376

7376:                                             ; preds = %7375
  %7377 = load i32, ptr @test_count, align 4, !tbaa !5
  %7378 = add nsw i32 %7377, 1
  store i32 %7378, ptr @test_count, align 4, !tbaa !5
  %7379 = load i64, ptr %155, align 8, !tbaa !15
  %7380 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %7379
  %7381 = load ptr, ptr %145, align 8, !tbaa !9
  %7382 = getelementptr inbounds %struct.s2n_connection, ptr %7381, i32 0, i32 83
  %7383 = call i32 @s2n_dup(ptr noundef %7380, ptr noundef %7382)
  %7384 = icmp eq i32 %7383, -1
  br i1 %7384, label %7385, label %7438

7385:                                             ; preds = %7376
  br label %7386

7386:                                             ; preds = %7385
  br label %7387

7387:                                             ; preds = %7386
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #11
  %7388 = call ptr @__errno_location() #12
  %7389 = load i32, ptr %7388, align 4, !tbaa !5
  store i32 %7389, ptr %162, align 4, !tbaa !5
  %7390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7391 = call i32 @s2n_print_stacktrace(ptr noundef %7390)
  %7392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7393 = trunc i8 %7392 to i1
  br i1 %7393, label %7394, label %7416

7394:                                             ; preds = %7387
  %7395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7396 = call i32 @fileno(ptr noundef %7395) #11
  %7397 = call i32 @isatty(i32 noundef %7396) #11
  %7398 = icmp ne i32 %7397, 0
  br i1 %7398, label %7399, label %7416

7399:                                             ; preds = %7394
  %7400 = load i32, ptr %162, align 4, !tbaa !5
  %7401 = call ptr @__errno_location() #12
  store i32 %7400, ptr %7401, align 4, !tbaa !5
  %7402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7403 = load i32, ptr @test_count, align 4, !tbaa !5
  %7404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7405 = load i32, ptr %7404, align 4, !tbaa !5
  %7406 = call ptr @s2n_strerror(i32 noundef %7405, ptr noundef @.str.4)
  %7407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7408 = load i32, ptr %7407, align 4, !tbaa !5
  %7409 = call ptr @s2n_strerror_debug(i32 noundef %7408, ptr noundef @.str.4)
  %7410 = call ptr @__errno_location() #12
  %7411 = load i32, ptr %7410, align 4, !tbaa !5
  %7412 = call ptr @strerror(i32 noundef %7411) #11
  %7413 = call ptr @__errno_location() #12
  %7414 = load i32, ptr %7413, align 4, !tbaa !5
  %7415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7402, ptr noundef @.str.2, i32 noundef %7403, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 342, ptr noundef %7406, ptr noundef %7409, ptr noundef %7412, i32 noundef %7414) #11
  br label %7433

7416:                                             ; preds = %7394, %7387
  %7417 = load i32, ptr %162, align 4, !tbaa !5
  %7418 = call ptr @__errno_location() #12
  store i32 %7417, ptr %7418, align 4, !tbaa !5
  %7419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7420 = load i32, ptr @test_count, align 4, !tbaa !5
  %7421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7422 = load i32, ptr %7421, align 4, !tbaa !5
  %7423 = call ptr @s2n_strerror(i32 noundef %7422, ptr noundef @.str.4)
  %7424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7425 = load i32, ptr %7424, align 4, !tbaa !5
  %7426 = call ptr @s2n_strerror_debug(i32 noundef %7425, ptr noundef @.str.4)
  %7427 = call ptr @__errno_location() #12
  %7428 = load i32, ptr %7427, align 4, !tbaa !5
  %7429 = call ptr @strerror(i32 noundef %7428) #11
  %7430 = call ptr @__errno_location() #12
  %7431 = load i32, ptr %7430, align 4, !tbaa !5
  %7432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7419, ptr noundef @.str.5, i32 noundef %7420, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 342, ptr noundef %7423, ptr noundef %7426, ptr noundef %7429, i32 noundef %7431) #11
  br label %7433

7433:                                             ; preds = %7416, %7399
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #11
  br label %7434

7434:                                             ; preds = %7433
  br label %7435

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

7436:                                             ; No predecessors!
  br label %7437

7437:                                             ; preds = %7436
  br label %7438

7438:                                             ; preds = %7437, %7376
  br label %7439

7439:                                             ; preds = %7438
  br label %7440

7440:                                             ; preds = %7439
  br label %7441

7441:                                             ; preds = %7440, %7372
  br label %7442

7442:                                             ; preds = %7441
  %7443 = load i32, ptr @test_count, align 4, !tbaa !5
  %7444 = add nsw i32 %7443, 1
  store i32 %7444, ptr @test_count, align 4, !tbaa !5
  %7445 = load ptr, ptr %145, align 8, !tbaa !9
  %7446 = load ptr, ptr %148, align 8, !tbaa !9
  %7447 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %7445, ptr noundef %7446)
  %7448 = icmp eq i32 %7447, -1
  br i1 %7448, label %7449, label %7502

7449:                                             ; preds = %7442
  br label %7450

7450:                                             ; preds = %7449
  br label %7451

7451:                                             ; preds = %7450
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #11
  %7452 = call ptr @__errno_location() #12
  %7453 = load i32, ptr %7452, align 4, !tbaa !5
  store i32 %7453, ptr %163, align 4, !tbaa !5
  %7454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7455 = call i32 @s2n_print_stacktrace(ptr noundef %7454)
  %7456 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7457 = trunc i8 %7456 to i1
  br i1 %7457, label %7458, label %7480

7458:                                             ; preds = %7451
  %7459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7460 = call i32 @fileno(ptr noundef %7459) #11
  %7461 = call i32 @isatty(i32 noundef %7460) #11
  %7462 = icmp ne i32 %7461, 0
  br i1 %7462, label %7463, label %7480

7463:                                             ; preds = %7458
  %7464 = load i32, ptr %163, align 4, !tbaa !5
  %7465 = call ptr @__errno_location() #12
  store i32 %7464, ptr %7465, align 4, !tbaa !5
  %7466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7467 = load i32, ptr @test_count, align 4, !tbaa !5
  %7468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7469 = load i32, ptr %7468, align 4, !tbaa !5
  %7470 = call ptr @s2n_strerror(i32 noundef %7469, ptr noundef @.str.4)
  %7471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7472 = load i32, ptr %7471, align 4, !tbaa !5
  %7473 = call ptr @s2n_strerror_debug(i32 noundef %7472, ptr noundef @.str.4)
  %7474 = call ptr @__errno_location() #12
  %7475 = load i32, ptr %7474, align 4, !tbaa !5
  %7476 = call ptr @strerror(i32 noundef %7475) #11
  %7477 = call ptr @__errno_location() #12
  %7478 = load i32, ptr %7477, align 4, !tbaa !5
  %7479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7466, ptr noundef @.str.2, i32 noundef %7467, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 346, ptr noundef %7470, ptr noundef %7473, ptr noundef %7476, i32 noundef %7478) #11
  br label %7497

7480:                                             ; preds = %7458, %7451
  %7481 = load i32, ptr %163, align 4, !tbaa !5
  %7482 = call ptr @__errno_location() #12
  store i32 %7481, ptr %7482, align 4, !tbaa !5
  %7483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7484 = load i32, ptr @test_count, align 4, !tbaa !5
  %7485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7486 = load i32, ptr %7485, align 4, !tbaa !5
  %7487 = call ptr @s2n_strerror(i32 noundef %7486, ptr noundef @.str.4)
  %7488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7489 = load i32, ptr %7488, align 4, !tbaa !5
  %7490 = call ptr @s2n_strerror_debug(i32 noundef %7489, ptr noundef @.str.4)
  %7491 = call ptr @__errno_location() #12
  %7492 = load i32, ptr %7491, align 4, !tbaa !5
  %7493 = call ptr @strerror(i32 noundef %7492) #11
  %7494 = call ptr @__errno_location() #12
  %7495 = load i32, ptr %7494, align 4, !tbaa !5
  %7496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7483, ptr noundef @.str.5, i32 noundef %7484, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 346, ptr noundef %7487, ptr noundef %7490, ptr noundef %7493, i32 noundef %7495) #11
  br label %7497

7497:                                             ; preds = %7480, %7463
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #11
  br label %7498

7498:                                             ; preds = %7497
  br label %7499

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

7500:                                             ; No predecessors!
  br label %7501

7501:                                             ; preds = %7500
  br label %7502

7502:                                             ; preds = %7501, %7442
  br label %7503

7503:                                             ; preds = %7502
  br label %7504

7504:                                             ; preds = %7503
  %7505 = load i8, ptr %153, align 1, !tbaa !11, !range !13, !noundef !14
  %7506 = trunc i8 %7505 to i1
  br i1 %7506, label %7507, label %7630

7507:                                             ; preds = %7504
  br label %7508

7508:                                             ; preds = %7507
  %7509 = load i32, ptr @test_count, align 4, !tbaa !5
  %7510 = add nsw i32 %7509, 1
  store i32 %7510, ptr @test_count, align 4, !tbaa !5
  %7511 = load ptr, ptr %145, align 8, !tbaa !9
  %7512 = call zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef %7511)
  br i1 %7512, label %7566, label %7513

7513:                                             ; preds = %7508
  br label %7514

7514:                                             ; preds = %7513
  br label %7515

7515:                                             ; preds = %7514
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #11
  %7516 = call ptr @__errno_location() #12
  %7517 = load i32, ptr %7516, align 4, !tbaa !5
  store i32 %7517, ptr %164, align 4, !tbaa !5
  %7518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7519 = call i32 @s2n_print_stacktrace(ptr noundef %7518)
  %7520 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7521 = trunc i8 %7520 to i1
  br i1 %7521, label %7522, label %7544

7522:                                             ; preds = %7515
  %7523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7524 = call i32 @fileno(ptr noundef %7523) #11
  %7525 = call i32 @isatty(i32 noundef %7524) #11
  %7526 = icmp ne i32 %7525, 0
  br i1 %7526, label %7527, label %7544

7527:                                             ; preds = %7522
  %7528 = load i32, ptr %164, align 4, !tbaa !5
  %7529 = call ptr @__errno_location() #12
  store i32 %7528, ptr %7529, align 4, !tbaa !5
  %7530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7531 = load i32, ptr @test_count, align 4, !tbaa !5
  %7532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7533 = load i32, ptr %7532, align 4, !tbaa !5
  %7534 = call ptr @s2n_strerror(i32 noundef %7533, ptr noundef @.str.4)
  %7535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7536 = load i32, ptr %7535, align 4, !tbaa !5
  %7537 = call ptr @s2n_strerror_debug(i32 noundef %7536, ptr noundef @.str.4)
  %7538 = call ptr @__errno_location() #12
  %7539 = load i32, ptr %7538, align 4, !tbaa !5
  %7540 = call ptr @strerror(i32 noundef %7539) #11
  %7541 = call ptr @__errno_location() #12
  %7542 = load i32, ptr %7541, align 4, !tbaa !5
  %7543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7530, ptr noundef @.str.2, i32 noundef %7531, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 350, ptr noundef %7534, ptr noundef %7537, ptr noundef %7540, i32 noundef %7542) #11
  br label %7561

7544:                                             ; preds = %7522, %7515
  %7545 = load i32, ptr %164, align 4, !tbaa !5
  %7546 = call ptr @__errno_location() #12
  store i32 %7545, ptr %7546, align 4, !tbaa !5
  %7547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7548 = load i32, ptr @test_count, align 4, !tbaa !5
  %7549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7550 = load i32, ptr %7549, align 4, !tbaa !5
  %7551 = call ptr @s2n_strerror(i32 noundef %7550, ptr noundef @.str.4)
  %7552 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7553 = load i32, ptr %7552, align 4, !tbaa !5
  %7554 = call ptr @s2n_strerror_debug(i32 noundef %7553, ptr noundef @.str.4)
  %7555 = call ptr @__errno_location() #12
  %7556 = load i32, ptr %7555, align 4, !tbaa !5
  %7557 = call ptr @strerror(i32 noundef %7556) #11
  %7558 = call ptr @__errno_location() #12
  %7559 = load i32, ptr %7558, align 4, !tbaa !5
  %7560 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7547, ptr noundef @.str.5, i32 noundef %7548, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 350, ptr noundef %7551, ptr noundef %7554, ptr noundef %7557, i32 noundef %7559) #11
  br label %7561

7561:                                             ; preds = %7544, %7527
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #11
  br label %7562

7562:                                             ; preds = %7561
  br label %7563

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

7564:                                             ; No predecessors!
  br label %7565

7565:                                             ; preds = %7564
  br label %7566

7566:                                             ; preds = %7565, %7508
  br label %7567

7567:                                             ; preds = %7566
  br label %7568

7568:                                             ; preds = %7567
  br label %7569

7569:                                             ; preds = %7568
  %7570 = load i32, ptr @test_count, align 4, !tbaa !5
  %7571 = add nsw i32 %7570, 1
  store i32 %7571, ptr @test_count, align 4, !tbaa !5
  %7572 = load ptr, ptr %148, align 8, !tbaa !9
  %7573 = call zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef %7572)
  br i1 %7573, label %7627, label %7574

7574:                                             ; preds = %7569
  br label %7575

7575:                                             ; preds = %7574
  br label %7576

7576:                                             ; preds = %7575
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #11
  %7577 = call ptr @__errno_location() #12
  %7578 = load i32, ptr %7577, align 4, !tbaa !5
  store i32 %7578, ptr %165, align 4, !tbaa !5
  %7579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7580 = call i32 @s2n_print_stacktrace(ptr noundef %7579)
  %7581 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7582 = trunc i8 %7581 to i1
  br i1 %7582, label %7583, label %7605

7583:                                             ; preds = %7576
  %7584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7585 = call i32 @fileno(ptr noundef %7584) #11
  %7586 = call i32 @isatty(i32 noundef %7585) #11
  %7587 = icmp ne i32 %7586, 0
  br i1 %7587, label %7588, label %7605

7588:                                             ; preds = %7583
  %7589 = load i32, ptr %165, align 4, !tbaa !5
  %7590 = call ptr @__errno_location() #12
  store i32 %7589, ptr %7590, align 4, !tbaa !5
  %7591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7592 = load i32, ptr @test_count, align 4, !tbaa !5
  %7593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7594 = load i32, ptr %7593, align 4, !tbaa !5
  %7595 = call ptr @s2n_strerror(i32 noundef %7594, ptr noundef @.str.4)
  %7596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7597 = load i32, ptr %7596, align 4, !tbaa !5
  %7598 = call ptr @s2n_strerror_debug(i32 noundef %7597, ptr noundef @.str.4)
  %7599 = call ptr @__errno_location() #12
  %7600 = load i32, ptr %7599, align 4, !tbaa !5
  %7601 = call ptr @strerror(i32 noundef %7600) #11
  %7602 = call ptr @__errno_location() #12
  %7603 = load i32, ptr %7602, align 4, !tbaa !5
  %7604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7591, ptr noundef @.str.2, i32 noundef %7592, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 351, ptr noundef %7595, ptr noundef %7598, ptr noundef %7601, i32 noundef %7603) #11
  br label %7622

7605:                                             ; preds = %7583, %7576
  %7606 = load i32, ptr %165, align 4, !tbaa !5
  %7607 = call ptr @__errno_location() #12
  store i32 %7606, ptr %7607, align 4, !tbaa !5
  %7608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7609 = load i32, ptr @test_count, align 4, !tbaa !5
  %7610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7611 = load i32, ptr %7610, align 4, !tbaa !5
  %7612 = call ptr @s2n_strerror(i32 noundef %7611, ptr noundef @.str.4)
  %7613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7614 = load i32, ptr %7613, align 4, !tbaa !5
  %7615 = call ptr @s2n_strerror_debug(i32 noundef %7614, ptr noundef @.str.4)
  %7616 = call ptr @__errno_location() #12
  %7617 = load i32, ptr %7616, align 4, !tbaa !5
  %7618 = call ptr @strerror(i32 noundef %7617) #11
  %7619 = call ptr @__errno_location() #12
  %7620 = load i32, ptr %7619, align 4, !tbaa !5
  %7621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7608, ptr noundef @.str.5, i32 noundef %7609, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 351, ptr noundef %7612, ptr noundef %7615, ptr noundef %7618, i32 noundef %7620) #11
  br label %7622

7622:                                             ; preds = %7605, %7588
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #11
  br label %7623

7623:                                             ; preds = %7622
  br label %7624

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

7625:                                             ; No predecessors!
  br label %7626

7626:                                             ; preds = %7625
  br label %7627

7627:                                             ; preds = %7626, %7569
  br label %7628

7628:                                             ; preds = %7627
  br label %7629

7629:                                             ; preds = %7628
  br label %7753

7630:                                             ; preds = %7504
  br label %7631

7631:                                             ; preds = %7630
  %7632 = load i32, ptr @test_count, align 4, !tbaa !5
  %7633 = add nsw i32 %7632, 1
  store i32 %7633, ptr @test_count, align 4, !tbaa !5
  %7634 = load ptr, ptr %145, align 8, !tbaa !9
  %7635 = call zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef %7634)
  br i1 %7635, label %7636, label %7689

7636:                                             ; preds = %7631
  br label %7637

7637:                                             ; preds = %7636
  br label %7638

7638:                                             ; preds = %7637
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #11
  %7639 = call ptr @__errno_location() #12
  %7640 = load i32, ptr %7639, align 4, !tbaa !5
  store i32 %7640, ptr %166, align 4, !tbaa !5
  %7641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7642 = call i32 @s2n_print_stacktrace(ptr noundef %7641)
  %7643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7644 = trunc i8 %7643 to i1
  br i1 %7644, label %7645, label %7667

7645:                                             ; preds = %7638
  %7646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7647 = call i32 @fileno(ptr noundef %7646) #11
  %7648 = call i32 @isatty(i32 noundef %7647) #11
  %7649 = icmp ne i32 %7648, 0
  br i1 %7649, label %7650, label %7667

7650:                                             ; preds = %7645
  %7651 = load i32, ptr %166, align 4, !tbaa !5
  %7652 = call ptr @__errno_location() #12
  store i32 %7651, ptr %7652, align 4, !tbaa !5
  %7653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7654 = load i32, ptr @test_count, align 4, !tbaa !5
  %7655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7656 = load i32, ptr %7655, align 4, !tbaa !5
  %7657 = call ptr @s2n_strerror(i32 noundef %7656, ptr noundef @.str.4)
  %7658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7659 = load i32, ptr %7658, align 4, !tbaa !5
  %7660 = call ptr @s2n_strerror_debug(i32 noundef %7659, ptr noundef @.str.4)
  %7661 = call ptr @__errno_location() #12
  %7662 = load i32, ptr %7661, align 4, !tbaa !5
  %7663 = call ptr @strerror(i32 noundef %7662) #11
  %7664 = call ptr @__errno_location() #12
  %7665 = load i32, ptr %7664, align 4, !tbaa !5
  %7666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7653, ptr noundef @.str.2, i32 noundef %7654, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 353, ptr noundef %7657, ptr noundef %7660, ptr noundef %7663, i32 noundef %7665) #11
  br label %7684

7667:                                             ; preds = %7645, %7638
  %7668 = load i32, ptr %166, align 4, !tbaa !5
  %7669 = call ptr @__errno_location() #12
  store i32 %7668, ptr %7669, align 4, !tbaa !5
  %7670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7671 = load i32, ptr @test_count, align 4, !tbaa !5
  %7672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7673 = load i32, ptr %7672, align 4, !tbaa !5
  %7674 = call ptr @s2n_strerror(i32 noundef %7673, ptr noundef @.str.4)
  %7675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7676 = load i32, ptr %7675, align 4, !tbaa !5
  %7677 = call ptr @s2n_strerror_debug(i32 noundef %7676, ptr noundef @.str.4)
  %7678 = call ptr @__errno_location() #12
  %7679 = load i32, ptr %7678, align 4, !tbaa !5
  %7680 = call ptr @strerror(i32 noundef %7679) #11
  %7681 = call ptr @__errno_location() #12
  %7682 = load i32, ptr %7681, align 4, !tbaa !5
  %7683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7670, ptr noundef @.str.5, i32 noundef %7671, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 353, ptr noundef %7674, ptr noundef %7677, ptr noundef %7680, i32 noundef %7682) #11
  br label %7684

7684:                                             ; preds = %7667, %7650
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #11
  br label %7685

7685:                                             ; preds = %7684
  br label %7686

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

7687:                                             ; No predecessors!
  br label %7688

7688:                                             ; preds = %7687
  br label %7689

7689:                                             ; preds = %7688, %7631
  br label %7690

7690:                                             ; preds = %7689
  br label %7691

7691:                                             ; preds = %7690
  br label %7692

7692:                                             ; preds = %7691
  %7693 = load i32, ptr @test_count, align 4, !tbaa !5
  %7694 = add nsw i32 %7693, 1
  store i32 %7694, ptr @test_count, align 4, !tbaa !5
  %7695 = load ptr, ptr %148, align 8, !tbaa !9
  %7696 = call zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef %7695)
  br i1 %7696, label %7697, label %7750

7697:                                             ; preds = %7692
  br label %7698

7698:                                             ; preds = %7697
  br label %7699

7699:                                             ; preds = %7698
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #11
  %7700 = call ptr @__errno_location() #12
  %7701 = load i32, ptr %7700, align 4, !tbaa !5
  store i32 %7701, ptr %167, align 4, !tbaa !5
  %7702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7703 = call i32 @s2n_print_stacktrace(ptr noundef %7702)
  %7704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7705 = trunc i8 %7704 to i1
  br i1 %7705, label %7706, label %7728

7706:                                             ; preds = %7699
  %7707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7708 = call i32 @fileno(ptr noundef %7707) #11
  %7709 = call i32 @isatty(i32 noundef %7708) #11
  %7710 = icmp ne i32 %7709, 0
  br i1 %7710, label %7711, label %7728

7711:                                             ; preds = %7706
  %7712 = load i32, ptr %167, align 4, !tbaa !5
  %7713 = call ptr @__errno_location() #12
  store i32 %7712, ptr %7713, align 4, !tbaa !5
  %7714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7715 = load i32, ptr @test_count, align 4, !tbaa !5
  %7716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7717 = load i32, ptr %7716, align 4, !tbaa !5
  %7718 = call ptr @s2n_strerror(i32 noundef %7717, ptr noundef @.str.4)
  %7719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7720 = load i32, ptr %7719, align 4, !tbaa !5
  %7721 = call ptr @s2n_strerror_debug(i32 noundef %7720, ptr noundef @.str.4)
  %7722 = call ptr @__errno_location() #12
  %7723 = load i32, ptr %7722, align 4, !tbaa !5
  %7724 = call ptr @strerror(i32 noundef %7723) #11
  %7725 = call ptr @__errno_location() #12
  %7726 = load i32, ptr %7725, align 4, !tbaa !5
  %7727 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7714, ptr noundef @.str.2, i32 noundef %7715, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 354, ptr noundef %7718, ptr noundef %7721, ptr noundef %7724, i32 noundef %7726) #11
  br label %7745

7728:                                             ; preds = %7706, %7699
  %7729 = load i32, ptr %167, align 4, !tbaa !5
  %7730 = call ptr @__errno_location() #12
  store i32 %7729, ptr %7730, align 4, !tbaa !5
  %7731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7732 = load i32, ptr @test_count, align 4, !tbaa !5
  %7733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7734 = load i32, ptr %7733, align 4, !tbaa !5
  %7735 = call ptr @s2n_strerror(i32 noundef %7734, ptr noundef @.str.4)
  %7736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7737 = load i32, ptr %7736, align 4, !tbaa !5
  %7738 = call ptr @s2n_strerror_debug(i32 noundef %7737, ptr noundef @.str.4)
  %7739 = call ptr @__errno_location() #12
  %7740 = load i32, ptr %7739, align 4, !tbaa !5
  %7741 = call ptr @strerror(i32 noundef %7740) #11
  %7742 = call ptr @__errno_location() #12
  %7743 = load i32, ptr %7742, align 4, !tbaa !5
  %7744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7731, ptr noundef @.str.5, i32 noundef %7732, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 354, ptr noundef %7735, ptr noundef %7738, ptr noundef %7741, i32 noundef %7743) #11
  br label %7745

7745:                                             ; preds = %7728, %7711
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #11
  br label %7746

7746:                                             ; preds = %7745
  br label %7747

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

7748:                                             ; No predecessors!
  br label %7749

7749:                                             ; preds = %7748
  br label %7750

7750:                                             ; preds = %7749, %7692
  br label %7751

7751:                                             ; preds = %7750
  br label %7752

7752:                                             ; preds = %7751
  br label %7753

7753:                                             ; preds = %7752, %7629
  %7754 = load i8, ptr %153, align 1, !tbaa !11, !range !13, !noundef !14
  %7755 = trunc i8 %7754 to i1
  br i1 %7755, label %7756, label %7915

7756:                                             ; preds = %7753
  %7757 = load i8, ptr %154, align 1, !tbaa !11, !range !13, !noundef !14
  %7758 = trunc i8 %7757 to i1
  br i1 %7758, label %7759, label %7915

7759:                                             ; preds = %7756
  br label %7760

7760:                                             ; preds = %7759
  br label %7761

7761:                                             ; preds = %7760
  %7762 = load i32, ptr @test_count, align 4, !tbaa !5
  %7763 = add nsw i32 %7762, 1
  store i32 %7763, ptr @test_count, align 4, !tbaa !5
  %7764 = load i64, ptr %155, align 8, !tbaa !15
  %7765 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %7764
  %7766 = getelementptr inbounds %struct.s2n_blob, ptr %7765, i32 0, i32 1
  %7767 = load i32, ptr %7766, align 8, !tbaa !50
  %7768 = load ptr, ptr %148, align 8, !tbaa !9
  %7769 = getelementptr inbounds %struct.s2n_connection, ptr %7768, i32 0, i32 83
  %7770 = getelementptr inbounds %struct.s2n_blob, ptr %7769, i32 0, i32 1
  %7771 = load i32, ptr %7770, align 8, !tbaa !51
  %7772 = icmp eq i32 %7767, %7771
  br i1 %7772, label %7826, label %7773

7773:                                             ; preds = %7761
  br label %7774

7774:                                             ; preds = %7773
  br label %7775

7775:                                             ; preds = %7774
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #11
  %7776 = call ptr @__errno_location() #12
  %7777 = load i32, ptr %7776, align 4, !tbaa !5
  store i32 %7777, ptr %168, align 4, !tbaa !5
  %7778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7779 = call i32 @s2n_print_stacktrace(ptr noundef %7778)
  %7780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7781 = trunc i8 %7780 to i1
  br i1 %7781, label %7782, label %7804

7782:                                             ; preds = %7775
  %7783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7784 = call i32 @fileno(ptr noundef %7783) #11
  %7785 = call i32 @isatty(i32 noundef %7784) #11
  %7786 = icmp ne i32 %7785, 0
  br i1 %7786, label %7787, label %7804

7787:                                             ; preds = %7782
  %7788 = load i32, ptr %168, align 4, !tbaa !5
  %7789 = call ptr @__errno_location() #12
  store i32 %7788, ptr %7789, align 4, !tbaa !5
  %7790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7791 = load i32, ptr @test_count, align 4, !tbaa !5
  %7792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7793 = load i32, ptr %7792, align 4, !tbaa !5
  %7794 = call ptr @s2n_strerror(i32 noundef %7793, ptr noundef @.str.4)
  %7795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7796 = load i32, ptr %7795, align 4, !tbaa !5
  %7797 = call ptr @s2n_strerror_debug(i32 noundef %7796, ptr noundef @.str.4)
  %7798 = call ptr @__errno_location() #12
  %7799 = load i32, ptr %7798, align 4, !tbaa !5
  %7800 = call ptr @strerror(i32 noundef %7799) #11
  %7801 = call ptr @__errno_location() #12
  %7802 = load i32, ptr %7801, align 4, !tbaa !5
  %7803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7790, ptr noundef @.str.2, i32 noundef %7791, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 359, ptr noundef %7794, ptr noundef %7797, ptr noundef %7800, i32 noundef %7802) #11
  br label %7821

7804:                                             ; preds = %7782, %7775
  %7805 = load i32, ptr %168, align 4, !tbaa !5
  %7806 = call ptr @__errno_location() #12
  store i32 %7805, ptr %7806, align 4, !tbaa !5
  %7807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7808 = load i32, ptr @test_count, align 4, !tbaa !5
  %7809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7810 = load i32, ptr %7809, align 4, !tbaa !5
  %7811 = call ptr @s2n_strerror(i32 noundef %7810, ptr noundef @.str.4)
  %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_debug(i32 noundef %7813, ptr noundef @.str.4)
  %7815 = call ptr @__errno_location() #12
  %7816 = load i32, ptr %7815, align 4, !tbaa !5
  %7817 = call ptr @strerror(i32 noundef %7816) #11
  %7818 = call ptr @__errno_location() #12
  %7819 = load i32, ptr %7818, align 4, !tbaa !5
  %7820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7807, ptr noundef @.str.5, i32 noundef %7808, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 359, ptr noundef %7811, ptr noundef %7814, ptr noundef %7817, i32 noundef %7819) #11
  br label %7821

7821:                                             ; preds = %7804, %7787
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #11
  br label %7822

7822:                                             ; preds = %7821
  br label %7823

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

7824:                                             ; No predecessors!
  br label %7825

7825:                                             ; preds = %7824
  br label %7826

7826:                                             ; preds = %7825, %7761
  br label %7827

7827:                                             ; preds = %7826
  br label %7828

7828:                                             ; preds = %7827
  br label %7829

7829:                                             ; preds = %7828
  %7830 = load i64, ptr %155, align 8, !tbaa !15
  %7831 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %7830
  %7832 = getelementptr inbounds %struct.s2n_blob, ptr %7831, i32 0, i32 1
  %7833 = load i32, ptr %7832, align 8, !tbaa !50
  %7834 = icmp ne i32 %7833, 0
  br i1 %7834, label %7835, label %7910

7835:                                             ; preds = %7829
  br label %7836

7836:                                             ; preds = %7835
  %7837 = load i32, ptr @test_count, align 4, !tbaa !5
  %7838 = add nsw i32 %7837, 1
  store i32 %7838, ptr @test_count, align 4, !tbaa !5
  %7839 = load i64, ptr %155, align 8, !tbaa !15
  %7840 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %7839
  %7841 = getelementptr inbounds %struct.s2n_blob, ptr %7840, i32 0, i32 0
  %7842 = load ptr, ptr %7841, align 8, !tbaa !52
  %7843 = load ptr, ptr %148, align 8, !tbaa !9
  %7844 = getelementptr inbounds %struct.s2n_connection, ptr %7843, i32 0, i32 83
  %7845 = getelementptr inbounds %struct.s2n_blob, ptr %7844, i32 0, i32 0
  %7846 = load ptr, ptr %7845, align 8, !tbaa !53
  %7847 = load i64, ptr %155, align 8, !tbaa !15
  %7848 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %7847
  %7849 = getelementptr inbounds %struct.s2n_blob, ptr %7848, i32 0, i32 1
  %7850 = load i32, ptr %7849, align 8, !tbaa !50
  %7851 = zext i32 %7850 to i64
  %7852 = call i32 @memcmp(ptr noundef %7842, ptr noundef %7846, i64 noundef %7851) #14
  %7853 = icmp eq i32 %7852, 0
  br i1 %7853, label %7907, label %7854

7854:                                             ; preds = %7836
  br label %7855

7855:                                             ; preds = %7854
  br label %7856

7856:                                             ; preds = %7855
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #11
  %7857 = call ptr @__errno_location() #12
  %7858 = load i32, ptr %7857, align 4, !tbaa !5
  store i32 %7858, ptr %169, align 4, !tbaa !5
  %7859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7860 = call i32 @s2n_print_stacktrace(ptr noundef %7859)
  %7861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7862 = trunc i8 %7861 to i1
  br i1 %7862, label %7863, label %7885

7863:                                             ; preds = %7856
  %7864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7865 = call i32 @fileno(ptr noundef %7864) #11
  %7866 = call i32 @isatty(i32 noundef %7865) #11
  %7867 = icmp ne i32 %7866, 0
  br i1 %7867, label %7868, label %7885

7868:                                             ; preds = %7863
  %7869 = load i32, ptr %169, align 4, !tbaa !5
  %7870 = call ptr @__errno_location() #12
  store i32 %7869, ptr %7870, align 4, !tbaa !5
  %7871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7872 = load i32, ptr @test_count, align 4, !tbaa !5
  %7873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7874 = load i32, ptr %7873, align 4, !tbaa !5
  %7875 = call ptr @s2n_strerror(i32 noundef %7874, ptr noundef @.str.4)
  %7876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7877 = load i32, ptr %7876, align 4, !tbaa !5
  %7878 = call ptr @s2n_strerror_debug(i32 noundef %7877, ptr noundef @.str.4)
  %7879 = call ptr @__errno_location() #12
  %7880 = load i32, ptr %7879, align 4, !tbaa !5
  %7881 = call ptr @strerror(i32 noundef %7880) #11
  %7882 = call ptr @__errno_location() #12
  %7883 = load i32, ptr %7882, align 4, !tbaa !5
  %7884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7871, ptr noundef @.str.2, i32 noundef %7872, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 359, ptr noundef %7875, ptr noundef %7878, ptr noundef %7881, i32 noundef %7883) #11
  br label %7902

7885:                                             ; preds = %7863, %7856
  %7886 = load i32, ptr %169, align 4, !tbaa !5
  %7887 = call ptr @__errno_location() #12
  store i32 %7886, ptr %7887, align 4, !tbaa !5
  %7888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7889 = load i32, ptr @test_count, align 4, !tbaa !5
  %7890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7891 = load i32, ptr %7890, align 4, !tbaa !5
  %7892 = call ptr @s2n_strerror(i32 noundef %7891, ptr noundef @.str.4)
  %7893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7894 = load i32, ptr %7893, align 4, !tbaa !5
  %7895 = call ptr @s2n_strerror_debug(i32 noundef %7894, ptr noundef @.str.4)
  %7896 = call ptr @__errno_location() #12
  %7897 = load i32, ptr %7896, align 4, !tbaa !5
  %7898 = call ptr @strerror(i32 noundef %7897) #11
  %7899 = call ptr @__errno_location() #12
  %7900 = load i32, ptr %7899, align 4, !tbaa !5
  %7901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7888, ptr noundef @.str.5, i32 noundef %7889, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 359, ptr noundef %7892, ptr noundef %7895, ptr noundef %7898, i32 noundef %7900) #11
  br label %7902

7902:                                             ; preds = %7885, %7868
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #11
  br label %7903

7903:                                             ; preds = %7902
  br label %7904

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

7905:                                             ; No predecessors!
  br label %7906

7906:                                             ; preds = %7905
  br label %7907

7907:                                             ; preds = %7906, %7836
  br label %7908

7908:                                             ; preds = %7907
  br label %7909

7909:                                             ; preds = %7908
  br label %7910

7910:                                             ; preds = %7909, %7829
  br label %7911

7911:                                             ; preds = %7910
  br label %7912

7912:                                             ; preds = %7911
  br label %7913

7913:                                             ; preds = %7912
  br label %7914

7914:                                             ; preds = %7913
  br label %7980

7915:                                             ; preds = %7756, %7753
  br label %7916

7916:                                             ; preds = %7915
  %7917 = load i32, ptr @test_count, align 4, !tbaa !5
  %7918 = add nsw i32 %7917, 1
  store i32 %7918, ptr @test_count, align 4, !tbaa !5
  %7919 = load ptr, ptr %148, align 8, !tbaa !9
  %7920 = getelementptr inbounds %struct.s2n_connection, ptr %7919, i32 0, i32 83
  %7921 = getelementptr inbounds %struct.s2n_blob, ptr %7920, i32 0, i32 1
  %7922 = load i32, ptr %7921, align 8, !tbaa !51
  %7923 = icmp eq i32 %7922, 0
  br i1 %7923, label %7977, label %7924

7924:                                             ; preds = %7916
  br label %7925

7925:                                             ; preds = %7924
  br label %7926

7926:                                             ; preds = %7925
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #11
  %7927 = call ptr @__errno_location() #12
  %7928 = load i32, ptr %7927, align 4, !tbaa !5
  store i32 %7928, ptr %170, align 4, !tbaa !5
  %7929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7930 = call i32 @s2n_print_stacktrace(ptr noundef %7929)
  %7931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7932 = trunc i8 %7931 to i1
  br i1 %7932, label %7933, label %7955

7933:                                             ; preds = %7926
  %7934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7935 = call i32 @fileno(ptr noundef %7934) #11
  %7936 = call i32 @isatty(i32 noundef %7935) #11
  %7937 = icmp ne i32 %7936, 0
  br i1 %7937, label %7938, label %7955

7938:                                             ; preds = %7933
  %7939 = load i32, ptr %170, align 4, !tbaa !5
  %7940 = call ptr @__errno_location() #12
  store i32 %7939, ptr %7940, align 4, !tbaa !5
  %7941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7942 = load i32, ptr @test_count, align 4, !tbaa !5
  %7943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7944 = load i32, ptr %7943, align 4, !tbaa !5
  %7945 = call ptr @s2n_strerror(i32 noundef %7944, ptr noundef @.str.4)
  %7946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7947 = load i32, ptr %7946, align 4, !tbaa !5
  %7948 = call ptr @s2n_strerror_debug(i32 noundef %7947, ptr noundef @.str.4)
  %7949 = call ptr @__errno_location() #12
  %7950 = load i32, ptr %7949, align 4, !tbaa !5
  %7951 = call ptr @strerror(i32 noundef %7950) #11
  %7952 = call ptr @__errno_location() #12
  %7953 = load i32, ptr %7952, align 4, !tbaa !5
  %7954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7941, ptr noundef @.str.2, i32 noundef %7942, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 361, ptr noundef %7945, ptr noundef %7948, ptr noundef %7951, i32 noundef %7953) #11
  br label %7972

7955:                                             ; preds = %7933, %7926
  %7956 = load i32, ptr %170, align 4, !tbaa !5
  %7957 = call ptr @__errno_location() #12
  store i32 %7956, ptr %7957, align 4, !tbaa !5
  %7958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7959 = load i32, ptr @test_count, align 4, !tbaa !5
  %7960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7961 = load i32, ptr %7960, align 4, !tbaa !5
  %7962 = call ptr @s2n_strerror(i32 noundef %7961, ptr noundef @.str.4)
  %7963 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7964 = load i32, ptr %7963, align 4, !tbaa !5
  %7965 = call ptr @s2n_strerror_debug(i32 noundef %7964, ptr noundef @.str.4)
  %7966 = call ptr @__errno_location() #12
  %7967 = load i32, ptr %7966, align 4, !tbaa !5
  %7968 = call ptr @strerror(i32 noundef %7967) #11
  %7969 = call ptr @__errno_location() #12
  %7970 = load i32, ptr %7969, align 4, !tbaa !5
  %7971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7958, ptr noundef @.str.5, i32 noundef %7959, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 361, ptr noundef %7962, ptr noundef %7965, ptr noundef %7968, i32 noundef %7970) #11
  br label %7972

7972:                                             ; preds = %7955, %7938
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #11
  br label %7973

7973:                                             ; preds = %7972
  br label %7974

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

7975:                                             ; No predecessors!
  br label %7976

7976:                                             ; preds = %7975
  br label %7977

7977:                                             ; preds = %7976, %7916
  br label %7978

7978:                                             ; preds = %7977
  br label %7979

7979:                                             ; preds = %7978
  br label %7980

7980:                                             ; preds = %7979, %7914
  %7981 = load i8, ptr %156, align 1, !tbaa !11, !range !13, !noundef !14
  %7982 = trunc i8 %7981 to i1
  br i1 %7982, label %7983, label %8108

7983:                                             ; preds = %7980
  br label %7984

7984:                                             ; preds = %7983
  %7985 = load i32, ptr @test_count, align 4, !tbaa !5
  %7986 = add nsw i32 %7985, 1
  store i32 %7986, ptr @test_count, align 4, !tbaa !5
  %7987 = load ptr, ptr %148, align 8, !tbaa !9
  %7988 = call i32 @s2n_connection_free_handshake(ptr noundef %7987)
  %7989 = icmp eq i32 %7988, -1
  br i1 %7989, label %7990, label %8043

7990:                                             ; preds = %7984
  br label %7991

7991:                                             ; preds = %7990
  br label %7992

7992:                                             ; preds = %7991
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #11
  %7993 = call ptr @__errno_location() #12
  %7994 = load i32, ptr %7993, align 4, !tbaa !5
  store i32 %7994, ptr %171, align 4, !tbaa !5
  %7995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7996 = call i32 @s2n_print_stacktrace(ptr noundef %7995)
  %7997 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7998 = trunc i8 %7997 to i1
  br i1 %7998, label %7999, label %8021

7999:                                             ; preds = %7992
  %8000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8001 = call i32 @fileno(ptr noundef %8000) #11
  %8002 = call i32 @isatty(i32 noundef %8001) #11
  %8003 = icmp ne i32 %8002, 0
  br i1 %8003, label %8004, label %8021

8004:                                             ; preds = %7999
  %8005 = load i32, ptr %171, align 4, !tbaa !5
  %8006 = call ptr @__errno_location() #12
  store i32 %8005, ptr %8006, align 4, !tbaa !5
  %8007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8008 = load i32, ptr @test_count, align 4, !tbaa !5
  %8009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8010 = load i32, ptr %8009, align 4, !tbaa !5
  %8011 = call ptr @s2n_strerror(i32 noundef %8010, ptr noundef @.str.4)
  %8012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8013 = load i32, ptr %8012, align 4, !tbaa !5
  %8014 = call ptr @s2n_strerror_debug(i32 noundef %8013, ptr noundef @.str.4)
  %8015 = call ptr @__errno_location() #12
  %8016 = load i32, ptr %8015, align 4, !tbaa !5
  %8017 = call ptr @strerror(i32 noundef %8016) #11
  %8018 = call ptr @__errno_location() #12
  %8019 = load i32, ptr %8018, align 4, !tbaa !5
  %8020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8007, ptr noundef @.str.2, i32 noundef %8008, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 365, ptr noundef %8011, ptr noundef %8014, ptr noundef %8017, i32 noundef %8019) #11
  br label %8038

8021:                                             ; preds = %7999, %7992
  %8022 = load i32, ptr %171, align 4, !tbaa !5
  %8023 = call ptr @__errno_location() #12
  store i32 %8022, ptr %8023, align 4, !tbaa !5
  %8024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8025 = load i32, ptr @test_count, align 4, !tbaa !5
  %8026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8027 = load i32, ptr %8026, align 4, !tbaa !5
  %8028 = call ptr @s2n_strerror(i32 noundef %8027, ptr noundef @.str.4)
  %8029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8030 = load i32, ptr %8029, align 4, !tbaa !5
  %8031 = call ptr @s2n_strerror_debug(i32 noundef %8030, ptr noundef @.str.4)
  %8032 = call ptr @__errno_location() #12
  %8033 = load i32, ptr %8032, align 4, !tbaa !5
  %8034 = call ptr @strerror(i32 noundef %8033) #11
  %8035 = call ptr @__errno_location() #12
  %8036 = load i32, ptr %8035, align 4, !tbaa !5
  %8037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8024, ptr noundef @.str.5, i32 noundef %8025, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 365, ptr noundef %8028, ptr noundef %8031, ptr noundef %8034, i32 noundef %8036) #11
  br label %8038

8038:                                             ; preds = %8021, %8004
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #11
  br label %8039

8039:                                             ; preds = %8038
  br label %8040

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

8041:                                             ; No predecessors!
  br label %8042

8042:                                             ; preds = %8041
  br label %8043

8043:                                             ; preds = %8042, %7984
  br label %8044

8044:                                             ; preds = %8043
  br label %8045

8045:                                             ; preds = %8044
  br label %8046

8046:                                             ; preds = %8045
  %8047 = load i32, ptr @test_count, align 4, !tbaa !5
  %8048 = add nsw i32 %8047, 1
  store i32 %8048, ptr @test_count, align 4, !tbaa !5
  %8049 = load ptr, ptr %145, align 8, !tbaa !9
  %8050 = call i32 @s2n_connection_free_handshake(ptr noundef %8049)
  %8051 = icmp eq i32 %8050, -1
  br i1 %8051, label %8052, label %8105

8052:                                             ; preds = %8046
  br label %8053

8053:                                             ; preds = %8052
  br label %8054

8054:                                             ; preds = %8053
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #11
  %8055 = call ptr @__errno_location() #12
  %8056 = load i32, ptr %8055, align 4, !tbaa !5
  store i32 %8056, ptr %172, align 4, !tbaa !5
  %8057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8058 = call i32 @s2n_print_stacktrace(ptr noundef %8057)
  %8059 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8060 = trunc i8 %8059 to i1
  br i1 %8060, label %8061, label %8083

8061:                                             ; preds = %8054
  %8062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8063 = call i32 @fileno(ptr noundef %8062) #11
  %8064 = call i32 @isatty(i32 noundef %8063) #11
  %8065 = icmp ne i32 %8064, 0
  br i1 %8065, label %8066, label %8083

8066:                                             ; preds = %8061
  %8067 = load i32, ptr %172, align 4, !tbaa !5
  %8068 = call ptr @__errno_location() #12
  store i32 %8067, ptr %8068, align 4, !tbaa !5
  %8069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8070 = load i32, ptr @test_count, align 4, !tbaa !5
  %8071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8072 = load i32, ptr %8071, align 4, !tbaa !5
  %8073 = call ptr @s2n_strerror(i32 noundef %8072, ptr noundef @.str.4)
  %8074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8075 = load i32, ptr %8074, align 4, !tbaa !5
  %8076 = call ptr @s2n_strerror_debug(i32 noundef %8075, ptr noundef @.str.4)
  %8077 = call ptr @__errno_location() #12
  %8078 = load i32, ptr %8077, align 4, !tbaa !5
  %8079 = call ptr @strerror(i32 noundef %8078) #11
  %8080 = call ptr @__errno_location() #12
  %8081 = load i32, ptr %8080, align 4, !tbaa !5
  %8082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8069, ptr noundef @.str.2, i32 noundef %8070, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 366, ptr noundef %8073, ptr noundef %8076, ptr noundef %8079, i32 noundef %8081) #11
  br label %8100

8083:                                             ; preds = %8061, %8054
  %8084 = load i32, ptr %172, align 4, !tbaa !5
  %8085 = call ptr @__errno_location() #12
  store i32 %8084, ptr %8085, align 4, !tbaa !5
  %8086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8087 = load i32, ptr @test_count, align 4, !tbaa !5
  %8088 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8089 = load i32, ptr %8088, align 4, !tbaa !5
  %8090 = call ptr @s2n_strerror(i32 noundef %8089, ptr noundef @.str.4)
  %8091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8092 = load i32, ptr %8091, align 4, !tbaa !5
  %8093 = call ptr @s2n_strerror_debug(i32 noundef %8092, ptr noundef @.str.4)
  %8094 = call ptr @__errno_location() #12
  %8095 = load i32, ptr %8094, align 4, !tbaa !5
  %8096 = call ptr @strerror(i32 noundef %8095) #11
  %8097 = call ptr @__errno_location() #12
  %8098 = load i32, ptr %8097, align 4, !tbaa !5
  %8099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8086, ptr noundef @.str.5, i32 noundef %8087, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 366, ptr noundef %8090, ptr noundef %8093, ptr noundef %8096, i32 noundef %8098) #11
  br label %8100

8100:                                             ; preds = %8083, %8066
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #11
  br label %8101

8101:                                             ; preds = %8100
  br label %8102

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

8103:                                             ; No predecessors!
  br label %8104

8104:                                             ; preds = %8103
  br label %8105

8105:                                             ; preds = %8104, %8046
  br label %8106

8106:                                             ; preds = %8105
  br label %8107

8107:                                             ; preds = %8106
  br label %8108

8108:                                             ; preds = %8107, %7980
  br label %8109

8109:                                             ; preds = %8108
  %8110 = load i32, ptr @test_count, align 4, !tbaa !5
  %8111 = add nsw i32 %8110, 1
  store i32 %8111, ptr @test_count, align 4, !tbaa !5
  %8112 = load ptr, ptr %145, align 8, !tbaa !9
  %8113 = load ptr, ptr %148, align 8, !tbaa !9
  %8114 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef %8112, ptr noundef %8113)
  %8115 = icmp eq i32 %8114, -1
  br i1 %8115, label %8116, label %8169

8116:                                             ; preds = %8109
  br label %8117

8117:                                             ; preds = %8116
  br label %8118

8118:                                             ; preds = %8117
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #11
  %8119 = call ptr @__errno_location() #12
  %8120 = load i32, ptr %8119, align 4, !tbaa !5
  store i32 %8120, ptr %173, align 4, !tbaa !5
  %8121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8122 = call i32 @s2n_print_stacktrace(ptr noundef %8121)
  %8123 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8124 = trunc i8 %8123 to i1
  br i1 %8124, label %8125, label %8147

8125:                                             ; preds = %8118
  %8126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8127 = call i32 @fileno(ptr noundef %8126) #11
  %8128 = call i32 @isatty(i32 noundef %8127) #11
  %8129 = icmp ne i32 %8128, 0
  br i1 %8129, label %8130, label %8147

8130:                                             ; preds = %8125
  %8131 = load i32, ptr %173, align 4, !tbaa !5
  %8132 = call ptr @__errno_location() #12
  store i32 %8131, ptr %8132, align 4, !tbaa !5
  %8133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8134 = load i32, ptr @test_count, align 4, !tbaa !5
  %8135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8136 = load i32, ptr %8135, align 4, !tbaa !5
  %8137 = call ptr @s2n_strerror(i32 noundef %8136, ptr noundef @.str.4)
  %8138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8139 = load i32, ptr %8138, align 4, !tbaa !5
  %8140 = call ptr @s2n_strerror_debug(i32 noundef %8139, ptr noundef @.str.4)
  %8141 = call ptr @__errno_location() #12
  %8142 = load i32, ptr %8141, align 4, !tbaa !5
  %8143 = call ptr @strerror(i32 noundef %8142) #11
  %8144 = call ptr @__errno_location() #12
  %8145 = load i32, ptr %8144, align 4, !tbaa !5
  %8146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8133, ptr noundef @.str.2, i32 noundef %8134, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 369, ptr noundef %8137, ptr noundef %8140, ptr noundef %8143, i32 noundef %8145) #11
  br label %8164

8147:                                             ; preds = %8125, %8118
  %8148 = load i32, ptr %173, align 4, !tbaa !5
  %8149 = call ptr @__errno_location() #12
  store i32 %8148, ptr %8149, align 4, !tbaa !5
  %8150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8151 = load i32, ptr @test_count, align 4, !tbaa !5
  %8152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8153 = load i32, ptr %8152, align 4, !tbaa !5
  %8154 = call ptr @s2n_strerror(i32 noundef %8153, ptr noundef @.str.4)
  %8155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8156 = load i32, ptr %8155, align 4, !tbaa !5
  %8157 = call ptr @s2n_strerror_debug(i32 noundef %8156, ptr noundef @.str.4)
  %8158 = call ptr @__errno_location() #12
  %8159 = load i32, ptr %8158, align 4, !tbaa !5
  %8160 = call ptr @strerror(i32 noundef %8159) #11
  %8161 = call ptr @__errno_location() #12
  %8162 = load i32, ptr %8161, align 4, !tbaa !5
  %8163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8150, ptr noundef @.str.5, i32 noundef %8151, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 369, ptr noundef %8154, ptr noundef %8157, ptr noundef %8160, i32 noundef %8162) #11
  br label %8164

8164:                                             ; preds = %8147, %8130
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #11
  br label %8165

8165:                                             ; preds = %8164
  br label %8166

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

8167:                                             ; No predecessors!
  br label %8168

8168:                                             ; preds = %8167
  br label %8169

8169:                                             ; preds = %8168, %8109
  br label %8170

8170:                                             ; preds = %8169
  br label %8171

8171:                                             ; preds = %8170
  br label %8172

8172:                                             ; preds = %8171
  %8173 = load i32, ptr @test_count, align 4, !tbaa !5
  %8174 = add nsw i32 %8173, 1
  store i32 %8174, ptr @test_count, align 4, !tbaa !5
  %8175 = call i32 @s2n_io_pair_close(ptr noundef %159)
  %8176 = icmp eq i32 %8175, -1
  br i1 %8176, label %8177, label %8230

8177:                                             ; preds = %8172
  br label %8178

8178:                                             ; preds = %8177
  br label %8179

8179:                                             ; preds = %8178
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #11
  %8180 = call ptr @__errno_location() #12
  %8181 = load i32, ptr %8180, align 4, !tbaa !5
  store i32 %8181, ptr %174, align 4, !tbaa !5
  %8182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8183 = call i32 @s2n_print_stacktrace(ptr noundef %8182)
  %8184 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8185 = trunc i8 %8184 to i1
  br i1 %8185, label %8186, label %8208

8186:                                             ; preds = %8179
  %8187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8188 = call i32 @fileno(ptr noundef %8187) #11
  %8189 = call i32 @isatty(i32 noundef %8188) #11
  %8190 = icmp ne i32 %8189, 0
  br i1 %8190, label %8191, label %8208

8191:                                             ; preds = %8186
  %8192 = load i32, ptr %174, align 4, !tbaa !5
  %8193 = call ptr @__errno_location() #12
  store i32 %8192, ptr %8193, align 4, !tbaa !5
  %8194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8195 = load i32, ptr @test_count, align 4, !tbaa !5
  %8196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8197 = load i32, ptr %8196, align 4, !tbaa !5
  %8198 = call ptr @s2n_strerror(i32 noundef %8197, ptr noundef @.str.4)
  %8199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8200 = load i32, ptr %8199, align 4, !tbaa !5
  %8201 = call ptr @s2n_strerror_debug(i32 noundef %8200, ptr noundef @.str.4)
  %8202 = call ptr @__errno_location() #12
  %8203 = load i32, ptr %8202, align 4, !tbaa !5
  %8204 = call ptr @strerror(i32 noundef %8203) #11
  %8205 = call ptr @__errno_location() #12
  %8206 = load i32, ptr %8205, align 4, !tbaa !5
  %8207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8194, ptr noundef @.str.2, i32 noundef %8195, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 370, ptr noundef %8198, ptr noundef %8201, ptr noundef %8204, i32 noundef %8206) #11
  br label %8225

8208:                                             ; preds = %8186, %8179
  %8209 = load i32, ptr %174, align 4, !tbaa !5
  %8210 = call ptr @__errno_location() #12
  store i32 %8209, ptr %8210, align 4, !tbaa !5
  %8211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8212 = load i32, ptr @test_count, align 4, !tbaa !5
  %8213 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8214 = load i32, ptr %8213, align 4, !tbaa !5
  %8215 = call ptr @s2n_strerror(i32 noundef %8214, ptr noundef @.str.4)
  %8216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8217 = load i32, ptr %8216, align 4, !tbaa !5
  %8218 = call ptr @s2n_strerror_debug(i32 noundef %8217, ptr noundef @.str.4)
  %8219 = call ptr @__errno_location() #12
  %8220 = load i32, ptr %8219, align 4, !tbaa !5
  %8221 = call ptr @strerror(i32 noundef %8220) #11
  %8222 = call ptr @__errno_location() #12
  %8223 = load i32, ptr %8222, align 4, !tbaa !5
  %8224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8211, ptr noundef @.str.5, i32 noundef %8212, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 370, ptr noundef %8215, ptr noundef %8218, ptr noundef %8221, i32 noundef %8223) #11
  br label %8225

8225:                                             ; preds = %8208, %8191
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #11
  br label %8226

8226:                                             ; preds = %8225
  br label %8227

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

8228:                                             ; No predecessors!
  br label %8229

8229:                                             ; preds = %8228
  br label %8230

8230:                                             ; preds = %8229, %8172
  br label %8231

8231:                                             ; preds = %8230
  br label %8232

8232:                                             ; preds = %8231
  call void @llvm.lifetime.end.p0(i64 8, ptr %159) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %156) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %155) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %154) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %153) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %152) #11
  br label %8233

8233:                                             ; preds = %8232
  %8234 = load i64, ptr %151, align 8, !tbaa !15
  %8235 = add i64 %8234, 1
  store i64 %8235, ptr %151, align 8, !tbaa !15
  br label %7099, !llvm.loop !60

8236:                                             ; preds = %7102
  %8237 = call i32 @s2n_connection_ptr_free(ptr noundef %148)
  %8238 = getelementptr inbounds %struct.s2n_result, ptr %175, i32 0, i32 0
  store i32 %8237, ptr %8238, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #11
  %8239 = call i32 @s2n_connection_ptr_free(ptr noundef %145)
  %8240 = getelementptr inbounds %struct.s2n_result, ptr %176, i32 0, i32 0
  store i32 %8239, ptr %8240, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %145) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %177) #11
  store i64 0, ptr %177, align 8, !tbaa !15
  br label %8241

8241:                                             ; preds = %8309, %8236
  %8242 = load i64, ptr %177, align 8, !tbaa !15
  %8243 = icmp ult i64 %8242, 5
  br i1 %8243, label %8245, label %8244

8244:                                             ; preds = %8241
  call void @llvm.lifetime.end.p0(i64 8, ptr %177) #11
  br label %8312

8245:                                             ; preds = %8241
  br label %8246

8246:                                             ; preds = %8245
  %8247 = load i32, ptr @test_count, align 4, !tbaa !5
  %8248 = add nsw i32 %8247, 1
  store i32 %8248, ptr @test_count, align 4, !tbaa !5
  %8249 = load i64, ptr %177, align 8, !tbaa !15
  %8250 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %8, i64 0, i64 %8249
  %8251 = call i32 @s2n_free(ptr noundef %8250)
  %8252 = icmp eq i32 %8251, -1
  br i1 %8252, label %8253, label %8306

8253:                                             ; preds = %8246
  br label %8254

8254:                                             ; preds = %8253
  br label %8255

8255:                                             ; preds = %8254
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #11
  %8256 = call ptr @__errno_location() #12
  %8257 = load i32, ptr %8256, align 4, !tbaa !5
  store i32 %8257, ptr %178, align 4, !tbaa !5
  %8258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8259 = call i32 @s2n_print_stacktrace(ptr noundef %8258)
  %8260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8261 = trunc i8 %8260 to i1
  br i1 %8261, label %8262, label %8284

8262:                                             ; preds = %8255
  %8263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8264 = call i32 @fileno(ptr noundef %8263) #11
  %8265 = call i32 @isatty(i32 noundef %8264) #11
  %8266 = icmp ne i32 %8265, 0
  br i1 %8266, label %8267, label %8284

8267:                                             ; preds = %8262
  %8268 = load i32, ptr %178, align 4, !tbaa !5
  %8269 = call ptr @__errno_location() #12
  store i32 %8268, ptr %8269, align 4, !tbaa !5
  %8270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8271 = load i32, ptr @test_count, align 4, !tbaa !5
  %8272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8273 = load i32, ptr %8272, align 4, !tbaa !5
  %8274 = call ptr @s2n_strerror(i32 noundef %8273, ptr noundef @.str.4)
  %8275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8276 = load i32, ptr %8275, align 4, !tbaa !5
  %8277 = call ptr @s2n_strerror_debug(i32 noundef %8276, ptr noundef @.str.4)
  %8278 = call ptr @__errno_location() #12
  %8279 = load i32, ptr %8278, align 4, !tbaa !5
  %8280 = call ptr @strerror(i32 noundef %8279) #11
  %8281 = call ptr @__errno_location() #12
  %8282 = load i32, ptr %8281, align 4, !tbaa !5
  %8283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8270, ptr noundef @.str.2, i32 noundef %8271, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 375, ptr noundef %8274, ptr noundef %8277, ptr noundef %8280, i32 noundef %8282) #11
  br label %8301

8284:                                             ; preds = %8262, %8255
  %8285 = load i32, ptr %178, align 4, !tbaa !5
  %8286 = call ptr @__errno_location() #12
  store i32 %8285, ptr %8286, align 4, !tbaa !5
  %8287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8288 = load i32, ptr @test_count, align 4, !tbaa !5
  %8289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8290 = load i32, ptr %8289, align 4, !tbaa !5
  %8291 = call ptr @s2n_strerror(i32 noundef %8290, ptr noundef @.str.4)
  %8292 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8293 = load i32, ptr %8292, align 4, !tbaa !5
  %8294 = call ptr @s2n_strerror_debug(i32 noundef %8293, ptr noundef @.str.4)
  %8295 = call ptr @__errno_location() #12
  %8296 = load i32, ptr %8295, align 4, !tbaa !5
  %8297 = call ptr @strerror(i32 noundef %8296) #11
  %8298 = call ptr @__errno_location() #12
  %8299 = load i32, ptr %8298, align 4, !tbaa !5
  %8300 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8287, ptr noundef @.str.5, i32 noundef %8288, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 375, ptr noundef %8291, ptr noundef %8294, ptr noundef %8297, i32 noundef %8299) #11
  br label %8301

8301:                                             ; preds = %8284, %8267
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #11
  br label %8302

8302:                                             ; preds = %8301
  br label %8303

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

8304:                                             ; No predecessors!
  br label %8305

8305:                                             ; preds = %8304
  br label %8306

8306:                                             ; preds = %8305, %8246
  br label %8307

8307:                                             ; preds = %8306
  br label %8308

8308:                                             ; preds = %8307
  br label %8309

8309:                                             ; preds = %8308
  %8310 = load i64, ptr %177, align 8, !tbaa !15
  %8311 = add i64 %8310, 1
  store i64 %8311, ptr %177, align 8, !tbaa !15
  br label %8241, !llvm.loop !61

8312:                                             ; preds = %8244
  br label %8313

8313:                                             ; preds = %8312
  br label %8314

8314:                                             ; preds = %8313
  %8315 = call i32 @s2n_cleanup()
  %8316 = icmp eq i32 %8315, -1
  br i1 %8316, label %8317, label %8370

8317:                                             ; preds = %8314
  br label %8318

8318:                                             ; preds = %8317
  br label %8319

8319:                                             ; preds = %8318
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #11
  %8320 = call ptr @__errno_location() #12
  %8321 = load i32, ptr %8320, align 4, !tbaa !5
  store i32 %8321, ptr %179, align 4, !tbaa !5
  %8322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8323 = call i32 @s2n_print_stacktrace(ptr noundef %8322)
  %8324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8325 = trunc i8 %8324 to i1
  br i1 %8325, label %8326, label %8348

8326:                                             ; preds = %8319
  %8327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8328 = call i32 @fileno(ptr noundef %8327) #11
  %8329 = call i32 @isatty(i32 noundef %8328) #11
  %8330 = icmp ne i32 %8329, 0
  br i1 %8330, label %8331, label %8348

8331:                                             ; preds = %8326
  %8332 = load i32, ptr %179, align 4, !tbaa !5
  %8333 = call ptr @__errno_location() #12
  store i32 %8332, ptr %8333, align 4, !tbaa !5
  %8334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8335 = load i32, ptr @test_count, align 4, !tbaa !5
  %8336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8337 = load i32, ptr %8336, align 4, !tbaa !5
  %8338 = call ptr @s2n_strerror(i32 noundef %8337, ptr noundef @.str.4)
  %8339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8340 = load i32, ptr %8339, align 4, !tbaa !5
  %8341 = call ptr @s2n_strerror_debug(i32 noundef %8340, ptr noundef @.str.4)
  %8342 = call ptr @__errno_location() #12
  %8343 = load i32, ptr %8342, align 4, !tbaa !5
  %8344 = call ptr @strerror(i32 noundef %8343) #11
  %8345 = call ptr @__errno_location() #12
  %8346 = load i32, ptr %8345, align 4, !tbaa !5
  %8347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8334, ptr noundef @.str.2, i32 noundef %8335, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 377, ptr noundef %8338, ptr noundef %8341, ptr noundef %8344, i32 noundef %8346) #11
  br label %8365

8348:                                             ; preds = %8326, %8319
  %8349 = load i32, ptr %179, align 4, !tbaa !5
  %8350 = call ptr @__errno_location() #12
  store i32 %8349, ptr %8350, align 4, !tbaa !5
  %8351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8352 = load i32, ptr @test_count, align 4, !tbaa !5
  %8353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8354 = load i32, ptr %8353, align 4, !tbaa !5
  %8355 = call ptr @s2n_strerror(i32 noundef %8354, ptr noundef @.str.4)
  %8356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8357 = load i32, ptr %8356, align 4, !tbaa !5
  %8358 = call ptr @s2n_strerror_debug(i32 noundef %8357, ptr noundef @.str.4)
  %8359 = call ptr @__errno_location() #12
  %8360 = load i32, ptr %8359, align 4, !tbaa !5
  %8361 = call ptr @strerror(i32 noundef %8360) #11
  %8362 = call ptr @__errno_location() #12
  %8363 = load i32, ptr %8362, align 4, !tbaa !5
  %8364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8351, ptr noundef @.str.5, i32 noundef %8352, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 377, ptr noundef %8355, ptr noundef %8358, ptr noundef %8361, i32 noundef %8363) #11
  br label %8365

8365:                                             ; preds = %8348, %8331
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #11
  br label %8366

8366:                                             ; preds = %8365
  br label %8367

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

8368:                                             ; No predecessors!
  br label %8369

8369:                                             ; preds = %8368
  br label %8370

8370:                                             ; preds = %8369, %8314
  br label %8371

8371:                                             ; preds = %8370
  br label %8372

8372:                                             ; preds = %8371
  br label %8373

8373:                                             ; preds = %8372
  br label %8374

8374:                                             ; preds = %8373
  %8375 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %8376 = icmp eq i32 %8375, -1
  br i1 %8376, label %8377, label %8430

8377:                                             ; preds = %8374
  br label %8378

8378:                                             ; preds = %8377
  br label %8379

8379:                                             ; preds = %8378
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #11
  %8380 = call ptr @__errno_location() #12
  %8381 = load i32, ptr %8380, align 4, !tbaa !5
  store i32 %8381, ptr %180, align 4, !tbaa !5
  %8382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8383 = call i32 @s2n_print_stacktrace(ptr noundef %8382)
  %8384 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8385 = trunc i8 %8384 to i1
  br i1 %8385, label %8386, label %8408

8386:                                             ; preds = %8379
  %8387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8388 = call i32 @fileno(ptr noundef %8387) #11
  %8389 = call i32 @isatty(i32 noundef %8388) #11
  %8390 = icmp ne i32 %8389, 0
  br i1 %8390, label %8391, label %8408

8391:                                             ; preds = %8386
  %8392 = load i32, ptr %180, align 4, !tbaa !5
  %8393 = call ptr @__errno_location() #12
  store i32 %8392, ptr %8393, align 4, !tbaa !5
  %8394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8395 = load i32, ptr @test_count, align 4, !tbaa !5
  %8396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8397 = load i32, ptr %8396, align 4, !tbaa !5
  %8398 = call ptr @s2n_strerror(i32 noundef %8397, ptr noundef @.str.4)
  %8399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8400 = load i32, ptr %8399, align 4, !tbaa !5
  %8401 = call ptr @s2n_strerror_debug(i32 noundef %8400, ptr noundef @.str.4)
  %8402 = call ptr @__errno_location() #12
  %8403 = load i32, ptr %8402, align 4, !tbaa !5
  %8404 = call ptr @strerror(i32 noundef %8403) #11
  %8405 = call ptr @__errno_location() #12
  %8406 = load i32, ptr %8405, align 4, !tbaa !5
  %8407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8394, ptr noundef @.str.2, i32 noundef %8395, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 377, ptr noundef %8398, ptr noundef %8401, ptr noundef %8404, i32 noundef %8406) #11
  br label %8425

8408:                                             ; preds = %8386, %8379
  %8409 = load i32, ptr %180, align 4, !tbaa !5
  %8410 = call ptr @__errno_location() #12
  store i32 %8409, ptr %8410, align 4, !tbaa !5
  %8411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8412 = load i32, ptr @test_count, align 4, !tbaa !5
  %8413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8414 = load i32, ptr %8413, align 4, !tbaa !5
  %8415 = call ptr @s2n_strerror(i32 noundef %8414, ptr noundef @.str.4)
  %8416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8417 = load i32, ptr %8416, align 4, !tbaa !5
  %8418 = call ptr @s2n_strerror_debug(i32 noundef %8417, ptr noundef @.str.4)
  %8419 = call ptr @__errno_location() #12
  %8420 = load i32, ptr %8419, align 4, !tbaa !5
  %8421 = call ptr @strerror(i32 noundef %8420) #11
  %8422 = call ptr @__errno_location() #12
  %8423 = load i32, ptr %8422, align 4, !tbaa !5
  %8424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8411, ptr noundef @.str.5, i32 noundef %8412, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 377, ptr noundef %8415, ptr noundef %8418, ptr noundef %8421, i32 noundef %8423) #11
  br label %8425

8425:                                             ; preds = %8408, %8391
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #11
  br label %8426

8426:                                             ; preds = %8425
  br label %8427

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

8428:                                             ; No predecessors!
  br label %8429

8429:                                             ; preds = %8428
  br label %8430

8430:                                             ; preds = %8429, %8374
  br label %8431

8431:                                             ; preds = %8430
  br label %8432

8432:                                             ; preds = %8431
  %8433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8434 = trunc i8 %8433 to i1
  br i1 %8434, label %8435, label %8451

8435:                                             ; preds = %8432
  %8436 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8437 = call i32 @fileno(ptr noundef %8436) #11
  %8438 = call i32 @isatty(i32 noundef %8437) #11
  %8439 = icmp ne i32 %8438, 0
  br i1 %8439, label %8440, label %8451

8440:                                             ; preds = %8435
  %8441 = load i32, ptr @test_count, align 4, !tbaa !5
  %8442 = icmp ne i32 %8441, 0
  br i1 %8442, label %8443, label %8447

8443:                                             ; preds = %8440
  %8444 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8445 = load i32, ptr @test_count, align 4, !tbaa !5
  %8446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8444, ptr noundef @.str.10, i32 noundef %8445) #11
  br label %8450

8447:                                             ; preds = %8440
  %8448 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8448, ptr noundef @.str.11) #11
  br label %8450

8450:                                             ; preds = %8447, %8443
  br label %8462

8451:                                             ; preds = %8435, %8432
  %8452 = load i32, ptr @test_count, align 4, !tbaa !5
  %8453 = icmp ne i32 %8452, 0
  br i1 %8453, label %8454, label %8458

8454:                                             ; preds = %8451
  %8455 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8456 = load i32, ptr @test_count, align 4, !tbaa !5
  %8457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8455, ptr noundef @.str.12, i32 noundef %8456) #11
  br label %8461

8458:                                             ; preds = %8451
  %8459 = load ptr, ptr @stdout, align 8, !tbaa !9
  %8460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8459, ptr noundef @.str.13) #11
  br label %8461

8461:                                             ; preds = %8458, %8454
  br label %8462

8462:                                             ; preds = %8461, %8450
  store i32 0, ptr %1, align 4
  store i32 1, ptr %181, align 4
  br label %8467

8463:                                             ; No predecessors!
  br label %8464

8464:                                             ; preds = %8463
  br label %8465

8465:                                             ; preds = %8464
  br label %8466

8466:                                             ; preds = %8465
  store i32 0, ptr %181, align 4
  br label %8467

8467:                                             ; preds = %8466, %8462
  %8468 = call i32 @s2n_config_ptr_free(ptr noundef %69)
  %8469 = getelementptr inbounds %struct.s2n_result, ptr %182, i32 0, i32 0
  store i32 %8468, ptr %8469, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #11
  %8470 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %67)
  %8471 = getelementptr inbounds %struct.s2n_result, ptr %183, i32 0, i32 0
  store i32 %8470, ptr %8471, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #11
  call void @llvm.lifetime.end.p0(i64 120, ptr %8) #11
  call void @llvm.lifetime.end.p0(i64 10, ptr %7) #11
  %8472 = load i32, ptr %181, align 4
  switch i32 %8472, label %8475 [
    i32 0, label %8473
    i32 1, label %8473
  ]

8473:                                             ; preds = %8467, %8467, %507
  %8474 = load i32, ptr %1, align 4
  ret i32 %8474

8475:                                             ; preds = %8467
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) #2

declare i32 @s2n_cleanup() #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: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #8

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

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

declare i32 @s2n_get_public_random_data(ptr noundef) #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

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

declare i32 @s2n_stuffer_free(ptr noundef) #2

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

declare void @s2n_debug_info_reset() #2

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #10

declare i32 @s2n_free(ptr noundef) #2

declare i32 @s2n_stuffer_reread(ptr noundef) #2

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #2

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

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

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

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

declare i32 @s2n_config_disable_x509_verification(ptr noundef) #2

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

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

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #2

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

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

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

declare i32 @s2n_conn_get_current_message_type(ptr noundef) #2

declare zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef, i32 noundef) #2

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

declare i32 @s2n_io_pair_close(ptr noundef) #2

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

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

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

declare i32 @s2n_connection_wipe(ptr noundef) #2

declare zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef) #2

declare i32 @s2n_connection_free_handshake(ptr noundef) #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #9 = { 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 #10 = { 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 #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, !18, i64 0}
!18 = !{!"short", !7, i64 0}
!19 = distinct !{!19, !20}
!20 = !{!"llvm.loop.mustprogress"}
!21 = !{!22, !10, i64 24}
!22 = !{!"", !18, i64 0, !6, i64 2, !18, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!23 = !{!22, !10, i64 8}
!24 = !{!22, !10, i64 16}
!25 = !{!26, !6, i64 2172}
!26 = !{!"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, !27, 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, !28, i64 240, !10, i64 632, !10, i64 640, !29, i64 648, !35, i64 1144, !38, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !40, i64 1776, !40, i64 1816, !40, i64 1856, !40, i64 1896, !6, i64 1936, !16, i64 1944, !7, i64 1952, !40, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !41, i64 2004, !41, i64 2008, !42, i64 2016, !18, i64 2208, !6, i64 2212, !18, i64 2216, !16, i64 2224, !7, i64 2232, !16, i64 2240, !16, i64 2248, !16, i64 2256, !41, i64 2264, !41, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !34, i64 2792, !6, i64 2816, !34, i64 2824, !34, i64 2848, !34, i64 2872, !44, i64 2896, !46, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !34, i64 3784, !6, i64 3808, !48, i64 3816, !7, i64 3848, !40, i64 3992, !34, i64 4032, !34, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !18, i64 4084, !18, i64 4086, !6, i64 4088, !6, i64 4092, !34, i64 4096, !6, i64 4120, !49, i64 4128, !41, i64 4176, !7, i64 4180, !7, i64 4181}
!27 = !{!"s2n_timer", !16, i64 0}
!28 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!29 = !{!"s2n_kex_parameters", !30, i64 0, !31, i64 8, !7, i64 24, !31, i64 56, !32, i64 72, !32, i64 184, !7, i64 296, !33, i64 360, !34, i64 448, !34, i64 472}
!30 = !{!"s2n_dh_params", !10, i64 0}
!31 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!32 = !{!"s2n_kem_group_params", !10, i64 0, !33, i64 8, !31, i64 96}
!33 = !{!"s2n_kem_params", !10, i64 0, !34, i64 8, !34, i64 32, !34, i64 56, !12, i64 80}
!34 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!35 = !{!"s2n_handshake_parameters", !36, i64 0, !36, i64 48, !34, i64 96, !6, i64 120, !37, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!36 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!37 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!38 = !{!"s2n_psk_parameters", !6, i64 0, !39, i64 8, !18, i64 40, !18, i64 42, !10, i64 48, !6, i64 56}
!39 = !{!"s2n_array", !34, i64 0, !6, i64 24, !6, i64 28}
!40 = !{!"s2n_stuffer", !34, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!41 = !{!"", !6, i64 0}
!42 = !{!"s2n_handshake", !40, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !43, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!43 = !{!"s2n_offered_early_data", !10, i64 0}
!44 = !{!"s2n_client_hello", !34, i64 0, !45, i64 24, !34, i64 728, !34, i64 752, !34, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!45 = !{!"", !7, i64 0, !34, i64 672, !18, i64 696}
!46 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !18, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !47, i64 48, !12, i64 52}
!47 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!48 = !{!"s2n_ticket_fields", !34, i64 0, !6, i64 24}
!49 = !{!"s2n_post_handshake", !40, i64 0, !7, i64 40}
!50 = !{!34, !6, i64 8}
!51 = !{!26, !6, i64 4064}
!52 = !{!34, !10, i64 0}
!53 = !{!26, !10, i64 4056}
!54 = distinct !{!54, !20}
!55 = !{!7, !7, i64 0}
!56 = distinct !{!56, !20}
!57 = distinct !{!57, !20}
!58 = !{!26, !10, i64 16}
!59 = distinct !{!59, !20}
!60 = distinct !{!60, !20}
!61 = distinct !{!61, !20}


; 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_security_policy = type { i8, ptr, ptr, ptr, ptr, ptr, ptr, i8, [2 x i8] }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_test_io_pair = type { i32, i32 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [74 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [25 x i8], align 1
@__const.main.test_cookie_sizes = external hidden unnamed_addr constant [5 x i16], align 2
@.str.14 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [46 x i8], align 1
@s2n_client_cookie_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.17 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [46 x i8], align 1
@s2n_server_cookie_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.21 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [93 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [14 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [92 x i8], align 1
@security_policy_test_tls13_retry = external constant %struct.s2n_security_policy, align 8
@.str.53 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.65 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.66 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [55 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main() local_unnamed_addr #0 {
  %1 = alloca [5 x %struct.s2n_blob], align 16
  %2 = alloca ptr, align 8
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca %struct.s2n_stuffer, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca %struct.s2n_stuffer, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca %struct.s2n_test_io_pair, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca %struct.s2n_test_io_pair, align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca %struct.s2n_test_io_pair, align 8
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca %struct.s2n_test_io_pair, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %24 = load ptr, ptr @stdout, align 8, !tbaa !9
  %25 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %24, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #12
  %26 = load ptr, ptr @stdout, align 8, !tbaa !9
  %27 = tail call i32 @fflush(ptr noundef %26)
  %28 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %29 = icmp eq i32 %28, -1
  br i1 %29, label %30, label %54

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

37:                                               ; preds = %30
  %38 = load ptr, ptr @stderr, align 8, !tbaa !9
  %39 = tail call i32 @fileno(ptr noundef %38) #12
  %40 = tail call i32 @isatty(i32 noundef %39) #12
  %.not477 = icmp eq i32 %40, 0
  br i1 %.not477, label %41, label %42

41:                                               ; preds = %37, %30
  br label %42

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

54:                                               ; preds = %0
  %55 = load i32, ptr @test_count, align 4, !tbaa !5
  %56 = add nsw i32 %55, 1
  store i32 %56, ptr @test_count, align 4, !tbaa !5
  %57 = tail call i32 @s2n_enable_atexit() #12
  %58 = icmp eq i32 %57, -1
  br i1 %58, label %59, label %83

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

66:                                               ; preds = %59
  %67 = load ptr, ptr @stderr, align 8, !tbaa !9
  %68 = tail call i32 @fileno(ptr noundef %67) #12
  %69 = tail call i32 @isatty(i32 noundef %68) #12
  %.not476 = icmp eq i32 %69, 0
  br i1 %.not476, label %70, label %71

70:                                               ; preds = %66, %59
  br label %71

71:                                               ; preds = %66, %70
  %.str.5.sink555 = phi ptr [ @.str.5, %70 ], [ @.str.2, %66 ]
  store i32 %61, ptr %60, align 4, !tbaa !5
  %72 = load ptr, ptr @stderr, align 8, !tbaa !9
  %73 = load i32, ptr @test_count, align 4, !tbaa !5
  %74 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %75 = load i32, ptr %74, align 4, !tbaa !5
  %76 = tail call ptr @s2n_strerror(i32 noundef %75, ptr noundef nonnull @.str.4) #12
  %77 = load i32, ptr %74, align 4, !tbaa !5
  %78 = tail call ptr @s2n_strerror_debug(i32 noundef %77, ptr noundef nonnull @.str.4) #12
  %79 = load i32, ptr %60, align 4, !tbaa !5
  %80 = tail call ptr @strerror(i32 noundef %79) #12
  %81 = load i32, ptr %60, align 4, !tbaa !5
  %82 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %72, ptr noundef nonnull %.str.5.sink555, i32 noundef %73, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 30, ptr noundef %76, ptr noundef %78, ptr noundef %80, i32 noundef %81) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

83:                                               ; preds = %54
  %84 = tail call i32 @s2n_init() #12
  %85 = icmp eq i32 %84, -1
  br i1 %85, label %86, label %110

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

93:                                               ; preds = %86
  %94 = load ptr, ptr @stderr, align 8, !tbaa !9
  %95 = tail call i32 @fileno(ptr noundef %94) #12
  %96 = tail call i32 @isatty(i32 noundef %95) #12
  %.not475 = icmp eq i32 %96, 0
  br i1 %.not475, label %97, label %98

97:                                               ; preds = %93, %86
  br label %98

98:                                               ; preds = %93, %97
  %.str.5.sink566 = phi ptr [ @.str.5, %97 ], [ @.str.2, %93 ]
  store i32 %88, ptr %87, align 4, !tbaa !5
  %99 = load ptr, ptr @stderr, align 8, !tbaa !9
  %100 = load i32, ptr @test_count, align 4, !tbaa !5
  %101 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %102 = load i32, ptr %101, align 4, !tbaa !5
  %103 = tail call ptr @s2n_strerror(i32 noundef %102, ptr noundef nonnull @.str.4) #12
  %104 = load i32, ptr %101, align 4, !tbaa !5
  %105 = tail call ptr @s2n_strerror_debug(i32 noundef %104, ptr noundef nonnull @.str.4) #12
  %106 = load i32, ptr %87, align 4, !tbaa !5
  %107 = tail call ptr @strerror(i32 noundef %106) #12
  %108 = load i32, ptr %87, align 4, !tbaa !5
  %109 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %99, ptr noundef nonnull %.str.5.sink566, i32 noundef %100, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 30, ptr noundef %103, ptr noundef %105, ptr noundef %107, i32 noundef %108) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

110:                                              ; preds = %83
  %111 = tail call zeroext i1 (...) @s2n_is_tls13_fully_supported() #12
  br i1 %111, label %187, label %112

112:                                              ; preds = %110
  %113 = tail call i32 @s2n_cleanup() #12
  %114 = icmp eq i32 %113, -1
  br i1 %114, label %115, label %139

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

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

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

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

139:                                              ; preds = %112
  %140 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %141 = icmp eq i32 %140, -1
  br i1 %141, label %142, label %166

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

149:                                              ; preds = %142
  %150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %151 = tail call i32 @fileno(ptr noundef %150) #12
  %152 = tail call i32 @isatty(i32 noundef %151) #12
  %.not342 = icmp eq i32 %152, 0
  br i1 %.not342, label %153, label %154

153:                                              ; preds = %149, %142
  br label %154

154:                                              ; preds = %149, %153
  %.str.5.sink588 = phi ptr [ @.str.5, %153 ], [ @.str.2, %149 ]
  store i32 %144, ptr %143, align 4, !tbaa !5
  %155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %156 = load i32, ptr @test_count, align 4, !tbaa !5
  %157 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %158 = load i32, ptr %157, align 4, !tbaa !5
  %159 = tail call ptr @s2n_strerror(i32 noundef %158, ptr noundef nonnull @.str.4) #12
  %160 = load i32, ptr %157, align 4, !tbaa !5
  %161 = tail call ptr @s2n_strerror_debug(i32 noundef %160, ptr noundef nonnull @.str.4) #12
  %162 = load i32, ptr %143, align 4, !tbaa !5
  %163 = tail call ptr @strerror(i32 noundef %162) #12
  %164 = load i32, ptr %143, align 4, !tbaa !5
  %165 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %155, ptr noundef nonnull %.str.5.sink588, i32 noundef %156, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 33, ptr noundef %159, ptr noundef %161, ptr noundef %163, i32 noundef %164) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

166:                                              ; preds = %139
  %167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %168 = trunc nuw i8 %167 to i1
  br i1 %168, label %169, label %180

169:                                              ; preds = %166
  %170 = load ptr, ptr @stdout, align 8, !tbaa !9
  %171 = tail call i32 @fileno(ptr noundef %170) #12
  %172 = tail call i32 @isatty(i32 noundef %171) #12
  %.not = icmp eq i32 %172, 0
  br i1 %.not, label %180, label %173

173:                                              ; preds = %169
  %174 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not341 = icmp eq i32 %174, 0
  %175 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not341, label %178, label %176

176:                                              ; preds = %173
  %177 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %175, ptr noundef nonnull @.str.10, i32 noundef %174) #12
  br label %3734

178:                                              ; preds = %173
  %179 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %175, ptr noundef nonnull @.str.11) #12
  br label %3734

180:                                              ; preds = %169, %166
  %181 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not340 = icmp eq i32 %181, 0
  %182 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not340, label %185, label %183

183:                                              ; preds = %180
  %184 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %182, ptr noundef nonnull @.str.12, i32 noundef %181) #12
  br label %3734

185:                                              ; preds = %180
  %186 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %182, ptr noundef nonnull @.str.13) #12
  br label %3734

187:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %1) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(120) %1, i8 0, i64 120, i1 false)
  %188 = load i32, ptr @test_count, align 4, !tbaa !5
  %189 = add nsw i32 %188, 1
  store i32 %189, ptr @test_count, align 4, !tbaa !5
  %190 = load i16, ptr @__const.main.test_cookie_sizes, align 2, !tbaa !15
  %191 = zext i16 %190 to i32
  %192 = call i32 @s2n_alloc(ptr noundef nonnull %1, i32 noundef %191) #12
  %193 = icmp eq i32 %192, -1
  br i1 %193, label %251, label %275

194:                                              ; preds = %275
  %195 = load i32, ptr @test_count, align 4, !tbaa !5
  %196 = add nsw i32 %195, 1
  store i32 %196, ptr @test_count, align 4, !tbaa !5
  %197 = getelementptr inbounds i8, ptr %1, i64 24
  %198 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.test_cookie_sizes, i64 2), align 2, !tbaa !15
  %199 = zext i16 %198 to i32
  %200 = call i32 @s2n_alloc(ptr noundef nonnull %197, i32 noundef %199) #12
  %201 = icmp eq i32 %200, -1
  br i1 %201, label %251, label %202

202:                                              ; preds = %194
  %203 = load i32, ptr @test_count, align 4, !tbaa !5
  %204 = add nsw i32 %203, 1
  store i32 %204, ptr @test_count, align 4, !tbaa !5
  %205 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %197) #12
  %206 = call zeroext i1 @s2n_result_is_ok(i32 %205)
  br i1 %206, label %207, label %280

207:                                              ; preds = %202
  %208 = load i32, ptr @test_count, align 4, !tbaa !5
  %209 = add nsw i32 %208, 1
  store i32 %209, ptr @test_count, align 4, !tbaa !5
  %210 = getelementptr inbounds i8, ptr %1, i64 48
  %211 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.test_cookie_sizes, i64 4), align 2, !tbaa !15
  %212 = zext i16 %211 to i32
  %213 = call i32 @s2n_alloc(ptr noundef nonnull %210, i32 noundef %212) #12
  %214 = icmp eq i32 %213, -1
  br i1 %214, label %251, label %215

215:                                              ; preds = %207
  %216 = load i32, ptr @test_count, align 4, !tbaa !5
  %217 = add nsw i32 %216, 1
  store i32 %217, ptr @test_count, align 4, !tbaa !5
  %218 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %210) #12
  %219 = call zeroext i1 @s2n_result_is_ok(i32 %218)
  br i1 %219, label %220, label %280

220:                                              ; preds = %215
  %221 = load i32, ptr @test_count, align 4, !tbaa !5
  %222 = add nsw i32 %221, 1
  store i32 %222, ptr @test_count, align 4, !tbaa !5
  %223 = getelementptr inbounds i8, ptr %1, i64 72
  %224 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.test_cookie_sizes, i64 6), align 2, !tbaa !15
  %225 = zext i16 %224 to i32
  %226 = call i32 @s2n_alloc(ptr noundef nonnull %223, i32 noundef %225) #12
  %227 = icmp eq i32 %226, -1
  br i1 %227, label %251, label %228

228:                                              ; preds = %220
  %229 = load i32, ptr @test_count, align 4, !tbaa !5
  %230 = add nsw i32 %229, 1
  store i32 %230, ptr @test_count, align 4, !tbaa !5
  %231 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %223) #12
  %232 = call zeroext i1 @s2n_result_is_ok(i32 %231)
  br i1 %232, label %233, label %280

233:                                              ; preds = %228
  %234 = load i32, ptr @test_count, align 4, !tbaa !5
  %235 = add nsw i32 %234, 1
  store i32 %235, ptr @test_count, align 4, !tbaa !5
  %236 = getelementptr inbounds i8, ptr %1, i64 96
  %237 = load i16, ptr getelementptr inbounds (i8, ptr @__const.main.test_cookie_sizes, i64 8), align 2, !tbaa !15
  %238 = zext i16 %237 to i32
  %239 = call i32 @s2n_alloc(ptr noundef nonnull %236, i32 noundef %238) #12
  %240 = icmp eq i32 %239, -1
  br i1 %240, label %251, label %241

241:                                              ; preds = %233
  %242 = load i32, ptr @test_count, align 4, !tbaa !5
  %243 = add nsw i32 %242, 1
  store i32 %243, ptr @test_count, align 4, !tbaa !5
  %244 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %236) #12
  %245 = call zeroext i1 @s2n_result_is_ok(i32 %244)
  br i1 %245, label %246, label %280

246:                                              ; preds = %241
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2) #12
  %247 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %247, ptr %2, align 8, !tbaa !9
  %248 = load i32, ptr @test_count, align 4, !tbaa !5
  %249 = add nsw i32 %248, 1
  store i32 %249, ptr @test_count, align 4, !tbaa !5
  %250 = icmp eq ptr %247, null
  br i1 %250, label %304, label %328

251:                                              ; preds = %233, %220, %207, %194, %187
  %252 = tail call ptr @__errno_location() #13
  %253 = load i32, ptr %252, align 4, !tbaa !5
  %254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %255 = call i32 @s2n_print_stacktrace(ptr noundef %254) #12
  %256 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %257 = trunc nuw i8 %256 to i1
  br i1 %257, label %258, label %262

258:                                              ; preds = %251
  %259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %260 = call i32 @fileno(ptr noundef %259) #12
  %261 = call i32 @isatty(i32 noundef %260) #12
  %.not474 = icmp eq i32 %261, 0
  br i1 %.not474, label %262, label %263

262:                                              ; preds = %258, %251
  br label %263

263:                                              ; preds = %258, %262
  %.str.5.sink599 = phi ptr [ @.str.5, %262 ], [ @.str.2, %258 ]
  store i32 %253, ptr %252, align 4, !tbaa !5
  %264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %265 = load i32, ptr @test_count, align 4, !tbaa !5
  %266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %267 = load i32, ptr %266, align 4, !tbaa !5
  %268 = call ptr @s2n_strerror(i32 noundef %267, ptr noundef nonnull @.str.4) #12
  %269 = load i32, ptr %266, align 4, !tbaa !5
  %270 = call ptr @s2n_strerror_debug(i32 noundef %269, ptr noundef nonnull @.str.4) #12
  %271 = load i32, ptr %252, align 4, !tbaa !5
  %272 = call ptr @strerror(i32 noundef %271) #12
  %273 = load i32, ptr %252, align 4, !tbaa !5
  %274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %264, ptr noundef nonnull %.str.5.sink599, i32 noundef %265, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 39, ptr noundef %268, ptr noundef %270, ptr noundef %272, i32 noundef %273) #14
  call void @exit(i32 noundef 1) #15
  unreachable

275:                                              ; preds = %187
  %276 = load i32, ptr @test_count, align 4, !tbaa !5
  %277 = add nsw i32 %276, 1
  store i32 %277, ptr @test_count, align 4, !tbaa !5
  %278 = call i32 @s2n_get_public_random_data(ptr noundef nonnull %1) #12
  %279 = call zeroext i1 @s2n_result_is_ok(i32 %278)
  br i1 %279, label %194, label %280

280:                                              ; preds = %241, %228, %215, %202, %275
  %281 = tail call ptr @__errno_location() #13
  %282 = load i32, ptr %281, align 4, !tbaa !5
  %283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %284 = call i32 @s2n_print_stacktrace(ptr noundef %283) #12
  %285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %286 = trunc nuw i8 %285 to i1
  br i1 %286, label %287, label %291

287:                                              ; preds = %280
  %288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %289 = call i32 @fileno(ptr noundef %288) #12
  %290 = call i32 @isatty(i32 noundef %289) #12
  %.not473 = icmp eq i32 %290, 0
  br i1 %.not473, label %291, label %292

291:                                              ; preds = %287, %280
  br label %292

292:                                              ; preds = %287, %291
  %.str.5.sink610 = phi ptr [ @.str.5, %291 ], [ @.str.2, %287 ]
  store i32 %282, ptr %281, align 4, !tbaa !5
  %293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %294 = load i32, ptr @test_count, align 4, !tbaa !5
  %295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %296 = load i32, ptr %295, align 4, !tbaa !5
  %297 = call ptr @s2n_strerror(i32 noundef %296, ptr noundef nonnull @.str.4) #12
  %298 = load i32, ptr %295, align 4, !tbaa !5
  %299 = call ptr @s2n_strerror_debug(i32 noundef %298, ptr noundef nonnull @.str.4) #12
  %300 = load i32, ptr %281, align 4, !tbaa !5
  %301 = call ptr @strerror(i32 noundef %300) #12
  %302 = load i32, ptr %281, align 4, !tbaa !5
  %303 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %293, ptr noundef nonnull %.str.5.sink610, i32 noundef %294, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 40, ptr noundef %297, ptr noundef %299, ptr noundef %301, i32 noundef %302) #14
  call void @exit(i32 noundef 1) #15
  unreachable

304:                                              ; preds = %246
  %305 = tail call ptr @__errno_location() #13
  %306 = load i32, ptr %305, align 4, !tbaa !5
  %307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %308 = call i32 @s2n_print_stacktrace(ptr noundef %307) #12
  %309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %310 = trunc nuw i8 %309 to i1
  br i1 %310, label %311, label %315

311:                                              ; preds = %304
  %312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %313 = call i32 @fileno(ptr noundef %312) #12
  %314 = call i32 @isatty(i32 noundef %313) #12
  %.not472 = icmp eq i32 %314, 0
  br i1 %.not472, label %315, label %316

315:                                              ; preds = %311, %304
  br label %316

316:                                              ; preds = %311, %315
  %.str.5.sink621 = phi ptr [ @.str.5, %315 ], [ @.str.2, %311 ]
  store i32 %306, ptr %305, align 4, !tbaa !5
  %317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %318 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %320, ptr noundef nonnull @.str.4) #12
  %322 = load i32, ptr %319, align 4, !tbaa !5
  %323 = call ptr @s2n_strerror_debug(i32 noundef %322, ptr noundef nonnull @.str.4) #12
  %324 = load i32, ptr %305, align 4, !tbaa !5
  %325 = call ptr @strerror(i32 noundef %324) #12
  %326 = load i32, ptr %305, align 4, !tbaa !5
  %327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %317, ptr noundef nonnull %.str.5.sink621, i32 noundef %318, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %321, ptr noundef %323, ptr noundef %325, i32 noundef %326) #14
  call void @exit(i32 noundef 1) #15
  unreachable

328:                                              ; preds = %246
  %329 = add nsw i32 %248, 2
  store i32 %329, ptr @test_count, align 4, !tbaa !5
  %330 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_cookie_extension, i64 24), align 8, !tbaa !17
  %331 = call zeroext i1 %330(ptr noundef nonnull %247) #12
  br i1 %331, label %332, label %356

332:                                              ; preds = %328
  %333 = tail call ptr @__errno_location() #13
  %334 = load i32, ptr %333, align 4, !tbaa !5
  %335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %336 = call i32 @s2n_print_stacktrace(ptr noundef %335) #12
  %337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %338 = trunc nuw i8 %337 to i1
  br i1 %338, label %339, label %343

339:                                              ; preds = %332
  %340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %341 = call i32 @fileno(ptr noundef %340) #12
  %342 = call i32 @isatty(i32 noundef %341) #12
  %.not471 = icmp eq i32 %342, 0
  br i1 %.not471, label %343, label %344

343:                                              ; preds = %339, %332
  br label %344

344:                                              ; preds = %339, %343
  %.str.5.sink632 = phi ptr [ @.str.5, %343 ], [ @.str.2, %339 ]
  store i32 %334, ptr %333, align 4, !tbaa !5
  %345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %346 = load i32, ptr @test_count, align 4, !tbaa !5
  %347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %348 = load i32, ptr %347, align 4, !tbaa !5
  %349 = call ptr @s2n_strerror(i32 noundef %348, ptr noundef nonnull @.str.4) #12
  %350 = load i32, ptr %347, align 4, !tbaa !5
  %351 = call ptr @s2n_strerror_debug(i32 noundef %350, ptr noundef nonnull @.str.4) #12
  %352 = load i32, ptr %333, align 4, !tbaa !5
  %353 = call ptr @strerror(i32 noundef %352) #12
  %354 = load i32, ptr %333, align 4, !tbaa !5
  %355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %345, ptr noundef nonnull %.str.5.sink632, i32 noundef %346, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 57, ptr noundef %349, ptr noundef %351, ptr noundef %353, i32 noundef %354) #14
  call void @exit(i32 noundef 1) #15
  unreachable

356:                                              ; preds = %328
  %357 = load i32, ptr @test_count, align 4, !tbaa !5
  %358 = add nsw i32 %357, 1
  store i32 %358, ptr @test_count, align 4, !tbaa !5
  %359 = load ptr, ptr %2, align 8, !tbaa !9
  %360 = getelementptr inbounds i8, ptr %359, i64 4056
  %361 = call i32 @s2n_dup(ptr noundef nonnull %1, ptr noundef nonnull %360) #12
  %362 = icmp eq i32 %361, -1
  br i1 %362, label %363, label %387

363:                                              ; preds = %356
  %364 = tail call ptr @__errno_location() #13
  %365 = load i32, ptr %364, align 4, !tbaa !5
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = call i32 @s2n_print_stacktrace(ptr noundef %366) #12
  %368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %369 = trunc nuw i8 %368 to i1
  br i1 %369, label %370, label %374

370:                                              ; preds = %363
  %371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %372 = call i32 @fileno(ptr noundef %371) #12
  %373 = call i32 @isatty(i32 noundef %372) #12
  %.not470 = icmp eq i32 %373, 0
  br i1 %.not470, label %374, label %375

374:                                              ; preds = %370, %363
  br label %375

375:                                              ; preds = %370, %374
  %.str.5.sink643 = phi ptr [ @.str.5, %374 ], [ @.str.2, %370 ]
  store i32 %365, ptr %364, align 4, !tbaa !5
  %376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %377 = load i32, ptr @test_count, align 4, !tbaa !5
  %378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %379 = load i32, ptr %378, align 4, !tbaa !5
  %380 = call ptr @s2n_strerror(i32 noundef %379, ptr noundef nonnull @.str.4) #12
  %381 = load i32, ptr %378, align 4, !tbaa !5
  %382 = call ptr @s2n_strerror_debug(i32 noundef %381, ptr noundef nonnull @.str.4) #12
  %383 = load i32, ptr %364, align 4, !tbaa !5
  %384 = call ptr @strerror(i32 noundef %383) #12
  %385 = load i32, ptr %364, align 4, !tbaa !5
  %386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %376, ptr noundef nonnull %.str.5.sink643, i32 noundef %377, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %380, ptr noundef %382, ptr noundef %384, i32 noundef %385) #14
  call void @exit(i32 noundef 1) #15
  unreachable

387:                                              ; preds = %356
  %388 = load i32, ptr @test_count, align 4, !tbaa !5
  %389 = add nsw i32 %388, 1
  store i32 %389, ptr @test_count, align 4, !tbaa !5
  %390 = load ptr, ptr %2, align 8, !tbaa !9
  %391 = call zeroext i1 %330(ptr noundef %390) #12
  br i1 %391, label %416, label %392

392:                                              ; preds = %387
  %393 = tail call ptr @__errno_location() #13
  %394 = load i32, ptr %393, align 4, !tbaa !5
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = call i32 @s2n_print_stacktrace(ptr noundef %395) #12
  %397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %398 = trunc nuw i8 %397 to i1
  br i1 %398, label %399, label %403

399:                                              ; preds = %392
  %400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %401 = call i32 @fileno(ptr noundef %400) #12
  %402 = call i32 @isatty(i32 noundef %401) #12
  %.not344 = icmp eq i32 %402, 0
  br i1 %.not344, label %403, label %404

403:                                              ; preds = %399, %392
  br label %404

404:                                              ; preds = %399, %403
  %.str.5.sink654 = phi ptr [ @.str.5, %403 ], [ @.str.2, %399 ]
  store i32 %394, ptr %393, align 4, !tbaa !5
  %405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %406 = load i32, ptr @test_count, align 4, !tbaa !5
  %407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %408 = load i32, ptr %407, align 4, !tbaa !5
  %409 = call ptr @s2n_strerror(i32 noundef %408, ptr noundef nonnull @.str.4) #12
  %410 = load i32, ptr %407, align 4, !tbaa !5
  %411 = call ptr @s2n_strerror_debug(i32 noundef %410, ptr noundef nonnull @.str.4) #12
  %412 = load i32, ptr %393, align 4, !tbaa !5
  %413 = call ptr @strerror(i32 noundef %412) #12
  %414 = load i32, ptr %393, align 4, !tbaa !5
  %415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %405, ptr noundef nonnull %.str.5.sink654, i32 noundef %406, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %409, ptr noundef %411, ptr noundef %413, i32 noundef %414) #14
  call void @exit(i32 noundef 1) #15
  unreachable

416:                                              ; preds = %387
  %417 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %2) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %2) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #12
  %418 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %418, ptr %3, align 8, !tbaa !9
  %419 = load i32, ptr @test_count, align 4, !tbaa !5
  %420 = add nsw i32 %419, 1
  store i32 %420, ptr @test_count, align 4, !tbaa !5
  %421 = icmp eq ptr %418, null
  br i1 %421, label %422, label %446

422:                                              ; preds = %416
  %423 = tail call ptr @__errno_location() #13
  %424 = load i32, ptr %423, align 4, !tbaa !5
  %425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %426 = call i32 @s2n_print_stacktrace(ptr noundef %425) #12
  %427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %428 = trunc nuw i8 %427 to i1
  br i1 %428, label %429, label %433

429:                                              ; preds = %422
  %430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %431 = call i32 @fileno(ptr noundef %430) #12
  %432 = call i32 @isatty(i32 noundef %431) #12
  %.not469 = icmp eq i32 %432, 0
  br i1 %.not469, label %433, label %434

433:                                              ; preds = %429, %422
  br label %434

434:                                              ; preds = %429, %433
  %.str.5.sink665 = phi ptr [ @.str.5, %433 ], [ @.str.2, %429 ]
  store i32 %424, ptr %423, align 4, !tbaa !5
  %435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %436 = load i32, ptr @test_count, align 4, !tbaa !5
  %437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %438 = load i32, ptr %437, align 4, !tbaa !5
  %439 = call ptr @s2n_strerror(i32 noundef %438, ptr noundef nonnull @.str.4) #12
  %440 = load i32, ptr %437, align 4, !tbaa !5
  %441 = call ptr @s2n_strerror_debug(i32 noundef %440, ptr noundef nonnull @.str.4) #12
  %442 = load i32, ptr %423, align 4, !tbaa !5
  %443 = call ptr @strerror(i32 noundef %442) #12
  %444 = load i32, ptr %423, align 4, !tbaa !5
  %445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %435, ptr noundef nonnull %.str.5.sink665, i32 noundef %436, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %439, ptr noundef %441, ptr noundef %443, i32 noundef %444) #14
  call void @exit(i32 noundef 1) #15
  unreachable

446:                                              ; preds = %416
  %447 = add nsw i32 %419, 2
  store i32 %447, ptr @test_count, align 4, !tbaa !5
  %448 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_cookie_extension, i64 24), align 8, !tbaa !17
  %449 = call zeroext i1 %448(ptr noundef nonnull %418) #12
  br i1 %449, label %450, label %474

450:                                              ; preds = %446
  %451 = tail call ptr @__errno_location() #13
  %452 = load i32, ptr %451, align 4, !tbaa !5
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = call i32 @s2n_print_stacktrace(ptr noundef %453) #12
  %455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %456 = trunc nuw i8 %455 to i1
  br i1 %456, label %457, label %461

457:                                              ; preds = %450
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = call i32 @fileno(ptr noundef %458) #12
  %460 = call i32 @isatty(i32 noundef %459) #12
  %.not468 = icmp eq i32 %460, 0
  br i1 %.not468, label %461, label %462

461:                                              ; preds = %457, %450
  br label %462

462:                                              ; preds = %457, %461
  %.str.5.sink676 = phi ptr [ @.str.5, %461 ], [ @.str.2, %457 ]
  store i32 %452, ptr %451, align 4, !tbaa !5
  %463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %464 = load i32, ptr @test_count, align 4, !tbaa !5
  %465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %466 = load i32, ptr %465, align 4, !tbaa !5
  %467 = call ptr @s2n_strerror(i32 noundef %466, ptr noundef nonnull @.str.4) #12
  %468 = load i32, ptr %465, align 4, !tbaa !5
  %469 = call ptr @s2n_strerror_debug(i32 noundef %468, ptr noundef nonnull @.str.4) #12
  %470 = load i32, ptr %451, align 4, !tbaa !5
  %471 = call ptr @strerror(i32 noundef %470) #12
  %472 = load i32, ptr %451, align 4, !tbaa !5
  %473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %463, ptr noundef nonnull %.str.5.sink676, i32 noundef %464, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %467, ptr noundef %469, ptr noundef %471, i32 noundef %472) #14
  call void @exit(i32 noundef 1) #15
  unreachable

474:                                              ; preds = %446
  %475 = load i32, ptr @test_count, align 4, !tbaa !5
  %476 = add nsw i32 %475, 1
  store i32 %476, ptr @test_count, align 4, !tbaa !5
  %477 = load ptr, ptr %3, align 8, !tbaa !9
  %478 = getelementptr inbounds i8, ptr %477, i64 4056
  %479 = call i32 @s2n_dup(ptr noundef nonnull %1, ptr noundef nonnull %478) #12
  %480 = icmp eq i32 %479, -1
  br i1 %480, label %481, label %505

481:                                              ; preds = %474
  %482 = tail call ptr @__errno_location() #13
  %483 = load i32, ptr %482, align 4, !tbaa !5
  %484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %485 = call i32 @s2n_print_stacktrace(ptr noundef %484) #12
  %486 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %487 = trunc nuw i8 %486 to i1
  br i1 %487, label %488, label %492

488:                                              ; preds = %481
  %489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %490 = call i32 @fileno(ptr noundef %489) #12
  %491 = call i32 @isatty(i32 noundef %490) #12
  %.not467 = icmp eq i32 %491, 0
  br i1 %.not467, label %492, label %493

492:                                              ; preds = %488, %481
  br label %493

493:                                              ; preds = %488, %492
  %.str.5.sink687 = phi ptr [ @.str.5, %492 ], [ @.str.2, %488 ]
  store i32 %483, ptr %482, align 4, !tbaa !5
  %494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %495 = load i32, ptr @test_count, align 4, !tbaa !5
  %496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %497 = load i32, ptr %496, align 4, !tbaa !5
  %498 = call ptr @s2n_strerror(i32 noundef %497, ptr noundef nonnull @.str.4) #12
  %499 = load i32, ptr %496, align 4, !tbaa !5
  %500 = call ptr @s2n_strerror_debug(i32 noundef %499, ptr noundef nonnull @.str.4) #12
  %501 = load i32, ptr %482, align 4, !tbaa !5
  %502 = call ptr @strerror(i32 noundef %501) #12
  %503 = load i32, ptr %482, align 4, !tbaa !5
  %504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %494, ptr noundef nonnull %.str.5.sink687, i32 noundef %495, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %498, ptr noundef %500, ptr noundef %502, i32 noundef %503) #14
  call void @exit(i32 noundef 1) #15
  unreachable

505:                                              ; preds = %474
  %506 = load i32, ptr @test_count, align 4, !tbaa !5
  %507 = add nsw i32 %506, 1
  store i32 %507, ptr @test_count, align 4, !tbaa !5
  %508 = load ptr, ptr %3, align 8, !tbaa !9
  %509 = call zeroext i1 %448(ptr noundef %508) #12
  br i1 %509, label %534, label %510

510:                                              ; preds = %505
  %511 = tail call ptr @__errno_location() #13
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %514 = call i32 @s2n_print_stacktrace(ptr noundef %513) #12
  %515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %516 = trunc nuw i8 %515 to i1
  br i1 %516, label %517, label %521

517:                                              ; preds = %510
  %518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %519 = call i32 @fileno(ptr noundef %518) #12
  %520 = call i32 @isatty(i32 noundef %519) #12
  %.not345 = icmp eq i32 %520, 0
  br i1 %.not345, label %521, label %522

521:                                              ; preds = %517, %510
  br label %522

522:                                              ; preds = %517, %521
  %.str.5.sink698 = phi ptr [ @.str.5, %521 ], [ @.str.2, %517 ]
  store i32 %512, ptr %511, align 4, !tbaa !5
  %523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %524 = load i32, ptr @test_count, align 4, !tbaa !5
  %525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %526 = load i32, ptr %525, align 4, !tbaa !5
  %527 = call ptr @s2n_strerror(i32 noundef %526, ptr noundef nonnull @.str.4) #12
  %528 = load i32, ptr %525, align 4, !tbaa !5
  %529 = call ptr @s2n_strerror_debug(i32 noundef %528, ptr noundef nonnull @.str.4) #12
  %530 = load i32, ptr %511, align 4, !tbaa !5
  %531 = call ptr @strerror(i32 noundef %530) #12
  %532 = load i32, ptr %511, align 4, !tbaa !5
  %533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %523, ptr noundef nonnull %.str.5.sink698, i32 noundef %524, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %527, ptr noundef %529, ptr noundef %531, i32 noundef %532) #14
  call void @exit(i32 noundef 1) #15
  unreachable

534:                                              ; preds = %505
  %535 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %3) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #12
  %536 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_cookie_extension, i64 8), align 8
  %537 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_cookie_extension, i64 16), align 8
  %538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  br label %541

.preheader484:                                    ; preds = %860
  %539 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_cookie_extension, i64 8), align 8
  %540 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_cookie_extension, i64 16), align 8
  br label %870

541:                                              ; preds = %534, %860
  %.0326515 = phi i64 [ 0, %534 ], [ %864, %860 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #12
  %542 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %542, ptr %4, align 8, !tbaa !9
  %543 = load i32, ptr @test_count, align 4, !tbaa !5
  %544 = add nsw i32 %543, 1
  store i32 %544, ptr @test_count, align 4, !tbaa !5
  %545 = icmp eq ptr %542, null
  br i1 %545, label %546, label %569

546:                                              ; preds = %541
  %547 = tail call ptr @__errno_location() #13
  %548 = load i32, ptr %547, align 4, !tbaa !5
  %549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %550 = call i32 @s2n_print_stacktrace(ptr noundef %549) #12
  %551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %552 = trunc nuw i8 %551 to i1
  br i1 %552, label %553, label %557

553:                                              ; preds = %546
  %554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %555 = call i32 @fileno(ptr noundef %554) #12
  %556 = call i32 @isatty(i32 noundef %555) #12
  %.not466 = icmp eq i32 %556, 0
  br i1 %.not466, label %557, label %558

557:                                              ; preds = %553, %546
  br label %558

558:                                              ; preds = %553, %557
  %.str.5.sink709 = phi ptr [ @.str.5, %557 ], [ @.str.2, %553 ]
  store i32 %548, ptr %547, align 4, !tbaa !5
  %559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %560 = load i32, ptr @test_count, align 4, !tbaa !5
  %561 = load i32, ptr %538, align 4, !tbaa !5
  %562 = call ptr @s2n_strerror(i32 noundef %561, ptr noundef nonnull @.str.4) #12
  %563 = load i32, ptr %538, align 4, !tbaa !5
  %564 = call ptr @s2n_strerror_debug(i32 noundef %563, ptr noundef nonnull @.str.4) #12
  %565 = load i32, ptr %547, align 4, !tbaa !5
  %566 = call ptr @strerror(i32 noundef %565) #12
  %567 = load i32, ptr %547, align 4, !tbaa !5
  %568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %559, ptr noundef nonnull %.str.5.sink709, i32 noundef %560, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 84, ptr noundef %562, ptr noundef %564, ptr noundef %566, i32 noundef %567) #14
  call void @exit(i32 noundef 1) #15
  unreachable

569:                                              ; preds = %541
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #12
  %570 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %570, ptr %5, align 8, !tbaa !9
  %571 = load i32, ptr @test_count, align 4, !tbaa !5
  %572 = add nsw i32 %571, 1
  store i32 %572, ptr @test_count, align 4, !tbaa !5
  %573 = load ptr, ptr %4, align 8, !tbaa !9
  %574 = icmp eq ptr %573, null
  br i1 %574, label %575, label %598

575:                                              ; preds = %569
  %576 = tail call ptr @__errno_location() #13
  %577 = load i32, ptr %576, align 4, !tbaa !5
  %578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %579 = call i32 @s2n_print_stacktrace(ptr noundef %578) #12
  %580 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %581 = trunc nuw i8 %580 to i1
  br i1 %581, label %582, label %586

582:                                              ; preds = %575
  %583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %584 = call i32 @fileno(ptr noundef %583) #12
  %585 = call i32 @isatty(i32 noundef %584) #12
  %.not465 = icmp eq i32 %585, 0
  br i1 %.not465, label %586, label %587

586:                                              ; preds = %582, %575
  br label %587

587:                                              ; preds = %582, %586
  %.str.5.sink718 = phi ptr [ @.str.5, %586 ], [ @.str.2, %582 ]
  store i32 %577, ptr %576, align 4, !tbaa !5
  %588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %589 = load i32, ptr @test_count, align 4, !tbaa !5
  %590 = load i32, ptr %538, align 4, !tbaa !5
  %591 = call ptr @s2n_strerror(i32 noundef %590, ptr noundef nonnull @.str.4) #12
  %592 = load i32, ptr %538, align 4, !tbaa !5
  %593 = call ptr @s2n_strerror_debug(i32 noundef %592, ptr noundef nonnull @.str.4) #12
  %594 = load i32, ptr %576, align 4, !tbaa !5
  %595 = call ptr @strerror(i32 noundef %594) #12
  %596 = load i32, ptr %576, align 4, !tbaa !5
  %597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %588, ptr noundef nonnull %.str.5.sink718, i32 noundef %589, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %591, ptr noundef %593, ptr noundef %595, i32 noundef %596) #14
  call void @exit(i32 noundef 1) #15
  unreachable

598:                                              ; preds = %569
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %6, i8 0, i64 40, i1 false)
  %599 = add nsw i32 %571, 2
  store i32 %599, ptr @test_count, align 4, !tbaa !5
  %600 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %6, i32 noundef 0) #12
  %601 = icmp eq i32 %600, -1
  br i1 %601, label %602, label %625

602:                                              ; preds = %598
  %603 = tail call ptr @__errno_location() #13
  %604 = load i32, ptr %603, align 4, !tbaa !5
  %605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %606 = call i32 @s2n_print_stacktrace(ptr noundef %605) #12
  %607 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %608 = trunc nuw i8 %607 to i1
  br i1 %608, label %609, label %613

609:                                              ; preds = %602
  %610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %611 = call i32 @fileno(ptr noundef %610) #12
  %612 = call i32 @isatty(i32 noundef %611) #12
  %.not464 = icmp eq i32 %612, 0
  br i1 %.not464, label %613, label %614

613:                                              ; preds = %609, %602
  br label %614

614:                                              ; preds = %609, %613
  %.str.5.sink727 = phi ptr [ @.str.5, %613 ], [ @.str.2, %609 ]
  store i32 %604, ptr %603, align 4, !tbaa !5
  %615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %616 = load i32, ptr @test_count, align 4, !tbaa !5
  %617 = load i32, ptr %538, align 4, !tbaa !5
  %618 = call ptr @s2n_strerror(i32 noundef %617, ptr noundef nonnull @.str.4) #12
  %619 = load i32, ptr %538, align 4, !tbaa !5
  %620 = call ptr @s2n_strerror_debug(i32 noundef %619, ptr noundef nonnull @.str.4) #12
  %621 = load i32, ptr %603, align 4, !tbaa !5
  %622 = call ptr @strerror(i32 noundef %621) #12
  %623 = load i32, ptr %603, align 4, !tbaa !5
  %624 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %615, ptr noundef nonnull %.str.5.sink727, i32 noundef %616, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %618, ptr noundef %620, ptr noundef %622, i32 noundef %623) #14
  call void @exit(i32 noundef 1) #15
  unreachable

625:                                              ; preds = %598
  %626 = load i32, ptr @test_count, align 4, !tbaa !5
  %627 = add nsw i32 %626, 1
  store i32 %627, ptr @test_count, align 4, !tbaa !5
  %628 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %1, i64 0, i64 %.0326515
  %629 = load ptr, ptr %4, align 8, !tbaa !9
  %630 = getelementptr inbounds i8, ptr %629, i64 4056
  %631 = call i32 @s2n_dup(ptr noundef nonnull %628, ptr noundef nonnull %630) #12
  %632 = icmp eq i32 %631, -1
  br i1 %632, label %633, label %656

633:                                              ; preds = %625
  %634 = tail call ptr @__errno_location() #13
  %635 = load i32, ptr %634, align 4, !tbaa !5
  %636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %637 = call i32 @s2n_print_stacktrace(ptr noundef %636) #12
  %638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %639 = trunc nuw i8 %638 to i1
  br i1 %639, label %640, label %644

640:                                              ; preds = %633
  %641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %642 = call i32 @fileno(ptr noundef %641) #12
  %643 = call i32 @isatty(i32 noundef %642) #12
  %.not463 = icmp eq i32 %643, 0
  br i1 %.not463, label %644, label %645

644:                                              ; preds = %640, %633
  br label %645

645:                                              ; preds = %640, %644
  %.str.5.sink736 = phi ptr [ @.str.5, %644 ], [ @.str.2, %640 ]
  store i32 %635, ptr %634, align 4, !tbaa !5
  %646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %647 = load i32, ptr @test_count, align 4, !tbaa !5
  %648 = load i32, ptr %538, align 4, !tbaa !5
  %649 = call ptr @s2n_strerror(i32 noundef %648, ptr noundef nonnull @.str.4) #12
  %650 = load i32, ptr %538, align 4, !tbaa !5
  %651 = call ptr @s2n_strerror_debug(i32 noundef %650, ptr noundef nonnull @.str.4) #12
  %652 = load i32, ptr %634, align 4, !tbaa !5
  %653 = call ptr @strerror(i32 noundef %652) #12
  %654 = load i32, ptr %634, align 4, !tbaa !5
  %655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %646, ptr noundef nonnull %.str.5.sink736, i32 noundef %647, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %649, ptr noundef %651, ptr noundef %653, i32 noundef %654) #14
  call void @exit(i32 noundef 1) #15
  unreachable

656:                                              ; preds = %625
  %657 = load i32, ptr @test_count, align 4, !tbaa !5
  %658 = add nsw i32 %657, 1
  store i32 %658, ptr @test_count, align 4, !tbaa !5
  %659 = load ptr, ptr %4, align 8, !tbaa !9
  %660 = call i32 %536(ptr noundef %659, ptr noundef nonnull %6) #12
  %661 = icmp eq i32 %660, -1
  br i1 %661, label %662, label %685

662:                                              ; preds = %656
  %663 = tail call ptr @__errno_location() #13
  %664 = load i32, ptr %663, align 4, !tbaa !5
  %665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %666 = call i32 @s2n_print_stacktrace(ptr noundef %665) #12
  %667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %668 = trunc nuw i8 %667 to i1
  br i1 %668, label %669, label %673

669:                                              ; preds = %662
  %670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %671 = call i32 @fileno(ptr noundef %670) #12
  %672 = call i32 @isatty(i32 noundef %671) #12
  %.not462 = icmp eq i32 %672, 0
  br i1 %.not462, label %673, label %674

673:                                              ; preds = %669, %662
  br label %674

674:                                              ; preds = %669, %673
  %.str.5.sink745 = phi ptr [ @.str.5, %673 ], [ @.str.2, %669 ]
  store i32 %664, ptr %663, align 4, !tbaa !5
  %675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %676 = load i32, ptr @test_count, align 4, !tbaa !5
  %677 = load i32, ptr %538, align 4, !tbaa !5
  %678 = call ptr @s2n_strerror(i32 noundef %677, ptr noundef nonnull @.str.4) #12
  %679 = load i32, ptr %538, align 4, !tbaa !5
  %680 = call ptr @s2n_strerror_debug(i32 noundef %679, ptr noundef nonnull @.str.4) #12
  %681 = load i32, ptr %663, align 4, !tbaa !5
  %682 = call ptr @strerror(i32 noundef %681) #12
  %683 = load i32, ptr %663, align 4, !tbaa !5
  %684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %675, ptr noundef nonnull %.str.5.sink745, i32 noundef %676, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %678, ptr noundef %680, ptr noundef %682, i32 noundef %683) #14
  call void @exit(i32 noundef 1) #15
  unreachable

685:                                              ; preds = %656
  %686 = load i32, ptr @test_count, align 4, !tbaa !5
  %687 = add nsw i32 %686, 1
  store i32 %687, ptr @test_count, align 4, !tbaa !5
  %688 = load ptr, ptr %5, align 8, !tbaa !9
  %689 = call i32 %537(ptr noundef %688, ptr noundef nonnull %6) #12
  %690 = icmp eq i32 %689, -1
  br i1 %690, label %714, label %691

691:                                              ; preds = %685
  %692 = tail call ptr @__errno_location() #13
  %693 = load i32, ptr %692, align 4, !tbaa !5
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = call i32 @s2n_print_stacktrace(ptr noundef %694) #12
  %696 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %697 = trunc nuw i8 %696 to i1
  br i1 %697, label %698, label %702

698:                                              ; preds = %691
  %699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %700 = call i32 @fileno(ptr noundef %699) #12
  %701 = call i32 @isatty(i32 noundef %700) #12
  %.not454 = icmp eq i32 %701, 0
  br i1 %.not454, label %702, label %703

702:                                              ; preds = %698, %691
  br label %703

703:                                              ; preds = %698, %702
  %.str.5.sink754 = phi ptr [ @.str.5, %702 ], [ @.str.2, %698 ]
  store i32 %693, ptr %692, align 4, !tbaa !5
  %704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %705 = load i32, ptr @test_count, align 4, !tbaa !5
  %706 = load i32, ptr %538, align 4, !tbaa !5
  %707 = call ptr @s2n_strerror(i32 noundef %706, ptr noundef nonnull @.str.4) #12
  %708 = load i32, ptr %538, align 4, !tbaa !5
  %709 = call ptr @s2n_strerror_debug(i32 noundef %708, ptr noundef nonnull @.str.4) #12
  %710 = load i32, ptr %692, align 4, !tbaa !5
  %711 = call ptr @strerror(i32 noundef %710) #12
  %712 = load i32, ptr %692, align 4, !tbaa !5
  %713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %704, ptr noundef nonnull %.str.5.sink754, i32 noundef %705, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %707, ptr noundef %709, ptr noundef %711, i32 noundef %712) #14
  call void @exit(i32 noundef 1) #15
  unreachable

714:                                              ; preds = %685
  %715 = load i32, ptr @test_count, align 4, !tbaa !5
  %716 = add nsw i32 %715, 1
  store i32 %716, ptr @test_count, align 4, !tbaa !5
  %717 = load i32, ptr %538, align 4, !tbaa !5
  %718 = icmp eq i32 %717, 335544394
  br i1 %718, label %742, label %719

719:                                              ; preds = %714
  %720 = tail call ptr @__errno_location() #13
  %721 = load i32, ptr %720, align 4, !tbaa !5
  %722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %723 = call i32 @s2n_print_stacktrace(ptr noundef %722) #12
  %724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %725 = trunc nuw i8 %724 to i1
  br i1 %725, label %726, label %730

726:                                              ; preds = %719
  %727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %728 = call i32 @fileno(ptr noundef %727) #12
  %729 = call i32 @isatty(i32 noundef %728) #12
  %.not455 = icmp eq i32 %729, 0
  br i1 %.not455, label %730, label %731

730:                                              ; preds = %726, %719
  br label %731

731:                                              ; preds = %726, %730
  %.str.5.sink763 = phi ptr [ @.str.5, %730 ], [ @.str.2, %726 ]
  store i32 %721, ptr %720, align 4, !tbaa !5
  %732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %733 = load i32, ptr @test_count, align 4, !tbaa !5
  %734 = load i32, ptr %538, align 4, !tbaa !5
  %735 = call ptr @s2n_strerror(i32 noundef %734, ptr noundef nonnull @.str.4) #12
  %736 = load i32, ptr %538, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror_debug(i32 noundef %736, ptr noundef nonnull @.str.4) #12
  %738 = load i32, ptr %720, align 4, !tbaa !5
  %739 = call ptr @strerror(i32 noundef %738) #12
  %740 = load i32, ptr %720, align 4, !tbaa !5
  %741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %732, ptr noundef nonnull %.str.5.sink763, i32 noundef %733, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %735, ptr noundef %737, ptr noundef %739, i32 noundef %740) #14
  call void @exit(i32 noundef 1) #15
  unreachable

742:                                              ; preds = %714
  %743 = add nsw i32 %715, 2
  store i32 %743, ptr @test_count, align 4, !tbaa !5
  %744 = call ptr @s2n_strerror_debug(i32 noundef 335544394, ptr noundef nonnull @.str.4) #12
  %745 = icmp eq ptr %744, null
  br i1 %745, label %746, label %769

746:                                              ; preds = %742
  %747 = tail call ptr @__errno_location() #13
  %748 = load i32, ptr %747, align 4, !tbaa !5
  %749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %750 = call i32 @s2n_print_stacktrace(ptr noundef %749) #12
  %751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %752 = trunc nuw i8 %751 to i1
  br i1 %752, label %753, label %757

753:                                              ; preds = %746
  %754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %755 = call i32 @fileno(ptr noundef %754) #12
  %756 = call i32 @isatty(i32 noundef %755) #12
  %.not461 = icmp eq i32 %756, 0
  br i1 %.not461, label %757, label %758

757:                                              ; preds = %753, %746
  br label %758

758:                                              ; preds = %753, %757
  %.str.5.sink772 = phi ptr [ @.str.5, %757 ], [ @.str.2, %753 ]
  store i32 %748, ptr %747, align 4, !tbaa !5
  %759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %760 = load i32, ptr @test_count, align 4, !tbaa !5
  %761 = load i32, ptr %538, align 4, !tbaa !5
  %762 = call ptr @s2n_strerror(i32 noundef %761, ptr noundef nonnull @.str.4) #12
  %763 = load i32, ptr %538, align 4, !tbaa !5
  %764 = call ptr @s2n_strerror_debug(i32 noundef %763, ptr noundef nonnull @.str.4) #12
  %765 = load i32, ptr %747, align 4, !tbaa !5
  %766 = call ptr @strerror(i32 noundef %765) #12
  %767 = load i32, ptr %747, align 4, !tbaa !5
  %768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %759, ptr noundef nonnull %.str.5.sink772, i32 noundef %760, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %762, ptr noundef %764, ptr noundef %766, i32 noundef %767) #14
  call void @exit(i32 noundef 1) #15
  unreachable

769:                                              ; preds = %742
  store i32 0, ptr %538, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %770 = tail call ptr @__errno_location() #13
  store i32 0, ptr %770, align 4, !tbaa !5
  %771 = load ptr, ptr %5, align 8, !tbaa !9
  %772 = getelementptr inbounds i8, ptr %771, i64 2172
  store i32 16, ptr %772, align 4, !tbaa !19
  %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 = call i32 %537(ptr noundef %771, ptr noundef nonnull %6) #12
  %776 = icmp eq i32 %775, -1
  br i1 %776, label %777, label %799

777:                                              ; preds = %769
  %778 = load i32, ptr %770, align 4, !tbaa !5
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = call i32 @s2n_print_stacktrace(ptr noundef %779) #12
  %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) #12
  %786 = call i32 @isatty(i32 noundef %785) #12
  %.not460 = icmp eq i32 %786, 0
  br i1 %.not460, label %787, label %788

787:                                              ; preds = %783, %777
  br label %788

788:                                              ; preds = %783, %787
  %.str.5.sink781 = phi ptr [ @.str.5, %787 ], [ @.str.2, %783 ]
  store i32 %778, ptr %770, 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 %538, align 4, !tbaa !5
  %792 = call ptr @s2n_strerror(i32 noundef %791, ptr noundef nonnull @.str.4) #12
  %793 = load i32, ptr %538, align 4, !tbaa !5
  %794 = call ptr @s2n_strerror_debug(i32 noundef %793, ptr noundef nonnull @.str.4) #12
  %795 = load i32, ptr %770, align 4, !tbaa !5
  %796 = call ptr @strerror(i32 noundef %795) #12
  %797 = load i32, ptr %770, align 4, !tbaa !5
  %798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %789, ptr noundef nonnull %.str.5.sink781, i32 noundef %790, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %792, ptr noundef %794, ptr noundef %796, i32 noundef %797) #14
  call void @exit(i32 noundef 1) #15
  unreachable

799:                                              ; preds = %769
  %800 = load i32, ptr @test_count, align 4, !tbaa !5
  %801 = add nsw i32 %800, 1
  store i32 %801, ptr @test_count, align 4, !tbaa !5
  %802 = getelementptr inbounds i8, ptr %628, i64 8
  %803 = load i32, ptr %802, align 8, !tbaa !45
  %804 = load ptr, ptr %5, align 8, !tbaa !9
  %805 = getelementptr inbounds i8, ptr %804, i64 4064
  %806 = load i32, ptr %805, align 8, !tbaa !46
  %807 = icmp eq i32 %803, %806
  br i1 %807, label %830, label %808

808:                                              ; preds = %799
  %809 = load i32, ptr %770, align 4, !tbaa !5
  %810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %811 = call i32 @s2n_print_stacktrace(ptr noundef %810) #12
  %812 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %813 = trunc nuw i8 %812 to i1
  br i1 %813, label %814, label %818

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

818:                                              ; preds = %814, %808
  br label %819

819:                                              ; preds = %814, %818
  %.str.5.sink790 = phi ptr [ @.str.5, %818 ], [ @.str.2, %814 ]
  store i32 %809, ptr %770, align 4, !tbaa !5
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = load i32, ptr @test_count, align 4, !tbaa !5
  %822 = load i32, ptr %538, align 4, !tbaa !5
  %823 = call ptr @s2n_strerror(i32 noundef %822, ptr noundef nonnull @.str.4) #12
  %824 = load i32, ptr %538, align 4, !tbaa !5
  %825 = call ptr @s2n_strerror_debug(i32 noundef %824, ptr noundef nonnull @.str.4) #12
  %826 = load i32, ptr %770, align 4, !tbaa !5
  %827 = call ptr @strerror(i32 noundef %826) #12
  %828 = load i32, ptr %770, align 4, !tbaa !5
  %829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %820, ptr noundef nonnull %.str.5.sink790, i32 noundef %821, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %823, ptr noundef %825, ptr noundef %827, i32 noundef %828) #14
  call void @exit(i32 noundef 1) #15
  unreachable

830:                                              ; preds = %799
  %.not457 = icmp eq i32 %803, 0
  br i1 %.not457, label %860, label %831

831:                                              ; preds = %830
  %832 = add nsw i32 %800, 2
  store i32 %832, ptr @test_count, align 4, !tbaa !5
  %833 = load ptr, ptr %628, align 8, !tbaa !47
  %834 = getelementptr inbounds i8, ptr %804, i64 4056
  %835 = load ptr, ptr %834, align 8, !tbaa !48
  %836 = zext i32 %803 to i64
  %bcmp458 = call i32 @bcmp(ptr %833, ptr %835, i64 %836)
  %837 = icmp eq i32 %bcmp458, 0
  br i1 %837, label %860, label %838

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

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

848:                                              ; preds = %844, %838
  br label %849

849:                                              ; preds = %844, %848
  %.str.5.sink799 = phi ptr [ @.str.5, %848 ], [ @.str.2, %844 ]
  store i32 %839, ptr %770, align 4, !tbaa !5
  %850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %851 = load i32, ptr @test_count, align 4, !tbaa !5
  %852 = load i32, ptr %538, align 4, !tbaa !5
  %853 = call ptr @s2n_strerror(i32 noundef %852, ptr noundef nonnull @.str.4) #12
  %854 = load i32, ptr %538, align 4, !tbaa !5
  %855 = call ptr @s2n_strerror_debug(i32 noundef %854, ptr noundef nonnull @.str.4) #12
  %856 = load i32, ptr %770, align 4, !tbaa !5
  %857 = call ptr @strerror(i32 noundef %856) #12
  %858 = load i32, ptr %770, align 4, !tbaa !5
  %859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %850, ptr noundef nonnull %.str.5.sink799, i32 noundef %851, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %853, ptr noundef %855, ptr noundef %857, i32 noundef %858) #14
  call void @exit(i32 noundef 1) #15
  unreachable

860:                                              ; preds = %831, %830
  %861 = call i32 @s2n_stuffer_free(ptr noundef nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #12
  %862 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #12
  %863 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #12
  %864 = add nuw nsw i64 %.0326515, 1
  %exitcond.not = icmp eq i64 %864, 5
  br i1 %exitcond.not, label %.preheader484, label %541, !llvm.loop !49

865:                                              ; preds = %1406
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #12
  store ptr null, ptr %10, align 8, !tbaa !9
  %866 = load i32, ptr @test_count, align 4, !tbaa !5
  %867 = add nsw i32 %866, 1
  store i32 %867, ptr @test_count, align 4, !tbaa !5
  %868 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %10, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.42) #12
  %869 = icmp eq i32 %868, -1
  br i1 %869, label %1411, label %1433

870:                                              ; preds = %.preheader484, %1406
  %.0327516 = phi i64 [ 0, %.preheader484 ], [ %1410, %1406 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #12
  %871 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %871, ptr %7, align 8, !tbaa !9
  %872 = load i32, ptr @test_count, align 4, !tbaa !5
  %873 = add nsw i32 %872, 1
  store i32 %873, ptr @test_count, align 4, !tbaa !5
  %874 = icmp eq ptr %871, null
  br i1 %874, label %875, label %897

875:                                              ; preds = %870
  %876 = load i32, ptr %770, align 4, !tbaa !5
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = call i32 @s2n_print_stacktrace(ptr noundef %877) #12
  %879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %880 = trunc nuw i8 %879 to i1
  br i1 %880, label %881, label %885

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

885:                                              ; preds = %881, %875
  br label %886

886:                                              ; preds = %881, %885
  %.str.5.sink808 = phi ptr [ @.str.5, %885 ], [ @.str.2, %881 ]
  store i32 %876, ptr %770, align 4, !tbaa !5
  %887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %888 = load i32, ptr @test_count, align 4, !tbaa !5
  %889 = load i32, ptr %538, align 4, !tbaa !5
  %890 = call ptr @s2n_strerror(i32 noundef %889, ptr noundef nonnull @.str.4) #12
  %891 = load i32, ptr %538, align 4, !tbaa !5
  %892 = call ptr @s2n_strerror_debug(i32 noundef %891, ptr noundef nonnull @.str.4) #12
  %893 = load i32, ptr %770, align 4, !tbaa !5
  %894 = call ptr @strerror(i32 noundef %893) #12
  %895 = load i32, ptr %770, align 4, !tbaa !5
  %896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %887, ptr noundef nonnull %.str.5.sink808, i32 noundef %888, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %890, ptr noundef %892, ptr noundef %894, i32 noundef %895) #14
  call void @exit(i32 noundef 1) #15
  unreachable

897:                                              ; preds = %870
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #12
  %898 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %898, ptr %8, align 8, !tbaa !9
  %899 = load i32, ptr @test_count, align 4, !tbaa !5
  %900 = add nsw i32 %899, 1
  store i32 %900, ptr @test_count, align 4, !tbaa !5
  %901 = load ptr, ptr %7, align 8, !tbaa !9
  %902 = icmp eq ptr %901, null
  br i1 %902, label %903, label %925

903:                                              ; preds = %897
  %904 = load i32, ptr %770, align 4, !tbaa !5
  %905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %906 = call i32 @s2n_print_stacktrace(ptr noundef %905) #12
  %907 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %908 = trunc nuw i8 %907 to i1
  br i1 %908, label %909, label %913

909:                                              ; preds = %903
  %910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %911 = call i32 @fileno(ptr noundef %910) #12
  %912 = call i32 @isatty(i32 noundef %911) #12
  %.not452 = icmp eq i32 %912, 0
  br i1 %.not452, label %913, label %914

913:                                              ; preds = %909, %903
  br label %914

914:                                              ; preds = %909, %913
  %.str.5.sink817 = phi ptr [ @.str.5, %913 ], [ @.str.2, %909 ]
  store i32 %904, ptr %770, align 4, !tbaa !5
  %915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %916 = load i32, ptr @test_count, align 4, !tbaa !5
  %917 = load i32, ptr %538, align 4, !tbaa !5
  %918 = call ptr @s2n_strerror(i32 noundef %917, ptr noundef nonnull @.str.4) #12
  %919 = load i32, ptr %538, align 4, !tbaa !5
  %920 = call ptr @s2n_strerror_debug(i32 noundef %919, ptr noundef nonnull @.str.4) #12
  %921 = load i32, ptr %770, align 4, !tbaa !5
  %922 = call ptr @strerror(i32 noundef %921) #12
  %923 = load i32, ptr %770, align 4, !tbaa !5
  %924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %915, ptr noundef nonnull %.str.5.sink817, i32 noundef %916, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %918, ptr noundef %920, ptr noundef %922, i32 noundef %923) #14
  call void @exit(i32 noundef 1) #15
  unreachable

925:                                              ; preds = %897
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %9) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %9, i8 0, i64 40, i1 false)
  %926 = add nsw i32 %899, 2
  store i32 %926, ptr @test_count, align 4, !tbaa !5
  %927 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %9, i32 noundef 0) #12
  %928 = icmp eq i32 %927, -1
  br i1 %928, label %929, label %951

929:                                              ; preds = %925
  %930 = load i32, ptr %770, align 4, !tbaa !5
  %931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %932 = call i32 @s2n_print_stacktrace(ptr noundef %931) #12
  %933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %934 = trunc nuw i8 %933 to i1
  br i1 %934, label %935, label %939

935:                                              ; preds = %929
  %936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %937 = call i32 @fileno(ptr noundef %936) #12
  %938 = call i32 @isatty(i32 noundef %937) #12
  %.not451 = icmp eq i32 %938, 0
  br i1 %.not451, label %939, label %940

939:                                              ; preds = %935, %929
  br label %940

940:                                              ; preds = %935, %939
  %.str.5.sink826 = phi ptr [ @.str.5, %939 ], [ @.str.2, %935 ]
  store i32 %930, ptr %770, align 4, !tbaa !5
  %941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %942 = load i32, ptr @test_count, align 4, !tbaa !5
  %943 = load i32, ptr %538, align 4, !tbaa !5
  %944 = call ptr @s2n_strerror(i32 noundef %943, ptr noundef nonnull @.str.4) #12
  %945 = load i32, ptr %538, align 4, !tbaa !5
  %946 = call ptr @s2n_strerror_debug(i32 noundef %945, ptr noundef nonnull @.str.4) #12
  %947 = load i32, ptr %770, align 4, !tbaa !5
  %948 = call ptr @strerror(i32 noundef %947) #12
  %949 = load i32, ptr %770, align 4, !tbaa !5
  %950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %941, ptr noundef nonnull %.str.5.sink826, i32 noundef %942, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %944, ptr noundef %946, ptr noundef %948, i32 noundef %949) #14
  call void @exit(i32 noundef 1) #15
  unreachable

951:                                              ; preds = %925
  %952 = load i32, ptr @test_count, align 4, !tbaa !5
  %953 = add nsw i32 %952, 1
  store i32 %953, ptr @test_count, align 4, !tbaa !5
  %954 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %1, i64 0, i64 %.0327516
  %955 = load ptr, ptr %8, align 8, !tbaa !9
  %956 = getelementptr inbounds i8, ptr %955, i64 4056
  %957 = call i32 @s2n_dup(ptr noundef nonnull %954, ptr noundef nonnull %956) #12
  %958 = icmp eq i32 %957, -1
  br i1 %958, label %959, label %981

959:                                              ; preds = %951
  %960 = load i32, ptr %770, align 4, !tbaa !5
  %961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %962 = call i32 @s2n_print_stacktrace(ptr noundef %961) #12
  %963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %964 = trunc nuw i8 %963 to i1
  br i1 %964, label %965, label %969

965:                                              ; preds = %959
  %966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %967 = call i32 @fileno(ptr noundef %966) #12
  %968 = call i32 @isatty(i32 noundef %967) #12
  %.not450 = icmp eq i32 %968, 0
  br i1 %.not450, label %969, label %970

969:                                              ; preds = %965, %959
  br label %970

970:                                              ; preds = %965, %969
  %.str.5.sink835 = phi ptr [ @.str.5, %969 ], [ @.str.2, %965 ]
  store i32 %960, ptr %770, align 4, !tbaa !5
  %971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %972 = load i32, ptr @test_count, align 4, !tbaa !5
  %973 = load i32, ptr %538, align 4, !tbaa !5
  %974 = call ptr @s2n_strerror(i32 noundef %973, ptr noundef nonnull @.str.4) #12
  %975 = load i32, ptr %538, align 4, !tbaa !5
  %976 = call ptr @s2n_strerror_debug(i32 noundef %975, ptr noundef nonnull @.str.4) #12
  %977 = load i32, ptr %770, align 4, !tbaa !5
  %978 = call ptr @strerror(i32 noundef %977) #12
  %979 = load i32, ptr %770, align 4, !tbaa !5
  %980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %971, ptr noundef nonnull %.str.5.sink835, i32 noundef %972, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef %974, ptr noundef %976, ptr noundef %978, i32 noundef %979) #14
  call void @exit(i32 noundef 1) #15
  unreachable

981:                                              ; preds = %951
  %982 = load i32, ptr @test_count, align 4, !tbaa !5
  %983 = add nsw i32 %982, 1
  store i32 %983, ptr @test_count, align 4, !tbaa !5
  %984 = load ptr, ptr %8, align 8, !tbaa !9
  %985 = call i32 %539(ptr noundef %984, ptr noundef nonnull %9) #12
  %986 = icmp eq i32 %985, -1
  br i1 %986, label %987, label %1009

987:                                              ; preds = %981
  %988 = load i32, ptr %770, align 4, !tbaa !5
  %989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %990 = call i32 @s2n_print_stacktrace(ptr noundef %989) #12
  %991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %992 = trunc nuw i8 %991 to i1
  br i1 %992, label %993, label %997

993:                                              ; preds = %987
  %994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %995 = call i32 @fileno(ptr noundef %994) #12
  %996 = call i32 @isatty(i32 noundef %995) #12
  %.not449 = icmp eq i32 %996, 0
  br i1 %.not449, label %997, label %998

997:                                              ; preds = %993, %987
  br label %998

998:                                              ; preds = %993, %997
  %.str.5.sink844 = phi ptr [ @.str.5, %997 ], [ @.str.2, %993 ]
  store i32 %988, ptr %770, align 4, !tbaa !5
  %999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1000 = load i32, ptr @test_count, align 4, !tbaa !5
  %1001 = load i32, ptr %538, align 4, !tbaa !5
  %1002 = call ptr @s2n_strerror(i32 noundef %1001, ptr noundef nonnull @.str.4) #12
  %1003 = load i32, ptr %538, align 4, !tbaa !5
  %1004 = call ptr @s2n_strerror_debug(i32 noundef %1003, ptr noundef nonnull @.str.4) #12
  %1005 = load i32, ptr %770, align 4, !tbaa !5
  %1006 = call ptr @strerror(i32 noundef %1005) #12
  %1007 = load i32, ptr %770, align 4, !tbaa !5
  %1008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %999, ptr noundef nonnull %.str.5.sink844, i32 noundef %1000, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %1002, ptr noundef %1004, ptr noundef %1006, i32 noundef %1007) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1009:                                             ; preds = %981
  %1010 = load i32, ptr @test_count, align 4, !tbaa !5
  %1011 = add nsw i32 %1010, 1
  store i32 %1011, ptr @test_count, align 4, !tbaa !5
  %1012 = load ptr, ptr %7, align 8, !tbaa !9
  %1013 = getelementptr inbounds i8, ptr %1012, i64 4056
  %1014 = call i32 @s2n_dup(ptr noundef nonnull %954, ptr noundef nonnull %1013) #12
  %1015 = icmp eq i32 %1014, -1
  br i1 %1015, label %1016, label %1038

1016:                                             ; preds = %1009
  %1017 = load i32, ptr %770, align 4, !tbaa !5
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = call i32 @s2n_print_stacktrace(ptr noundef %1018) #12
  %1020 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1021 = trunc nuw i8 %1020 to i1
  br i1 %1021, label %1022, label %1026

1022:                                             ; preds = %1016
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = call i32 @fileno(ptr noundef %1023) #12
  %1025 = call i32 @isatty(i32 noundef %1024) #12
  %.not448 = icmp eq i32 %1025, 0
  br i1 %.not448, label %1026, label %1027

1026:                                             ; preds = %1022, %1016
  br label %1027

1027:                                             ; preds = %1022, %1026
  %.str.5.sink853 = phi ptr [ @.str.5, %1026 ], [ @.str.2, %1022 ]
  store i32 %1017, ptr %770, align 4, !tbaa !5
  %1028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1029 = load i32, ptr @test_count, align 4, !tbaa !5
  %1030 = load i32, ptr %538, align 4, !tbaa !5
  %1031 = call ptr @s2n_strerror(i32 noundef %1030, ptr noundef nonnull @.str.4) #12
  %1032 = load i32, ptr %538, align 4, !tbaa !5
  %1033 = call ptr @s2n_strerror_debug(i32 noundef %1032, ptr noundef nonnull @.str.4) #12
  %1034 = load i32, ptr %770, align 4, !tbaa !5
  %1035 = call ptr @strerror(i32 noundef %1034) #12
  %1036 = load i32, ptr %770, align 4, !tbaa !5
  %1037 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1028, ptr noundef nonnull %.str.5.sink853, i32 noundef %1029, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 125, ptr noundef %1031, ptr noundef %1033, ptr noundef %1035, i32 noundef %1036) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1038:                                             ; preds = %1009
  %1039 = load ptr, ptr %7, align 8, !tbaa !9
  %1040 = getelementptr inbounds i8, ptr %1039, i64 4064
  %1041 = load i32, ptr %1040, align 8, !tbaa !46
  %1042 = add i32 %1041, -1
  store i32 %1042, ptr %1040, align 8, !tbaa !46
  %1043 = load i32, ptr @test_count, align 4, !tbaa !5
  %1044 = add nsw i32 %1043, 1
  store i32 %1044, ptr @test_count, align 4, !tbaa !5
  %1045 = call i32 %540(ptr noundef %1039, ptr noundef nonnull %9) #12
  %1046 = icmp eq i32 %1045, -1
  br i1 %1046, label %1069, label %1047

1047:                                             ; preds = %1038
  %1048 = load i32, ptr %770, align 4, !tbaa !5
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = call i32 @s2n_print_stacktrace(ptr noundef %1049) #12
  %1051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1052 = trunc nuw i8 %1051 to i1
  br i1 %1052, label %1053, label %1057

1053:                                             ; preds = %1047
  %1054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1055 = call i32 @fileno(ptr noundef %1054) #12
  %1056 = call i32 @isatty(i32 noundef %1055) #12
  %.not435 = icmp eq i32 %1056, 0
  br i1 %.not435, label %1057, label %1058

1057:                                             ; preds = %1053, %1047
  br label %1058

1058:                                             ; preds = %1053, %1057
  %.str.5.sink862 = phi ptr [ @.str.5, %1057 ], [ @.str.2, %1053 ]
  store i32 %1048, ptr %770, align 4, !tbaa !5
  %1059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1060 = load i32, ptr @test_count, align 4, !tbaa !5
  %1061 = load i32, ptr %538, align 4, !tbaa !5
  %1062 = call ptr @s2n_strerror(i32 noundef %1061, ptr noundef nonnull @.str.4) #12
  %1063 = load i32, ptr %538, align 4, !tbaa !5
  %1064 = call ptr @s2n_strerror_debug(i32 noundef %1063, ptr noundef nonnull @.str.4) #12
  %1065 = load i32, ptr %770, align 4, !tbaa !5
  %1066 = call ptr @strerror(i32 noundef %1065) #12
  %1067 = load i32, ptr %770, align 4, !tbaa !5
  %1068 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1059, ptr noundef nonnull %.str.5.sink862, i32 noundef %1060, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1062, ptr noundef %1064, ptr noundef %1066, i32 noundef %1067) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1069:                                             ; preds = %1038
  %1070 = load i32, ptr @test_count, align 4, !tbaa !5
  %1071 = add nsw i32 %1070, 1
  store i32 %1071, ptr @test_count, align 4, !tbaa !5
  %1072 = load i32, ptr %538, align 4, !tbaa !5
  %1073 = icmp eq i32 %1072, 335544322
  br i1 %1073, label %1096, label %1074

1074:                                             ; preds = %1069
  %1075 = load i32, ptr %770, align 4, !tbaa !5
  %1076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1077 = call i32 @s2n_print_stacktrace(ptr noundef %1076) #12
  %1078 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1079 = trunc nuw i8 %1078 to i1
  br i1 %1079, label %1080, label %1084

1080:                                             ; preds = %1074
  %1081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1082 = call i32 @fileno(ptr noundef %1081) #12
  %1083 = call i32 @isatty(i32 noundef %1082) #12
  %.not436 = icmp eq i32 %1083, 0
  br i1 %.not436, label %1084, label %1085

1084:                                             ; preds = %1080, %1074
  br label %1085

1085:                                             ; preds = %1080, %1084
  %.str.5.sink871 = phi ptr [ @.str.5, %1084 ], [ @.str.2, %1080 ]
  store i32 %1075, ptr %770, align 4, !tbaa !5
  %1086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1087 = load i32, ptr @test_count, align 4, !tbaa !5
  %1088 = load i32, ptr %538, align 4, !tbaa !5
  %1089 = call ptr @s2n_strerror(i32 noundef %1088, ptr noundef nonnull @.str.4) #12
  %1090 = load i32, ptr %538, align 4, !tbaa !5
  %1091 = call ptr @s2n_strerror_debug(i32 noundef %1090, ptr noundef nonnull @.str.4) #12
  %1092 = load i32, ptr %770, align 4, !tbaa !5
  %1093 = call ptr @strerror(i32 noundef %1092) #12
  %1094 = load i32, ptr %770, align 4, !tbaa !5
  %1095 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1086, ptr noundef nonnull %.str.5.sink871, i32 noundef %1087, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1089, ptr noundef %1091, ptr noundef %1093, i32 noundef %1094) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1096:                                             ; preds = %1069
  %1097 = add nsw i32 %1070, 2
  store i32 %1097, ptr @test_count, align 4, !tbaa !5
  %1098 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #12
  %1099 = icmp eq ptr %1098, null
  br i1 %1099, label %1100, label %1122

1100:                                             ; preds = %1096
  %1101 = load i32, ptr %770, align 4, !tbaa !5
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = call i32 @s2n_print_stacktrace(ptr noundef %1102) #12
  %1104 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1105 = trunc nuw i8 %1104 to i1
  br i1 %1105, label %1106, label %1110

1106:                                             ; preds = %1100
  %1107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1108 = call i32 @fileno(ptr noundef %1107) #12
  %1109 = call i32 @isatty(i32 noundef %1108) #12
  %.not447 = icmp eq i32 %1109, 0
  br i1 %.not447, label %1110, label %1111

1110:                                             ; preds = %1106, %1100
  br label %1111

1111:                                             ; preds = %1106, %1110
  %.str.5.sink880 = phi ptr [ @.str.5, %1110 ], [ @.str.2, %1106 ]
  store i32 %1101, ptr %770, align 4, !tbaa !5
  %1112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1113 = load i32, ptr @test_count, align 4, !tbaa !5
  %1114 = load i32, ptr %538, align 4, !tbaa !5
  %1115 = call ptr @s2n_strerror(i32 noundef %1114, ptr noundef nonnull @.str.4) #12
  %1116 = load i32, ptr %538, align 4, !tbaa !5
  %1117 = call ptr @s2n_strerror_debug(i32 noundef %1116, ptr noundef nonnull @.str.4) #12
  %1118 = load i32, ptr %770, align 4, !tbaa !5
  %1119 = call ptr @strerror(i32 noundef %1118) #12
  %1120 = load i32, ptr %770, align 4, !tbaa !5
  %1121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1112, ptr noundef nonnull %.str.5.sink880, i32 noundef %1113, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %1115, ptr noundef %1117, ptr noundef %1119, i32 noundef %1120) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1122:                                             ; preds = %1096
  store i32 0, ptr %538, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %770, align 4, !tbaa !5
  %1123 = load i32, ptr @test_count, align 4, !tbaa !5
  %1124 = add nsw i32 %1123, 1
  store i32 %1124, ptr @test_count, align 4, !tbaa !5
  %1125 = load ptr, ptr %7, align 8, !tbaa !9
  %1126 = getelementptr inbounds i8, ptr %1125, i64 4056
  %1127 = call i32 @s2n_free(ptr noundef nonnull %1126) #12
  %1128 = icmp eq i32 %1127, -1
  br i1 %1128, label %1129, label %1151

1129:                                             ; preds = %1122
  %1130 = load i32, ptr %770, align 4, !tbaa !5
  %1131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1132 = call i32 @s2n_print_stacktrace(ptr noundef %1131) #12
  %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) #12
  %1138 = call i32 @isatty(i32 noundef %1137) #12
  %.not446 = icmp eq i32 %1138, 0
  br i1 %.not446, label %1139, label %1140

1139:                                             ; preds = %1135, %1129
  br label %1140

1140:                                             ; preds = %1135, %1139
  %.str.5.sink889 = phi ptr [ @.str.5, %1139 ], [ @.str.2, %1135 ]
  store i32 %1130, ptr %770, 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 %538, align 4, !tbaa !5
  %1144 = call ptr @s2n_strerror(i32 noundef %1143, ptr noundef nonnull @.str.4) #12
  %1145 = load i32, ptr %538, align 4, !tbaa !5
  %1146 = call ptr @s2n_strerror_debug(i32 noundef %1145, ptr noundef nonnull @.str.4) #12
  %1147 = load i32, ptr %770, align 4, !tbaa !5
  %1148 = call ptr @strerror(i32 noundef %1147) #12
  %1149 = load i32, ptr %770, align 4, !tbaa !5
  %1150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1141, ptr noundef nonnull %.str.5.sink889, i32 noundef %1142, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %1144, ptr noundef %1146, ptr noundef %1148, i32 noundef %1149) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1151:                                             ; preds = %1122
  %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 = call i32 @s2n_stuffer_reread(ptr noundef nonnull %9) #12
  %1155 = icmp eq i32 %1154, -1
  br i1 %1155, label %1156, label %1178

1156:                                             ; preds = %1151
  %1157 = load i32, ptr %770, align 4, !tbaa !5
  %1158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1159 = call i32 @s2n_print_stacktrace(ptr noundef %1158) #12
  %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) #12
  %1165 = call i32 @isatty(i32 noundef %1164) #12
  %.not445 = icmp eq i32 %1165, 0
  br i1 %.not445, label %1166, label %1167

1166:                                             ; preds = %1162, %1156
  br label %1167

1167:                                             ; preds = %1162, %1166
  %.str.5.sink898 = phi ptr [ @.str.5, %1166 ], [ @.str.2, %1162 ]
  store i32 %1157, ptr %770, 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 %538, align 4, !tbaa !5
  %1171 = call ptr @s2n_strerror(i32 noundef %1170, ptr noundef nonnull @.str.4) #12
  %1172 = load i32, ptr %538, align 4, !tbaa !5
  %1173 = call ptr @s2n_strerror_debug(i32 noundef %1172, ptr noundef nonnull @.str.4) #12
  %1174 = load i32, ptr %770, align 4, !tbaa !5
  %1175 = call ptr @strerror(i32 noundef %1174) #12
  %1176 = load i32, ptr %770, align 4, !tbaa !5
  %1177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1168, ptr noundef nonnull %.str.5.sink898, i32 noundef %1169, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 130, ptr noundef %1171, ptr noundef %1173, ptr noundef %1175, i32 noundef %1176) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1178:                                             ; preds = %1151
  %1179 = load i32, ptr @test_count, align 4, !tbaa !5
  %1180 = add nsw i32 %1179, 1
  store i32 %1180, ptr @test_count, align 4, !tbaa !5
  %1181 = load ptr, ptr %7, align 8, !tbaa !9
  %1182 = getelementptr inbounds i8, ptr %1181, i64 4056
  %1183 = call i32 @s2n_dup(ptr noundef nonnull %954, ptr noundef nonnull %1182) #12
  %1184 = icmp eq i32 %1183, -1
  br i1 %1184, label %1185, label %1207

1185:                                             ; preds = %1178
  %1186 = load i32, ptr %770, align 4, !tbaa !5
  %1187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1188 = call i32 @s2n_print_stacktrace(ptr noundef %1187) #12
  %1189 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1190 = trunc nuw i8 %1189 to i1
  br i1 %1190, label %1191, label %1195

1191:                                             ; preds = %1185
  %1192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1193 = call i32 @fileno(ptr noundef %1192) #12
  %1194 = call i32 @isatty(i32 noundef %1193) #12
  %.not444 = icmp eq i32 %1194, 0
  br i1 %.not444, label %1195, label %1196

1195:                                             ; preds = %1191, %1185
  br label %1196

1196:                                             ; preds = %1191, %1195
  %.str.5.sink907 = phi ptr [ @.str.5, %1195 ], [ @.str.2, %1191 ]
  store i32 %1186, ptr %770, align 4, !tbaa !5
  %1197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1198 = load i32, ptr @test_count, align 4, !tbaa !5
  %1199 = load i32, ptr %538, align 4, !tbaa !5
  %1200 = call ptr @s2n_strerror(i32 noundef %1199, ptr noundef nonnull @.str.4) #12
  %1201 = load i32, ptr %538, align 4, !tbaa !5
  %1202 = call ptr @s2n_strerror_debug(i32 noundef %1201, ptr noundef nonnull @.str.4) #12
  %1203 = load i32, ptr %770, align 4, !tbaa !5
  %1204 = call ptr @strerror(i32 noundef %1203) #12
  %1205 = load i32, ptr %770, align 4, !tbaa !5
  %1206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1197, ptr noundef nonnull %.str.5.sink907, i32 noundef %1198, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %1200, ptr noundef %1202, ptr noundef %1204, i32 noundef %1205) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1207:                                             ; preds = %1178
  %1208 = load ptr, ptr %7, align 8, !tbaa !9
  %1209 = getelementptr inbounds i8, ptr %1208, i64 4056
  %1210 = load ptr, ptr %1209, align 8, !tbaa !48
  %1211 = load i8, ptr %1210, align 1, !tbaa !51
  %1212 = add i8 %1211, 1
  store i8 %1212, ptr %1210, align 1, !tbaa !51
  %1213 = load i32, ptr @test_count, align 4, !tbaa !5
  %1214 = add nsw i32 %1213, 1
  store i32 %1214, ptr @test_count, align 4, !tbaa !5
  %1215 = load ptr, ptr %7, align 8, !tbaa !9
  %1216 = call i32 %540(ptr noundef %1215, ptr noundef nonnull %9) #12
  %1217 = icmp eq i32 %1216, -1
  br i1 %1217, label %1240, label %1218

1218:                                             ; preds = %1207
  %1219 = load i32, ptr %770, align 4, !tbaa !5
  %1220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1221 = call i32 @s2n_print_stacktrace(ptr noundef %1220) #12
  %1222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1223 = trunc nuw i8 %1222 to i1
  br i1 %1223, label %1224, label %1228

1224:                                             ; preds = %1218
  %1225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1226 = call i32 @fileno(ptr noundef %1225) #12
  %1227 = call i32 @isatty(i32 noundef %1226) #12
  %.not437 = icmp eq i32 %1227, 0
  br i1 %.not437, label %1228, label %1229

1228:                                             ; preds = %1224, %1218
  br label %1229

1229:                                             ; preds = %1224, %1228
  %.str.5.sink916 = phi ptr [ @.str.5, %1228 ], [ @.str.2, %1224 ]
  store i32 %1219, ptr %770, align 4, !tbaa !5
  %1230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1231 = load i32, ptr @test_count, align 4, !tbaa !5
  %1232 = load i32, ptr %538, align 4, !tbaa !5
  %1233 = call ptr @s2n_strerror(i32 noundef %1232, ptr noundef nonnull @.str.4) #12
  %1234 = load i32, ptr %538, align 4, !tbaa !5
  %1235 = call ptr @s2n_strerror_debug(i32 noundef %1234, ptr noundef nonnull @.str.4) #12
  %1236 = load i32, ptr %770, align 4, !tbaa !5
  %1237 = call ptr @strerror(i32 noundef %1236) #12
  %1238 = load i32, ptr %770, align 4, !tbaa !5
  %1239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1230, ptr noundef nonnull %.str.5.sink916, i32 noundef %1231, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %1233, ptr noundef %1235, ptr noundef %1237, i32 noundef %1238) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1240:                                             ; preds = %1207
  %1241 = load i32, ptr @test_count, align 4, !tbaa !5
  %1242 = add nsw i32 %1241, 1
  store i32 %1242, ptr @test_count, align 4, !tbaa !5
  %1243 = load i32, ptr %538, align 4, !tbaa !5
  %1244 = icmp eq i32 %1243, 335544322
  br i1 %1244, label %1267, label %1245

1245:                                             ; preds = %1240
  %1246 = load i32, ptr %770, align 4, !tbaa !5
  %1247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1248 = call i32 @s2n_print_stacktrace(ptr noundef %1247) #12
  %1249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1250 = trunc nuw i8 %1249 to i1
  br i1 %1250, label %1251, label %1255

1251:                                             ; preds = %1245
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = call i32 @fileno(ptr noundef %1252) #12
  %1254 = call i32 @isatty(i32 noundef %1253) #12
  %.not438 = icmp eq i32 %1254, 0
  br i1 %.not438, label %1255, label %1256

1255:                                             ; preds = %1251, %1245
  br label %1256

1256:                                             ; preds = %1251, %1255
  %.str.5.sink925 = phi ptr [ @.str.5, %1255 ], [ @.str.2, %1251 ]
  store i32 %1246, ptr %770, align 4, !tbaa !5
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = load i32, ptr @test_count, align 4, !tbaa !5
  %1259 = load i32, ptr %538, align 4, !tbaa !5
  %1260 = call ptr @s2n_strerror(i32 noundef %1259, ptr noundef nonnull @.str.4) #12
  %1261 = load i32, ptr %538, align 4, !tbaa !5
  %1262 = call ptr @s2n_strerror_debug(i32 noundef %1261, ptr noundef nonnull @.str.4) #12
  %1263 = load i32, ptr %770, align 4, !tbaa !5
  %1264 = call ptr @strerror(i32 noundef %1263) #12
  %1265 = load i32, ptr %770, align 4, !tbaa !5
  %1266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1257, ptr noundef nonnull %.str.5.sink925, i32 noundef %1258, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %1260, ptr noundef %1262, ptr noundef %1264, i32 noundef %1265) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1267:                                             ; preds = %1240
  %1268 = add nsw i32 %1241, 2
  store i32 %1268, ptr @test_count, align 4, !tbaa !5
  %1269 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #12
  %1270 = icmp eq ptr %1269, null
  br i1 %1270, label %1271, label %1293

1271:                                             ; preds = %1267
  %1272 = load i32, ptr %770, align 4, !tbaa !5
  %1273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1274 = call i32 @s2n_print_stacktrace(ptr noundef %1273) #12
  %1275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1276 = trunc nuw i8 %1275 to i1
  br i1 %1276, label %1277, label %1281

1277:                                             ; preds = %1271
  %1278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1279 = call i32 @fileno(ptr noundef %1278) #12
  %1280 = call i32 @isatty(i32 noundef %1279) #12
  %.not443 = icmp eq i32 %1280, 0
  br i1 %.not443, label %1281, label %1282

1281:                                             ; preds = %1277, %1271
  br label %1282

1282:                                             ; preds = %1277, %1281
  %.str.5.sink934 = phi ptr [ @.str.5, %1281 ], [ @.str.2, %1277 ]
  store i32 %1272, ptr %770, align 4, !tbaa !5
  %1283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1284 = load i32, ptr @test_count, align 4, !tbaa !5
  %1285 = load i32, ptr %538, align 4, !tbaa !5
  %1286 = call ptr @s2n_strerror(i32 noundef %1285, ptr noundef nonnull @.str.4) #12
  %1287 = load i32, ptr %538, align 4, !tbaa !5
  %1288 = call ptr @s2n_strerror_debug(i32 noundef %1287, ptr noundef nonnull @.str.4) #12
  %1289 = load i32, ptr %770, align 4, !tbaa !5
  %1290 = call ptr @strerror(i32 noundef %1289) #12
  %1291 = load i32, ptr %770, align 4, !tbaa !5
  %1292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1283, ptr noundef nonnull %.str.5.sink934, i32 noundef %1284, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %1286, ptr noundef %1288, ptr noundef %1290, i32 noundef %1291) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1293:                                             ; preds = %1267
  store i32 0, ptr %538, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %770, align 4, !tbaa !5
  %1294 = load i32, ptr @test_count, align 4, !tbaa !5
  %1295 = add nsw i32 %1294, 1
  store i32 %1295, ptr @test_count, align 4, !tbaa !5
  %1296 = load ptr, ptr %7, align 8, !tbaa !9
  %1297 = getelementptr inbounds i8, ptr %1296, i64 4056
  %1298 = call i32 @s2n_free(ptr noundef nonnull %1297) #12
  %1299 = icmp eq i32 %1298, -1
  br i1 %1299, label %1300, label %1322

1300:                                             ; preds = %1293
  %1301 = load i32, ptr %770, align 4, !tbaa !5
  %1302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1303 = call i32 @s2n_print_stacktrace(ptr noundef %1302) #12
  %1304 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1305 = trunc nuw i8 %1304 to i1
  br i1 %1305, label %1306, label %1310

1306:                                             ; preds = %1300
  %1307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1308 = call i32 @fileno(ptr noundef %1307) #12
  %1309 = call i32 @isatty(i32 noundef %1308) #12
  %.not442 = icmp eq i32 %1309, 0
  br i1 %.not442, label %1310, label %1311

1310:                                             ; preds = %1306, %1300
  br label %1311

1311:                                             ; preds = %1306, %1310
  %.str.5.sink943 = phi ptr [ @.str.5, %1310 ], [ @.str.2, %1306 ]
  store i32 %1301, ptr %770, align 4, !tbaa !5
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1313 = load i32, ptr @test_count, align 4, !tbaa !5
  %1314 = load i32, ptr %538, align 4, !tbaa !5
  %1315 = call ptr @s2n_strerror(i32 noundef %1314, ptr noundef nonnull @.str.4) #12
  %1316 = load i32, ptr %538, align 4, !tbaa !5
  %1317 = call ptr @s2n_strerror_debug(i32 noundef %1316, ptr noundef nonnull @.str.4) #12
  %1318 = load i32, ptr %770, align 4, !tbaa !5
  %1319 = call ptr @strerror(i32 noundef %1318) #12
  %1320 = load i32, ptr %770, align 4, !tbaa !5
  %1321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1312, ptr noundef nonnull %.str.5.sink943, i32 noundef %1313, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef %1315, ptr noundef %1317, ptr noundef %1319, i32 noundef %1320) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1322:                                             ; preds = %1293
  %1323 = load i32, ptr @test_count, align 4, !tbaa !5
  %1324 = add nsw i32 %1323, 1
  store i32 %1324, ptr @test_count, align 4, !tbaa !5
  %1325 = call i32 @s2n_stuffer_reread(ptr noundef nonnull %9) #12
  %1326 = icmp eq i32 %1325, -1
  br i1 %1326, label %1327, label %1349

1327:                                             ; preds = %1322
  %1328 = load i32, ptr %770, align 4, !tbaa !5
  %1329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1330 = call i32 @s2n_print_stacktrace(ptr noundef %1329) #12
  %1331 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1332 = trunc nuw i8 %1331 to i1
  br i1 %1332, label %1333, label %1337

1333:                                             ; preds = %1327
  %1334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1335 = call i32 @fileno(ptr noundef %1334) #12
  %1336 = call i32 @isatty(i32 noundef %1335) #12
  %.not441 = icmp eq i32 %1336, 0
  br i1 %.not441, label %1337, label %1338

1337:                                             ; preds = %1333, %1327
  br label %1338

1338:                                             ; preds = %1333, %1337
  %.str.5.sink952 = phi ptr [ @.str.5, %1337 ], [ @.str.2, %1333 ]
  store i32 %1328, ptr %770, align 4, !tbaa !5
  %1339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1340 = load i32, ptr @test_count, align 4, !tbaa !5
  %1341 = load i32, ptr %538, align 4, !tbaa !5
  %1342 = call ptr @s2n_strerror(i32 noundef %1341, ptr noundef nonnull @.str.4) #12
  %1343 = load i32, ptr %538, align 4, !tbaa !5
  %1344 = call ptr @s2n_strerror_debug(i32 noundef %1343, ptr noundef nonnull @.str.4) #12
  %1345 = load i32, ptr %770, align 4, !tbaa !5
  %1346 = call ptr @strerror(i32 noundef %1345) #12
  %1347 = load i32, ptr %770, align 4, !tbaa !5
  %1348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1339, ptr noundef nonnull %.str.5.sink952, i32 noundef %1340, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %1342, ptr noundef %1344, ptr noundef %1346, i32 noundef %1347) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1349:                                             ; preds = %1322
  %1350 = load i32, ptr @test_count, align 4, !tbaa !5
  %1351 = add nsw i32 %1350, 1
  store i32 %1351, ptr @test_count, align 4, !tbaa !5
  %1352 = load ptr, ptr %7, align 8, !tbaa !9
  %1353 = getelementptr inbounds i8, ptr %1352, i64 4056
  %1354 = call i32 @s2n_dup(ptr noundef nonnull %954, ptr noundef nonnull %1353) #12
  %1355 = icmp eq i32 %1354, -1
  br i1 %1355, label %1356, label %1378

1356:                                             ; preds = %1349
  %1357 = load i32, ptr %770, align 4, !tbaa !5
  %1358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1359 = call i32 @s2n_print_stacktrace(ptr noundef %1358) #12
  %1360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1361 = trunc nuw i8 %1360 to i1
  br i1 %1361, label %1362, label %1366

1362:                                             ; preds = %1356
  %1363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1364 = call i32 @fileno(ptr noundef %1363) #12
  %1365 = call i32 @isatty(i32 noundef %1364) #12
  %.not440 = icmp eq i32 %1365, 0
  br i1 %.not440, label %1366, label %1367

1366:                                             ; preds = %1362, %1356
  br label %1367

1367:                                             ; preds = %1362, %1366
  %.str.5.sink961 = phi ptr [ @.str.5, %1366 ], [ @.str.2, %1362 ]
  store i32 %1357, ptr %770, align 4, !tbaa !5
  %1368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1369 = load i32, ptr @test_count, align 4, !tbaa !5
  %1370 = load i32, ptr %538, align 4, !tbaa !5
  %1371 = call ptr @s2n_strerror(i32 noundef %1370, ptr noundef nonnull @.str.4) #12
  %1372 = load i32, ptr %538, align 4, !tbaa !5
  %1373 = call ptr @s2n_strerror_debug(i32 noundef %1372, ptr noundef nonnull @.str.4) #12
  %1374 = load i32, ptr %770, align 4, !tbaa !5
  %1375 = call ptr @strerror(i32 noundef %1374) #12
  %1376 = load i32, ptr %770, align 4, !tbaa !5
  %1377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1368, ptr noundef nonnull %.str.5.sink961, i32 noundef %1369, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %1371, ptr noundef %1373, ptr noundef %1375, i32 noundef %1376) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1378:                                             ; preds = %1349
  %1379 = load i32, ptr @test_count, align 4, !tbaa !5
  %1380 = add nsw i32 %1379, 1
  store i32 %1380, ptr @test_count, align 4, !tbaa !5
  %1381 = load ptr, ptr %7, align 8, !tbaa !9
  %1382 = call i32 %540(ptr noundef %1381, ptr noundef nonnull %9) #12
  %1383 = icmp eq i32 %1382, -1
  br i1 %1383, label %1384, label %1406

1384:                                             ; preds = %1378
  %1385 = load i32, ptr %770, align 4, !tbaa !5
  %1386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1387 = call i32 @s2n_print_stacktrace(ptr noundef %1386) #12
  %1388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1389 = trunc nuw i8 %1388 to i1
  br i1 %1389, label %1390, label %1394

1390:                                             ; preds = %1384
  %1391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1392 = call i32 @fileno(ptr noundef %1391) #12
  %1393 = call i32 @isatty(i32 noundef %1392) #12
  %.not439 = icmp eq i32 %1393, 0
  br i1 %.not439, label %1394, label %1395

1394:                                             ; preds = %1390, %1384
  br label %1395

1395:                                             ; preds = %1390, %1394
  %.str.5.sink970 = phi ptr [ @.str.5, %1394 ], [ @.str.2, %1390 ]
  store i32 %1385, ptr %770, align 4, !tbaa !5
  %1396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1397 = load i32, ptr @test_count, align 4, !tbaa !5
  %1398 = load i32, ptr %538, align 4, !tbaa !5
  %1399 = call ptr @s2n_strerror(i32 noundef %1398, ptr noundef nonnull @.str.4) #12
  %1400 = load i32, ptr %538, align 4, !tbaa !5
  %1401 = call ptr @s2n_strerror_debug(i32 noundef %1400, ptr noundef nonnull @.str.4) #12
  %1402 = load i32, ptr %770, align 4, !tbaa !5
  %1403 = call ptr @strerror(i32 noundef %1402) #12
  %1404 = load i32, ptr %770, align 4, !tbaa !5
  %1405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1396, ptr noundef nonnull %.str.5.sink970, i32 noundef %1397, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 142, ptr noundef %1399, ptr noundef %1401, ptr noundef %1403, i32 noundef %1404) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1406:                                             ; preds = %1378
  %1407 = call i32 @s2n_stuffer_free(ptr noundef nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %9) #12
  %1408 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #12
  %1409 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #12
  %1410 = add nuw nsw i64 %.0327516, 1
  %exitcond535.not = icmp eq i64 %1410, 5
  br i1 %exitcond535.not, label %865, label %870, !llvm.loop !52

1411:                                             ; preds = %865
  %1412 = load i32, ptr %770, align 4, !tbaa !5
  %1413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1414 = call i32 @s2n_print_stacktrace(ptr noundef %1413) #12
  %1415 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1416 = trunc nuw i8 %1415 to i1
  br i1 %1416, label %1417, label %1421

1417:                                             ; preds = %1411
  %1418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1419 = call i32 @fileno(ptr noundef %1418) #12
  %1420 = call i32 @isatty(i32 noundef %1419) #12
  %.not434 = icmp eq i32 %1420, 0
  br i1 %.not434, label %1421, label %1422

1421:                                             ; preds = %1417, %1411
  br label %1422

1422:                                             ; preds = %1417, %1421
  %.str.5.sink979 = phi ptr [ @.str.5, %1421 ], [ @.str.2, %1417 ]
  store i32 %1412, ptr %770, align 4, !tbaa !5
  %1423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1424 = load i32, ptr @test_count, align 4, !tbaa !5
  %1425 = load i32, ptr %538, align 4, !tbaa !5
  %1426 = call ptr @s2n_strerror(i32 noundef %1425, ptr noundef nonnull @.str.4) #12
  %1427 = load i32, ptr %538, align 4, !tbaa !5
  %1428 = call ptr @s2n_strerror_debug(i32 noundef %1427, ptr noundef nonnull @.str.4) #12
  %1429 = load i32, ptr %770, align 4, !tbaa !5
  %1430 = call ptr @strerror(i32 noundef %1429) #12
  %1431 = load i32, ptr %770, align 4, !tbaa !5
  %1432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1423, ptr noundef nonnull %.str.5.sink979, i32 noundef %1424, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %1426, ptr noundef %1428, ptr noundef %1430, i32 noundef %1431) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1433:                                             ; preds = %865
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #12
  %1434 = call ptr @s2n_config_new() #12
  store ptr %1434, ptr %11, align 8, !tbaa !9
  %1435 = load i32, ptr @test_count, align 4, !tbaa !5
  %1436 = add nsw i32 %1435, 1
  store i32 %1436, ptr @test_count, align 4, !tbaa !5
  %1437 = load ptr, ptr %10, align 8, !tbaa !9
  %1438 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1434, ptr noundef %1437) #12
  %1439 = icmp eq i32 %1438, -1
  br i1 %1439, label %1440, label %1462

1440:                                             ; preds = %1433
  %1441 = load i32, ptr %770, align 4, !tbaa !5
  %1442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1443 = call i32 @s2n_print_stacktrace(ptr noundef %1442) #12
  %1444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1445 = trunc nuw i8 %1444 to i1
  br i1 %1445, label %1446, label %1450

1446:                                             ; preds = %1440
  %1447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1448 = call i32 @fileno(ptr noundef %1447) #12
  %1449 = call i32 @isatty(i32 noundef %1448) #12
  %.not433 = icmp eq i32 %1449, 0
  br i1 %.not433, label %1450, label %1451

1450:                                             ; preds = %1446, %1440
  br label %1451

1451:                                             ; preds = %1446, %1450
  %.str.5.sink988 = phi ptr [ @.str.5, %1450 ], [ @.str.2, %1446 ]
  store i32 %1441, ptr %770, align 4, !tbaa !5
  %1452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1453 = load i32, ptr @test_count, align 4, !tbaa !5
  %1454 = load i32, ptr %538, align 4, !tbaa !5
  %1455 = call ptr @s2n_strerror(i32 noundef %1454, ptr noundef nonnull @.str.4) #12
  %1456 = load i32, ptr %538, align 4, !tbaa !5
  %1457 = call ptr @s2n_strerror_debug(i32 noundef %1456, ptr noundef nonnull @.str.4) #12
  %1458 = load i32, ptr %770, align 4, !tbaa !5
  %1459 = call ptr @strerror(i32 noundef %1458) #12
  %1460 = load i32, ptr %770, align 4, !tbaa !5
  %1461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1452, ptr noundef nonnull %.str.5.sink988, i32 noundef %1453, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %1455, ptr noundef %1457, ptr noundef %1459, i32 noundef %1460) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1462:                                             ; preds = %1433
  %1463 = load i32, ptr @test_count, align 4, !tbaa !5
  %1464 = add nsw i32 %1463, 1
  store i32 %1464, ptr @test_count, align 4, !tbaa !5
  %1465 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1434, ptr noundef nonnull @.str.45) #12
  %1466 = icmp eq i32 %1465, -1
  br i1 %1466, label %1467, label %1489

1467:                                             ; preds = %1462
  %1468 = load i32, ptr %770, align 4, !tbaa !5
  %1469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1470 = call i32 @s2n_print_stacktrace(ptr noundef %1469) #12
  %1471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1472 = trunc nuw i8 %1471 to i1
  br i1 %1472, label %1473, label %1477

1473:                                             ; preds = %1467
  %1474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1475 = call i32 @fileno(ptr noundef %1474) #12
  %1476 = call i32 @isatty(i32 noundef %1475) #12
  %.not432 = icmp eq i32 %1476, 0
  br i1 %.not432, label %1477, label %1478

1477:                                             ; preds = %1473, %1467
  br label %1478

1478:                                             ; preds = %1473, %1477
  %.str.5.sink997 = phi ptr [ @.str.5, %1477 ], [ @.str.2, %1473 ]
  store i32 %1468, ptr %770, align 4, !tbaa !5
  %1479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1480 = load i32, ptr @test_count, align 4, !tbaa !5
  %1481 = load i32, ptr %538, align 4, !tbaa !5
  %1482 = call ptr @s2n_strerror(i32 noundef %1481, ptr noundef nonnull @.str.4) #12
  %1483 = load i32, ptr %538, align 4, !tbaa !5
  %1484 = call ptr @s2n_strerror_debug(i32 noundef %1483, ptr noundef nonnull @.str.4) #12
  %1485 = load i32, ptr %770, align 4, !tbaa !5
  %1486 = call ptr @strerror(i32 noundef %1485) #12
  %1487 = load i32, ptr %770, align 4, !tbaa !5
  %1488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1479, ptr noundef nonnull %.str.5.sink997, i32 noundef %1480, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %1482, ptr noundef %1484, ptr noundef %1486, i32 noundef %1487) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1489:                                             ; preds = %1462
  %1490 = load i32, ptr @test_count, align 4, !tbaa !5
  %1491 = add nsw i32 %1490, 1
  store i32 %1491, ptr @test_count, align 4, !tbaa !5
  %1492 = call i32 @s2n_config_disable_x509_verification(ptr noundef %1434) #12
  %1493 = icmp eq i32 %1492, -1
  br i1 %1493, label %1508, label %.preheader.preheader

.preheader.preheader:                             ; preds = %1489
  %1494 = getelementptr inbounds i8, ptr %1, i64 8
  %1495 = load i32, ptr %1494, align 8, !tbaa !45
  %spec.select = call i32 @llvm.umin.i32(i32 %1495, i32 32767)
  store i32 %spec.select, ptr %1494, align 8, !tbaa !45
  %1496 = getelementptr inbounds i8, ptr %1, i64 32
  %1497 = load i32, ptr %1496, align 16, !tbaa !45
  %spec.select.1 = call i32 @llvm.umin.i32(i32 %1497, i32 32767)
  store i32 %spec.select.1, ptr %1496, align 16, !tbaa !45
  %1498 = getelementptr inbounds i8, ptr %1, i64 56
  %1499 = load i32, ptr %1498, align 8, !tbaa !45
  %spec.select.2 = call i32 @llvm.umin.i32(i32 %1499, i32 32767)
  store i32 %spec.select.2, ptr %1498, align 8, !tbaa !45
  %1500 = getelementptr inbounds i8, ptr %1, i64 80
  %1501 = load i32, ptr %1500, align 16, !tbaa !45
  %spec.select.3 = call i32 @llvm.umin.i32(i32 %1501, i32 32767)
  store i32 %spec.select.3, ptr %1500, align 16, !tbaa !45
  %1502 = getelementptr inbounds i8, ptr %1, i64 104
  %1503 = load i32, ptr %1502, align 8, !tbaa !45
  %spec.select.4 = call i32 @llvm.umin.i32(i32 %1503, i32 32767)
  store i32 %spec.select.4, ptr %1502, align 8, !tbaa !45
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #12
  %1504 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %1504, ptr %12, align 8, !tbaa !9
  %1505 = load i32, ptr @test_count, align 4, !tbaa !5
  %1506 = add nsw i32 %1505, 1
  store i32 %1506, ptr @test_count, align 4, !tbaa !5
  %1507 = icmp eq ptr %1504, null
  br i1 %1507, label %1530, label %1552

1508:                                             ; preds = %1489
  %1509 = load i32, ptr %770, align 4, !tbaa !5
  %1510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1511 = call i32 @s2n_print_stacktrace(ptr noundef %1510) #12
  %1512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1513 = trunc nuw i8 %1512 to i1
  br i1 %1513, label %1514, label %1518

1514:                                             ; preds = %1508
  %1515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1516 = call i32 @fileno(ptr noundef %1515) #12
  %1517 = call i32 @isatty(i32 noundef %1516) #12
  %.not431 = icmp eq i32 %1517, 0
  br i1 %.not431, label %1518, label %1519

1518:                                             ; preds = %1514, %1508
  br label %1519

1519:                                             ; preds = %1514, %1518
  %.str.5.sink1006 = phi ptr [ @.str.5, %1518 ], [ @.str.2, %1514 ]
  store i32 %1509, ptr %770, align 4, !tbaa !5
  %1520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1521 = load i32, ptr @test_count, align 4, !tbaa !5
  %1522 = load i32, ptr %538, align 4, !tbaa !5
  %1523 = call ptr @s2n_strerror(i32 noundef %1522, ptr noundef nonnull @.str.4) #12
  %1524 = load i32, ptr %538, align 4, !tbaa !5
  %1525 = call ptr @s2n_strerror_debug(i32 noundef %1524, ptr noundef nonnull @.str.4) #12
  %1526 = load i32, ptr %770, align 4, !tbaa !5
  %1527 = call ptr @strerror(i32 noundef %1526) #12
  %1528 = load i32, ptr %770, align 4, !tbaa !5
  %1529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1520, ptr noundef nonnull %.str.5.sink1006, i32 noundef %1521, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 154, ptr noundef %1523, ptr noundef %1525, ptr noundef %1527, i32 noundef %1528) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1530:                                             ; preds = %.preheader.preheader
  %1531 = load i32, ptr %770, align 4, !tbaa !5
  %1532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1533 = call i32 @s2n_print_stacktrace(ptr noundef %1532) #12
  %1534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1535 = trunc nuw i8 %1534 to i1
  br i1 %1535, label %1536, label %1540

1536:                                             ; preds = %1530
  %1537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1538 = call i32 @fileno(ptr noundef %1537) #12
  %1539 = call i32 @isatty(i32 noundef %1538) #12
  %.not430 = icmp eq i32 %1539, 0
  br i1 %.not430, label %1540, label %1541

1540:                                             ; preds = %1536, %1530
  br label %1541

1541:                                             ; preds = %1536, %1540
  %.str.5.sink1015 = phi ptr [ @.str.5, %1540 ], [ @.str.2, %1536 ]
  store i32 %1531, ptr %770, align 4, !tbaa !5
  %1542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1543 = load i32, ptr @test_count, align 4, !tbaa !5
  %1544 = load i32, ptr %538, align 4, !tbaa !5
  %1545 = call ptr @s2n_strerror(i32 noundef %1544, ptr noundef nonnull @.str.4) #12
  %1546 = load i32, ptr %538, align 4, !tbaa !5
  %1547 = call ptr @s2n_strerror_debug(i32 noundef %1546, ptr noundef nonnull @.str.4) #12
  %1548 = load i32, ptr %770, align 4, !tbaa !5
  %1549 = call ptr @strerror(i32 noundef %1548) #12
  %1550 = load i32, ptr %770, align 4, !tbaa !5
  %1551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1542, ptr noundef nonnull %.str.5.sink1015, i32 noundef %1543, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %1545, ptr noundef %1547, ptr noundef %1549, i32 noundef %1550) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1552:                                             ; preds = %.preheader.preheader
  %1553 = add nsw i32 %1505, 2
  store i32 %1553, ptr @test_count, align 4, !tbaa !5
  %1554 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1504, ptr noundef %1434) #12
  %1555 = icmp eq i32 %1554, -1
  br i1 %1555, label %1556, label %1578

1556:                                             ; preds = %1552
  %1557 = load i32, ptr %770, align 4, !tbaa !5
  %1558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1559 = call i32 @s2n_print_stacktrace(ptr noundef %1558) #12
  %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) #12
  %1565 = call i32 @isatty(i32 noundef %1564) #12
  %.not429 = icmp eq i32 %1565, 0
  br i1 %.not429, label %1566, label %1567

1566:                                             ; preds = %1562, %1556
  br label %1567

1567:                                             ; preds = %1562, %1566
  %.str.5.sink1024 = phi ptr [ @.str.5, %1566 ], [ @.str.2, %1562 ]
  store i32 %1557, ptr %770, 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 %538, align 4, !tbaa !5
  %1571 = call ptr @s2n_strerror(i32 noundef %1570, ptr noundef nonnull @.str.4) #12
  %1572 = load i32, ptr %538, align 4, !tbaa !5
  %1573 = call ptr @s2n_strerror_debug(i32 noundef %1572, ptr noundef nonnull @.str.4) #12
  %1574 = load i32, ptr %770, align 4, !tbaa !5
  %1575 = call ptr @strerror(i32 noundef %1574) #12
  %1576 = load i32, ptr %770, align 4, !tbaa !5
  %1577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1568, ptr noundef nonnull %.str.5.sink1024, i32 noundef %1569, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 171, ptr noundef %1571, ptr noundef %1573, ptr noundef %1575, i32 noundef %1576) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1578:                                             ; preds = %1552
  %1579 = load i32, ptr @test_count, align 4, !tbaa !5
  %1580 = add nsw i32 %1579, 1
  store i32 %1580, ptr @test_count, align 4, !tbaa !5
  %1581 = load ptr, ptr %12, align 8, !tbaa !9
  %1582 = call i32 @s2n_connection_set_blinding(ptr noundef %1581, i32 noundef 1) #12
  %1583 = icmp eq i32 %1582, -1
  br i1 %1583, label %1584, label %1606

1584:                                             ; preds = %1578
  %1585 = load i32, ptr %770, align 4, !tbaa !5
  %1586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1587 = call i32 @s2n_print_stacktrace(ptr noundef %1586) #12
  %1588 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1589 = trunc nuw i8 %1588 to i1
  br i1 %1589, label %1590, label %1594

1590:                                             ; preds = %1584
  %1591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1592 = call i32 @fileno(ptr noundef %1591) #12
  %1593 = call i32 @isatty(i32 noundef %1592) #12
  %.not428 = icmp eq i32 %1593, 0
  br i1 %.not428, label %1594, label %1595

1594:                                             ; preds = %1590, %1584
  br label %1595

1595:                                             ; preds = %1590, %1594
  %.str.5.sink1033 = phi ptr [ @.str.5, %1594 ], [ @.str.2, %1590 ]
  store i32 %1585, ptr %770, align 4, !tbaa !5
  %1596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1597 = load i32, ptr @test_count, align 4, !tbaa !5
  %1598 = load i32, ptr %538, align 4, !tbaa !5
  %1599 = call ptr @s2n_strerror(i32 noundef %1598, ptr noundef nonnull @.str.4) #12
  %1600 = load i32, ptr %538, align 4, !tbaa !5
  %1601 = call ptr @s2n_strerror_debug(i32 noundef %1600, ptr noundef nonnull @.str.4) #12
  %1602 = load i32, ptr %770, align 4, !tbaa !5
  %1603 = call ptr @strerror(i32 noundef %1602) #12
  %1604 = load i32, ptr %770, align 4, !tbaa !5
  %1605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1596, ptr noundef nonnull %.str.5.sink1033, i32 noundef %1597, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %1599, ptr noundef %1601, ptr noundef %1603, i32 noundef %1604) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1606:                                             ; preds = %1578
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #12
  %1607 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %1607, ptr %13, align 8, !tbaa !9
  %1608 = load i32, ptr @test_count, align 4, !tbaa !5
  %1609 = add nsw i32 %1608, 1
  store i32 %1609, ptr @test_count, align 4, !tbaa !5
  %1610 = load ptr, ptr %12, align 8, !tbaa !9
  %1611 = icmp eq ptr %1610, null
  br i1 %1611, label %1612, label %1634

1612:                                             ; preds = %1606
  %1613 = load i32, ptr %770, align 4, !tbaa !5
  %1614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1615 = call i32 @s2n_print_stacktrace(ptr noundef %1614) #12
  %1616 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1617 = trunc nuw i8 %1616 to i1
  br i1 %1617, label %1618, label %1622

1618:                                             ; preds = %1612
  %1619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1620 = call i32 @fileno(ptr noundef %1619) #12
  %1621 = call i32 @isatty(i32 noundef %1620) #12
  %.not427 = icmp eq i32 %1621, 0
  br i1 %.not427, label %1622, label %1623

1622:                                             ; preds = %1618, %1612
  br label %1623

1623:                                             ; preds = %1618, %1622
  %.str.5.sink1042 = phi ptr [ @.str.5, %1622 ], [ @.str.2, %1618 ]
  store i32 %1613, ptr %770, align 4, !tbaa !5
  %1624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1625 = load i32, ptr @test_count, align 4, !tbaa !5
  %1626 = load i32, ptr %538, align 4, !tbaa !5
  %1627 = call ptr @s2n_strerror(i32 noundef %1626, ptr noundef nonnull @.str.4) #12
  %1628 = load i32, ptr %538, align 4, !tbaa !5
  %1629 = call ptr @s2n_strerror_debug(i32 noundef %1628, ptr noundef nonnull @.str.4) #12
  %1630 = load i32, ptr %770, align 4, !tbaa !5
  %1631 = call ptr @strerror(i32 noundef %1630) #12
  %1632 = load i32, ptr %770, align 4, !tbaa !5
  %1633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1624, ptr noundef nonnull %.str.5.sink1042, i32 noundef %1625, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 176, ptr noundef %1627, ptr noundef %1629, ptr noundef %1631, i32 noundef %1632) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1634:                                             ; preds = %1606
  %1635 = add nsw i32 %1608, 2
  store i32 %1635, ptr @test_count, align 4, !tbaa !5
  %1636 = call i32 @s2n_connection_set_config(ptr noundef %1607, ptr noundef %1434) #12
  %1637 = icmp eq i32 %1636, -1
  br i1 %1637, label %1638, label %1660

1638:                                             ; preds = %1634
  %1639 = load i32, ptr %770, align 4, !tbaa !5
  %1640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1641 = call i32 @s2n_print_stacktrace(ptr noundef %1640) #12
  %1642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1643 = trunc nuw i8 %1642 to i1
  br i1 %1643, label %1644, label %1648

1644:                                             ; preds = %1638
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = call i32 @fileno(ptr noundef %1645) #12
  %1647 = call i32 @isatty(i32 noundef %1646) #12
  %.not426 = icmp eq i32 %1647, 0
  br i1 %.not426, label %1648, label %1649

1648:                                             ; preds = %1644, %1638
  br label %1649

1649:                                             ; preds = %1644, %1648
  %.str.5.sink1051 = phi ptr [ @.str.5, %1648 ], [ @.str.2, %1644 ]
  store i32 %1639, ptr %770, align 4, !tbaa !5
  %1650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1651 = load i32, ptr @test_count, align 4, !tbaa !5
  %1652 = load i32, ptr %538, align 4, !tbaa !5
  %1653 = call ptr @s2n_strerror(i32 noundef %1652, ptr noundef nonnull @.str.4) #12
  %1654 = load i32, ptr %538, align 4, !tbaa !5
  %1655 = call ptr @s2n_strerror_debug(i32 noundef %1654, ptr noundef nonnull @.str.4) #12
  %1656 = load i32, ptr %770, align 4, !tbaa !5
  %1657 = call ptr @strerror(i32 noundef %1656) #12
  %1658 = load i32, ptr %770, align 4, !tbaa !5
  %1659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1650, ptr noundef nonnull %.str.5.sink1051, i32 noundef %1651, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %1653, ptr noundef %1655, ptr noundef %1657, i32 noundef %1658) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1660:                                             ; preds = %1634
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #12
  store i64 0, ptr %14, align 8
  %1661 = load i32, ptr @test_count, align 4, !tbaa !5
  %1662 = add nsw i32 %1661, 1
  store i32 %1662, ptr @test_count, align 4, !tbaa !5
  %1663 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %14) #12
  %1664 = icmp eq i32 %1663, -1
  br i1 %1664, label %1665, label %1687

1665:                                             ; preds = %1660
  %1666 = load i32, ptr %770, align 4, !tbaa !5
  %1667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1668 = call i32 @s2n_print_stacktrace(ptr noundef %1667) #12
  %1669 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1670 = trunc nuw i8 %1669 to i1
  br i1 %1670, label %1671, label %1675

1671:                                             ; preds = %1665
  %1672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1673 = call i32 @fileno(ptr noundef %1672) #12
  %1674 = call i32 @isatty(i32 noundef %1673) #12
  %.not425 = icmp eq i32 %1674, 0
  br i1 %.not425, label %1675, label %1676

1675:                                             ; preds = %1671, %1665
  br label %1676

1676:                                             ; preds = %1671, %1675
  %.str.5.sink1060 = phi ptr [ @.str.5, %1675 ], [ @.str.2, %1671 ]
  store i32 %1666, ptr %770, align 4, !tbaa !5
  %1677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1678 = load i32, ptr @test_count, align 4, !tbaa !5
  %1679 = load i32, ptr %538, align 4, !tbaa !5
  %1680 = call ptr @s2n_strerror(i32 noundef %1679, ptr noundef nonnull @.str.4) #12
  %1681 = load i32, ptr %538, align 4, !tbaa !5
  %1682 = call ptr @s2n_strerror_debug(i32 noundef %1681, ptr noundef nonnull @.str.4) #12
  %1683 = load i32, ptr %770, align 4, !tbaa !5
  %1684 = call ptr @strerror(i32 noundef %1683) #12
  %1685 = load i32, ptr %770, align 4, !tbaa !5
  %1686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1677, ptr noundef nonnull %.str.5.sink1060, i32 noundef %1678, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %1680, ptr noundef %1682, ptr noundef %1684, i32 noundef %1685) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1687:                                             ; preds = %1660
  %1688 = load i32, ptr @test_count, align 4, !tbaa !5
  %1689 = add nsw i32 %1688, 1
  store i32 %1689, ptr @test_count, align 4, !tbaa !5
  %1690 = load ptr, ptr %13, align 8, !tbaa !9
  %1691 = load ptr, ptr %12, align 8, !tbaa !9
  %1692 = call i32 @s2n_connections_set_io_pair(ptr noundef %1690, ptr noundef %1691, ptr noundef nonnull %14) #12
  %1693 = icmp eq i32 %1692, -1
  br i1 %1693, label %1694, label %1716

1694:                                             ; preds = %1687
  %1695 = load i32, ptr %770, align 4, !tbaa !5
  %1696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1697 = call i32 @s2n_print_stacktrace(ptr noundef %1696) #12
  %1698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1699 = trunc nuw i8 %1698 to i1
  br i1 %1699, label %1700, label %1704

1700:                                             ; preds = %1694
  %1701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1702 = call i32 @fileno(ptr noundef %1701) #12
  %1703 = call i32 @isatty(i32 noundef %1702) #12
  %.not424 = icmp eq i32 %1703, 0
  br i1 %.not424, label %1704, label %1705

1704:                                             ; preds = %1700, %1694
  br label %1705

1705:                                             ; preds = %1700, %1704
  %.str.5.sink1069 = phi ptr [ @.str.5, %1704 ], [ @.str.2, %1700 ]
  store i32 %1695, ptr %770, align 4, !tbaa !5
  %1706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1707 = load i32, ptr @test_count, align 4, !tbaa !5
  %1708 = load i32, ptr %538, align 4, !tbaa !5
  %1709 = call ptr @s2n_strerror(i32 noundef %1708, ptr noundef nonnull @.str.4) #12
  %1710 = load i32, ptr %538, align 4, !tbaa !5
  %1711 = call ptr @s2n_strerror_debug(i32 noundef %1710, ptr noundef nonnull @.str.4) #12
  %1712 = load i32, ptr %770, align 4, !tbaa !5
  %1713 = call ptr @strerror(i32 noundef %1712) #12
  %1714 = load i32, ptr %770, align 4, !tbaa !5
  %1715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1706, ptr noundef nonnull %.str.5.sink1069, i32 noundef %1707, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %1709, ptr noundef %1711, ptr noundef %1713, i32 noundef %1714) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1716:                                             ; preds = %1687
  %1717 = load ptr, ptr %13, align 8, !tbaa !9
  %1718 = getelementptr inbounds i8, ptr %1717, i64 16
  store ptr @security_policy_test_tls13_retry, ptr %1718, align 8, !tbaa !53
  %1719 = load i32, ptr @test_count, align 4, !tbaa !5
  %1720 = add nsw i32 %1719, 1
  store i32 %1720, ptr @test_count, align 4, !tbaa !5
  %1721 = load ptr, ptr %12, align 8, !tbaa !9
  %1722 = getelementptr inbounds i8, ptr %1721, i64 4056
  %1723 = call i32 @s2n_dup(ptr noundef nonnull %1, ptr noundef nonnull %1722) #12
  %1724 = icmp eq i32 %1723, -1
  br i1 %1724, label %1725, label %1747

1725:                                             ; preds = %1716
  %1726 = load i32, ptr %770, align 4, !tbaa !5
  %1727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1728 = call i32 @s2n_print_stacktrace(ptr noundef %1727) #12
  %1729 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1730 = trunc nuw i8 %1729 to i1
  br i1 %1730, label %1731, label %1735

1731:                                             ; preds = %1725
  %1732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1733 = call i32 @fileno(ptr noundef %1732) #12
  %1734 = call i32 @isatty(i32 noundef %1733) #12
  %.not423 = icmp eq i32 %1734, 0
  br i1 %.not423, label %1735, label %1736

1735:                                             ; preds = %1731, %1725
  br label %1736

1736:                                             ; preds = %1731, %1735
  %.str.5.sink1078 = phi ptr [ @.str.5, %1735 ], [ @.str.2, %1731 ]
  store i32 %1726, ptr %770, align 4, !tbaa !5
  %1737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1738 = load i32, ptr @test_count, align 4, !tbaa !5
  %1739 = load i32, ptr %538, align 4, !tbaa !5
  %1740 = call ptr @s2n_strerror(i32 noundef %1739, ptr noundef nonnull @.str.4) #12
  %1741 = load i32, ptr %538, align 4, !tbaa !5
  %1742 = call ptr @s2n_strerror_debug(i32 noundef %1741, ptr noundef nonnull @.str.4) #12
  %1743 = load i32, ptr %770, align 4, !tbaa !5
  %1744 = call ptr @strerror(i32 noundef %1743) #12
  %1745 = load i32, ptr %770, align 4, !tbaa !5
  %1746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1737, ptr noundef nonnull %.str.5.sink1078, i32 noundef %1738, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %1740, ptr noundef %1742, ptr noundef %1744, i32 noundef %1745) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1747:                                             ; preds = %1716
  %1748 = load i32, ptr @test_count, align 4, !tbaa !5
  %1749 = add nsw i32 %1748, 1
  store i32 %1749, ptr @test_count, align 4, !tbaa !5
  %1750 = load ptr, ptr %12, align 8, !tbaa !9
  %1751 = load ptr, ptr %13, align 8, !tbaa !9
  %1752 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %1750, ptr noundef %1751, i32 noundef 18) #12
  %1753 = call zeroext i1 @s2n_result_is_error(i32 %1752)
  br i1 %1753, label %1776, label %1754

1754:                                             ; preds = %1747
  %1755 = load i32, ptr %770, align 4, !tbaa !5
  %1756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1757 = call i32 @s2n_print_stacktrace(ptr noundef %1756) #12
  %1758 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1759 = trunc nuw i8 %1758 to i1
  br i1 %1759, label %1760, label %1764

1760:                                             ; preds = %1754
  %1761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1762 = call i32 @fileno(ptr noundef %1761) #12
  %1763 = call i32 @isatty(i32 noundef %1762) #12
  %.not346 = icmp eq i32 %1763, 0
  br i1 %.not346, label %1764, label %1765

1764:                                             ; preds = %1760, %1754
  br label %1765

1765:                                             ; preds = %1760, %1764
  %.str.5.sink1087 = phi ptr [ @.str.5, %1764 ], [ @.str.2, %1760 ]
  store i32 %1755, ptr %770, align 4, !tbaa !5
  %1766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1767 = load i32, ptr @test_count, align 4, !tbaa !5
  %1768 = load i32, ptr %538, align 4, !tbaa !5
  %1769 = call ptr @s2n_strerror(i32 noundef %1768, ptr noundef nonnull @.str.4) #12
  %1770 = load i32, ptr %538, align 4, !tbaa !5
  %1771 = call ptr @s2n_strerror_debug(i32 noundef %1770, ptr noundef nonnull @.str.4) #12
  %1772 = load i32, ptr %770, align 4, !tbaa !5
  %1773 = call ptr @strerror(i32 noundef %1772) #12
  %1774 = load i32, ptr %770, align 4, !tbaa !5
  %1775 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1766, ptr noundef nonnull %.str.5.sink1087, i32 noundef %1767, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 194, ptr noundef %1769, ptr noundef %1771, ptr noundef %1773, i32 noundef %1774) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1776:                                             ; preds = %1747
  %1777 = load i32, ptr @test_count, align 4, !tbaa !5
  %1778 = add nsw i32 %1777, 1
  store i32 %1778, ptr @test_count, align 4, !tbaa !5
  %1779 = load i32, ptr %538, align 4, !tbaa !5
  %1780 = icmp eq i32 %1779, 201326592
  br i1 %1780, label %1803, label %1781

1781:                                             ; preds = %1776
  %1782 = load i32, ptr %770, align 4, !tbaa !5
  %1783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1784 = call i32 @s2n_print_stacktrace(ptr noundef %1783) #12
  %1785 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1786 = trunc nuw i8 %1785 to i1
  br i1 %1786, label %1787, label %1791

1787:                                             ; preds = %1781
  %1788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1789 = call i32 @fileno(ptr noundef %1788) #12
  %1790 = call i32 @isatty(i32 noundef %1789) #12
  %.not347 = icmp eq i32 %1790, 0
  br i1 %.not347, label %1791, label %1792

1791:                                             ; preds = %1787, %1781
  br label %1792

1792:                                             ; preds = %1787, %1791
  %.str.5.sink1096 = phi ptr [ @.str.5, %1791 ], [ @.str.2, %1787 ]
  store i32 %1782, ptr %770, align 4, !tbaa !5
  %1793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1794 = load i32, ptr @test_count, align 4, !tbaa !5
  %1795 = load i32, ptr %538, align 4, !tbaa !5
  %1796 = call ptr @s2n_strerror(i32 noundef %1795, ptr noundef nonnull @.str.4) #12
  %1797 = load i32, ptr %538, align 4, !tbaa !5
  %1798 = call ptr @s2n_strerror_debug(i32 noundef %1797, ptr noundef nonnull @.str.4) #12
  %1799 = load i32, ptr %770, align 4, !tbaa !5
  %1800 = call ptr @strerror(i32 noundef %1799) #12
  %1801 = load i32, ptr %770, align 4, !tbaa !5
  %1802 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1793, ptr noundef nonnull %.str.5.sink1096, i32 noundef %1794, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 194, ptr noundef %1796, ptr noundef %1798, ptr noundef %1800, i32 noundef %1801) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1803:                                             ; preds = %1776
  %1804 = add nsw i32 %1777, 2
  store i32 %1804, ptr @test_count, align 4, !tbaa !5
  %1805 = call ptr @s2n_strerror_debug(i32 noundef 201326592, ptr noundef nonnull @.str.4) #12
  %1806 = icmp eq ptr %1805, null
  br i1 %1806, label %1807, label %1829

1807:                                             ; preds = %1803
  %1808 = load i32, ptr %770, align 4, !tbaa !5
  %1809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1810 = call i32 @s2n_print_stacktrace(ptr noundef %1809) #12
  %1811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1812 = trunc nuw i8 %1811 to i1
  br i1 %1812, label %1813, label %1817

1813:                                             ; preds = %1807
  %1814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1815 = call i32 @fileno(ptr noundef %1814) #12
  %1816 = call i32 @isatty(i32 noundef %1815) #12
  %.not422 = icmp eq i32 %1816, 0
  br i1 %.not422, label %1817, label %1818

1817:                                             ; preds = %1813, %1807
  br label %1818

1818:                                             ; preds = %1813, %1817
  %.str.5.sink1105 = phi ptr [ @.str.5, %1817 ], [ @.str.2, %1813 ]
  store i32 %1808, ptr %770, align 4, !tbaa !5
  %1819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1820 = load i32, ptr @test_count, align 4, !tbaa !5
  %1821 = load i32, ptr %538, align 4, !tbaa !5
  %1822 = call ptr @s2n_strerror(i32 noundef %1821, ptr noundef nonnull @.str.4) #12
  %1823 = load i32, ptr %538, align 4, !tbaa !5
  %1824 = call ptr @s2n_strerror_debug(i32 noundef %1823, ptr noundef nonnull @.str.4) #12
  %1825 = load i32, ptr %770, align 4, !tbaa !5
  %1826 = call ptr @strerror(i32 noundef %1825) #12
  %1827 = load i32, ptr %770, align 4, !tbaa !5
  %1828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1819, ptr noundef nonnull %.str.5.sink1105, i32 noundef %1820, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 194, ptr noundef %1822, ptr noundef %1824, ptr noundef %1826, i32 noundef %1827) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1829:                                             ; preds = %1803
  store i32 0, ptr %538, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %770, align 4, !tbaa !5
  %1830 = load i32, ptr @test_count, align 4, !tbaa !5
  %1831 = add nsw i32 %1830, 1
  store i32 %1831, ptr @test_count, align 4, !tbaa !5
  %1832 = load ptr, ptr %12, align 8, !tbaa !9
  %1833 = call i32 @s2n_conn_get_current_message_type(ptr noundef %1832) #12
  %1834 = icmp eq i32 %1833, 18
  br i1 %1834, label %1857, label %1835

1835:                                             ; preds = %1829
  %1836 = load i32, ptr %770, align 4, !tbaa !5
  %1837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1838 = call i32 @s2n_print_stacktrace(ptr noundef %1837) #12
  %1839 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1840 = trunc nuw i8 %1839 to i1
  br i1 %1840, label %1841, label %1845

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

1845:                                             ; preds = %1841, %1835
  br label %1846

1846:                                             ; preds = %1841, %1845
  %.str.5.sink1114 = phi ptr [ @.str.5, %1845 ], [ @.str.2, %1841 ]
  store i32 %1836, ptr %770, align 4, !tbaa !5
  %1847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1848 = load i32, ptr @test_count, align 4, !tbaa !5
  %1849 = load i32, ptr %538, align 4, !tbaa !5
  %1850 = call ptr @s2n_strerror(i32 noundef %1849, ptr noundef nonnull @.str.4) #12
  %1851 = load i32, ptr %538, align 4, !tbaa !5
  %1852 = call ptr @s2n_strerror_debug(i32 noundef %1851, ptr noundef nonnull @.str.4) #12
  %1853 = load i32, ptr %770, align 4, !tbaa !5
  %1854 = call ptr @strerror(i32 noundef %1853) #12
  %1855 = load i32, ptr %770, align 4, !tbaa !5
  %1856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1847, ptr noundef nonnull %.str.5.sink1114, i32 noundef %1848, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef %1850, ptr noundef %1852, ptr noundef %1854, i32 noundef %1855) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1857:                                             ; preds = %1829
  %1858 = load i32, ptr @test_count, align 4, !tbaa !5
  %1859 = add nsw i32 %1858, 1
  store i32 %1859, ptr @test_count, align 4, !tbaa !5
  %1860 = load ptr, ptr %13, align 8, !tbaa !9
  %1861 = call i32 @s2n_conn_get_current_message_type(ptr noundef %1860) #12
  %1862 = icmp eq i32 %1861, 1
  br i1 %1862, label %1885, label %1863

1863:                                             ; preds = %1857
  %1864 = load i32, ptr %770, align 4, !tbaa !5
  %1865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1866 = call i32 @s2n_print_stacktrace(ptr noundef %1865) #12
  %1867 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1868 = trunc nuw i8 %1867 to i1
  br i1 %1868, label %1869, label %1873

1869:                                             ; preds = %1863
  %1870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1871 = call i32 @fileno(ptr noundef %1870) #12
  %1872 = call i32 @isatty(i32 noundef %1871) #12
  %.not349 = icmp eq i32 %1872, 0
  br i1 %.not349, label %1873, label %1874

1873:                                             ; preds = %1869, %1863
  br label %1874

1874:                                             ; preds = %1869, %1873
  %.str.5.sink1123 = phi ptr [ @.str.5, %1873 ], [ @.str.2, %1869 ]
  store i32 %1864, ptr %770, align 4, !tbaa !5
  %1875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1876 = load i32, ptr @test_count, align 4, !tbaa !5
  %1877 = load i32, ptr %538, align 4, !tbaa !5
  %1878 = call ptr @s2n_strerror(i32 noundef %1877, ptr noundef nonnull @.str.4) #12
  %1879 = load i32, ptr %538, align 4, !tbaa !5
  %1880 = call ptr @s2n_strerror_debug(i32 noundef %1879, ptr noundef nonnull @.str.4) #12
  %1881 = load i32, ptr %770, align 4, !tbaa !5
  %1882 = call ptr @strerror(i32 noundef %1881) #12
  %1883 = load i32, ptr %770, align 4, !tbaa !5
  %1884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1875, ptr noundef nonnull %.str.5.sink1123, i32 noundef %1876, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 196, ptr noundef %1878, ptr noundef %1880, ptr noundef %1882, i32 noundef %1883) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1885:                                             ; preds = %1857
  %1886 = load i32, ptr @test_count, align 4, !tbaa !5
  %1887 = add nsw i32 %1886, 1
  store i32 %1887, ptr @test_count, align 4, !tbaa !5
  %1888 = load ptr, ptr %12, align 8, !tbaa !9
  %1889 = load ptr, ptr %13, align 8, !tbaa !9
  %1890 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %1888, ptr noundef %1889, i32 noundef 0) #12
  %1891 = call zeroext i1 @s2n_result_is_ok(i32 %1890)
  br i1 %1891, label %1914, label %1892

1892:                                             ; preds = %1885
  %1893 = load i32, ptr %770, align 4, !tbaa !5
  %1894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1895 = call i32 @s2n_print_stacktrace(ptr noundef %1894) #12
  %1896 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1897 = trunc nuw i8 %1896 to i1
  br i1 %1897, label %1898, label %1902

1898:                                             ; preds = %1892
  %1899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1900 = call i32 @fileno(ptr noundef %1899) #12
  %1901 = call i32 @isatty(i32 noundef %1900) #12
  %.not350 = icmp eq i32 %1901, 0
  br i1 %.not350, label %1902, label %1903

1902:                                             ; preds = %1898, %1892
  br label %1903

1903:                                             ; preds = %1898, %1902
  %.str.5.sink1132 = phi ptr [ @.str.5, %1902 ], [ @.str.2, %1898 ]
  store i32 %1893, ptr %770, align 4, !tbaa !5
  %1904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1905 = load i32, ptr @test_count, align 4, !tbaa !5
  %1906 = load i32, ptr %538, align 4, !tbaa !5
  %1907 = call ptr @s2n_strerror(i32 noundef %1906, ptr noundef nonnull @.str.4) #12
  %1908 = load i32, ptr %538, align 4, !tbaa !5
  %1909 = call ptr @s2n_strerror_debug(i32 noundef %1908, ptr noundef nonnull @.str.4) #12
  %1910 = load i32, ptr %770, align 4, !tbaa !5
  %1911 = call ptr @strerror(i32 noundef %1910) #12
  %1912 = load i32, ptr %770, align 4, !tbaa !5
  %1913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1904, ptr noundef nonnull %.str.5.sink1132, i32 noundef %1905, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 197, ptr noundef %1907, ptr noundef %1909, ptr noundef %1911, i32 noundef %1912) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1914:                                             ; preds = %1885
  %1915 = load i32, ptr @test_count, align 4, !tbaa !5
  %1916 = add nsw i32 %1915, 1
  store i32 %1916, ptr @test_count, align 4, !tbaa !5
  %1917 = load ptr, ptr %12, align 8, !tbaa !9
  %1918 = call i32 @s2n_conn_get_current_message_type(ptr noundef %1917) #12
  %1919 = icmp eq i32 %1918, 0
  br i1 %1919, label %1942, label %1920

1920:                                             ; preds = %1914
  %1921 = load i32, ptr %770, align 4, !tbaa !5
  %1922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1923 = call i32 @s2n_print_stacktrace(ptr noundef %1922) #12
  %1924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1925 = trunc nuw i8 %1924 to i1
  br i1 %1925, label %1926, label %1930

1926:                                             ; preds = %1920
  %1927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1928 = call i32 @fileno(ptr noundef %1927) #12
  %1929 = call i32 @isatty(i32 noundef %1928) #12
  %.not351 = icmp eq i32 %1929, 0
  br i1 %.not351, label %1930, label %1931

1930:                                             ; preds = %1926, %1920
  br label %1931

1931:                                             ; preds = %1926, %1930
  %.str.5.sink1141 = phi ptr [ @.str.5, %1930 ], [ @.str.2, %1926 ]
  store i32 %1921, ptr %770, align 4, !tbaa !5
  %1932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1933 = load i32, ptr @test_count, align 4, !tbaa !5
  %1934 = load i32, ptr %538, align 4, !tbaa !5
  %1935 = call ptr @s2n_strerror(i32 noundef %1934, ptr noundef nonnull @.str.4) #12
  %1936 = load i32, ptr %538, align 4, !tbaa !5
  %1937 = call ptr @s2n_strerror_debug(i32 noundef %1936, ptr noundef nonnull @.str.4) #12
  %1938 = load i32, ptr %770, align 4, !tbaa !5
  %1939 = call ptr @strerror(i32 noundef %1938) #12
  %1940 = load i32, ptr %770, align 4, !tbaa !5
  %1941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1932, ptr noundef nonnull %.str.5.sink1141, i32 noundef %1933, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 198, ptr noundef %1935, ptr noundef %1937, ptr noundef %1939, i32 noundef %1940) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1942:                                             ; preds = %1914
  %1943 = load i32, ptr @test_count, align 4, !tbaa !5
  %1944 = add nsw i32 %1943, 1
  store i32 %1944, ptr @test_count, align 4, !tbaa !5
  %1945 = load ptr, ptr %13, align 8, !tbaa !9
  %1946 = call i32 @s2n_conn_get_current_message_type(ptr noundef %1945) #12
  %1947 = icmp eq i32 %1946, 0
  br i1 %1947, label %1970, label %1948

1948:                                             ; preds = %1942
  %1949 = load i32, ptr %770, align 4, !tbaa !5
  %1950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1951 = call i32 @s2n_print_stacktrace(ptr noundef %1950) #12
  %1952 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1953 = trunc nuw i8 %1952 to i1
  br i1 %1953, label %1954, label %1958

1954:                                             ; preds = %1948
  %1955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1956 = call i32 @fileno(ptr noundef %1955) #12
  %1957 = call i32 @isatty(i32 noundef %1956) #12
  %.not352 = icmp eq i32 %1957, 0
  br i1 %.not352, label %1958, label %1959

1958:                                             ; preds = %1954, %1948
  br label %1959

1959:                                             ; preds = %1954, %1958
  %.str.5.sink1150 = phi ptr [ @.str.5, %1958 ], [ @.str.2, %1954 ]
  store i32 %1949, ptr %770, align 4, !tbaa !5
  %1960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1961 = load i32, ptr @test_count, align 4, !tbaa !5
  %1962 = load i32, ptr %538, align 4, !tbaa !5
  %1963 = call ptr @s2n_strerror(i32 noundef %1962, ptr noundef nonnull @.str.4) #12
  %1964 = load i32, ptr %538, align 4, !tbaa !5
  %1965 = call ptr @s2n_strerror_debug(i32 noundef %1964, ptr noundef nonnull @.str.4) #12
  %1966 = load i32, ptr %770, align 4, !tbaa !5
  %1967 = call ptr @strerror(i32 noundef %1966) #12
  %1968 = load i32, ptr %770, align 4, !tbaa !5
  %1969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1960, ptr noundef nonnull %.str.5.sink1150, i32 noundef %1961, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %1963, ptr noundef %1965, ptr noundef %1967, i32 noundef %1968) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1970:                                             ; preds = %1942
  %1971 = load i32, ptr @test_count, align 4, !tbaa !5
  %1972 = add nsw i32 %1971, 1
  store i32 %1972, ptr @test_count, align 4, !tbaa !5
  %1973 = load ptr, ptr %12, align 8, !tbaa !9
  %1974 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %1973, i32 noundef 16) #12
  br i1 %1974, label %1997, label %1975

1975:                                             ; preds = %1970
  %1976 = load i32, ptr %770, align 4, !tbaa !5
  %1977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1978 = call i32 @s2n_print_stacktrace(ptr noundef %1977) #12
  %1979 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1980 = trunc nuw i8 %1979 to i1
  br i1 %1980, label %1981, label %1985

1981:                                             ; preds = %1975
  %1982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1983 = call i32 @fileno(ptr noundef %1982) #12
  %1984 = call i32 @isatty(i32 noundef %1983) #12
  %.not353 = icmp eq i32 %1984, 0
  br i1 %.not353, label %1985, label %1986

1985:                                             ; preds = %1981, %1975
  br label %1986

1986:                                             ; preds = %1981, %1985
  %.str.5.sink1159 = phi ptr [ @.str.5, %1985 ], [ @.str.2, %1981 ]
  store i32 %1976, ptr %770, align 4, !tbaa !5
  %1987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1988 = load i32, ptr @test_count, align 4, !tbaa !5
  %1989 = load i32, ptr %538, align 4, !tbaa !5
  %1990 = call ptr @s2n_strerror(i32 noundef %1989, ptr noundef nonnull @.str.4) #12
  %1991 = load i32, ptr %538, align 4, !tbaa !5
  %1992 = call ptr @s2n_strerror_debug(i32 noundef %1991, ptr noundef nonnull @.str.4) #12
  %1993 = load i32, ptr %770, align 4, !tbaa !5
  %1994 = call ptr @strerror(i32 noundef %1993) #12
  %1995 = load i32, ptr %770, align 4, !tbaa !5
  %1996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1987, ptr noundef nonnull %.str.5.sink1159, i32 noundef %1988, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 202, ptr noundef %1990, ptr noundef %1992, ptr noundef %1994, i32 noundef %1995) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1997:                                             ; preds = %1970
  %1998 = load i32, ptr @test_count, align 4, !tbaa !5
  %1999 = add nsw i32 %1998, 1
  store i32 %1999, ptr @test_count, align 4, !tbaa !5
  %2000 = load ptr, ptr %13, align 8, !tbaa !9
  %2001 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %2000, i32 noundef 16) #12
  br i1 %2001, label %2024, label %2002

2002:                                             ; preds = %1997
  %2003 = load i32, ptr %770, align 4, !tbaa !5
  %2004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2005 = call i32 @s2n_print_stacktrace(ptr noundef %2004) #12
  %2006 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2007 = trunc nuw i8 %2006 to i1
  br i1 %2007, label %2008, label %2012

2008:                                             ; preds = %2002
  %2009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2010 = call i32 @fileno(ptr noundef %2009) #12
  %2011 = call i32 @isatty(i32 noundef %2010) #12
  %.not354 = icmp eq i32 %2011, 0
  br i1 %.not354, label %2012, label %2013

2012:                                             ; preds = %2008, %2002
  br label %2013

2013:                                             ; preds = %2008, %2012
  %.str.5.sink1168 = phi ptr [ @.str.5, %2012 ], [ @.str.2, %2008 ]
  store i32 %2003, ptr %770, align 4, !tbaa !5
  %2014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2015 = load i32, ptr @test_count, align 4, !tbaa !5
  %2016 = load i32, ptr %538, align 4, !tbaa !5
  %2017 = call ptr @s2n_strerror(i32 noundef %2016, ptr noundef nonnull @.str.4) #12
  %2018 = load i32, ptr %538, align 4, !tbaa !5
  %2019 = call ptr @s2n_strerror_debug(i32 noundef %2018, ptr noundef nonnull @.str.4) #12
  %2020 = load i32, ptr %770, align 4, !tbaa !5
  %2021 = call ptr @strerror(i32 noundef %2020) #12
  %2022 = load i32, ptr %770, align 4, !tbaa !5
  %2023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2014, ptr noundef nonnull %.str.5.sink1168, i32 noundef %2015, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 203, ptr noundef %2017, ptr noundef %2019, ptr noundef %2021, i32 noundef %2022) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2024:                                             ; preds = %1997
  %2025 = load i32, ptr @test_count, align 4, !tbaa !5
  %2026 = add nsw i32 %2025, 1
  store i32 %2026, ptr @test_count, align 4, !tbaa !5
  %2027 = load ptr, ptr %13, align 8, !tbaa !9
  %2028 = getelementptr inbounds i8, ptr %2027, i64 4064
  %2029 = load i32, ptr %2028, align 8, !tbaa !46
  %2030 = icmp eq i32 %2029, 0
  br i1 %2030, label %2031, label %2053

2031:                                             ; preds = %2024
  %2032 = load i32, ptr %770, align 4, !tbaa !5
  %2033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2034 = call i32 @s2n_print_stacktrace(ptr noundef %2033) #12
  %2035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2036 = trunc nuw i8 %2035 to i1
  br i1 %2036, label %2037, label %2041

2037:                                             ; preds = %2031
  %2038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2039 = call i32 @fileno(ptr noundef %2038) #12
  %2040 = call i32 @isatty(i32 noundef %2039) #12
  %.not421 = icmp eq i32 %2040, 0
  br i1 %.not421, label %2041, label %2042

2041:                                             ; preds = %2037, %2031
  br label %2042

2042:                                             ; preds = %2037, %2041
  %.str.5.sink1177 = phi ptr [ @.str.5, %2041 ], [ @.str.2, %2037 ]
  store i32 %2032, ptr %770, align 4, !tbaa !5
  %2043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2044 = load i32, ptr @test_count, align 4, !tbaa !5
  %2045 = load i32, ptr %538, align 4, !tbaa !5
  %2046 = call ptr @s2n_strerror(i32 noundef %2045, ptr noundef nonnull @.str.4) #12
  %2047 = load i32, ptr %538, align 4, !tbaa !5
  %2048 = call ptr @s2n_strerror_debug(i32 noundef %2047, ptr noundef nonnull @.str.4) #12
  %2049 = load i32, ptr %770, align 4, !tbaa !5
  %2050 = call ptr @strerror(i32 noundef %2049) #12
  %2051 = load i32, ptr %770, align 4, !tbaa !5
  %2052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2043, ptr noundef nonnull %.str.5.sink1177, i32 noundef %2044, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %2046, ptr noundef %2048, ptr noundef %2050, i32 noundef %2051) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2053:                                             ; preds = %2024
  %2054 = add nsw i32 %2025, 2
  store i32 %2054, ptr @test_count, align 4, !tbaa !5
  %2055 = getelementptr inbounds i8, ptr %2027, i64 4056
  %2056 = call i32 @s2n_free(ptr noundef nonnull %2055) #12
  %2057 = icmp eq i32 %2056, -1
  br i1 %2057, label %2058, label %2080

2058:                                             ; preds = %2053
  %2059 = load i32, ptr %770, align 4, !tbaa !5
  %2060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2061 = call i32 @s2n_print_stacktrace(ptr noundef %2060) #12
  %2062 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2063 = trunc nuw i8 %2062 to i1
  br i1 %2063, label %2064, label %2068

2064:                                             ; preds = %2058
  %2065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2066 = call i32 @fileno(ptr noundef %2065) #12
  %2067 = call i32 @isatty(i32 noundef %2066) #12
  %.not420 = icmp eq i32 %2067, 0
  br i1 %.not420, label %2068, label %2069

2068:                                             ; preds = %2064, %2058
  br label %2069

2069:                                             ; preds = %2064, %2068
  %.str.5.sink1186 = phi ptr [ @.str.5, %2068 ], [ @.str.2, %2064 ]
  store i32 %2059, ptr %770, align 4, !tbaa !5
  %2070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2071 = load i32, ptr @test_count, align 4, !tbaa !5
  %2072 = load i32, ptr %538, align 4, !tbaa !5
  %2073 = call ptr @s2n_strerror(i32 noundef %2072, ptr noundef nonnull @.str.4) #12
  %2074 = load i32, ptr %538, align 4, !tbaa !5
  %2075 = call ptr @s2n_strerror_debug(i32 noundef %2074, ptr noundef nonnull @.str.4) #12
  %2076 = load i32, ptr %770, align 4, !tbaa !5
  %2077 = call ptr @strerror(i32 noundef %2076) #12
  %2078 = load i32, ptr %770, align 4, !tbaa !5
  %2079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2070, ptr noundef nonnull %.str.5.sink1186, i32 noundef %2071, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 210, ptr noundef %2073, ptr noundef %2075, ptr noundef %2077, i32 noundef %2078) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2080:                                             ; preds = %2053
  %2081 = load i32, ptr @test_count, align 4, !tbaa !5
  %2082 = add nsw i32 %2081, 1
  store i32 %2082, ptr @test_count, align 4, !tbaa !5
  %2083 = load ptr, ptr %12, align 8, !tbaa !9
  %2084 = load ptr, ptr %13, align 8, !tbaa !9
  %2085 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %2083, ptr noundef %2084) #12
  %2086 = icmp eq i32 %2085, -1
  br i1 %2086, label %2109, label %2087

2087:                                             ; preds = %2080
  %2088 = load i32, ptr %770, align 4, !tbaa !5
  %2089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2090 = call i32 @s2n_print_stacktrace(ptr noundef %2089) #12
  %2091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2092 = trunc nuw i8 %2091 to i1
  br i1 %2092, label %2093, label %2097

2093:                                             ; preds = %2087
  %2094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2095 = call i32 @fileno(ptr noundef %2094) #12
  %2096 = call i32 @isatty(i32 noundef %2095) #12
  %.not355 = icmp eq i32 %2096, 0
  br i1 %.not355, label %2097, label %2098

2097:                                             ; preds = %2093, %2087
  br label %2098

2098:                                             ; preds = %2093, %2097
  %.str.5.sink1195 = phi ptr [ @.str.5, %2097 ], [ @.str.2, %2093 ]
  store i32 %2088, ptr %770, align 4, !tbaa !5
  %2099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2100 = load i32, ptr @test_count, align 4, !tbaa !5
  %2101 = load i32, ptr %538, align 4, !tbaa !5
  %2102 = call ptr @s2n_strerror(i32 noundef %2101, ptr noundef nonnull @.str.4) #12
  %2103 = load i32, ptr %538, align 4, !tbaa !5
  %2104 = call ptr @s2n_strerror_debug(i32 noundef %2103, ptr noundef nonnull @.str.4) #12
  %2105 = load i32, ptr %770, align 4, !tbaa !5
  %2106 = call ptr @strerror(i32 noundef %2105) #12
  %2107 = load i32, ptr %770, align 4, !tbaa !5
  %2108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2099, ptr noundef nonnull %.str.5.sink1195, i32 noundef %2100, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 214, ptr noundef %2102, ptr noundef %2104, ptr noundef %2106, i32 noundef %2107) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2109:                                             ; preds = %2080
  %2110 = load i32, ptr @test_count, align 4, !tbaa !5
  %2111 = add nsw i32 %2110, 1
  store i32 %2111, ptr @test_count, align 4, !tbaa !5
  %2112 = load i32, ptr %538, align 4, !tbaa !5
  %2113 = icmp eq i32 %2112, 335544393
  br i1 %2113, label %2136, label %2114

2114:                                             ; preds = %2109
  %2115 = load i32, ptr %770, align 4, !tbaa !5
  %2116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2117 = call i32 @s2n_print_stacktrace(ptr noundef %2116) #12
  %2118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2119 = trunc nuw i8 %2118 to i1
  br i1 %2119, label %2120, label %2124

2120:                                             ; preds = %2114
  %2121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2122 = call i32 @fileno(ptr noundef %2121) #12
  %2123 = call i32 @isatty(i32 noundef %2122) #12
  %.not356 = icmp eq i32 %2123, 0
  br i1 %.not356, label %2124, label %2125

2124:                                             ; preds = %2120, %2114
  br label %2125

2125:                                             ; preds = %2120, %2124
  %.str.5.sink1204 = phi ptr [ @.str.5, %2124 ], [ @.str.2, %2120 ]
  store i32 %2115, ptr %770, align 4, !tbaa !5
  %2126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2127 = load i32, ptr @test_count, align 4, !tbaa !5
  %2128 = load i32, ptr %538, align 4, !tbaa !5
  %2129 = call ptr @s2n_strerror(i32 noundef %2128, ptr noundef nonnull @.str.4) #12
  %2130 = load i32, ptr %538, align 4, !tbaa !5
  %2131 = call ptr @s2n_strerror_debug(i32 noundef %2130, ptr noundef nonnull @.str.4) #12
  %2132 = load i32, ptr %770, align 4, !tbaa !5
  %2133 = call ptr @strerror(i32 noundef %2132) #12
  %2134 = load i32, ptr %770, align 4, !tbaa !5
  %2135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2126, ptr noundef nonnull %.str.5.sink1204, i32 noundef %2127, ptr noundef nonnull @.str.65, ptr noundef nonnull @.str.1, i32 noundef 214, ptr noundef %2129, ptr noundef %2131, ptr noundef %2133, i32 noundef %2134) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2136:                                             ; preds = %2109
  %2137 = add nsw i32 %2110, 2
  store i32 %2137, ptr @test_count, align 4, !tbaa !5
  %2138 = call ptr @s2n_strerror_debug(i32 noundef 335544393, ptr noundef nonnull @.str.4) #12
  %2139 = icmp eq ptr %2138, null
  br i1 %2139, label %2140, label %2162

2140:                                             ; preds = %2136
  %2141 = load i32, ptr %770, align 4, !tbaa !5
  %2142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2143 = call i32 @s2n_print_stacktrace(ptr noundef %2142) #12
  %2144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2145 = trunc nuw i8 %2144 to i1
  br i1 %2145, label %2146, label %2150

2146:                                             ; preds = %2140
  %2147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2148 = call i32 @fileno(ptr noundef %2147) #12
  %2149 = call i32 @isatty(i32 noundef %2148) #12
  %.not419 = icmp eq i32 %2149, 0
  br i1 %.not419, label %2150, label %2151

2150:                                             ; preds = %2146, %2140
  br label %2151

2151:                                             ; preds = %2146, %2150
  %.str.5.sink1213 = phi ptr [ @.str.5, %2150 ], [ @.str.2, %2146 ]
  store i32 %2141, ptr %770, align 4, !tbaa !5
  %2152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2153 = load i32, ptr @test_count, align 4, !tbaa !5
  %2154 = load i32, ptr %538, align 4, !tbaa !5
  %2155 = call ptr @s2n_strerror(i32 noundef %2154, ptr noundef nonnull @.str.4) #12
  %2156 = load i32, ptr %538, align 4, !tbaa !5
  %2157 = call ptr @s2n_strerror_debug(i32 noundef %2156, ptr noundef nonnull @.str.4) #12
  %2158 = load i32, ptr %770, align 4, !tbaa !5
  %2159 = call ptr @strerror(i32 noundef %2158) #12
  %2160 = load i32, ptr %770, align 4, !tbaa !5
  %2161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2152, ptr noundef nonnull %.str.5.sink1213, i32 noundef %2153, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 214, ptr noundef %2155, ptr noundef %2157, ptr noundef %2159, i32 noundef %2160) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2162:                                             ; preds = %2136
  store i32 0, ptr %538, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %770, align 4, !tbaa !5
  %2163 = load i32, ptr @test_count, align 4, !tbaa !5
  %2164 = add nsw i32 %2163, 1
  store i32 %2164, ptr @test_count, align 4, !tbaa !5
  %2165 = call i32 @s2n_io_pair_close(ptr noundef nonnull %14) #12
  %2166 = icmp eq i32 %2165, -1
  br i1 %2166, label %2167, label %2189

2167:                                             ; preds = %2162
  %2168 = load i32, ptr %770, align 4, !tbaa !5
  %2169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2170 = call i32 @s2n_print_stacktrace(ptr noundef %2169) #12
  %2171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2172 = trunc nuw i8 %2171 to i1
  br i1 %2172, label %2173, label %2177

2173:                                             ; preds = %2167
  %2174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2175 = call i32 @fileno(ptr noundef %2174) #12
  %2176 = call i32 @isatty(i32 noundef %2175) #12
  %.not418 = icmp eq i32 %2176, 0
  br i1 %.not418, label %2177, label %2178

2177:                                             ; preds = %2173, %2167
  br label %2178

2178:                                             ; preds = %2173, %2177
  %.str.5.sink1222 = phi ptr [ @.str.5, %2177 ], [ @.str.2, %2173 ]
  store i32 %2168, ptr %770, align 4, !tbaa !5
  %2179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2180 = load i32, ptr @test_count, align 4, !tbaa !5
  %2181 = load i32, ptr %538, align 4, !tbaa !5
  %2182 = call ptr @s2n_strerror(i32 noundef %2181, ptr noundef nonnull @.str.4) #12
  %2183 = load i32, ptr %538, align 4, !tbaa !5
  %2184 = call ptr @s2n_strerror_debug(i32 noundef %2183, ptr noundef nonnull @.str.4) #12
  %2185 = load i32, ptr %770, align 4, !tbaa !5
  %2186 = call ptr @strerror(i32 noundef %2185) #12
  %2187 = load i32, ptr %770, align 4, !tbaa !5
  %2188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2179, ptr noundef nonnull %.str.5.sink1222, i32 noundef %2180, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 216, ptr noundef %2182, ptr noundef %2184, ptr noundef %2186, i32 noundef %2187) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2189:                                             ; preds = %2162
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #12
  %2190 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #12
  %2191 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #12
  %2192 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %2192, ptr %15, align 8, !tbaa !9
  %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 = icmp eq ptr %2192, null
  br i1 %2195, label %2196, label %2218

2196:                                             ; preds = %2189
  %2197 = load i32, ptr %770, align 4, !tbaa !5
  %2198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2199 = call i32 @s2n_print_stacktrace(ptr noundef %2198) #12
  %2200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2201 = trunc nuw i8 %2200 to i1
  br i1 %2201, label %2202, label %2206

2202:                                             ; preds = %2196
  %2203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2204 = call i32 @fileno(ptr noundef %2203) #12
  %2205 = call i32 @isatty(i32 noundef %2204) #12
  %.not417 = icmp eq i32 %2205, 0
  br i1 %.not417, label %2206, label %2207

2206:                                             ; preds = %2202, %2196
  br label %2207

2207:                                             ; preds = %2202, %2206
  %.str.5.sink1231 = phi ptr [ @.str.5, %2206 ], [ @.str.2, %2202 ]
  store i32 %2197, ptr %770, align 4, !tbaa !5
  %2208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2209 = load i32, ptr @test_count, align 4, !tbaa !5
  %2210 = load i32, ptr %538, align 4, !tbaa !5
  %2211 = call ptr @s2n_strerror(i32 noundef %2210, ptr noundef nonnull @.str.4) #12
  %2212 = load i32, ptr %538, align 4, !tbaa !5
  %2213 = call ptr @s2n_strerror_debug(i32 noundef %2212, ptr noundef nonnull @.str.4) #12
  %2214 = load i32, ptr %770, align 4, !tbaa !5
  %2215 = call ptr @strerror(i32 noundef %2214) #12
  %2216 = load i32, ptr %770, align 4, !tbaa !5
  %2217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2208, ptr noundef nonnull %.str.5.sink1231, i32 noundef %2209, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 223, ptr noundef %2211, ptr noundef %2213, ptr noundef %2215, i32 noundef %2216) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2218:                                             ; preds = %2189
  %2219 = add nsw i32 %2193, 2
  store i32 %2219, ptr @test_count, align 4, !tbaa !5
  %2220 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2192, ptr noundef %1434) #12
  %2221 = icmp eq i32 %2220, -1
  br i1 %2221, label %2222, label %2244

2222:                                             ; preds = %2218
  %2223 = load i32, ptr %770, align 4, !tbaa !5
  %2224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2225 = call i32 @s2n_print_stacktrace(ptr noundef %2224) #12
  %2226 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2227 = trunc nuw i8 %2226 to i1
  br i1 %2227, label %2228, label %2232

2228:                                             ; preds = %2222
  %2229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2230 = call i32 @fileno(ptr noundef %2229) #12
  %2231 = call i32 @isatty(i32 noundef %2230) #12
  %.not416 = icmp eq i32 %2231, 0
  br i1 %.not416, label %2232, label %2233

2232:                                             ; preds = %2228, %2222
  br label %2233

2233:                                             ; preds = %2228, %2232
  %.str.5.sink1240 = phi ptr [ @.str.5, %2232 ], [ @.str.2, %2228 ]
  store i32 %2223, ptr %770, align 4, !tbaa !5
  %2234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2235 = load i32, ptr @test_count, align 4, !tbaa !5
  %2236 = load i32, ptr %538, align 4, !tbaa !5
  %2237 = call ptr @s2n_strerror(i32 noundef %2236, ptr noundef nonnull @.str.4) #12
  %2238 = load i32, ptr %538, align 4, !tbaa !5
  %2239 = call ptr @s2n_strerror_debug(i32 noundef %2238, ptr noundef nonnull @.str.4) #12
  %2240 = load i32, ptr %770, align 4, !tbaa !5
  %2241 = call ptr @strerror(i32 noundef %2240) #12
  %2242 = load i32, ptr %770, align 4, !tbaa !5
  %2243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2234, ptr noundef nonnull %.str.5.sink1240, i32 noundef %2235, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 224, ptr noundef %2237, ptr noundef %2239, ptr noundef %2241, i32 noundef %2242) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2244:                                             ; preds = %2218
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #12
  %2245 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %2245, ptr %16, align 8, !tbaa !9
  %2246 = load i32, ptr @test_count, align 4, !tbaa !5
  %2247 = add nsw i32 %2246, 1
  store i32 %2247, ptr @test_count, align 4, !tbaa !5
  %2248 = load ptr, ptr %15, align 8, !tbaa !9
  %2249 = icmp eq ptr %2248, null
  br i1 %2249, label %2250, label %2272

2250:                                             ; preds = %2244
  %2251 = load i32, ptr %770, align 4, !tbaa !5
  %2252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2253 = call i32 @s2n_print_stacktrace(ptr noundef %2252) #12
  %2254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2255 = trunc nuw i8 %2254 to i1
  br i1 %2255, label %2256, label %2260

2256:                                             ; preds = %2250
  %2257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2258 = call i32 @fileno(ptr noundef %2257) #12
  %2259 = call i32 @isatty(i32 noundef %2258) #12
  %.not415 = icmp eq i32 %2259, 0
  br i1 %.not415, label %2260, label %2261

2260:                                             ; preds = %2256, %2250
  br label %2261

2261:                                             ; preds = %2256, %2260
  %.str.5.sink1249 = phi ptr [ @.str.5, %2260 ], [ @.str.2, %2256 ]
  store i32 %2251, ptr %770, align 4, !tbaa !5
  %2262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2263 = load i32, ptr @test_count, align 4, !tbaa !5
  %2264 = load i32, ptr %538, align 4, !tbaa !5
  %2265 = call ptr @s2n_strerror(i32 noundef %2264, ptr noundef nonnull @.str.4) #12
  %2266 = load i32, ptr %538, align 4, !tbaa !5
  %2267 = call ptr @s2n_strerror_debug(i32 noundef %2266, ptr noundef nonnull @.str.4) #12
  %2268 = load i32, ptr %770, align 4, !tbaa !5
  %2269 = call ptr @strerror(i32 noundef %2268) #12
  %2270 = load i32, ptr %770, align 4, !tbaa !5
  %2271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2262, ptr noundef nonnull %.str.5.sink1249, i32 noundef %2263, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %2265, ptr noundef %2267, ptr noundef %2269, i32 noundef %2270) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2272:                                             ; preds = %2244
  %2273 = add nsw i32 %2246, 2
  store i32 %2273, ptr @test_count, align 4, !tbaa !5
  %2274 = call i32 @s2n_connection_set_config(ptr noundef %2245, ptr noundef %1434) #12
  %2275 = icmp eq i32 %2274, -1
  br i1 %2275, label %2276, label %2298

2276:                                             ; preds = %2272
  %2277 = load i32, ptr %770, align 4, !tbaa !5
  %2278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2279 = call i32 @s2n_print_stacktrace(ptr noundef %2278) #12
  %2280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2281 = trunc nuw i8 %2280 to i1
  br i1 %2281, label %2282, label %2286

2282:                                             ; preds = %2276
  %2283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2284 = call i32 @fileno(ptr noundef %2283) #12
  %2285 = call i32 @isatty(i32 noundef %2284) #12
  %.not414 = icmp eq i32 %2285, 0
  br i1 %.not414, label %2286, label %2287

2286:                                             ; preds = %2282, %2276
  br label %2287

2287:                                             ; preds = %2282, %2286
  %.str.5.sink1258 = phi ptr [ @.str.5, %2286 ], [ @.str.2, %2282 ]
  store i32 %2277, ptr %770, align 4, !tbaa !5
  %2288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2289 = load i32, ptr @test_count, align 4, !tbaa !5
  %2290 = load i32, ptr %538, align 4, !tbaa !5
  %2291 = call ptr @s2n_strerror(i32 noundef %2290, ptr noundef nonnull @.str.4) #12
  %2292 = load i32, ptr %538, align 4, !tbaa !5
  %2293 = call ptr @s2n_strerror_debug(i32 noundef %2292, ptr noundef nonnull @.str.4) #12
  %2294 = load i32, ptr %770, align 4, !tbaa !5
  %2295 = call ptr @strerror(i32 noundef %2294) #12
  %2296 = load i32, ptr %770, align 4, !tbaa !5
  %2297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2288, ptr noundef nonnull %.str.5.sink1258, i32 noundef %2289, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %2291, ptr noundef %2293, ptr noundef %2295, i32 noundef %2296) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2298:                                             ; preds = %2272
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #12
  store i64 0, ptr %17, align 8
  %2299 = load i32, ptr @test_count, align 4, !tbaa !5
  %2300 = add nsw i32 %2299, 1
  store i32 %2300, ptr @test_count, align 4, !tbaa !5
  %2301 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %17) #12
  %2302 = icmp eq i32 %2301, -1
  br i1 %2302, label %2303, label %2325

2303:                                             ; preds = %2298
  %2304 = load i32, ptr %770, align 4, !tbaa !5
  %2305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2306 = call i32 @s2n_print_stacktrace(ptr noundef %2305) #12
  %2307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2308 = trunc nuw i8 %2307 to i1
  br i1 %2308, label %2309, label %2313

2309:                                             ; preds = %2303
  %2310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2311 = call i32 @fileno(ptr noundef %2310) #12
  %2312 = call i32 @isatty(i32 noundef %2311) #12
  %.not413 = icmp eq i32 %2312, 0
  br i1 %.not413, label %2313, label %2314

2313:                                             ; preds = %2309, %2303
  br label %2314

2314:                                             ; preds = %2309, %2313
  %.str.5.sink1267 = phi ptr [ @.str.5, %2313 ], [ @.str.2, %2309 ]
  store i32 %2304, ptr %770, align 4, !tbaa !5
  %2315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2316 = load i32, ptr @test_count, align 4, !tbaa !5
  %2317 = load i32, ptr %538, align 4, !tbaa !5
  %2318 = call ptr @s2n_strerror(i32 noundef %2317, ptr noundef nonnull @.str.4) #12
  %2319 = load i32, ptr %538, align 4, !tbaa !5
  %2320 = call ptr @s2n_strerror_debug(i32 noundef %2319, ptr noundef nonnull @.str.4) #12
  %2321 = load i32, ptr %770, align 4, !tbaa !5
  %2322 = call ptr @strerror(i32 noundef %2321) #12
  %2323 = load i32, ptr %770, align 4, !tbaa !5
  %2324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2315, ptr noundef nonnull %.str.5.sink1267, i32 noundef %2316, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 232, ptr noundef %2318, ptr noundef %2320, ptr noundef %2322, i32 noundef %2323) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2325:                                             ; preds = %2298
  %2326 = load i32, ptr @test_count, align 4, !tbaa !5
  %2327 = add nsw i32 %2326, 1
  store i32 %2327, ptr @test_count, align 4, !tbaa !5
  %2328 = load ptr, ptr %16, align 8, !tbaa !9
  %2329 = load ptr, ptr %15, align 8, !tbaa !9
  %2330 = call i32 @s2n_connections_set_io_pair(ptr noundef %2328, ptr noundef %2329, ptr noundef nonnull %17) #12
  %2331 = icmp eq i32 %2330, -1
  br i1 %2331, label %2332, label %2354

2332:                                             ; preds = %2325
  %2333 = load i32, ptr %770, align 4, !tbaa !5
  %2334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2335 = call i32 @s2n_print_stacktrace(ptr noundef %2334) #12
  %2336 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2337 = trunc nuw i8 %2336 to i1
  br i1 %2337, label %2338, label %2342

2338:                                             ; preds = %2332
  %2339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2340 = call i32 @fileno(ptr noundef %2339) #12
  %2341 = call i32 @isatty(i32 noundef %2340) #12
  %.not412 = icmp eq i32 %2341, 0
  br i1 %.not412, label %2342, label %2343

2342:                                             ; preds = %2338, %2332
  br label %2343

2343:                                             ; preds = %2338, %2342
  %.str.5.sink1276 = phi ptr [ @.str.5, %2342 ], [ @.str.2, %2338 ]
  store i32 %2333, ptr %770, align 4, !tbaa !5
  %2344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2345 = load i32, ptr @test_count, align 4, !tbaa !5
  %2346 = load i32, ptr %538, align 4, !tbaa !5
  %2347 = call ptr @s2n_strerror(i32 noundef %2346, ptr noundef nonnull @.str.4) #12
  %2348 = load i32, ptr %538, align 4, !tbaa !5
  %2349 = call ptr @s2n_strerror_debug(i32 noundef %2348, ptr noundef nonnull @.str.4) #12
  %2350 = load i32, ptr %770, align 4, !tbaa !5
  %2351 = call ptr @strerror(i32 noundef %2350) #12
  %2352 = load i32, ptr %770, align 4, !tbaa !5
  %2353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2344, ptr noundef nonnull %.str.5.sink1276, i32 noundef %2345, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %2347, ptr noundef %2349, ptr noundef %2351, i32 noundef %2352) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2354:                                             ; preds = %2325
  %2355 = load ptr, ptr %16, align 8, !tbaa !9
  %2356 = getelementptr inbounds i8, ptr %2355, i64 16
  store ptr @security_policy_test_tls13_retry, ptr %2356, align 8, !tbaa !53
  %2357 = load i32, ptr @test_count, align 4, !tbaa !5
  %2358 = add nsw i32 %2357, 1
  store i32 %2358, ptr @test_count, align 4, !tbaa !5
  %2359 = load ptr, ptr %15, align 8, !tbaa !9
  %2360 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %2359, ptr noundef %2355) #12
  %2361 = icmp eq i32 %2360, -1
  br i1 %2361, label %2362, label %2384

2362:                                             ; preds = %2354
  %2363 = load i32, ptr %770, align 4, !tbaa !5
  %2364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2365 = call i32 @s2n_print_stacktrace(ptr noundef %2364) #12
  %2366 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2367 = trunc nuw i8 %2366 to i1
  br i1 %2367, label %2368, label %2372

2368:                                             ; preds = %2362
  %2369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2370 = call i32 @fileno(ptr noundef %2369) #12
  %2371 = call i32 @isatty(i32 noundef %2370) #12
  %.not411 = icmp eq i32 %2371, 0
  br i1 %.not411, label %2372, label %2373

2372:                                             ; preds = %2368, %2362
  br label %2373

2373:                                             ; preds = %2368, %2372
  %.str.5.sink1285 = phi ptr [ @.str.5, %2372 ], [ @.str.2, %2368 ]
  store i32 %2363, ptr %770, align 4, !tbaa !5
  %2374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2375 = load i32, ptr @test_count, align 4, !tbaa !5
  %2376 = load i32, ptr %538, align 4, !tbaa !5
  %2377 = call ptr @s2n_strerror(i32 noundef %2376, ptr noundef nonnull @.str.4) #12
  %2378 = load i32, ptr %538, align 4, !tbaa !5
  %2379 = call ptr @s2n_strerror_debug(i32 noundef %2378, ptr noundef nonnull @.str.4) #12
  %2380 = load i32, ptr %770, align 4, !tbaa !5
  %2381 = call ptr @strerror(i32 noundef %2380) #12
  %2382 = load i32, ptr %770, align 4, !tbaa !5
  %2383 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2374, ptr noundef nonnull %.str.5.sink1285, i32 noundef %2375, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 239, ptr noundef %2377, ptr noundef %2379, ptr noundef %2381, i32 noundef %2382) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2384:                                             ; preds = %2354
  %2385 = load i32, ptr @test_count, align 4, !tbaa !5
  %2386 = add nsw i32 %2385, 1
  store i32 %2386, ptr @test_count, align 4, !tbaa !5
  %2387 = load ptr, ptr %15, align 8, !tbaa !9
  %2388 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %2387, i32 noundef 16) #12
  br i1 %2388, label %2411, label %2389

2389:                                             ; preds = %2384
  %2390 = load i32, ptr %770, align 4, !tbaa !5
  %2391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2392 = call i32 @s2n_print_stacktrace(ptr noundef %2391) #12
  %2393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2394 = trunc nuw i8 %2393 to i1
  br i1 %2394, label %2395, label %2399

2395:                                             ; preds = %2389
  %2396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2397 = call i32 @fileno(ptr noundef %2396) #12
  %2398 = call i32 @isatty(i32 noundef %2397) #12
  %.not357 = icmp eq i32 %2398, 0
  br i1 %.not357, label %2399, label %2400

2399:                                             ; preds = %2395, %2389
  br label %2400

2400:                                             ; preds = %2395, %2399
  %.str.5.sink1294 = phi ptr [ @.str.5, %2399 ], [ @.str.2, %2395 ]
  store i32 %2390, ptr %770, align 4, !tbaa !5
  %2401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2402 = load i32, ptr @test_count, align 4, !tbaa !5
  %2403 = load i32, ptr %538, align 4, !tbaa !5
  %2404 = call ptr @s2n_strerror(i32 noundef %2403, ptr noundef nonnull @.str.4) #12
  %2405 = load i32, ptr %538, align 4, !tbaa !5
  %2406 = call ptr @s2n_strerror_debug(i32 noundef %2405, ptr noundef nonnull @.str.4) #12
  %2407 = load i32, ptr %770, align 4, !tbaa !5
  %2408 = call ptr @strerror(i32 noundef %2407) #12
  %2409 = load i32, ptr %770, align 4, !tbaa !5
  %2410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2401, ptr noundef nonnull %.str.5.sink1294, i32 noundef %2402, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 242, ptr noundef %2404, ptr noundef %2406, ptr noundef %2408, i32 noundef %2409) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2411:                                             ; preds = %2384
  %2412 = load i32, ptr @test_count, align 4, !tbaa !5
  %2413 = add nsw i32 %2412, 1
  store i32 %2413, ptr @test_count, align 4, !tbaa !5
  %2414 = load ptr, ptr %16, align 8, !tbaa !9
  %2415 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %2414, i32 noundef 16) #12
  br i1 %2415, label %2438, label %2416

2416:                                             ; preds = %2411
  %2417 = load i32, ptr %770, align 4, !tbaa !5
  %2418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2419 = call i32 @s2n_print_stacktrace(ptr noundef %2418) #12
  %2420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2421 = trunc nuw i8 %2420 to i1
  br i1 %2421, label %2422, label %2426

2422:                                             ; preds = %2416
  %2423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2424 = call i32 @fileno(ptr noundef %2423) #12
  %2425 = call i32 @isatty(i32 noundef %2424) #12
  %.not358 = icmp eq i32 %2425, 0
  br i1 %.not358, label %2426, label %2427

2426:                                             ; preds = %2422, %2416
  br label %2427

2427:                                             ; preds = %2422, %2426
  %.str.5.sink1303 = phi ptr [ @.str.5, %2426 ], [ @.str.2, %2422 ]
  store i32 %2417, ptr %770, align 4, !tbaa !5
  %2428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2429 = load i32, ptr @test_count, align 4, !tbaa !5
  %2430 = load i32, ptr %538, align 4, !tbaa !5
  %2431 = call ptr @s2n_strerror(i32 noundef %2430, ptr noundef nonnull @.str.4) #12
  %2432 = load i32, ptr %538, align 4, !tbaa !5
  %2433 = call ptr @s2n_strerror_debug(i32 noundef %2432, ptr noundef nonnull @.str.4) #12
  %2434 = load i32, ptr %770, align 4, !tbaa !5
  %2435 = call ptr @strerror(i32 noundef %2434) #12
  %2436 = load i32, ptr %770, align 4, !tbaa !5
  %2437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2428, ptr noundef nonnull %.str.5.sink1303, i32 noundef %2429, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 243, ptr noundef %2431, ptr noundef %2433, ptr noundef %2435, i32 noundef %2436) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2438:                                             ; preds = %2411
  %2439 = load i32, ptr @test_count, align 4, !tbaa !5
  %2440 = add nsw i32 %2439, 1
  store i32 %2440, ptr @test_count, align 4, !tbaa !5
  %2441 = load ptr, ptr %16, align 8, !tbaa !9
  %2442 = getelementptr inbounds i8, ptr %2441, i64 4064
  %2443 = load i32, ptr %2442, align 8, !tbaa !46
  %2444 = icmp eq i32 %2443, 0
  br i1 %2444, label %2467, label %2445

2445:                                             ; preds = %2438
  %2446 = load i32, ptr %770, align 4, !tbaa !5
  %2447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2448 = call i32 @s2n_print_stacktrace(ptr noundef %2447) #12
  %2449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2450 = trunc nuw i8 %2449 to i1
  br i1 %2450, label %2451, label %2455

2451:                                             ; preds = %2445
  %2452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2453 = call i32 @fileno(ptr noundef %2452) #12
  %2454 = call i32 @isatty(i32 noundef %2453) #12
  %.not359 = icmp eq i32 %2454, 0
  br i1 %.not359, label %2455, label %2456

2455:                                             ; preds = %2451, %2445
  br label %2456

2456:                                             ; preds = %2451, %2455
  %.str.5.sink1312 = phi ptr [ @.str.5, %2455 ], [ @.str.2, %2451 ]
  store i32 %2446, ptr %770, align 4, !tbaa !5
  %2457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2458 = load i32, ptr @test_count, align 4, !tbaa !5
  %2459 = load i32, ptr %538, align 4, !tbaa !5
  %2460 = call ptr @s2n_strerror(i32 noundef %2459, ptr noundef nonnull @.str.4) #12
  %2461 = load i32, ptr %538, align 4, !tbaa !5
  %2462 = call ptr @s2n_strerror_debug(i32 noundef %2461, ptr noundef nonnull @.str.4) #12
  %2463 = load i32, ptr %770, align 4, !tbaa !5
  %2464 = call ptr @strerror(i32 noundef %2463) #12
  %2465 = load i32, ptr %770, align 4, !tbaa !5
  %2466 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2457, ptr noundef nonnull %.str.5.sink1312, i32 noundef %2458, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 246, ptr noundef %2460, ptr noundef %2462, ptr noundef %2464, i32 noundef %2465) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2467:                                             ; preds = %2438
  %2468 = add nsw i32 %2439, 2
  store i32 %2468, ptr @test_count, align 4, !tbaa !5
  %2469 = load ptr, ptr %15, align 8, !tbaa !9
  %2470 = getelementptr inbounds i8, ptr %2469, i64 4064
  %2471 = load i32, ptr %2470, align 8, !tbaa !46
  %2472 = icmp eq i32 %2471, 0
  br i1 %2472, label %2495, label %2473

2473:                                             ; preds = %2467
  %2474 = load i32, ptr %770, align 4, !tbaa !5
  %2475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2476 = call i32 @s2n_print_stacktrace(ptr noundef %2475) #12
  %2477 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2478 = trunc nuw i8 %2477 to i1
  br i1 %2478, label %2479, label %2483

2479:                                             ; preds = %2473
  %2480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2481 = call i32 @fileno(ptr noundef %2480) #12
  %2482 = call i32 @isatty(i32 noundef %2481) #12
  %.not360 = icmp eq i32 %2482, 0
  br i1 %.not360, label %2483, label %2484

2483:                                             ; preds = %2479, %2473
  br label %2484

2484:                                             ; preds = %2479, %2483
  %.str.5.sink1321 = phi ptr [ @.str.5, %2483 ], [ @.str.2, %2479 ]
  store i32 %2474, ptr %770, align 4, !tbaa !5
  %2485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2486 = load i32, ptr @test_count, align 4, !tbaa !5
  %2487 = load i32, ptr %538, align 4, !tbaa !5
  %2488 = call ptr @s2n_strerror(i32 noundef %2487, ptr noundef nonnull @.str.4) #12
  %2489 = load i32, ptr %538, align 4, !tbaa !5
  %2490 = call ptr @s2n_strerror_debug(i32 noundef %2489, ptr noundef nonnull @.str.4) #12
  %2491 = load i32, ptr %770, align 4, !tbaa !5
  %2492 = call ptr @strerror(i32 noundef %2491) #12
  %2493 = load i32, ptr %770, align 4, !tbaa !5
  %2494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2485, ptr noundef nonnull %.str.5.sink1321, i32 noundef %2486, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 247, ptr noundef %2488, ptr noundef %2490, ptr noundef %2492, i32 noundef %2493) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2495:                                             ; preds = %2467
  %2496 = add nsw i32 %2439, 3
  store i32 %2496, ptr @test_count, align 4, !tbaa !5
  %2497 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef nonnull %2469, ptr noundef nonnull %2441) #12
  %2498 = icmp eq i32 %2497, -1
  br i1 %2498, label %2499, label %2521

2499:                                             ; preds = %2495
  %2500 = load i32, ptr %770, align 4, !tbaa !5
  %2501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2502 = call i32 @s2n_print_stacktrace(ptr noundef %2501) #12
  %2503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2504 = trunc nuw i8 %2503 to i1
  br i1 %2504, label %2505, label %2509

2505:                                             ; preds = %2499
  %2506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2507 = call i32 @fileno(ptr noundef %2506) #12
  %2508 = call i32 @isatty(i32 noundef %2507) #12
  %.not410 = icmp eq i32 %2508, 0
  br i1 %.not410, label %2509, label %2510

2509:                                             ; preds = %2505, %2499
  br label %2510

2510:                                             ; preds = %2505, %2509
  %.str.5.sink1330 = phi ptr [ @.str.5, %2509 ], [ @.str.2, %2505 ]
  store i32 %2500, ptr %770, align 4, !tbaa !5
  %2511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2512 = load i32, ptr @test_count, align 4, !tbaa !5
  %2513 = load i32, ptr %538, align 4, !tbaa !5
  %2514 = call ptr @s2n_strerror(i32 noundef %2513, ptr noundef nonnull @.str.4) #12
  %2515 = load i32, ptr %538, align 4, !tbaa !5
  %2516 = call ptr @s2n_strerror_debug(i32 noundef %2515, ptr noundef nonnull @.str.4) #12
  %2517 = load i32, ptr %770, align 4, !tbaa !5
  %2518 = call ptr @strerror(i32 noundef %2517) #12
  %2519 = load i32, ptr %770, align 4, !tbaa !5
  %2520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2511, ptr noundef nonnull %.str.5.sink1330, i32 noundef %2512, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 249, ptr noundef %2514, ptr noundef %2516, ptr noundef %2518, i32 noundef %2519) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2521:                                             ; preds = %2495
  %2522 = load i32, ptr @test_count, align 4, !tbaa !5
  %2523 = add nsw i32 %2522, 1
  store i32 %2523, ptr @test_count, align 4, !tbaa !5
  %2524 = call i32 @s2n_io_pair_close(ptr noundef nonnull %17) #12
  %2525 = icmp eq i32 %2524, -1
  br i1 %2525, label %2526, label %2548

2526:                                             ; preds = %2521
  %2527 = load i32, ptr %770, align 4, !tbaa !5
  %2528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2529 = call i32 @s2n_print_stacktrace(ptr noundef %2528) #12
  %2530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2531 = trunc nuw i8 %2530 to i1
  br i1 %2531, label %2532, label %2536

2532:                                             ; preds = %2526
  %2533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2534 = call i32 @fileno(ptr noundef %2533) #12
  %2535 = call i32 @isatty(i32 noundef %2534) #12
  %.not409 = icmp eq i32 %2535, 0
  br i1 %.not409, label %2536, label %2537

2536:                                             ; preds = %2532, %2526
  br label %2537

2537:                                             ; preds = %2532, %2536
  %.str.5.sink1339 = phi ptr [ @.str.5, %2536 ], [ @.str.2, %2532 ]
  store i32 %2527, ptr %770, align 4, !tbaa !5
  %2538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2539 = load i32, ptr @test_count, align 4, !tbaa !5
  %2540 = load i32, ptr %538, align 4, !tbaa !5
  %2541 = call ptr @s2n_strerror(i32 noundef %2540, ptr noundef nonnull @.str.4) #12
  %2542 = load i32, ptr %538, align 4, !tbaa !5
  %2543 = call ptr @s2n_strerror_debug(i32 noundef %2542, ptr noundef nonnull @.str.4) #12
  %2544 = load i32, ptr %770, align 4, !tbaa !5
  %2545 = call ptr @strerror(i32 noundef %2544) #12
  %2546 = load i32, ptr %770, align 4, !tbaa !5
  %2547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2538, ptr noundef nonnull %.str.5.sink1339, i32 noundef %2539, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 250, ptr noundef %2541, ptr noundef %2543, ptr noundef %2545, i32 noundef %2546) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2548:                                             ; preds = %2521
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #12
  %2549 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #12
  %2550 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #12
  br label %2556

2551:                                             ; preds = %3010
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #12
  %2552 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %2552, ptr %21, align 8, !tbaa !9
  %2553 = load i32, ptr @test_count, align 4, !tbaa !5
  %2554 = add nsw i32 %2553, 1
  store i32 %2554, ptr @test_count, align 4, !tbaa !5
  %2555 = icmp eq ptr %2552, null
  br i1 %2555, label %3014, label %3036

2556:                                             ; preds = %2548, %3010
  %.0329518 = phi i64 [ 0, %2548 ], [ %3013, %3010 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #12
  %2557 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %2557, ptr %18, align 8, !tbaa !9
  %2558 = load i32, ptr @test_count, align 4, !tbaa !5
  %2559 = add nsw i32 %2558, 1
  store i32 %2559, ptr @test_count, align 4, !tbaa !5
  %2560 = icmp eq ptr %2557, null
  br i1 %2560, label %2561, label %2583

2561:                                             ; preds = %2556
  %2562 = load i32, ptr %770, align 4, !tbaa !5
  %2563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2564 = call i32 @s2n_print_stacktrace(ptr noundef %2563) #12
  %2565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2566 = trunc nuw i8 %2565 to i1
  br i1 %2566, label %2567, label %2571

2567:                                             ; preds = %2561
  %2568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2569 = call i32 @fileno(ptr noundef %2568) #12
  %2570 = call i32 @isatty(i32 noundef %2569) #12
  %.not408 = icmp eq i32 %2570, 0
  br i1 %.not408, label %2571, label %2572

2571:                                             ; preds = %2567, %2561
  br label %2572

2572:                                             ; preds = %2567, %2571
  %.str.5.sink1348 = phi ptr [ @.str.5, %2571 ], [ @.str.2, %2567 ]
  store i32 %2562, ptr %770, align 4, !tbaa !5
  %2573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2574 = load i32, ptr @test_count, align 4, !tbaa !5
  %2575 = load i32, ptr %538, align 4, !tbaa !5
  %2576 = call ptr @s2n_strerror(i32 noundef %2575, ptr noundef nonnull @.str.4) #12
  %2577 = load i32, ptr %538, align 4, !tbaa !5
  %2578 = call ptr @s2n_strerror_debug(i32 noundef %2577, ptr noundef nonnull @.str.4) #12
  %2579 = load i32, ptr %770, align 4, !tbaa !5
  %2580 = call ptr @strerror(i32 noundef %2579) #12
  %2581 = load i32, ptr %770, align 4, !tbaa !5
  %2582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2573, ptr noundef nonnull %.str.5.sink1348, i32 noundef %2574, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 267, ptr noundef %2576, ptr noundef %2578, ptr noundef %2580, i32 noundef %2581) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2583:                                             ; preds = %2556
  %2584 = add nsw i32 %2558, 2
  store i32 %2584, ptr @test_count, align 4, !tbaa !5
  %2585 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2557, ptr noundef %1434) #12
  %2586 = icmp eq i32 %2585, -1
  br i1 %2586, label %2587, label %2609

2587:                                             ; preds = %2583
  %2588 = load i32, ptr %770, align 4, !tbaa !5
  %2589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2590 = call i32 @s2n_print_stacktrace(ptr noundef %2589) #12
  %2591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2592 = trunc nuw i8 %2591 to i1
  br i1 %2592, label %2593, label %2597

2593:                                             ; preds = %2587
  %2594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2595 = call i32 @fileno(ptr noundef %2594) #12
  %2596 = call i32 @isatty(i32 noundef %2595) #12
  %.not407 = icmp eq i32 %2596, 0
  br i1 %.not407, label %2597, label %2598

2597:                                             ; preds = %2593, %2587
  br label %2598

2598:                                             ; preds = %2593, %2597
  %.str.5.sink1357 = phi ptr [ @.str.5, %2597 ], [ @.str.2, %2593 ]
  store i32 %2588, ptr %770, align 4, !tbaa !5
  %2599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2600 = load i32, ptr @test_count, align 4, !tbaa !5
  %2601 = load i32, ptr %538, align 4, !tbaa !5
  %2602 = call ptr @s2n_strerror(i32 noundef %2601, ptr noundef nonnull @.str.4) #12
  %2603 = load i32, ptr %538, align 4, !tbaa !5
  %2604 = call ptr @s2n_strerror_debug(i32 noundef %2603, ptr noundef nonnull @.str.4) #12
  %2605 = load i32, ptr %770, align 4, !tbaa !5
  %2606 = call ptr @strerror(i32 noundef %2605) #12
  %2607 = load i32, ptr %770, align 4, !tbaa !5
  %2608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2599, ptr noundef nonnull %.str.5.sink1357, i32 noundef %2600, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 268, ptr noundef %2602, ptr noundef %2604, ptr noundef %2606, i32 noundef %2607) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2609:                                             ; preds = %2583
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #12
  %2610 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %2610, ptr %19, align 8, !tbaa !9
  %2611 = load i32, ptr @test_count, align 4, !tbaa !5
  %2612 = add nsw i32 %2611, 1
  store i32 %2612, ptr @test_count, align 4, !tbaa !5
  %2613 = load ptr, ptr %18, align 8, !tbaa !9
  %2614 = icmp eq ptr %2613, null
  br i1 %2614, label %2615, label %2637

2615:                                             ; preds = %2609
  %2616 = load i32, ptr %770, align 4, !tbaa !5
  %2617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2618 = call i32 @s2n_print_stacktrace(ptr noundef %2617) #12
  %2619 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2620 = trunc nuw i8 %2619 to i1
  br i1 %2620, label %2621, label %2625

2621:                                             ; preds = %2615
  %2622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2623 = call i32 @fileno(ptr noundef %2622) #12
  %2624 = call i32 @isatty(i32 noundef %2623) #12
  %.not406 = icmp eq i32 %2624, 0
  br i1 %.not406, label %2625, label %2626

2625:                                             ; preds = %2621, %2615
  br label %2626

2626:                                             ; preds = %2621, %2625
  %.str.5.sink1366 = phi ptr [ @.str.5, %2625 ], [ @.str.2, %2621 ]
  store i32 %2616, ptr %770, align 4, !tbaa !5
  %2627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2628 = load i32, ptr @test_count, align 4, !tbaa !5
  %2629 = load i32, ptr %538, align 4, !tbaa !5
  %2630 = call ptr @s2n_strerror(i32 noundef %2629, ptr noundef nonnull @.str.4) #12
  %2631 = load i32, ptr %538, align 4, !tbaa !5
  %2632 = call ptr @s2n_strerror_debug(i32 noundef %2631, ptr noundef nonnull @.str.4) #12
  %2633 = load i32, ptr %770, align 4, !tbaa !5
  %2634 = call ptr @strerror(i32 noundef %2633) #12
  %2635 = load i32, ptr %770, align 4, !tbaa !5
  %2636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2627, ptr noundef nonnull %.str.5.sink1366, i32 noundef %2628, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %2630, ptr noundef %2632, ptr noundef %2634, i32 noundef %2635) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2637:                                             ; preds = %2609
  %2638 = add nsw i32 %2611, 2
  store i32 %2638, ptr @test_count, align 4, !tbaa !5
  %2639 = call i32 @s2n_connection_set_config(ptr noundef %2610, ptr noundef %1434) #12
  %2640 = icmp eq i32 %2639, -1
  br i1 %2640, label %2641, label %2663

2641:                                             ; preds = %2637
  %2642 = load i32, ptr %770, align 4, !tbaa !5
  %2643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2644 = call i32 @s2n_print_stacktrace(ptr noundef %2643) #12
  %2645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2646 = trunc nuw i8 %2645 to i1
  br i1 %2646, label %2647, label %2651

2647:                                             ; preds = %2641
  %2648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2649 = call i32 @fileno(ptr noundef %2648) #12
  %2650 = call i32 @isatty(i32 noundef %2649) #12
  %.not405 = icmp eq i32 %2650, 0
  br i1 %.not405, label %2651, label %2652

2651:                                             ; preds = %2647, %2641
  br label %2652

2652:                                             ; preds = %2647, %2651
  %.str.5.sink1375 = phi ptr [ @.str.5, %2651 ], [ @.str.2, %2647 ]
  store i32 %2642, ptr %770, align 4, !tbaa !5
  %2653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2654 = load i32, ptr @test_count, align 4, !tbaa !5
  %2655 = load i32, ptr %538, align 4, !tbaa !5
  %2656 = call ptr @s2n_strerror(i32 noundef %2655, ptr noundef nonnull @.str.4) #12
  %2657 = load i32, ptr %538, align 4, !tbaa !5
  %2658 = call ptr @s2n_strerror_debug(i32 noundef %2657, ptr noundef nonnull @.str.4) #12
  %2659 = load i32, ptr %770, align 4, !tbaa !5
  %2660 = call ptr @strerror(i32 noundef %2659) #12
  %2661 = load i32, ptr %770, align 4, !tbaa !5
  %2662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2653, ptr noundef nonnull %.str.5.sink1375, i32 noundef %2654, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 273, ptr noundef %2656, ptr noundef %2658, ptr noundef %2660, i32 noundef %2661) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2663:                                             ; preds = %2637
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #12
  store i64 0, ptr %20, align 8
  %2664 = load i32, ptr @test_count, align 4, !tbaa !5
  %2665 = add nsw i32 %2664, 1
  store i32 %2665, ptr @test_count, align 4, !tbaa !5
  %2666 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %20) #12
  %2667 = icmp eq i32 %2666, -1
  br i1 %2667, label %2668, label %2690

2668:                                             ; preds = %2663
  %2669 = load i32, ptr %770, align 4, !tbaa !5
  %2670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2671 = call i32 @s2n_print_stacktrace(ptr noundef %2670) #12
  %2672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2673 = trunc nuw i8 %2672 to i1
  br i1 %2673, label %2674, label %2678

2674:                                             ; preds = %2668
  %2675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2676 = call i32 @fileno(ptr noundef %2675) #12
  %2677 = call i32 @isatty(i32 noundef %2676) #12
  %.not404 = icmp eq i32 %2677, 0
  br i1 %.not404, label %2678, label %2679

2678:                                             ; preds = %2674, %2668
  br label %2679

2679:                                             ; preds = %2674, %2678
  %.str.5.sink1384 = phi ptr [ @.str.5, %2678 ], [ @.str.2, %2674 ]
  store i32 %2669, ptr %770, align 4, !tbaa !5
  %2680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2681 = load i32, ptr @test_count, align 4, !tbaa !5
  %2682 = load i32, ptr %538, align 4, !tbaa !5
  %2683 = call ptr @s2n_strerror(i32 noundef %2682, ptr noundef nonnull @.str.4) #12
  %2684 = load i32, ptr %538, align 4, !tbaa !5
  %2685 = call ptr @s2n_strerror_debug(i32 noundef %2684, ptr noundef nonnull @.str.4) #12
  %2686 = load i32, ptr %770, align 4, !tbaa !5
  %2687 = call ptr @strerror(i32 noundef %2686) #12
  %2688 = load i32, ptr %770, align 4, !tbaa !5
  %2689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2680, ptr noundef nonnull %.str.5.sink1384, i32 noundef %2681, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 276, ptr noundef %2683, ptr noundef %2685, ptr noundef %2687, i32 noundef %2688) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2690:                                             ; preds = %2663
  %2691 = load i32, ptr @test_count, align 4, !tbaa !5
  %2692 = add nsw i32 %2691, 1
  store i32 %2692, ptr @test_count, align 4, !tbaa !5
  %2693 = load ptr, ptr %19, align 8, !tbaa !9
  %2694 = load ptr, ptr %18, align 8, !tbaa !9
  %2695 = call i32 @s2n_connections_set_io_pair(ptr noundef %2693, ptr noundef %2694, ptr noundef nonnull %20) #12
  %2696 = icmp eq i32 %2695, -1
  br i1 %2696, label %2697, label %2719

2697:                                             ; preds = %2690
  %2698 = load i32, ptr %770, align 4, !tbaa !5
  %2699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2700 = call i32 @s2n_print_stacktrace(ptr noundef %2699) #12
  %2701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2702 = trunc nuw i8 %2701 to i1
  br i1 %2702, label %2703, label %2707

2703:                                             ; preds = %2697
  %2704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2705 = call i32 @fileno(ptr noundef %2704) #12
  %2706 = call i32 @isatty(i32 noundef %2705) #12
  %.not403 = icmp eq i32 %2706, 0
  br i1 %.not403, label %2707, label %2708

2707:                                             ; preds = %2703, %2697
  br label %2708

2708:                                             ; preds = %2703, %2707
  %.str.5.sink1393 = phi ptr [ @.str.5, %2707 ], [ @.str.2, %2703 ]
  store i32 %2698, ptr %770, align 4, !tbaa !5
  %2709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2710 = load i32, ptr @test_count, align 4, !tbaa !5
  %2711 = load i32, ptr %538, align 4, !tbaa !5
  %2712 = call ptr @s2n_strerror(i32 noundef %2711, ptr noundef nonnull @.str.4) #12
  %2713 = load i32, ptr %538, align 4, !tbaa !5
  %2714 = call ptr @s2n_strerror_debug(i32 noundef %2713, ptr noundef nonnull @.str.4) #12
  %2715 = load i32, ptr %770, align 4, !tbaa !5
  %2716 = call ptr @strerror(i32 noundef %2715) #12
  %2717 = load i32, ptr %770, align 4, !tbaa !5
  %2718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2709, ptr noundef nonnull %.str.5.sink1393, i32 noundef %2710, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 277, ptr noundef %2712, ptr noundef %2714, ptr noundef %2716, i32 noundef %2717) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2719:                                             ; preds = %2690
  %2720 = load ptr, ptr %19, align 8, !tbaa !9
  %2721 = getelementptr inbounds i8, ptr %2720, i64 16
  store ptr @security_policy_test_tls13_retry, ptr %2721, align 8, !tbaa !53
  %2722 = load i32, ptr @test_count, align 4, !tbaa !5
  %2723 = add nsw i32 %2722, 1
  store i32 %2723, ptr @test_count, align 4, !tbaa !5
  %2724 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %1, i64 0, i64 %.0329518
  %2725 = load ptr, ptr %18, align 8, !tbaa !9
  %2726 = getelementptr inbounds i8, ptr %2725, i64 4056
  %2727 = call i32 @s2n_dup(ptr noundef nonnull %2724, ptr noundef nonnull %2726) #12
  %2728 = icmp eq i32 %2727, -1
  br i1 %2728, label %2729, label %2751

2729:                                             ; preds = %2719
  %2730 = load i32, ptr %770, align 4, !tbaa !5
  %2731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2732 = call i32 @s2n_print_stacktrace(ptr noundef %2731) #12
  %2733 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2734 = trunc nuw i8 %2733 to i1
  br i1 %2734, label %2735, label %2739

2735:                                             ; preds = %2729
  %2736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2737 = call i32 @fileno(ptr noundef %2736) #12
  %2738 = call i32 @isatty(i32 noundef %2737) #12
  %.not402 = icmp eq i32 %2738, 0
  br i1 %.not402, label %2739, label %2740

2739:                                             ; preds = %2735, %2729
  br label %2740

2740:                                             ; preds = %2735, %2739
  %.str.5.sink1402 = phi ptr [ @.str.5, %2739 ], [ @.str.2, %2735 ]
  store i32 %2730, ptr %770, align 4, !tbaa !5
  %2741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2742 = load i32, ptr @test_count, align 4, !tbaa !5
  %2743 = load i32, ptr %538, align 4, !tbaa !5
  %2744 = call ptr @s2n_strerror(i32 noundef %2743, ptr noundef nonnull @.str.4) #12
  %2745 = load i32, ptr %538, align 4, !tbaa !5
  %2746 = call ptr @s2n_strerror_debug(i32 noundef %2745, ptr noundef nonnull @.str.4) #12
  %2747 = load i32, ptr %770, align 4, !tbaa !5
  %2748 = call ptr @strerror(i32 noundef %2747) #12
  %2749 = load i32, ptr %770, align 4, !tbaa !5
  %2750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2741, ptr noundef nonnull %.str.5.sink1402, i32 noundef %2742, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 283, ptr noundef %2744, ptr noundef %2746, ptr noundef %2748, i32 noundef %2749) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2751:                                             ; preds = %2719
  %2752 = load i32, ptr @test_count, align 4, !tbaa !5
  %2753 = add nsw i32 %2752, 1
  store i32 %2753, ptr @test_count, align 4, !tbaa !5
  %2754 = load ptr, ptr %18, align 8, !tbaa !9
  %2755 = load ptr, ptr %19, align 8, !tbaa !9
  %2756 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %2754, ptr noundef %2755) #12
  %2757 = icmp eq i32 %2756, -1
  br i1 %2757, label %2758, label %2780

2758:                                             ; preds = %2751
  %2759 = load i32, ptr %770, align 4, !tbaa !5
  %2760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2761 = call i32 @s2n_print_stacktrace(ptr noundef %2760) #12
  %2762 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2763 = trunc nuw i8 %2762 to i1
  br i1 %2763, label %2764, label %2768

2764:                                             ; preds = %2758
  %2765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2766 = call i32 @fileno(ptr noundef %2765) #12
  %2767 = call i32 @isatty(i32 noundef %2766) #12
  %.not401 = icmp eq i32 %2767, 0
  br i1 %.not401, label %2768, label %2769

2768:                                             ; preds = %2764, %2758
  br label %2769

2769:                                             ; preds = %2764, %2768
  %.str.5.sink1411 = phi ptr [ @.str.5, %2768 ], [ @.str.2, %2764 ]
  store i32 %2759, ptr %770, align 4, !tbaa !5
  %2770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2771 = load i32, ptr @test_count, align 4, !tbaa !5
  %2772 = load i32, ptr %538, align 4, !tbaa !5
  %2773 = call ptr @s2n_strerror(i32 noundef %2772, ptr noundef nonnull @.str.4) #12
  %2774 = load i32, ptr %538, align 4, !tbaa !5
  %2775 = call ptr @s2n_strerror_debug(i32 noundef %2774, ptr noundef nonnull @.str.4) #12
  %2776 = load i32, ptr %770, align 4, !tbaa !5
  %2777 = call ptr @strerror(i32 noundef %2776) #12
  %2778 = load i32, ptr %770, align 4, !tbaa !5
  %2779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2770, ptr noundef nonnull %.str.5.sink1411, i32 noundef %2771, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 286, ptr noundef %2773, ptr noundef %2775, ptr noundef %2777, i32 noundef %2778) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2780:                                             ; preds = %2751
  %2781 = load i32, ptr @test_count, align 4, !tbaa !5
  %2782 = add nsw i32 %2781, 1
  store i32 %2782, ptr @test_count, align 4, !tbaa !5
  %2783 = load ptr, ptr %18, align 8, !tbaa !9
  %2784 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %2783, i32 noundef 16) #12
  br i1 %2784, label %2807, label %2785

2785:                                             ; preds = %2780
  %2786 = load i32, ptr %770, align 4, !tbaa !5
  %2787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2788 = call i32 @s2n_print_stacktrace(ptr noundef %2787) #12
  %2789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2790 = trunc nuw i8 %2789 to i1
  br i1 %2790, label %2791, label %2795

2791:                                             ; preds = %2785
  %2792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2793 = call i32 @fileno(ptr noundef %2792) #12
  %2794 = call i32 @isatty(i32 noundef %2793) #12
  %.not389 = icmp eq i32 %2794, 0
  br i1 %.not389, label %2795, label %2796

2795:                                             ; preds = %2791, %2785
  br label %2796

2796:                                             ; preds = %2791, %2795
  %.str.5.sink1420 = phi ptr [ @.str.5, %2795 ], [ @.str.2, %2791 ]
  store i32 %2786, ptr %770, align 4, !tbaa !5
  %2797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2798 = load i32, ptr @test_count, align 4, !tbaa !5
  %2799 = load i32, ptr %538, align 4, !tbaa !5
  %2800 = call ptr @s2n_strerror(i32 noundef %2799, ptr noundef nonnull @.str.4) #12
  %2801 = load i32, ptr %538, align 4, !tbaa !5
  %2802 = call ptr @s2n_strerror_debug(i32 noundef %2801, ptr noundef nonnull @.str.4) #12
  %2803 = load i32, ptr %770, align 4, !tbaa !5
  %2804 = call ptr @strerror(i32 noundef %2803) #12
  %2805 = load i32, ptr %770, align 4, !tbaa !5
  %2806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2797, ptr noundef nonnull %.str.5.sink1420, i32 noundef %2798, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 289, ptr noundef %2800, ptr noundef %2802, ptr noundef %2804, i32 noundef %2805) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2807:                                             ; preds = %2780
  %2808 = load i32, ptr @test_count, align 4, !tbaa !5
  %2809 = add nsw i32 %2808, 1
  store i32 %2809, ptr @test_count, align 4, !tbaa !5
  %2810 = load ptr, ptr %19, align 8, !tbaa !9
  %2811 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %2810, i32 noundef 16) #12
  br i1 %2811, label %2834, label %2812

2812:                                             ; preds = %2807
  %2813 = load i32, ptr %770, align 4, !tbaa !5
  %2814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2815 = call i32 @s2n_print_stacktrace(ptr noundef %2814) #12
  %2816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2817 = trunc nuw i8 %2816 to i1
  br i1 %2817, label %2818, label %2822

2818:                                             ; preds = %2812
  %2819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2820 = call i32 @fileno(ptr noundef %2819) #12
  %2821 = call i32 @isatty(i32 noundef %2820) #12
  %.not390 = icmp eq i32 %2821, 0
  br i1 %.not390, label %2822, label %2823

2822:                                             ; preds = %2818, %2812
  br label %2823

2823:                                             ; preds = %2818, %2822
  %.str.5.sink1429 = phi ptr [ @.str.5, %2822 ], [ @.str.2, %2818 ]
  store i32 %2813, ptr %770, align 4, !tbaa !5
  %2824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2825 = load i32, ptr @test_count, align 4, !tbaa !5
  %2826 = load i32, ptr %538, align 4, !tbaa !5
  %2827 = call ptr @s2n_strerror(i32 noundef %2826, ptr noundef nonnull @.str.4) #12
  %2828 = load i32, ptr %538, align 4, !tbaa !5
  %2829 = call ptr @s2n_strerror_debug(i32 noundef %2828, ptr noundef nonnull @.str.4) #12
  %2830 = load i32, ptr %770, align 4, !tbaa !5
  %2831 = call ptr @strerror(i32 noundef %2830) #12
  %2832 = load i32, ptr %770, align 4, !tbaa !5
  %2833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2824, ptr noundef nonnull %.str.5.sink1429, i32 noundef %2825, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 290, ptr noundef %2827, ptr noundef %2829, ptr noundef %2831, i32 noundef %2832) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2834:                                             ; preds = %2807
  %2835 = load i32, ptr @test_count, align 4, !tbaa !5
  %2836 = add nsw i32 %2835, 1
  store i32 %2836, ptr @test_count, align 4, !tbaa !5
  %2837 = getelementptr inbounds i8, ptr %2724, i64 8
  %2838 = load i32, ptr %2837, align 8, !tbaa !45
  %2839 = load ptr, ptr %19, align 8, !tbaa !9
  %2840 = getelementptr inbounds i8, ptr %2839, i64 4064
  %2841 = load i32, ptr %2840, align 8, !tbaa !46
  %2842 = icmp eq i32 %2838, %2841
  br i1 %2842, label %2865, label %2843

2843:                                             ; preds = %2834
  %2844 = load i32, ptr %770, align 4, !tbaa !5
  %2845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2846 = call i32 @s2n_print_stacktrace(ptr noundef %2845) #12
  %2847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2848 = trunc nuw i8 %2847 to i1
  br i1 %2848, label %2849, label %2853

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

2853:                                             ; preds = %2849, %2843
  br label %2854

2854:                                             ; preds = %2849, %2853
  %.str.5.sink1438 = phi ptr [ @.str.5, %2853 ], [ @.str.2, %2849 ]
  store i32 %2844, ptr %770, align 4, !tbaa !5
  %2855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2856 = load i32, ptr @test_count, align 4, !tbaa !5
  %2857 = load i32, ptr %538, align 4, !tbaa !5
  %2858 = call ptr @s2n_strerror(i32 noundef %2857, ptr noundef nonnull @.str.4) #12
  %2859 = load i32, ptr %538, align 4, !tbaa !5
  %2860 = call ptr @s2n_strerror_debug(i32 noundef %2859, ptr noundef nonnull @.str.4) #12
  %2861 = load i32, ptr %770, align 4, !tbaa !5
  %2862 = call ptr @strerror(i32 noundef %2861) #12
  %2863 = load i32, ptr %770, align 4, !tbaa !5
  %2864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2855, ptr noundef nonnull %.str.5.sink1438, i32 noundef %2856, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 293, ptr noundef %2858, ptr noundef %2860, ptr noundef %2862, i32 noundef %2863) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2865:                                             ; preds = %2834
  %.not392 = icmp eq i32 %2838, 0
  %2866 = add nsw i32 %2835, 2
  store i32 %2866, ptr @test_count, align 4, !tbaa !5
  br i1 %.not392, label %thread-pre-split, label %2867

2867:                                             ; preds = %2865
  %2868 = load ptr, ptr %2724, align 8, !tbaa !47
  %2869 = getelementptr inbounds i8, ptr %2839, i64 4056
  %2870 = load ptr, ptr %2869, align 8, !tbaa !48
  %2871 = zext i32 %2838 to i64
  %bcmp393 = call i32 @bcmp(ptr %2868, ptr %2870, i64 %2871)
  %2872 = icmp eq i32 %bcmp393, 0
  br i1 %2872, label %thread-pre-split.thread, label %2873

2873:                                             ; preds = %2867
  %2874 = load i32, ptr %770, align 4, !tbaa !5
  %2875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2876 = call i32 @s2n_print_stacktrace(ptr noundef %2875) #12
  %2877 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2878 = trunc nuw i8 %2877 to i1
  br i1 %2878, label %2879, label %2883

2879:                                             ; preds = %2873
  %2880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2881 = call i32 @fileno(ptr noundef %2880) #12
  %2882 = call i32 @isatty(i32 noundef %2881) #12
  %.not394 = icmp eq i32 %2882, 0
  br i1 %.not394, label %2883, label %2884

2883:                                             ; preds = %2879, %2873
  br label %2884

2884:                                             ; preds = %2879, %2883
  %.str.5.sink1447 = phi ptr [ @.str.5, %2883 ], [ @.str.2, %2879 ]
  store i32 %2874, ptr %770, align 4, !tbaa !5
  %2885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2886 = load i32, ptr @test_count, align 4, !tbaa !5
  %2887 = load i32, ptr %538, align 4, !tbaa !5
  %2888 = call ptr @s2n_strerror(i32 noundef %2887, ptr noundef nonnull @.str.4) #12
  %2889 = load i32, ptr %538, align 4, !tbaa !5
  %2890 = call ptr @s2n_strerror_debug(i32 noundef %2889, ptr noundef nonnull @.str.4) #12
  %2891 = load i32, ptr %770, align 4, !tbaa !5
  %2892 = call ptr @strerror(i32 noundef %2891) #12
  %2893 = load i32, ptr %770, align 4, !tbaa !5
  %2894 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2885, ptr noundef nonnull %.str.5.sink1447, i32 noundef %2886, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 293, ptr noundef %2888, ptr noundef %2890, ptr noundef %2892, i32 noundef %2893) #14
  call void @exit(i32 noundef 1) #15
  unreachable

thread-pre-split:                                 ; preds = %2865
  %2895 = load ptr, ptr %18, align 8, !tbaa !9
  %2896 = getelementptr inbounds i8, ptr %2895, i64 4064
  %2897 = load i32, ptr %2896, align 8, !tbaa !46
  %2898 = icmp eq i32 %2838, %2897
  br i1 %2898, label %2955, label %2904

thread-pre-split.thread:                          ; preds = %2867
  %2899 = add nsw i32 %2835, 3
  store i32 %2899, ptr @test_count, align 4, !tbaa !5
  %2900 = load ptr, ptr %18, align 8, !tbaa !9
  %2901 = getelementptr inbounds i8, ptr %2900, i64 4064
  %2902 = load i32, ptr %2901, align 8, !tbaa !46
  %2903 = icmp eq i32 %2838, %2902
  br i1 %2903, label %2926, label %2904

2904:                                             ; preds = %thread-pre-split.thread, %thread-pre-split
  %2905 = load i32, ptr %770, align 4, !tbaa !5
  %2906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2907 = call i32 @s2n_print_stacktrace(ptr noundef %2906) #12
  %2908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2909 = trunc nuw i8 %2908 to i1
  br i1 %2909, label %2910, label %2914

2910:                                             ; preds = %2904
  %2911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2912 = call i32 @fileno(ptr noundef %2911) #12
  %2913 = call i32 @isatty(i32 noundef %2912) #12
  %.not395 = icmp eq i32 %2913, 0
  br i1 %.not395, label %2914, label %2915

2914:                                             ; preds = %2910, %2904
  br label %2915

2915:                                             ; preds = %2910, %2914
  %.str.5.sink1456 = phi ptr [ @.str.5, %2914 ], [ @.str.2, %2910 ]
  store i32 %2905, ptr %770, align 4, !tbaa !5
  %2916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2917 = load i32, ptr @test_count, align 4, !tbaa !5
  %2918 = load i32, ptr %538, align 4, !tbaa !5
  %2919 = call ptr @s2n_strerror(i32 noundef %2918, ptr noundef nonnull @.str.4) #12
  %2920 = load i32, ptr %538, align 4, !tbaa !5
  %2921 = call ptr @s2n_strerror_debug(i32 noundef %2920, ptr noundef nonnull @.str.4) #12
  %2922 = load i32, ptr %770, align 4, !tbaa !5
  %2923 = call ptr @strerror(i32 noundef %2922) #12
  %2924 = load i32, ptr %770, align 4, !tbaa !5
  %2925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2916, ptr noundef nonnull %.str.5.sink1456, i32 noundef %2917, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 294, ptr noundef %2919, ptr noundef %2921, ptr noundef %2923, i32 noundef %2924) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2926:                                             ; preds = %thread-pre-split.thread
  %2927 = add nsw i32 %2835, 4
  store i32 %2927, ptr @test_count, align 4, !tbaa !5
  %2928 = load ptr, ptr %2724, align 8, !tbaa !47
  %2929 = getelementptr inbounds i8, ptr %2900, i64 4056
  %2930 = load ptr, ptr %2929, align 8, !tbaa !48
  %2931 = zext i32 %2838 to i64
  %bcmp397 = call i32 @bcmp(ptr %2928, ptr %2930, i64 %2931)
  %2932 = icmp eq i32 %bcmp397, 0
  br i1 %2932, label %2955, label %2933

2933:                                             ; preds = %2926
  %2934 = load i32, ptr %770, align 4, !tbaa !5
  %2935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2936 = call i32 @s2n_print_stacktrace(ptr noundef %2935) #12
  %2937 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2938 = trunc nuw i8 %2937 to i1
  br i1 %2938, label %2939, label %2943

2939:                                             ; preds = %2933
  %2940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2941 = call i32 @fileno(ptr noundef %2940) #12
  %2942 = call i32 @isatty(i32 noundef %2941) #12
  %.not398 = icmp eq i32 %2942, 0
  br i1 %.not398, label %2943, label %2944

2943:                                             ; preds = %2939, %2933
  br label %2944

2944:                                             ; preds = %2939, %2943
  %.str.5.sink1465 = phi ptr [ @.str.5, %2943 ], [ @.str.2, %2939 ]
  store i32 %2934, ptr %770, align 4, !tbaa !5
  %2945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2946 = load i32, ptr @test_count, align 4, !tbaa !5
  %2947 = load i32, ptr %538, align 4, !tbaa !5
  %2948 = call ptr @s2n_strerror(i32 noundef %2947, ptr noundef nonnull @.str.4) #12
  %2949 = load i32, ptr %538, align 4, !tbaa !5
  %2950 = call ptr @s2n_strerror_debug(i32 noundef %2949, ptr noundef nonnull @.str.4) #12
  %2951 = load i32, ptr %770, align 4, !tbaa !5
  %2952 = call ptr @strerror(i32 noundef %2951) #12
  %2953 = load i32, ptr %770, align 4, !tbaa !5
  %2954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2945, ptr noundef nonnull %.str.5.sink1465, i32 noundef %2946, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 294, ptr noundef %2948, ptr noundef %2950, ptr noundef %2952, i32 noundef %2953) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2955:                                             ; preds = %thread-pre-split, %2926
  %2956 = phi ptr [ %2900, %2926 ], [ %2895, %thread-pre-split ]
  %2957 = phi i32 [ %2927, %2926 ], [ %2866, %thread-pre-split ]
  %2958 = add nsw i32 %2957, 1
  store i32 %2958, ptr @test_count, align 4, !tbaa !5
  %2959 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef nonnull %2956, ptr noundef nonnull %2839) #12
  %2960 = icmp eq i32 %2959, -1
  br i1 %2960, label %2961, label %2983

2961:                                             ; preds = %2955
  %2962 = load i32, ptr %770, align 4, !tbaa !5
  %2963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2964 = call i32 @s2n_print_stacktrace(ptr noundef %2963) #12
  %2965 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2966 = trunc nuw i8 %2965 to i1
  br i1 %2966, label %2967, label %2971

2967:                                             ; preds = %2961
  %2968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2969 = call i32 @fileno(ptr noundef %2968) #12
  %2970 = call i32 @isatty(i32 noundef %2969) #12
  %.not400 = icmp eq i32 %2970, 0
  br i1 %.not400, label %2971, label %2972

2971:                                             ; preds = %2967, %2961
  br label %2972

2972:                                             ; preds = %2967, %2971
  %.str.5.sink1474 = phi ptr [ @.str.5, %2971 ], [ @.str.2, %2967 ]
  store i32 %2962, ptr %770, align 4, !tbaa !5
  %2973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2974 = load i32, ptr @test_count, align 4, !tbaa !5
  %2975 = load i32, ptr %538, align 4, !tbaa !5
  %2976 = call ptr @s2n_strerror(i32 noundef %2975, ptr noundef nonnull @.str.4) #12
  %2977 = load i32, ptr %538, align 4, !tbaa !5
  %2978 = call ptr @s2n_strerror_debug(i32 noundef %2977, ptr noundef nonnull @.str.4) #12
  %2979 = load i32, ptr %770, align 4, !tbaa !5
  %2980 = call ptr @strerror(i32 noundef %2979) #12
  %2981 = load i32, ptr %770, align 4, !tbaa !5
  %2982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2973, ptr noundef nonnull %.str.5.sink1474, i32 noundef %2974, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 296, ptr noundef %2976, ptr noundef %2978, ptr noundef %2980, i32 noundef %2981) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2983:                                             ; preds = %2955
  %2984 = load i32, ptr @test_count, align 4, !tbaa !5
  %2985 = add nsw i32 %2984, 1
  store i32 %2985, ptr @test_count, align 4, !tbaa !5
  %2986 = call i32 @s2n_io_pair_close(ptr noundef nonnull %20) #12
  %2987 = icmp eq i32 %2986, -1
  br i1 %2987, label %2988, label %3010

2988:                                             ; preds = %2983
  %2989 = load i32, ptr %770, align 4, !tbaa !5
  %2990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2991 = call i32 @s2n_print_stacktrace(ptr noundef %2990) #12
  %2992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2993 = trunc nuw i8 %2992 to i1
  br i1 %2993, label %2994, label %2998

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

2998:                                             ; preds = %2994, %2988
  br label %2999

2999:                                             ; preds = %2994, %2998
  %.str.5.sink1483 = phi ptr [ @.str.5, %2998 ], [ @.str.2, %2994 ]
  store i32 %2989, ptr %770, align 4, !tbaa !5
  %3000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3001 = load i32, ptr @test_count, align 4, !tbaa !5
  %3002 = load i32, ptr %538, align 4, !tbaa !5
  %3003 = call ptr @s2n_strerror(i32 noundef %3002, ptr noundef nonnull @.str.4) #12
  %3004 = load i32, ptr %538, align 4, !tbaa !5
  %3005 = call ptr @s2n_strerror_debug(i32 noundef %3004, ptr noundef nonnull @.str.4) #12
  %3006 = load i32, ptr %770, align 4, !tbaa !5
  %3007 = call ptr @strerror(i32 noundef %3006) #12
  %3008 = load i32, ptr %770, align 4, !tbaa !5
  %3009 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3000, ptr noundef nonnull %.str.5.sink1483, i32 noundef %3001, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 297, ptr noundef %3003, ptr noundef %3005, ptr noundef %3007, i32 noundef %3008) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3010:                                             ; preds = %2983
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #12
  %3011 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #12
  %3012 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #12
  %3013 = add nuw nsw i64 %.0329518, 1
  %exitcond537.not = icmp eq i64 %3013, 5
  br i1 %exitcond537.not, label %2551, label %2556, !llvm.loop !54

3014:                                             ; preds = %2551
  %3015 = load i32, ptr %770, align 4, !tbaa !5
  %3016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3017 = call i32 @s2n_print_stacktrace(ptr noundef %3016) #12
  %3018 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3019 = trunc nuw i8 %3018 to i1
  br i1 %3019, label %3020, label %3024

3020:                                             ; preds = %3014
  %3021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3022 = call i32 @fileno(ptr noundef %3021) #12
  %3023 = call i32 @isatty(i32 noundef %3022) #12
  %.not388 = icmp eq i32 %3023, 0
  br i1 %.not388, label %3024, label %3025

3024:                                             ; preds = %3020, %3014
  br label %3025

3025:                                             ; preds = %3020, %3024
  %.str.5.sink1492 = phi ptr [ @.str.5, %3024 ], [ @.str.2, %3020 ]
  store i32 %3015, ptr %770, align 4, !tbaa !5
  %3026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3027 = load i32, ptr @test_count, align 4, !tbaa !5
  %3028 = load i32, ptr %538, align 4, !tbaa !5
  %3029 = call ptr @s2n_strerror(i32 noundef %3028, ptr noundef nonnull @.str.4) #12
  %3030 = load i32, ptr %538, align 4, !tbaa !5
  %3031 = call ptr @s2n_strerror_debug(i32 noundef %3030, ptr noundef nonnull @.str.4) #12
  %3032 = load i32, ptr %770, align 4, !tbaa !5
  %3033 = call ptr @strerror(i32 noundef %3032) #12
  %3034 = load i32, ptr %770, align 4, !tbaa !5
  %3035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3026, ptr noundef nonnull %.str.5.sink1492, i32 noundef %3027, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 306, ptr noundef %3029, ptr noundef %3031, ptr noundef %3033, i32 noundef %3034) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3036:                                             ; preds = %2551
  %3037 = add nsw i32 %2553, 2
  store i32 %3037, ptr @test_count, align 4, !tbaa !5
  %3038 = call i32 @s2n_connection_set_config(ptr noundef nonnull %2552, ptr noundef %1434) #12
  %3039 = icmp eq i32 %3038, -1
  br i1 %3039, label %3040, label %3062

3040:                                             ; preds = %3036
  %3041 = load i32, ptr %770, align 4, !tbaa !5
  %3042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3043 = call i32 @s2n_print_stacktrace(ptr noundef %3042) #12
  %3044 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3045 = trunc nuw i8 %3044 to i1
  br i1 %3045, label %3046, label %3050

3046:                                             ; preds = %3040
  %3047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3048 = call i32 @fileno(ptr noundef %3047) #12
  %3049 = call i32 @isatty(i32 noundef %3048) #12
  %.not387 = icmp eq i32 %3049, 0
  br i1 %.not387, label %3050, label %3051

3050:                                             ; preds = %3046, %3040
  br label %3051

3051:                                             ; preds = %3046, %3050
  %.str.5.sink1501 = phi ptr [ @.str.5, %3050 ], [ @.str.2, %3046 ]
  store i32 %3041, ptr %770, align 4, !tbaa !5
  %3052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3053 = load i32, ptr @test_count, align 4, !tbaa !5
  %3054 = load i32, ptr %538, align 4, !tbaa !5
  %3055 = call ptr @s2n_strerror(i32 noundef %3054, ptr noundef nonnull @.str.4) #12
  %3056 = load i32, ptr %538, align 4, !tbaa !5
  %3057 = call ptr @s2n_strerror_debug(i32 noundef %3056, ptr noundef nonnull @.str.4) #12
  %3058 = load i32, ptr %770, align 4, !tbaa !5
  %3059 = call ptr @strerror(i32 noundef %3058) #12
  %3060 = load i32, ptr %770, align 4, !tbaa !5
  %3061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3052, ptr noundef nonnull %.str.5.sink1501, i32 noundef %3053, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 307, ptr noundef %3055, ptr noundef %3057, ptr noundef %3059, i32 noundef %3060) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3062:                                             ; preds = %3036
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #12
  %3063 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %3063, ptr %22, align 8, !tbaa !9
  %3064 = load i32, ptr @test_count, align 4, !tbaa !5
  %3065 = add nsw i32 %3064, 1
  store i32 %3065, ptr @test_count, align 4, !tbaa !5
  %3066 = load ptr, ptr %21, align 8, !tbaa !9
  %3067 = icmp eq ptr %3066, null
  br i1 %3067, label %3068, label %3090

3068:                                             ; preds = %3062
  %3069 = load i32, ptr %770, align 4, !tbaa !5
  %3070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3071 = call i32 @s2n_print_stacktrace(ptr noundef %3070) #12
  %3072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3073 = trunc nuw i8 %3072 to i1
  br i1 %3073, label %3074, label %3078

3074:                                             ; preds = %3068
  %3075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3076 = call i32 @fileno(ptr noundef %3075) #12
  %3077 = call i32 @isatty(i32 noundef %3076) #12
  %.not386 = icmp eq i32 %3077, 0
  br i1 %.not386, label %3078, label %3079

3078:                                             ; preds = %3074, %3068
  br label %3079

3079:                                             ; preds = %3074, %3078
  %.str.5.sink1510 = phi ptr [ @.str.5, %3078 ], [ @.str.2, %3074 ]
  store i32 %3069, ptr %770, align 4, !tbaa !5
  %3080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3081 = load i32, ptr @test_count, align 4, !tbaa !5
  %3082 = load i32, ptr %538, align 4, !tbaa !5
  %3083 = call ptr @s2n_strerror(i32 noundef %3082, ptr noundef nonnull @.str.4) #12
  %3084 = load i32, ptr %538, align 4, !tbaa !5
  %3085 = call ptr @s2n_strerror_debug(i32 noundef %3084, ptr noundef nonnull @.str.4) #12
  %3086 = load i32, ptr %770, align 4, !tbaa !5
  %3087 = call ptr @strerror(i32 noundef %3086) #12
  %3088 = load i32, ptr %770, align 4, !tbaa !5
  %3089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3080, ptr noundef nonnull %.str.5.sink1510, i32 noundef %3081, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 311, ptr noundef %3083, ptr noundef %3085, ptr noundef %3087, i32 noundef %3088) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3090:                                             ; preds = %3062
  %3091 = add nsw i32 %3064, 2
  store i32 %3091, ptr @test_count, align 4, !tbaa !5
  %3092 = call i32 @s2n_connection_set_config(ptr noundef %3063, ptr noundef %1434) #12
  %3093 = icmp eq i32 %3092, -1
  br i1 %3093, label %3094, label %3116

3094:                                             ; preds = %3090
  %3095 = load i32, ptr %770, align 4, !tbaa !5
  %3096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3097 = call i32 @s2n_print_stacktrace(ptr noundef %3096) #12
  %3098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3099 = trunc nuw i8 %3098 to i1
  br i1 %3099, label %3100, label %3104

3100:                                             ; preds = %3094
  %3101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3102 = call i32 @fileno(ptr noundef %3101) #12
  %3103 = call i32 @isatty(i32 noundef %3102) #12
  %.not385 = icmp eq i32 %3103, 0
  br i1 %.not385, label %3104, label %3105

3104:                                             ; preds = %3100, %3094
  br label %3105

3105:                                             ; preds = %3100, %3104
  %.str.5.sink1519 = phi ptr [ @.str.5, %3104 ], [ @.str.2, %3100 ]
  store i32 %3095, ptr %770, align 4, !tbaa !5
  %3106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3107 = load i32, ptr @test_count, align 4, !tbaa !5
  %3108 = load i32, ptr %538, align 4, !tbaa !5
  %3109 = call ptr @s2n_strerror(i32 noundef %3108, ptr noundef nonnull @.str.4) #12
  %3110 = load i32, ptr %538, align 4, !tbaa !5
  %3111 = call ptr @s2n_strerror_debug(i32 noundef %3110, ptr noundef nonnull @.str.4) #12
  %3112 = load i32, ptr %770, align 4, !tbaa !5
  %3113 = call ptr @strerror(i32 noundef %3112) #12
  %3114 = load i32, ptr %770, align 4, !tbaa !5
  %3115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3106, ptr noundef nonnull %.str.5.sink1519, i32 noundef %3107, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 312, ptr noundef %3109, ptr noundef %3111, ptr noundef %3113, i32 noundef %3114) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3116:                                             ; preds = %3090
  call void @srand(i32 noundef 0) #12
  br label %3124

3117:                                             ; preds = %3616
  %3118 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %22) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #12
  %3119 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #12
  %3120 = load i32, ptr @test_count, align 4, !tbaa !5
  %3121 = add nsw i32 %3120, 1
  store i32 %3121, ptr @test_count, align 4, !tbaa !5
  %3122 = call i32 @s2n_free(ptr noundef nonnull %1) #12
  %3123 = icmp eq i32 %3122, -1
  br i1 %3123, label %3641, label %3618

3124:                                             ; preds = %3116, %3616
  %.0331519 = phi i64 [ 0, %3116 ], [ %3617, %3616 ]
  %3125 = call i32 @rand() #12
  %3126 = and i32 %3125, 1
  %3127 = icmp eq i32 %3126, 0
  %3128 = srem i32 %3125, 3
  %.not483 = icmp eq i32 %3128, 0
  %.lhs.trunc = trunc nuw i64 %.0331519 to i8
  %3129 = urem i8 %.lhs.trunc, 5
  %.zext = zext nneg i8 %3129 to i64
  %3130 = srem i32 %3125, 7
  %3131 = icmp eq i32 %3130, 0
  %3132 = load i32, ptr @test_count, align 4, !tbaa !5
  %3133 = add nsw i32 %3132, 1
  store i32 %3133, ptr @test_count, align 4, !tbaa !5
  %3134 = load ptr, ptr %22, align 8, !tbaa !9
  %3135 = call i32 @s2n_connection_wipe(ptr noundef %3134) #12
  %3136 = icmp eq i32 %3135, -1
  br i1 %3136, label %3137, label %3159

3137:                                             ; preds = %3124
  %3138 = load i32, ptr %770, align 4, !tbaa !5
  %3139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3140 = call i32 @s2n_print_stacktrace(ptr noundef %3139) #12
  %3141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3142 = trunc nuw i8 %3141 to i1
  br i1 %3142, label %3143, label %3147

3143:                                             ; preds = %3137
  %3144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3145 = call i32 @fileno(ptr noundef %3144) #12
  %3146 = call i32 @isatty(i32 noundef %3145) #12
  %.not384 = icmp eq i32 %3146, 0
  br i1 %.not384, label %3147, label %3148

3147:                                             ; preds = %3143, %3137
  br label %3148

3148:                                             ; preds = %3143, %3147
  %.str.5.sink1528 = phi ptr [ @.str.5, %3147 ], [ @.str.2, %3143 ]
  store i32 %3138, ptr %770, align 4, !tbaa !5
  %3149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3150 = load i32, ptr @test_count, align 4, !tbaa !5
  %3151 = load i32, ptr %538, align 4, !tbaa !5
  %3152 = call ptr @s2n_strerror(i32 noundef %3151, ptr noundef nonnull @.str.4) #12
  %3153 = load i32, ptr %538, align 4, !tbaa !5
  %3154 = call ptr @s2n_strerror_debug(i32 noundef %3153, ptr noundef nonnull @.str.4) #12
  %3155 = load i32, ptr %770, align 4, !tbaa !5
  %3156 = call ptr @strerror(i32 noundef %3155) #12
  %3157 = load i32, ptr %770, align 4, !tbaa !5
  %3158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3149, ptr noundef nonnull %.str.5.sink1528, i32 noundef %3150, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 327, ptr noundef %3152, ptr noundef %3154, ptr noundef %3156, i32 noundef %3157) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3159:                                             ; preds = %3124
  %3160 = load i32, ptr @test_count, align 4, !tbaa !5
  %3161 = add nsw i32 %3160, 1
  store i32 %3161, ptr @test_count, align 4, !tbaa !5
  %3162 = load ptr, ptr %21, align 8, !tbaa !9
  %3163 = call i32 @s2n_connection_wipe(ptr noundef %3162) #12
  %3164 = icmp eq i32 %3163, -1
  br i1 %3164, label %3165, label %3187

3165:                                             ; preds = %3159
  %3166 = load i32, ptr %770, align 4, !tbaa !5
  %3167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3168 = call i32 @s2n_print_stacktrace(ptr noundef %3167) #12
  %3169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3170 = trunc nuw i8 %3169 to i1
  br i1 %3170, label %3171, label %3175

3171:                                             ; preds = %3165
  %3172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3173 = call i32 @fileno(ptr noundef %3172) #12
  %3174 = call i32 @isatty(i32 noundef %3173) #12
  %.not383 = icmp eq i32 %3174, 0
  br i1 %.not383, label %3175, label %3176

3175:                                             ; preds = %3171, %3165
  br label %3176

3176:                                             ; preds = %3171, %3175
  %.str.5.sink1537 = phi ptr [ @.str.5, %3175 ], [ @.str.2, %3171 ]
  store i32 %3166, ptr %770, align 4, !tbaa !5
  %3177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3178 = load i32, ptr @test_count, align 4, !tbaa !5
  %3179 = load i32, ptr %538, align 4, !tbaa !5
  %3180 = call ptr @s2n_strerror(i32 noundef %3179, ptr noundef nonnull @.str.4) #12
  %3181 = load i32, ptr %538, align 4, !tbaa !5
  %3182 = call ptr @s2n_strerror_debug(i32 noundef %3181, ptr noundef nonnull @.str.4) #12
  %3183 = load i32, ptr %770, align 4, !tbaa !5
  %3184 = call ptr @strerror(i32 noundef %3183) #12
  %3185 = load i32, ptr %770, align 4, !tbaa !5
  %3186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3177, ptr noundef nonnull %.str.5.sink1537, i32 noundef %3178, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 328, ptr noundef %3180, ptr noundef %3182, ptr noundef %3184, i32 noundef %3185) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3187:                                             ; preds = %3159
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #12
  store i64 0, ptr %23, align 8
  %3188 = load i32, ptr @test_count, align 4, !tbaa !5
  %3189 = add nsw i32 %3188, 1
  store i32 %3189, ptr @test_count, align 4, !tbaa !5
  %3190 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %23) #12
  %3191 = icmp eq i32 %3190, -1
  br i1 %3191, label %3192, label %3214

3192:                                             ; preds = %3187
  %3193 = load i32, ptr %770, align 4, !tbaa !5
  %3194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3195 = call i32 @s2n_print_stacktrace(ptr noundef %3194) #12
  %3196 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3197 = trunc nuw i8 %3196 to i1
  br i1 %3197, label %3198, label %3202

3198:                                             ; preds = %3192
  %3199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3200 = call i32 @fileno(ptr noundef %3199) #12
  %3201 = call i32 @isatty(i32 noundef %3200) #12
  %.not382 = icmp eq i32 %3201, 0
  br i1 %.not382, label %3202, label %3203

3202:                                             ; preds = %3198, %3192
  br label %3203

3203:                                             ; preds = %3198, %3202
  %.str.5.sink1546 = phi ptr [ @.str.5, %3202 ], [ @.str.2, %3198 ]
  store i32 %3193, ptr %770, align 4, !tbaa !5
  %3204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3205 = load i32, ptr @test_count, align 4, !tbaa !5
  %3206 = load i32, ptr %538, align 4, !tbaa !5
  %3207 = call ptr @s2n_strerror(i32 noundef %3206, ptr noundef nonnull @.str.4) #12
  %3208 = load i32, ptr %538, align 4, !tbaa !5
  %3209 = call ptr @s2n_strerror_debug(i32 noundef %3208, ptr noundef nonnull @.str.4) #12
  %3210 = load i32, ptr %770, align 4, !tbaa !5
  %3211 = call ptr @strerror(i32 noundef %3210) #12
  %3212 = load i32, ptr %770, align 4, !tbaa !5
  %3213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3204, ptr noundef nonnull %.str.5.sink1546, i32 noundef %3205, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %3207, ptr noundef %3209, ptr noundef %3211, i32 noundef %3212) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3214:                                             ; preds = %3187
  %3215 = load i32, ptr @test_count, align 4, !tbaa !5
  %3216 = add nsw i32 %3215, 1
  store i32 %3216, ptr @test_count, align 4, !tbaa !5
  %3217 = load ptr, ptr %22, align 8, !tbaa !9
  %3218 = load ptr, ptr %21, align 8, !tbaa !9
  %3219 = call i32 @s2n_connections_set_io_pair(ptr noundef %3217, ptr noundef %3218, ptr noundef nonnull %23) #12
  %3220 = icmp eq i32 %3219, -1
  br i1 %3220, label %3221, label %3243

3221:                                             ; preds = %3214
  %3222 = load i32, ptr %770, align 4, !tbaa !5
  %3223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3224 = call i32 @s2n_print_stacktrace(ptr noundef %3223) #12
  %3225 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3226 = trunc nuw i8 %3225 to i1
  br i1 %3226, label %3227, label %3231

3227:                                             ; preds = %3221
  %3228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3229 = call i32 @fileno(ptr noundef %3228) #12
  %3230 = call i32 @isatty(i32 noundef %3229) #12
  %.not381 = icmp eq i32 %3230, 0
  br i1 %.not381, label %3231, label %3232

3231:                                             ; preds = %3227, %3221
  br label %3232

3232:                                             ; preds = %3227, %3231
  %.str.5.sink1555 = phi ptr [ @.str.5, %3231 ], [ @.str.2, %3227 ]
  store i32 %3222, ptr %770, align 4, !tbaa !5
  %3233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3234 = load i32, ptr @test_count, align 4, !tbaa !5
  %3235 = load i32, ptr %538, align 4, !tbaa !5
  %3236 = call ptr @s2n_strerror(i32 noundef %3235, ptr noundef nonnull @.str.4) #12
  %3237 = load i32, ptr %538, align 4, !tbaa !5
  %3238 = call ptr @s2n_strerror_debug(i32 noundef %3237, ptr noundef nonnull @.str.4) #12
  %3239 = load i32, ptr %770, align 4, !tbaa !5
  %3240 = call ptr @strerror(i32 noundef %3239) #12
  %3241 = load i32, ptr %770, align 4, !tbaa !5
  %3242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3233, ptr noundef nonnull %.str.5.sink1555, i32 noundef %3234, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 333, ptr noundef %3236, ptr noundef %3238, ptr noundef %3240, i32 noundef %3241) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3243:                                             ; preds = %3214
  br i1 %3127, label %3244, label %3247

3244:                                             ; preds = %3243
  %3245 = load ptr, ptr %22, align 8, !tbaa !9
  %3246 = getelementptr inbounds i8, ptr %3245, i64 16
  store ptr @security_policy_test_tls13_retry, ptr %3246, align 8, !tbaa !53
  br label %3247

3247:                                             ; preds = %3244, %3243
  br i1 %.not483, label %3248, label %3278

3248:                                             ; preds = %3247
  %3249 = load i32, ptr @test_count, align 4, !tbaa !5
  %3250 = add nsw i32 %3249, 1
  store i32 %3250, ptr @test_count, align 4, !tbaa !5
  %3251 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %1, i64 0, i64 %.zext
  %3252 = load ptr, ptr %21, align 8, !tbaa !9
  %3253 = getelementptr inbounds i8, ptr %3252, i64 4056
  %3254 = call i32 @s2n_dup(ptr noundef nonnull %3251, ptr noundef nonnull %3253) #12
  %3255 = icmp eq i32 %3254, -1
  br i1 %3255, label %3256, label %3278

3256:                                             ; preds = %3248
  %3257 = load i32, ptr %770, align 4, !tbaa !5
  %3258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3259 = call i32 @s2n_print_stacktrace(ptr noundef %3258) #12
  %3260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3261 = trunc nuw i8 %3260 to i1
  br i1 %3261, label %3262, label %3266

3262:                                             ; preds = %3256
  %3263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3264 = call i32 @fileno(ptr noundef %3263) #12
  %3265 = call i32 @isatty(i32 noundef %3264) #12
  %.not380 = icmp eq i32 %3265, 0
  br i1 %.not380, label %3266, label %3267

3266:                                             ; preds = %3262, %3256
  br label %3267

3267:                                             ; preds = %3262, %3266
  %.str.5.sink1564 = phi ptr [ @.str.5, %3266 ], [ @.str.2, %3262 ]
  store i32 %3257, ptr %770, align 4, !tbaa !5
  %3268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3269 = load i32, ptr @test_count, align 4, !tbaa !5
  %3270 = load i32, ptr %538, align 4, !tbaa !5
  %3271 = call ptr @s2n_strerror(i32 noundef %3270, ptr noundef nonnull @.str.4) #12
  %3272 = load i32, ptr %538, align 4, !tbaa !5
  %3273 = call ptr @s2n_strerror_debug(i32 noundef %3272, ptr noundef nonnull @.str.4) #12
  %3274 = load i32, ptr %770, align 4, !tbaa !5
  %3275 = call ptr @strerror(i32 noundef %3274) #12
  %3276 = load i32, ptr %770, align 4, !tbaa !5
  %3277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3268, ptr noundef nonnull %.str.5.sink1564, i32 noundef %3269, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 342, ptr noundef %3271, ptr noundef %3273, ptr noundef %3275, i32 noundef %3276) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3278:                                             ; preds = %3247, %3248
  %3279 = load i32, ptr @test_count, align 4, !tbaa !5
  %3280 = add nsw i32 %3279, 1
  store i32 %3280, ptr @test_count, align 4, !tbaa !5
  %3281 = load ptr, ptr %21, align 8, !tbaa !9
  %3282 = load ptr, ptr %22, align 8, !tbaa !9
  %3283 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %3281, ptr noundef %3282) #12
  %3284 = icmp eq i32 %3283, -1
  br i1 %3284, label %3285, label %3307

3285:                                             ; preds = %3278
  %3286 = load i32, ptr %770, align 4, !tbaa !5
  %3287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3288 = call i32 @s2n_print_stacktrace(ptr noundef %3287) #12
  %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 %3295

3291:                                             ; preds = %3285
  %3292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3293 = call i32 @fileno(ptr noundef %3292) #12
  %3294 = call i32 @isatty(i32 noundef %3293) #12
  %.not379 = icmp eq i32 %3294, 0
  br i1 %.not379, label %3295, label %3296

3295:                                             ; preds = %3291, %3285
  br label %3296

3296:                                             ; preds = %3291, %3295
  %.str.5.sink1573 = phi ptr [ @.str.5, %3295 ], [ @.str.2, %3291 ]
  store i32 %3286, ptr %770, align 4, !tbaa !5
  %3297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3298 = load i32, ptr @test_count, align 4, !tbaa !5
  %3299 = load i32, ptr %538, align 4, !tbaa !5
  %3300 = call ptr @s2n_strerror(i32 noundef %3299, ptr noundef nonnull @.str.4) #12
  %3301 = load i32, ptr %538, align 4, !tbaa !5
  %3302 = call ptr @s2n_strerror_debug(i32 noundef %3301, ptr noundef nonnull @.str.4) #12
  %3303 = load i32, ptr %770, align 4, !tbaa !5
  %3304 = call ptr @strerror(i32 noundef %3303) #12
  %3305 = load i32, ptr %770, align 4, !tbaa !5
  %3306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3297, ptr noundef nonnull %.str.5.sink1573, i32 noundef %3298, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 346, ptr noundef %3300, ptr noundef %3302, ptr noundef %3304, i32 noundef %3305) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3307:                                             ; preds = %3278
  %3308 = load i32, ptr @test_count, align 4, !tbaa !5
  %3309 = add nsw i32 %3308, 1
  store i32 %3309, ptr @test_count, align 4, !tbaa !5
  %3310 = load ptr, ptr %21, align 8, !tbaa !9
  %3311 = call zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef %3310) #12
  br i1 %3127, label %3312, label %3362

3312:                                             ; preds = %3307
  br i1 %3311, label %3335, label %3313

3313:                                             ; preds = %3312
  %3314 = load i32, ptr %770, align 4, !tbaa !5
  %3315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3316 = call i32 @s2n_print_stacktrace(ptr noundef %3315) #12
  %3317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3318 = trunc nuw i8 %3317 to i1
  br i1 %3318, label %3319, label %3323

3319:                                             ; preds = %3313
  %3320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3321 = call i32 @fileno(ptr noundef %3320) #12
  %3322 = call i32 @isatty(i32 noundef %3321) #12
  %.not369 = icmp eq i32 %3322, 0
  br i1 %.not369, label %3323, label %3324

3323:                                             ; preds = %3319, %3313
  br label %3324

3324:                                             ; preds = %3319, %3323
  %.str.5.sink1582 = phi ptr [ @.str.5, %3323 ], [ @.str.2, %3319 ]
  store i32 %3314, ptr %770, align 4, !tbaa !5
  %3325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3326 = load i32, ptr @test_count, align 4, !tbaa !5
  %3327 = load i32, ptr %538, align 4, !tbaa !5
  %3328 = call ptr @s2n_strerror(i32 noundef %3327, ptr noundef nonnull @.str.4) #12
  %3329 = load i32, ptr %538, align 4, !tbaa !5
  %3330 = call ptr @s2n_strerror_debug(i32 noundef %3329, ptr noundef nonnull @.str.4) #12
  %3331 = load i32, ptr %770, align 4, !tbaa !5
  %3332 = call ptr @strerror(i32 noundef %3331) #12
  %3333 = load i32, ptr %770, align 4, !tbaa !5
  %3334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3325, ptr noundef nonnull %.str.5.sink1582, i32 noundef %3326, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 350, ptr noundef %3328, ptr noundef %3330, ptr noundef %3332, i32 noundef %3333) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3335:                                             ; preds = %3312
  %3336 = load i32, ptr @test_count, align 4, !tbaa !5
  %3337 = add nsw i32 %3336, 1
  store i32 %3337, ptr @test_count, align 4, !tbaa !5
  %3338 = load ptr, ptr %22, align 8, !tbaa !9
  %3339 = call zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef %3338) #12
  br i1 %3339, label %3412, label %3340

3340:                                             ; preds = %3335
  %3341 = load i32, ptr %770, align 4, !tbaa !5
  %3342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3343 = call i32 @s2n_print_stacktrace(ptr noundef %3342) #12
  %3344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3345 = trunc nuw i8 %3344 to i1
  br i1 %3345, label %3346, label %3350

3346:                                             ; preds = %3340
  %3347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3348 = call i32 @fileno(ptr noundef %3347) #12
  %3349 = call i32 @isatty(i32 noundef %3348) #12
  %.not370 = icmp eq i32 %3349, 0
  br i1 %.not370, label %3350, label %3351

3350:                                             ; preds = %3346, %3340
  br label %3351

3351:                                             ; preds = %3346, %3350
  %.str.5.sink1591 = phi ptr [ @.str.5, %3350 ], [ @.str.2, %3346 ]
  store i32 %3341, ptr %770, align 4, !tbaa !5
  %3352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3353 = load i32, ptr @test_count, align 4, !tbaa !5
  %3354 = load i32, ptr %538, align 4, !tbaa !5
  %3355 = call ptr @s2n_strerror(i32 noundef %3354, ptr noundef nonnull @.str.4) #12
  %3356 = load i32, ptr %538, align 4, !tbaa !5
  %3357 = call ptr @s2n_strerror_debug(i32 noundef %3356, ptr noundef nonnull @.str.4) #12
  %3358 = load i32, ptr %770, align 4, !tbaa !5
  %3359 = call ptr @strerror(i32 noundef %3358) #12
  %3360 = load i32, ptr %770, align 4, !tbaa !5
  %3361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3352, ptr noundef nonnull %.str.5.sink1591, i32 noundef %3353, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 351, ptr noundef %3355, ptr noundef %3357, ptr noundef %3359, i32 noundef %3360) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3362:                                             ; preds = %3307
  br i1 %3311, label %3363, label %3385

3363:                                             ; preds = %3362
  %3364 = load i32, ptr %770, align 4, !tbaa !5
  %3365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3366 = call i32 @s2n_print_stacktrace(ptr noundef %3365) #12
  %3367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3368 = trunc nuw i8 %3367 to i1
  br i1 %3368, label %3369, label %3373

3369:                                             ; preds = %3363
  %3370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3371 = call i32 @fileno(ptr noundef %3370) #12
  %3372 = call i32 @isatty(i32 noundef %3371) #12
  %.not368 = icmp eq i32 %3372, 0
  br i1 %.not368, label %3373, label %3374

3373:                                             ; preds = %3369, %3363
  br label %3374

3374:                                             ; preds = %3369, %3373
  %.str.5.sink1600 = phi ptr [ @.str.5, %3373 ], [ @.str.2, %3369 ]
  store i32 %3364, ptr %770, align 4, !tbaa !5
  %3375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3376 = load i32, ptr @test_count, align 4, !tbaa !5
  %3377 = load i32, ptr %538, align 4, !tbaa !5
  %3378 = call ptr @s2n_strerror(i32 noundef %3377, ptr noundef nonnull @.str.4) #12
  %3379 = load i32, ptr %538, align 4, !tbaa !5
  %3380 = call ptr @s2n_strerror_debug(i32 noundef %3379, ptr noundef nonnull @.str.4) #12
  %3381 = load i32, ptr %770, align 4, !tbaa !5
  %3382 = call ptr @strerror(i32 noundef %3381) #12
  %3383 = load i32, ptr %770, align 4, !tbaa !5
  %3384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3375, ptr noundef nonnull %.str.5.sink1600, i32 noundef %3376, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 353, ptr noundef %3378, ptr noundef %3380, ptr noundef %3382, i32 noundef %3383) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3385:                                             ; preds = %3362
  %3386 = load i32, ptr @test_count, align 4, !tbaa !5
  %3387 = add nsw i32 %3386, 1
  store i32 %3387, ptr @test_count, align 4, !tbaa !5
  %3388 = load ptr, ptr %22, align 8, !tbaa !9
  %3389 = call zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef %3388) #12
  br i1 %3389, label %3390, label %.thread

3390:                                             ; preds = %3385
  %3391 = load i32, ptr %770, align 4, !tbaa !5
  %3392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3393 = call i32 @s2n_print_stacktrace(ptr noundef %3392) #12
  %3394 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3395 = trunc nuw i8 %3394 to i1
  br i1 %3395, label %3396, label %3400

3396:                                             ; preds = %3390
  %3397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3398 = call i32 @fileno(ptr noundef %3397) #12
  %3399 = call i32 @isatty(i32 noundef %3398) #12
  %.not367 = icmp eq i32 %3399, 0
  br i1 %.not367, label %3400, label %3401

3400:                                             ; preds = %3396, %3390
  br label %3401

3401:                                             ; preds = %3396, %3400
  %.str.5.sink1609 = phi ptr [ @.str.5, %3400 ], [ @.str.2, %3396 ]
  store i32 %3391, ptr %770, align 4, !tbaa !5
  %3402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3403 = load i32, ptr @test_count, align 4, !tbaa !5
  %3404 = load i32, ptr %538, align 4, !tbaa !5
  %3405 = call ptr @s2n_strerror(i32 noundef %3404, ptr noundef nonnull @.str.4) #12
  %3406 = load i32, ptr %538, align 4, !tbaa !5
  %3407 = call ptr @s2n_strerror_debug(i32 noundef %3406, ptr noundef nonnull @.str.4) #12
  %3408 = load i32, ptr %770, align 4, !tbaa !5
  %3409 = call ptr @strerror(i32 noundef %3408) #12
  %3410 = load i32, ptr %770, align 4, !tbaa !5
  %3411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3402, ptr noundef nonnull %.str.5.sink1609, i32 noundef %3403, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 354, ptr noundef %3405, ptr noundef %3407, ptr noundef %3409, i32 noundef %3410) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3412:                                             ; preds = %3335
  br i1 %.not483, label %3413, label %.thread

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 = getelementptr inbounds [5 x %struct.s2n_blob], ptr %1, i64 0, i64 %.zext
  %3417 = getelementptr inbounds i8, ptr %3416, i64 8
  %3418 = load i32, ptr %3417, align 8, !tbaa !45
  %3419 = load ptr, ptr %22, align 8, !tbaa !9
  %3420 = getelementptr inbounds i8, ptr %3419, i64 4064
  %3421 = load i32, ptr %3420, align 8, !tbaa !46
  %3422 = icmp eq i32 %3418, %3421
  br i1 %3422, label %3445, label %3423

3423:                                             ; preds = %3413
  %3424 = load i32, ptr %770, align 4, !tbaa !5
  %3425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3426 = call i32 @s2n_print_stacktrace(ptr noundef %3425) #12
  %3427 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3428 = trunc nuw i8 %3427 to i1
  br i1 %3428, label %3429, label %3433

3429:                                             ; preds = %3423
  %3430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3431 = call i32 @fileno(ptr noundef %3430) #12
  %3432 = call i32 @isatty(i32 noundef %3431) #12
  %.not372 = icmp eq i32 %3432, 0
  br i1 %.not372, label %3433, label %3434

3433:                                             ; preds = %3429, %3423
  br label %3434

3434:                                             ; preds = %3429, %3433
  %.str.5.sink1618 = phi ptr [ @.str.5, %3433 ], [ @.str.2, %3429 ]
  store i32 %3424, ptr %770, align 4, !tbaa !5
  %3435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3436 = load i32, ptr @test_count, align 4, !tbaa !5
  %3437 = load i32, ptr %538, align 4, !tbaa !5
  %3438 = call ptr @s2n_strerror(i32 noundef %3437, ptr noundef nonnull @.str.4) #12
  %3439 = load i32, ptr %538, align 4, !tbaa !5
  %3440 = call ptr @s2n_strerror_debug(i32 noundef %3439, ptr noundef nonnull @.str.4) #12
  %3441 = load i32, ptr %770, align 4, !tbaa !5
  %3442 = call ptr @strerror(i32 noundef %3441) #12
  %3443 = load i32, ptr %770, align 4, !tbaa !5
  %3444 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3435, ptr noundef nonnull %.str.5.sink1618, i32 noundef %3436, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 359, ptr noundef %3438, ptr noundef %3440, ptr noundef %3442, i32 noundef %3443) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3445:                                             ; preds = %3413
  %.not373 = icmp eq i32 %3418, 0
  br i1 %.not373, label %3503, label %3446

3446:                                             ; preds = %3445
  %3447 = add nsw i32 %3414, 2
  store i32 %3447, ptr @test_count, align 4, !tbaa !5
  %3448 = load ptr, ptr %3416, align 8, !tbaa !47
  %3449 = getelementptr inbounds i8, ptr %3419, i64 4056
  %3450 = load ptr, ptr %3449, align 8, !tbaa !48
  %3451 = zext i32 %3418 to i64
  %bcmp = call i32 @bcmp(ptr %3448, ptr %3450, i64 %3451)
  %3452 = icmp eq i32 %bcmp, 0
  br i1 %3452, label %3503, label %3453

3453:                                             ; preds = %3446
  %3454 = load i32, ptr %770, align 4, !tbaa !5
  %3455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3456 = call i32 @s2n_print_stacktrace(ptr noundef %3455) #12
  %3457 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3458 = trunc nuw i8 %3457 to i1
  br i1 %3458, label %3459, label %3463

3459:                                             ; preds = %3453
  %3460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3461 = call i32 @fileno(ptr noundef %3460) #12
  %3462 = call i32 @isatty(i32 noundef %3461) #12
  %.not374 = icmp eq i32 %3462, 0
  br i1 %.not374, label %3463, label %3464

3463:                                             ; preds = %3459, %3453
  br label %3464

3464:                                             ; preds = %3459, %3463
  %.str.5.sink1627 = phi ptr [ @.str.5, %3463 ], [ @.str.2, %3459 ]
  store i32 %3454, ptr %770, align 4, !tbaa !5
  %3465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3466 = load i32, ptr @test_count, align 4, !tbaa !5
  %3467 = load i32, ptr %538, align 4, !tbaa !5
  %3468 = call ptr @s2n_strerror(i32 noundef %3467, ptr noundef nonnull @.str.4) #12
  %3469 = load i32, ptr %538, align 4, !tbaa !5
  %3470 = call ptr @s2n_strerror_debug(i32 noundef %3469, ptr noundef nonnull @.str.4) #12
  %3471 = load i32, ptr %770, align 4, !tbaa !5
  %3472 = call ptr @strerror(i32 noundef %3471) #12
  %3473 = load i32, ptr %770, align 4, !tbaa !5
  %3474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3465, ptr noundef nonnull %.str.5.sink1627, i32 noundef %3466, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 359, ptr noundef %3468, ptr noundef %3470, ptr noundef %3472, i32 noundef %3473) #14
  call void @exit(i32 noundef 1) #15
  unreachable

.thread:                                          ; preds = %3385, %3412
  %3475 = load i32, ptr @test_count, align 4, !tbaa !5
  %3476 = add nsw i32 %3475, 1
  store i32 %3476, ptr @test_count, align 4, !tbaa !5
  %3477 = load ptr, ptr %22, align 8, !tbaa !9
  %3478 = getelementptr inbounds i8, ptr %3477, i64 4064
  %3479 = load i32, ptr %3478, align 8, !tbaa !46
  %3480 = icmp eq i32 %3479, 0
  br i1 %3480, label %3503, label %3481

3481:                                             ; preds = %.thread
  %3482 = load i32, ptr %770, align 4, !tbaa !5
  %3483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3484 = call i32 @s2n_print_stacktrace(ptr noundef %3483) #12
  %3485 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3486 = trunc nuw i8 %3485 to i1
  br i1 %3486, label %3487, label %3491

3487:                                             ; preds = %3481
  %3488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3489 = call i32 @fileno(ptr noundef %3488) #12
  %3490 = call i32 @isatty(i32 noundef %3489) #12
  %.not371 = icmp eq i32 %3490, 0
  br i1 %.not371, label %3491, label %3492

3491:                                             ; preds = %3487, %3481
  br label %3492

3492:                                             ; preds = %3487, %3491
  %.str.5.sink1636 = phi ptr [ @.str.5, %3491 ], [ @.str.2, %3487 ]
  store i32 %3482, ptr %770, align 4, !tbaa !5
  %3493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3494 = load i32, ptr @test_count, align 4, !tbaa !5
  %3495 = load i32, ptr %538, align 4, !tbaa !5
  %3496 = call ptr @s2n_strerror(i32 noundef %3495, ptr noundef nonnull @.str.4) #12
  %3497 = load i32, ptr %538, align 4, !tbaa !5
  %3498 = call ptr @s2n_strerror_debug(i32 noundef %3497, ptr noundef nonnull @.str.4) #12
  %3499 = load i32, ptr %770, align 4, !tbaa !5
  %3500 = call ptr @strerror(i32 noundef %3499) #12
  %3501 = load i32, ptr %770, align 4, !tbaa !5
  %3502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3493, ptr noundef nonnull %.str.5.sink1636, i32 noundef %3494, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 361, ptr noundef %3496, ptr noundef %3498, ptr noundef %3500, i32 noundef %3501) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3503:                                             ; preds = %.thread, %3445, %3446
  %3504 = phi ptr [ %3477, %.thread ], [ %3419, %3445 ], [ %3419, %3446 ]
  %3505 = phi i32 [ %3476, %.thread ], [ %3415, %3445 ], [ %3447, %3446 ]
  br i1 %3131, label %3506, label %3560

3506:                                             ; preds = %3503
  %3507 = add nsw i32 %3505, 1
  store i32 %3507, ptr @test_count, align 4, !tbaa !5
  %3508 = call i32 @s2n_connection_free_handshake(ptr noundef nonnull %3504) #12
  %3509 = icmp eq i32 %3508, -1
  br i1 %3509, label %3510, label %3532

3510:                                             ; preds = %3506
  %3511 = load i32, ptr %770, align 4, !tbaa !5
  %3512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3513 = call i32 @s2n_print_stacktrace(ptr noundef %3512) #12
  %3514 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3515 = trunc nuw i8 %3514 to i1
  br i1 %3515, label %3516, label %3520

3516:                                             ; preds = %3510
  %3517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3518 = call i32 @fileno(ptr noundef %3517) #12
  %3519 = call i32 @isatty(i32 noundef %3518) #12
  %.not378 = icmp eq i32 %3519, 0
  br i1 %.not378, label %3520, label %3521

3520:                                             ; preds = %3516, %3510
  br label %3521

3521:                                             ; preds = %3516, %3520
  %.str.5.sink1645 = phi ptr [ @.str.5, %3520 ], [ @.str.2, %3516 ]
  store i32 %3511, ptr %770, align 4, !tbaa !5
  %3522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3523 = load i32, ptr @test_count, align 4, !tbaa !5
  %3524 = load i32, ptr %538, align 4, !tbaa !5
  %3525 = call ptr @s2n_strerror(i32 noundef %3524, ptr noundef nonnull @.str.4) #12
  %3526 = load i32, ptr %538, align 4, !tbaa !5
  %3527 = call ptr @s2n_strerror_debug(i32 noundef %3526, ptr noundef nonnull @.str.4) #12
  %3528 = load i32, ptr %770, align 4, !tbaa !5
  %3529 = call ptr @strerror(i32 noundef %3528) #12
  %3530 = load i32, ptr %770, align 4, !tbaa !5
  %3531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3522, ptr noundef nonnull %.str.5.sink1645, i32 noundef %3523, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 365, ptr noundef %3525, ptr noundef %3527, ptr noundef %3529, i32 noundef %3530) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3532:                                             ; preds = %3506
  %3533 = load i32, ptr @test_count, align 4, !tbaa !5
  %3534 = add nsw i32 %3533, 1
  store i32 %3534, ptr @test_count, align 4, !tbaa !5
  %3535 = load ptr, ptr %21, align 8, !tbaa !9
  %3536 = call i32 @s2n_connection_free_handshake(ptr noundef %3535) #12
  %3537 = icmp eq i32 %3536, -1
  br i1 %3537, label %3538, label %._crit_edge

._crit_edge:                                      ; preds = %3532
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  %.pre540 = load ptr, ptr %22, align 8, !tbaa !9
  br label %3560

3538:                                             ; preds = %3532
  %3539 = load i32, ptr %770, align 4, !tbaa !5
  %3540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3541 = call i32 @s2n_print_stacktrace(ptr noundef %3540) #12
  %3542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3543 = trunc nuw i8 %3542 to i1
  br i1 %3543, label %3544, label %3548

3544:                                             ; preds = %3538
  %3545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3546 = call i32 @fileno(ptr noundef %3545) #12
  %3547 = call i32 @isatty(i32 noundef %3546) #12
  %.not377 = icmp eq i32 %3547, 0
  br i1 %.not377, label %3548, label %3549

3548:                                             ; preds = %3544, %3538
  br label %3549

3549:                                             ; preds = %3544, %3548
  %.str.5.sink1654 = phi ptr [ @.str.5, %3548 ], [ @.str.2, %3544 ]
  store i32 %3539, ptr %770, align 4, !tbaa !5
  %3550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3551 = load i32, ptr @test_count, align 4, !tbaa !5
  %3552 = load i32, ptr %538, align 4, !tbaa !5
  %3553 = call ptr @s2n_strerror(i32 noundef %3552, ptr noundef nonnull @.str.4) #12
  %3554 = load i32, ptr %538, align 4, !tbaa !5
  %3555 = call ptr @s2n_strerror_debug(i32 noundef %3554, ptr noundef nonnull @.str.4) #12
  %3556 = load i32, ptr %770, align 4, !tbaa !5
  %3557 = call ptr @strerror(i32 noundef %3556) #12
  %3558 = load i32, ptr %770, align 4, !tbaa !5
  %3559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3550, ptr noundef nonnull %.str.5.sink1654, i32 noundef %3551, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 366, ptr noundef %3553, ptr noundef %3555, ptr noundef %3557, i32 noundef %3558) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3560:                                             ; preds = %._crit_edge, %3503
  %3561 = phi ptr [ %.pre540, %._crit_edge ], [ %3504, %3503 ]
  %3562 = phi i32 [ %.pre, %._crit_edge ], [ %3505, %3503 ]
  %3563 = add nsw i32 %3562, 1
  store i32 %3563, ptr @test_count, align 4, !tbaa !5
  %3564 = load ptr, ptr %21, align 8, !tbaa !9
  %3565 = call i32 @s2n_shutdown_test_server_and_client(ptr noundef %3564, ptr noundef %3561) #12
  %3566 = icmp eq i32 %3565, -1
  br i1 %3566, label %3567, label %3589

3567:                                             ; preds = %3560
  %3568 = load i32, ptr %770, align 4, !tbaa !5
  %3569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3570 = call i32 @s2n_print_stacktrace(ptr noundef %3569) #12
  %3571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3572 = trunc nuw i8 %3571 to i1
  br i1 %3572, label %3573, label %3577

3573:                                             ; preds = %3567
  %3574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3575 = call i32 @fileno(ptr noundef %3574) #12
  %3576 = call i32 @isatty(i32 noundef %3575) #12
  %.not376 = icmp eq i32 %3576, 0
  br i1 %.not376, label %3577, label %3578

3577:                                             ; preds = %3573, %3567
  br label %3578

3578:                                             ; preds = %3573, %3577
  %.str.5.sink1663 = phi ptr [ @.str.5, %3577 ], [ @.str.2, %3573 ]
  store i32 %3568, ptr %770, align 4, !tbaa !5
  %3579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3580 = load i32, ptr @test_count, align 4, !tbaa !5
  %3581 = load i32, ptr %538, align 4, !tbaa !5
  %3582 = call ptr @s2n_strerror(i32 noundef %3581, ptr noundef nonnull @.str.4) #12
  %3583 = load i32, ptr %538, align 4, !tbaa !5
  %3584 = call ptr @s2n_strerror_debug(i32 noundef %3583, ptr noundef nonnull @.str.4) #12
  %3585 = load i32, ptr %770, align 4, !tbaa !5
  %3586 = call ptr @strerror(i32 noundef %3585) #12
  %3587 = load i32, ptr %770, align 4, !tbaa !5
  %3588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3579, ptr noundef nonnull %.str.5.sink1663, i32 noundef %3580, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 369, ptr noundef %3582, ptr noundef %3584, ptr noundef %3586, i32 noundef %3587) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3589:                                             ; preds = %3560
  %3590 = load i32, ptr @test_count, align 4, !tbaa !5
  %3591 = add nsw i32 %3590, 1
  store i32 %3591, ptr @test_count, align 4, !tbaa !5
  %3592 = call i32 @s2n_io_pair_close(ptr noundef nonnull %23) #12
  %3593 = icmp eq i32 %3592, -1
  br i1 %3593, label %3594, label %3616

3594:                                             ; preds = %3589
  %3595 = load i32, ptr %770, align 4, !tbaa !5
  %3596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3597 = call i32 @s2n_print_stacktrace(ptr noundef %3596) #12
  %3598 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3599 = trunc nuw i8 %3598 to i1
  br i1 %3599, label %3600, label %3604

3600:                                             ; preds = %3594
  %3601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3602 = call i32 @fileno(ptr noundef %3601) #12
  %3603 = call i32 @isatty(i32 noundef %3602) #12
  %.not375 = icmp eq i32 %3603, 0
  br i1 %.not375, label %3604, label %3605

3604:                                             ; preds = %3600, %3594
  br label %3605

3605:                                             ; preds = %3600, %3604
  %.str.5.sink1672 = phi ptr [ @.str.5, %3604 ], [ @.str.2, %3600 ]
  store i32 %3595, ptr %770, align 4, !tbaa !5
  %3606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3607 = load i32, ptr @test_count, align 4, !tbaa !5
  %3608 = load i32, ptr %538, align 4, !tbaa !5
  %3609 = call ptr @s2n_strerror(i32 noundef %3608, ptr noundef nonnull @.str.4) #12
  %3610 = load i32, ptr %538, align 4, !tbaa !5
  %3611 = call ptr @s2n_strerror_debug(i32 noundef %3610, ptr noundef nonnull @.str.4) #12
  %3612 = load i32, ptr %770, align 4, !tbaa !5
  %3613 = call ptr @strerror(i32 noundef %3612) #12
  %3614 = load i32, ptr %770, align 4, !tbaa !5
  %3615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3606, ptr noundef nonnull %.str.5.sink1672, i32 noundef %3607, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 370, ptr noundef %3609, ptr noundef %3611, ptr noundef %3613, i32 noundef %3614) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3616:                                             ; preds = %3589
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #12
  %3617 = add nuw nsw i64 %.0331519, 1
  %exitcond538.not = icmp eq i64 %3617, 250
  br i1 %exitcond538.not, label %3117, label %3124, !llvm.loop !55

3618:                                             ; preds = %3117
  %3619 = load i32, ptr @test_count, align 4, !tbaa !5
  %3620 = add nsw i32 %3619, 1
  store i32 %3620, ptr @test_count, align 4, !tbaa !5
  %3621 = call i32 @s2n_free(ptr noundef nonnull %197) #12
  %3622 = icmp eq i32 %3621, -1
  br i1 %3622, label %3641, label %3623

3623:                                             ; preds = %3618
  %3624 = load i32, ptr @test_count, align 4, !tbaa !5
  %3625 = add nsw i32 %3624, 1
  store i32 %3625, ptr @test_count, align 4, !tbaa !5
  %3626 = call i32 @s2n_free(ptr noundef nonnull %210) #12
  %3627 = icmp eq i32 %3626, -1
  br i1 %3627, label %3641, label %3628

3628:                                             ; preds = %3623
  %3629 = load i32, ptr @test_count, align 4, !tbaa !5
  %3630 = add nsw i32 %3629, 1
  store i32 %3630, ptr @test_count, align 4, !tbaa !5
  %3631 = call i32 @s2n_free(ptr noundef nonnull %223) #12
  %3632 = icmp eq i32 %3631, -1
  br i1 %3632, label %3641, label %3633

3633:                                             ; preds = %3628
  %3634 = load i32, ptr @test_count, align 4, !tbaa !5
  %3635 = add nsw i32 %3634, 1
  store i32 %3635, ptr @test_count, align 4, !tbaa !5
  %3636 = call i32 @s2n_free(ptr noundef nonnull %236) #12
  %3637 = icmp eq i32 %3636, -1
  br i1 %3637, label %3641, label %3638

3638:                                             ; preds = %3633
  %3639 = call i32 @s2n_cleanup() #12
  %3640 = icmp eq i32 %3639, -1
  br i1 %3640, label %3663, label %3685

3641:                                             ; preds = %3633, %3628, %3623, %3618, %3117
  %3642 = load i32, ptr %770, align 4, !tbaa !5
  %3643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3644 = call i32 @s2n_print_stacktrace(ptr noundef %3643) #12
  %3645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3646 = trunc nuw i8 %3645 to i1
  br i1 %3646, label %3647, label %3651

3647:                                             ; preds = %3641
  %3648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3649 = call i32 @fileno(ptr noundef %3648) #12
  %3650 = call i32 @isatty(i32 noundef %3649) #12
  %.not366 = icmp eq i32 %3650, 0
  br i1 %.not366, label %3651, label %3652

3651:                                             ; preds = %3647, %3641
  br label %3652

3652:                                             ; preds = %3647, %3651
  %.str.5.sink1681 = phi ptr [ @.str.5, %3651 ], [ @.str.2, %3647 ]
  store i32 %3642, ptr %770, align 4, !tbaa !5
  %3653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3654 = load i32, ptr @test_count, align 4, !tbaa !5
  %3655 = load i32, ptr %538, align 4, !tbaa !5
  %3656 = call ptr @s2n_strerror(i32 noundef %3655, ptr noundef nonnull @.str.4) #12
  %3657 = load i32, ptr %538, align 4, !tbaa !5
  %3658 = call ptr @s2n_strerror_debug(i32 noundef %3657, ptr noundef nonnull @.str.4) #12
  %3659 = load i32, ptr %770, align 4, !tbaa !5
  %3660 = call ptr @strerror(i32 noundef %3659) #12
  %3661 = load i32, ptr %770, align 4, !tbaa !5
  %3662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3653, ptr noundef nonnull %.str.5.sink1681, i32 noundef %3654, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 375, ptr noundef %3656, ptr noundef %3658, ptr noundef %3660, i32 noundef %3661) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3663:                                             ; preds = %3638
  %3664 = load i32, ptr %770, align 4, !tbaa !5
  %3665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3666 = call i32 @s2n_print_stacktrace(ptr noundef %3665) #12
  %3667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3668 = trunc nuw i8 %3667 to i1
  br i1 %3668, label %3669, label %3673

3669:                                             ; preds = %3663
  %3670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3671 = call i32 @fileno(ptr noundef %3670) #12
  %3672 = call i32 @isatty(i32 noundef %3671) #12
  %.not365 = icmp eq i32 %3672, 0
  br i1 %.not365, label %3673, label %3674

3673:                                             ; preds = %3669, %3663
  br label %3674

3674:                                             ; preds = %3669, %3673
  %.str.5.sink1690 = phi ptr [ @.str.5, %3673 ], [ @.str.2, %3669 ]
  store i32 %3664, ptr %770, align 4, !tbaa !5
  %3675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3676 = load i32, ptr @test_count, align 4, !tbaa !5
  %3677 = load i32, ptr %538, align 4, !tbaa !5
  %3678 = call ptr @s2n_strerror(i32 noundef %3677, ptr noundef nonnull @.str.4) #12
  %3679 = load i32, ptr %538, align 4, !tbaa !5
  %3680 = call ptr @s2n_strerror_debug(i32 noundef %3679, ptr noundef nonnull @.str.4) #12
  %3681 = load i32, ptr %770, align 4, !tbaa !5
  %3682 = call ptr @strerror(i32 noundef %3681) #12
  %3683 = load i32, ptr %770, align 4, !tbaa !5
  %3684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3675, ptr noundef nonnull %.str.5.sink1690, i32 noundef %3676, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 377, ptr noundef %3678, ptr noundef %3680, ptr noundef %3682, i32 noundef %3683) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3685:                                             ; preds = %3638
  %3686 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %3687 = icmp eq i32 %3686, -1
  br i1 %3687, label %3688, label %3710

3688:                                             ; preds = %3685
  %3689 = load i32, ptr %770, align 4, !tbaa !5
  %3690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3691 = call i32 @s2n_print_stacktrace(ptr noundef %3690) #12
  %3692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3693 = trunc nuw i8 %3692 to i1
  br i1 %3693, label %3694, label %3698

3694:                                             ; preds = %3688
  %3695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3696 = call i32 @fileno(ptr noundef %3695) #12
  %3697 = call i32 @isatty(i32 noundef %3696) #12
  %.not364 = icmp eq i32 %3697, 0
  br i1 %.not364, label %3698, label %3699

3698:                                             ; preds = %3694, %3688
  br label %3699

3699:                                             ; preds = %3694, %3698
  %.str.5.sink1699 = phi ptr [ @.str.5, %3698 ], [ @.str.2, %3694 ]
  store i32 %3689, ptr %770, align 4, !tbaa !5
  %3700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3701 = load i32, ptr @test_count, align 4, !tbaa !5
  %3702 = load i32, ptr %538, align 4, !tbaa !5
  %3703 = call ptr @s2n_strerror(i32 noundef %3702, ptr noundef nonnull @.str.4) #12
  %3704 = load i32, ptr %538, align 4, !tbaa !5
  %3705 = call ptr @s2n_strerror_debug(i32 noundef %3704, ptr noundef nonnull @.str.4) #12
  %3706 = load i32, ptr %770, align 4, !tbaa !5
  %3707 = call ptr @strerror(i32 noundef %3706) #12
  %3708 = load i32, ptr %770, align 4, !tbaa !5
  %3709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3700, ptr noundef nonnull %.str.5.sink1699, i32 noundef %3701, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 377, ptr noundef %3703, ptr noundef %3705, ptr noundef %3707, i32 noundef %3708) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3710:                                             ; preds = %3685
  %3711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3712 = trunc nuw i8 %3711 to i1
  br i1 %3712, label %3713, label %3724

3713:                                             ; preds = %3710
  %3714 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3715 = call i32 @fileno(ptr noundef %3714) #12
  %3716 = call i32 @isatty(i32 noundef %3715) #12
  %.not361 = icmp eq i32 %3716, 0
  br i1 %.not361, label %3724, label %3717

3717:                                             ; preds = %3713
  %3718 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not363 = icmp eq i32 %3718, 0
  %3719 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not363, label %3722, label %3720

3720:                                             ; preds = %3717
  %3721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3719, ptr noundef nonnull @.str.10, i32 noundef %3718) #12
  br label %3731

3722:                                             ; preds = %3717
  %3723 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3719, ptr noundef nonnull @.str.11) #12
  br label %3731

3724:                                             ; preds = %3713, %3710
  %3725 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not362 = icmp eq i32 %3725, 0
  %3726 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not362, label %3729, label %3727

3727:                                             ; preds = %3724
  %3728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3726, ptr noundef nonnull @.str.12, i32 noundef %3725) #12
  br label %3731

3729:                                             ; preds = %3724
  %3730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3726, ptr noundef nonnull @.str.13) #12
  br label %3731

3731:                                             ; preds = %3727, %3729, %3720, %3722
  %3732 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #12
  %3733 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %1) #12
  br label %3734

3734:                                             ; preds = %178, %176, %185, %183, %3731
  ret i32 0
}

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

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

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

declare i32 @s2n_alloc(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 #9

declare i32 @s2n_get_public_random_data(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_dup(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_reread(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_config_disable_x509_verification(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_connection_set_blinding(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connections_set_io_pair(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_conn_get_current_message_type(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_negotiate_test_server_and_client(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_shutdown_test_server_and_client(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare void @srand(i32 noundef) local_unnamed_addr #5

; Function Attrs: nounwind
declare i32 @rand() local_unnamed_addr #5

declare i32 @s2n_connection_wipe(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_is_hello_retry_handshake(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free_handshake(ptr noundef) local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #10

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.umin.i32(i32, i32) #11

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

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

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


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass