; LLVM IR from aws/s2n-tls :: tests/unit (s2n_handshake_fragment_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_debug_info = type { ptr, ptr }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_io_wrapper_pair = type { %struct.s2n_io_wrapper, %struct.s2n_io_wrapper }
%struct.s2n_io_wrapper = type { i8, i8, ptr, ptr, ptr, ptr }
%struct.s2n_test_io_stuffer_pair = type { %struct.s2n_stuffer, %struct.s2n_stuffer }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_result = type { i32 }
%struct.s2n_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
@pkey_op = external dso_local global ptr, align 8
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [86 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@__const.main.fragment_sizes = external hidden unnamed_addr constant [6 x i32], align 16
@.str.8 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [111 x i8], align 1
@_s2n_debug_info = external thread_local global %struct.s2n_debug_info, align 8
@.str.17 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [111 x i8], align 1
@__const.main.early_data_bytes = external hidden unnamed_addr constant [12 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [99 x i8], align 1
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.38 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [148 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca [6 x i32], align 16
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i64, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca %struct.s2n_io_wrapper_pair, align 8
  %24 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %25 = alloca %struct.s2n_result, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca %struct.s2n_result, align 4
  %34 = alloca %struct.s2n_result, align 4
  %35 = alloca %struct.s2n_result, align 4
  %36 = alloca %struct.s2n_result, align 4
  %37 = alloca ptr, align 8
  %38 = alloca i32, align 4
  %39 = alloca ptr, align 8
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca ptr, align 8
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca %struct.s2n_io_wrapper_pair, align 8
  %46 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %47 = alloca %struct.s2n_result, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca %struct.s2n_result, align 4
  %56 = alloca %struct.s2n_result, align 4
  %57 = alloca %struct.s2n_result, align 4
  %58 = alloca %struct.s2n_result, align 4
  %59 = alloca ptr, align 8
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca ptr, align 8
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca ptr, align 8
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca %struct.s2n_io_wrapper_pair, align 8
  %69 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %70 = alloca %struct.s2n_result, align 4
  %71 = alloca i32, align 4
  %72 = alloca i8, align 1
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca %struct.s2n_result, align 4
  %80 = alloca %struct.s2n_result, align 4
  %81 = alloca %struct.s2n_result, align 4
  %82 = alloca %struct.s2n_result, align 4
  %83 = alloca ptr, align 8
  %84 = alloca i32, align 4
  %85 = alloca ptr, align 8
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca ptr, align 8
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca %struct.s2n_io_wrapper_pair, align 8
  %92 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %93 = alloca %struct.s2n_result, align 4
  %94 = alloca i32, align 4
  %95 = alloca i8, align 1
  %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 %struct.s2n_result, align 4
  %106 = alloca %struct.s2n_result, align 4
  %107 = alloca [12 x i8], align 1
  %108 = alloca %struct.s2n_blob, align 8
  %109 = alloca i32, align 4
  %110 = alloca ptr, align 8
  %111 = alloca ptr, align 8
  %112 = alloca i32, align 4
  %113 = alloca i32, align 4
  %114 = alloca %struct.s2n_result, align 4
  %115 = alloca i32, align 4
  %116 = alloca ptr, align 8
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca %struct.s2n_result, align 4
  %120 = alloca i32, align 4
  %121 = alloca %struct.s2n_io_wrapper_pair, align 8
  %122 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %123 = alloca %struct.s2n_result, align 4
  %124 = alloca i32, align 4
  %125 = alloca [12 x i8], align 1
  %126 = alloca %struct.s2n_blob, align 8
  %127 = alloca i32, align 4
  %128 = alloca %struct.s2n_result, align 4
  %129 = alloca i32, align 4
  %130 = alloca i32, 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 %struct.s2n_result, align 4
  %141 = alloca %struct.s2n_result, align 4
  %142 = alloca %struct.s2n_result, align 4
  %143 = alloca %struct.s2n_result, align 4
  %144 = alloca i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca %struct.s2n_result, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %147

147:                                              ; preds = %2
  br label %148

148:                                              ; preds = %147
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %149 = load ptr, ptr @stdout, align 8, !tbaa !9
  %150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %149, ptr noundef @.str, ptr noundef @.str.1) #11
  %151 = load ptr, ptr @stdout, align 8, !tbaa !9
  %152 = call i32 @fflush(ptr noundef %151)
  br label %153

153:                                              ; preds = %148
  %154 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %155 = icmp eq i32 %154, -1
  br i1 %155, label %156, label %207

156:                                              ; preds = %153
  br label %157

157:                                              ; preds = %156
  br label %158

158:                                              ; preds = %157
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %159 = call ptr @__errno_location() #12
  %160 = load i32, ptr %159, align 4, !tbaa !5
  store i32 %160, ptr %6, align 4, !tbaa !5
  %161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %162 = call i32 @s2n_print_stacktrace(ptr noundef %161)
  %163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %164 = trunc i8 %163 to i1
  br i1 %164, label %165, label %187

165:                                              ; preds = %158
  %166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %167 = call i32 @fileno(ptr noundef %166) #11
  %168 = call i32 @isatty(i32 noundef %167) #11
  %169 = icmp ne i32 %168, 0
  br i1 %169, label %170, label %187

170:                                              ; preds = %165
  %171 = load i32, ptr %6, align 4, !tbaa !5
  %172 = call ptr @__errno_location() #12
  store i32 %171, ptr %172, align 4, !tbaa !5
  %173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %174 = load i32, ptr @test_count, align 4, !tbaa !5
  %175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %176 = load i32, ptr %175, align 4, !tbaa !5
  %177 = call ptr @s2n_strerror(i32 noundef %176, ptr noundef @.str.4)
  %178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %179 = load i32, ptr %178, align 4, !tbaa !5
  %180 = call ptr @s2n_strerror_debug(i32 noundef %179, ptr noundef @.str.4)
  %181 = call ptr @__errno_location() #12
  %182 = load i32, ptr %181, align 4, !tbaa !5
  %183 = call ptr @strerror(i32 noundef %182) #11
  %184 = call ptr @__errno_location() #12
  %185 = load i32, ptr %184, align 4, !tbaa !5
  %186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %173, ptr noundef @.str.2, i32 noundef %174, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 140, ptr noundef %177, ptr noundef %180, ptr noundef %183, i32 noundef %185) #11
  br label %204

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

204:                                              ; preds = %187, %170
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %205

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

206:                                              ; No predecessors!
  br label %207

207:                                              ; preds = %206, %153
  br label %208

208:                                              ; preds = %207
  br label %209

209:                                              ; preds = %208
  %210 = load i32, ptr @test_count, align 4, !tbaa !5
  %211 = add nsw i32 %210, 1
  store i32 %211, ptr @test_count, align 4, !tbaa !5
  %212 = call i32 @s2n_enable_atexit()
  %213 = icmp eq i32 %212, -1
  br i1 %213, label %214, label %265

214:                                              ; preds = %209
  br label %215

215:                                              ; preds = %214
  br label %216

216:                                              ; preds = %215
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %217 = call ptr @__errno_location() #12
  %218 = load i32, ptr %217, align 4, !tbaa !5
  store i32 %218, ptr %7, align 4, !tbaa !5
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = call i32 @s2n_print_stacktrace(ptr noundef %219)
  %221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %222 = trunc i8 %221 to i1
  br i1 %222, label %223, label %245

223:                                              ; preds = %216
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = call i32 @fileno(ptr noundef %224) #11
  %226 = call i32 @isatty(i32 noundef %225) #11
  %227 = icmp ne i32 %226, 0
  br i1 %227, label %228, label %245

228:                                              ; preds = %223
  %229 = load i32, ptr %7, align 4, !tbaa !5
  %230 = call ptr @__errno_location() #12
  store i32 %229, ptr %230, align 4, !tbaa !5
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = load i32, ptr @test_count, align 4, !tbaa !5
  %233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %234 = load i32, ptr %233, align 4, !tbaa !5
  %235 = call ptr @s2n_strerror(i32 noundef %234, ptr noundef @.str.4)
  %236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %237 = load i32, ptr %236, align 4, !tbaa !5
  %238 = call ptr @s2n_strerror_debug(i32 noundef %237, ptr noundef @.str.4)
  %239 = call ptr @__errno_location() #12
  %240 = load i32, ptr %239, align 4, !tbaa !5
  %241 = call ptr @strerror(i32 noundef %240) #11
  %242 = call ptr @__errno_location() #12
  %243 = load i32, ptr %242, align 4, !tbaa !5
  %244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %231, ptr noundef @.str.2, i32 noundef %232, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 140, ptr noundef %235, ptr noundef %238, ptr noundef %241, i32 noundef %243) #11
  br label %262

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

262:                                              ; preds = %245, %228
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %263

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

264:                                              ; No predecessors!
  br label %265

265:                                              ; preds = %264, %209
  br label %266

266:                                              ; preds = %265
  br label %267

267:                                              ; preds = %266
  br label %268

268:                                              ; preds = %267
  %269 = call i32 @s2n_init()
  %270 = icmp eq i32 %269, -1
  br i1 %270, label %271, label %322

271:                                              ; preds = %268
  br label %272

272:                                              ; preds = %271
  br label %273

273:                                              ; preds = %272
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %274 = call ptr @__errno_location() #12
  %275 = load i32, ptr %274, align 4, !tbaa !5
  store i32 %275, ptr %8, align 4, !tbaa !5
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = call i32 @s2n_print_stacktrace(ptr noundef %276)
  %278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %279 = trunc i8 %278 to i1
  br i1 %279, label %280, label %302

280:                                              ; preds = %273
  %281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %282 = call i32 @fileno(ptr noundef %281) #11
  %283 = call i32 @isatty(i32 noundef %282) #11
  %284 = icmp ne i32 %283, 0
  br i1 %284, label %285, label %302

285:                                              ; preds = %280
  %286 = load i32, ptr %8, align 4, !tbaa !5
  %287 = call ptr @__errno_location() #12
  store i32 %286, ptr %287, align 4, !tbaa !5
  %288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %289 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %291, ptr noundef @.str.4)
  %293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %294 = load i32, ptr %293, align 4, !tbaa !5
  %295 = call ptr @s2n_strerror_debug(i32 noundef %294, ptr noundef @.str.4)
  %296 = call ptr @__errno_location() #12
  %297 = load i32, ptr %296, align 4, !tbaa !5
  %298 = call ptr @strerror(i32 noundef %297) #11
  %299 = call ptr @__errno_location() #12
  %300 = load i32, ptr %299, align 4, !tbaa !5
  %301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %288, ptr noundef @.str.2, i32 noundef %289, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 140, ptr noundef %292, ptr noundef %295, ptr noundef %298, i32 noundef %300) #11
  br label %319

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

319:                                              ; preds = %302, %285
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %320

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

321:                                              ; No predecessors!
  br label %322

322:                                              ; preds = %321, %268
  br label %323

323:                                              ; preds = %322
  br label %324

324:                                              ; preds = %323
  call void @llvm.lifetime.start.p0(i64 24, ptr %9) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %9, ptr align 16 @__const.main.fragment_sizes, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #11
  store ptr null, ptr %10, align 8, !tbaa !9
  br label %325

325:                                              ; preds = %324
  %326 = load i32, ptr @test_count, align 4, !tbaa !5
  %327 = add nsw i32 %326, 1
  store i32 %327, ptr @test_count, align 4, !tbaa !5
  %328 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %10, ptr noundef @.str.8, ptr noundef @.str.9)
  %329 = icmp eq i32 %328, -1
  br i1 %329, label %330, label %383

330:                                              ; preds = %325
  br label %331

331:                                              ; preds = %330
  br label %332

332:                                              ; preds = %331
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #11
  %333 = call ptr @__errno_location() #12
  %334 = load i32, ptr %333, align 4, !tbaa !5
  store i32 %334, ptr %11, align 4, !tbaa !5
  %335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %336 = call i32 @s2n_print_stacktrace(ptr noundef %335)
  %337 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %338 = trunc i8 %337 to i1
  br i1 %338, label %339, label %361

339:                                              ; preds = %332
  %340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %341 = call i32 @fileno(ptr noundef %340) #11
  %342 = call i32 @isatty(i32 noundef %341) #11
  %343 = icmp ne i32 %342, 0
  br i1 %343, label %344, label %361

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

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

378:                                              ; preds = %361, %344
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  br label %379

379:                                              ; preds = %378
  br label %380

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

381:                                              ; No predecessors!
  br label %382

382:                                              ; preds = %381
  br label %383

383:                                              ; preds = %382, %325
  br label %384

384:                                              ; preds = %383
  br label %385

385:                                              ; preds = %384
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #11
  store i64 0, ptr %12, align 8, !tbaa !15
  br label %386

386:                                              ; preds = %5117, %385
  %387 = load i64, ptr %12, align 8, !tbaa !15
  %388 = icmp ult i64 %387, 6
  br i1 %388, label %390, label %389

389:                                              ; preds = %386
  store i32 30, ptr %13, align 4
  br label %5120

390:                                              ; preds = %386
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  %391 = load i64, ptr %12, align 8, !tbaa !15
  %392 = getelementptr inbounds [6 x i32], ptr %9, i64 0, i64 %391
  %393 = load i32, ptr %392, align 4, !tbaa !5
  store i32 %393, ptr %14, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #11
  %394 = load i64, ptr %12, align 8, !tbaa !15
  %395 = getelementptr inbounds [6 x i32], ptr %9, i64 0, i64 %394
  %396 = load i32, ptr %395, align 4, !tbaa !5
  %397 = add i32 %396, 1
  store i32 %397, ptr %15, align 4, !tbaa !5
  %398 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %398, label %399, label %1160

399:                                              ; preds = %390
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #11
  %400 = load ptr, ptr %10, align 8, !tbaa !9
  %401 = call ptr @s2n_test_config_new(ptr noundef %400)
  store ptr %401, ptr %16, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #11
  %402 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %402, ptr %17, align 8, !tbaa !9
  br label %403

403:                                              ; preds = %399
  %404 = load i32, ptr @test_count, align 4, !tbaa !5
  %405 = add nsw i32 %404, 1
  store i32 %405, ptr @test_count, align 4, !tbaa !5
  %406 = load ptr, ptr %17, align 8, !tbaa !9
  %407 = load ptr, ptr %16, align 8, !tbaa !9
  %408 = call i32 @s2n_connection_set_config(ptr noundef %406, ptr noundef %407)
  %409 = icmp eq i32 %408, -1
  br i1 %409, label %410, label %463

410:                                              ; preds = %403
  br label %411

411:                                              ; preds = %410
  br label %412

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

419:                                              ; preds = %412
  %420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %421 = call i32 @fileno(ptr noundef %420) #11
  %422 = call i32 @isatty(i32 noundef %421) #11
  %423 = icmp ne i32 %422, 0
  br i1 %423, label %424, label %441

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

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

458:                                              ; preds = %441, %424
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  br label %459

459:                                              ; preds = %458
  br label %460

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

461:                                              ; No predecessors!
  br label %462

462:                                              ; preds = %461
  br label %463

463:                                              ; preds = %462, %403
  br label %464

464:                                              ; preds = %463
  br label %465

465:                                              ; preds = %464
  br label %466

466:                                              ; preds = %465
  %467 = load i32, ptr @test_count, align 4, !tbaa !5
  %468 = add nsw i32 %467, 1
  store i32 %468, ptr @test_count, align 4, !tbaa !5
  %469 = load ptr, ptr %17, align 8, !tbaa !9
  %470 = call i32 @s2n_connection_set_blinding(ptr noundef %469, i32 noundef 1)
  %471 = icmp eq i32 %470, -1
  br i1 %471, label %472, label %525

472:                                              ; preds = %466
  br label %473

473:                                              ; preds = %472
  br label %474

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

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

486:                                              ; preds = %481
  %487 = load i32, ptr %19, align 4, !tbaa !5
  %488 = call ptr @__errno_location() #12
  store i32 %487, ptr %488, align 4, !tbaa !5
  %489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %490 = load i32, ptr @test_count, align 4, !tbaa !5
  %491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %492 = load i32, ptr %491, align 4, !tbaa !5
  %493 = call ptr @s2n_strerror(i32 noundef %492, ptr noundef @.str.4)
  %494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %495 = load i32, ptr %494, align 4, !tbaa !5
  %496 = call ptr @s2n_strerror_debug(i32 noundef %495, ptr noundef @.str.4)
  %497 = call ptr @__errno_location() #12
  %498 = load i32, ptr %497, align 4, !tbaa !5
  %499 = call ptr @strerror(i32 noundef %498) #11
  %500 = call ptr @__errno_location() #12
  %501 = load i32, ptr %500, align 4, !tbaa !5
  %502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %489, ptr noundef @.str.2, i32 noundef %490, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 170, ptr noundef %493, ptr noundef %496, ptr noundef %499, i32 noundef %501) #11
  br label %520

503:                                              ; preds = %481, %474
  %504 = load i32, ptr %19, align 4, !tbaa !5
  %505 = call ptr @__errno_location() #12
  store i32 %504, ptr %505, align 4, !tbaa !5
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = load i32, ptr @test_count, align 4, !tbaa !5
  %508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %509 = load i32, ptr %508, align 4, !tbaa !5
  %510 = call ptr @s2n_strerror(i32 noundef %509, ptr noundef @.str.4)
  %511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %512 = load i32, ptr %511, align 4, !tbaa !5
  %513 = call ptr @s2n_strerror_debug(i32 noundef %512, ptr noundef @.str.4)
  %514 = call ptr @__errno_location() #12
  %515 = load i32, ptr %514, align 4, !tbaa !5
  %516 = call ptr @strerror(i32 noundef %515) #11
  %517 = call ptr @__errno_location() #12
  %518 = load i32, ptr %517, align 4, !tbaa !5
  %519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %506, ptr noundef @.str.5, i32 noundef %507, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 170, ptr noundef %510, ptr noundef %513, ptr noundef %516, i32 noundef %518) #11
  br label %520

520:                                              ; preds = %503, %486
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  br label %521

521:                                              ; preds = %520
  br label %522

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

523:                                              ; No predecessors!
  br label %524

524:                                              ; preds = %523
  br label %525

525:                                              ; preds = %524, %466
  br label %526

526:                                              ; preds = %525
  br label %527

527:                                              ; preds = %526
  %528 = load i32, ptr %14, align 4, !tbaa !5
  %529 = trunc i32 %528 to i16
  %530 = load ptr, ptr %17, align 8, !tbaa !9
  %531 = getelementptr inbounds %struct.s2n_connection, ptr %530, i32 0, i32 53
  store i16 %529, ptr %531, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #11
  %532 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %532, ptr %20, align 8, !tbaa !9
  br label %533

533:                                              ; preds = %527
  %534 = load i32, ptr @test_count, align 4, !tbaa !5
  %535 = add nsw i32 %534, 1
  store i32 %535, ptr @test_count, align 4, !tbaa !5
  %536 = load ptr, ptr %20, align 8, !tbaa !9
  %537 = load ptr, ptr %16, align 8, !tbaa !9
  %538 = call i32 @s2n_connection_set_config(ptr noundef %536, ptr noundef %537)
  %539 = icmp eq i32 %538, -1
  br i1 %539, label %540, label %593

540:                                              ; preds = %533
  br label %541

541:                                              ; preds = %540
  br label %542

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

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

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

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

588:                                              ; preds = %571, %554
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #11
  br label %589

589:                                              ; preds = %588
  br label %590

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

591:                                              ; No predecessors!
  br label %592

592:                                              ; preds = %591
  br label %593

593:                                              ; preds = %592, %533
  br label %594

594:                                              ; preds = %593
  br label %595

595:                                              ; preds = %594
  br label %596

596:                                              ; preds = %595
  %597 = load i32, ptr @test_count, align 4, !tbaa !5
  %598 = add nsw i32 %597, 1
  store i32 %598, ptr @test_count, align 4, !tbaa !5
  %599 = load ptr, ptr %20, align 8, !tbaa !9
  %600 = call i32 @s2n_connection_set_blinding(ptr noundef %599, i32 noundef 1)
  %601 = icmp eq i32 %600, -1
  br i1 %601, label %602, label %655

602:                                              ; preds = %596
  br label %603

603:                                              ; preds = %602
  br label %604

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

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

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

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

650:                                              ; preds = %633, %616
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %651

651:                                              ; preds = %650
  br label %652

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

653:                                              ; No predecessors!
  br label %654

654:                                              ; preds = %653
  br label %655

655:                                              ; preds = %654, %596
  br label %656

656:                                              ; preds = %655
  br label %657

657:                                              ; preds = %656
  %658 = load i32, ptr %15, align 4, !tbaa !5
  %659 = trunc i32 %658 to i16
  %660 = load ptr, ptr %20, align 8, !tbaa !9
  %661 = getelementptr inbounds %struct.s2n_connection, ptr %660, i32 0, i32 53
  store i16 %659, ptr %661, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 80, ptr %23) #11
  call void @llvm.memset.p0.i64(ptr align 8 %23, i8 0, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 80, ptr %24) #11
  call void @llvm.memset.p0.i64(ptr align 8 %24, i8 0, i64 80, i1 false)
  br label %662

662:                                              ; preds = %657
  %663 = load i32, ptr @test_count, align 4, !tbaa !5
  %664 = add nsw i32 %663, 1
  store i32 %664, ptr @test_count, align 4, !tbaa !5
  %665 = load ptr, ptr %20, align 8, !tbaa !9
  %666 = load ptr, ptr %17, align 8, !tbaa !9
  %667 = call i32 @s2n_connections_set_blocking_io_pair(ptr noundef %23, ptr noundef %665, ptr noundef %666, ptr noundef %24)
  %668 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  store i32 %667, ptr %668, align 4
  %669 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  %670 = load i32, ptr %669, align 4
  %671 = call zeroext i1 @s2n_result_is_ok(i32 %670)
  br i1 %671, label %725, label %672

672:                                              ; preds = %662
  br label %673

673:                                              ; preds = %672
  br label %674

674:                                              ; preds = %673
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  %675 = call ptr @__errno_location() #12
  %676 = load i32, ptr %675, align 4, !tbaa !5
  store i32 %676, ptr %26, align 4, !tbaa !5
  %677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %678 = call i32 @s2n_print_stacktrace(ptr noundef %677)
  %679 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %680 = trunc i8 %679 to i1
  br i1 %680, label %681, label %703

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

686:                                              ; preds = %681
  %687 = load i32, ptr %26, align 4, !tbaa !5
  %688 = call ptr @__errno_location() #12
  store i32 %687, ptr %688, align 4, !tbaa !5
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = load i32, ptr @test_count, align 4, !tbaa !5
  %691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %692 = load i32, ptr %691, align 4, !tbaa !5
  %693 = call ptr @s2n_strerror(i32 noundef %692, ptr noundef @.str.4)
  %694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %695 = load i32, ptr %694, align 4, !tbaa !5
  %696 = call ptr @s2n_strerror_debug(i32 noundef %695, ptr noundef @.str.4)
  %697 = call ptr @__errno_location() #12
  %698 = load i32, ptr %697, align 4, !tbaa !5
  %699 = call ptr @strerror(i32 noundef %698) #11
  %700 = call ptr @__errno_location() #12
  %701 = load i32, ptr %700, align 4, !tbaa !5
  %702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %689, ptr noundef @.str.2, i32 noundef %690, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 180, ptr noundef %693, ptr noundef %696, ptr noundef %699, i32 noundef %701) #11
  br label %720

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

720:                                              ; preds = %703, %686
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %721

721:                                              ; preds = %720
  br label %722

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

723:                                              ; No predecessors!
  br label %724

724:                                              ; preds = %723
  br label %725

725:                                              ; preds = %724, %662
  br label %726

726:                                              ; preds = %725
  br label %727

727:                                              ; preds = %726
  br label %728

728:                                              ; preds = %773, %727
  %729 = load ptr, ptr %17, align 8, !tbaa !9
  %730 = load ptr, ptr %20, align 8, !tbaa !9
  %731 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %729, ptr noundef %730)
  %732 = icmp slt i32 %731, 0
  br i1 %732, label %733, label %774

733:                                              ; preds = %728
  br label %734

734:                                              ; preds = %733
  %735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = icmp ne i32 %736, 0
  br i1 %737, label %771, label %738

738:                                              ; preds = %734
  br label %739

739:                                              ; preds = %738
  br label %740

740:                                              ; preds = %739
  %741 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %742 = getelementptr inbounds %struct.s2n_debug_info, ptr %741, i32 0, i32 0
  store ptr @.str.16, ptr %742, align 8, !tbaa !43
  %743 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %744 = getelementptr inbounds %struct.s2n_debug_info, ptr %743, i32 0, i32 0
  %745 = load ptr, ptr %744, align 8, !tbaa !43
  %746 = getelementptr inbounds i8, ptr %745, i64 21
  %747 = call ptr @strrchr(ptr noundef %746, i32 noundef 47) #14
  %748 = icmp ne ptr %747, null
  br i1 %748, label %749, label %756

749:                                              ; preds = %740
  %750 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %751 = getelementptr inbounds %struct.s2n_debug_info, ptr %750, i32 0, i32 0
  %752 = load ptr, ptr %751, align 8, !tbaa !43
  %753 = getelementptr inbounds i8, ptr %752, i64 21
  %754 = call ptr @strrchr(ptr noundef %753, i32 noundef 47) #14
  %755 = getelementptr inbounds i8, ptr %754, i64 1
  br label %761

756:                                              ; preds = %740
  %757 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %758 = getelementptr inbounds %struct.s2n_debug_info, ptr %757, i32 0, i32 0
  %759 = load ptr, ptr %758, align 8, !tbaa !43
  %760 = getelementptr inbounds i8, ptr %759, i64 21
  br label %761

761:                                              ; preds = %756, %749
  %762 = phi ptr [ %755, %749 ], [ %760, %756 ]
  %763 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %764 = getelementptr inbounds %struct.s2n_debug_info, ptr %763, i32 0, i32 1
  store ptr %762, ptr %764, align 8, !tbaa !45
  %765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 201326592, ptr %765, align 4, !tbaa !5
  %766 = call i32 @s2n_calculate_stacktrace()
  br label %767

767:                                              ; preds = %761
  br label %768

768:                                              ; preds = %767
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %13, align 4
  br label %1149

769:                                              ; No predecessors!
  br label %770

770:                                              ; preds = %769
  br label %771

771:                                              ; preds = %770, %734
  br label %772

772:                                              ; preds = %771
  br label %773

773:                                              ; preds = %772
  br label %728, !llvm.loop !46

774:                                              ; preds = %728
  br label %775

775:                                              ; preds = %774
  %776 = load i32, ptr @test_count, align 4, !tbaa !5
  %777 = add nsw i32 %776, 1
  store i32 %777, ptr @test_count, align 4, !tbaa !5
  %778 = load ptr, ptr %17, align 8, !tbaa !9
  %779 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %778, i32 noundef 1)
  br i1 %779, label %833, label %780

780:                                              ; preds = %775
  br label %781

781:                                              ; preds = %780
  br label %782

782:                                              ; preds = %781
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #11
  %783 = call ptr @__errno_location() #12
  %784 = load i32, ptr %783, align 4, !tbaa !5
  store i32 %784, ptr %27, align 4, !tbaa !5
  %785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %786 = call i32 @s2n_print_stacktrace(ptr noundef %785)
  %787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %788 = trunc i8 %787 to i1
  br i1 %788, label %789, label %811

789:                                              ; preds = %782
  %790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %791 = call i32 @fileno(ptr noundef %790) #11
  %792 = call i32 @isatty(i32 noundef %791) #11
  %793 = icmp ne i32 %792, 0
  br i1 %793, label %794, label %811

794:                                              ; preds = %789
  %795 = load i32, ptr %27, align 4, !tbaa !5
  %796 = call ptr @__errno_location() #12
  store i32 %795, ptr %796, align 4, !tbaa !5
  %797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %798 = load i32, ptr @test_count, align 4, !tbaa !5
  %799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %800 = load i32, ptr %799, align 4, !tbaa !5
  %801 = call ptr @s2n_strerror(i32 noundef %800, ptr noundef @.str.4)
  %802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %803 = load i32, ptr %802, align 4, !tbaa !5
  %804 = call ptr @s2n_strerror_debug(i32 noundef %803, ptr noundef @.str.4)
  %805 = call ptr @__errno_location() #12
  %806 = load i32, ptr %805, align 4, !tbaa !5
  %807 = call ptr @strerror(i32 noundef %806) #11
  %808 = call ptr @__errno_location() #12
  %809 = load i32, ptr %808, align 4, !tbaa !5
  %810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %797, ptr noundef @.str.2, i32 noundef %798, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 187, ptr noundef %801, ptr noundef %804, ptr noundef %807, i32 noundef %809) #11
  br label %828

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

828:                                              ; preds = %811, %794
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  br label %829

829:                                              ; preds = %828
  br label %830

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

831:                                              ; No predecessors!
  br label %832

832:                                              ; preds = %831
  br label %833

833:                                              ; preds = %832, %775
  br label %834

834:                                              ; preds = %833
  br label %835

835:                                              ; preds = %834
  br label %836

836:                                              ; preds = %835
  %837 = load i32, ptr @test_count, align 4, !tbaa !5
  %838 = add nsw i32 %837, 1
  store i32 %838, ptr @test_count, align 4, !tbaa !5
  %839 = load ptr, ptr %20, align 8, !tbaa !9
  %840 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %839, i32 noundef 1)
  br i1 %840, label %894, label %841

841:                                              ; preds = %836
  br label %842

842:                                              ; preds = %841
  br label %843

843:                                              ; preds = %842
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #11
  %844 = call ptr @__errno_location() #12
  %845 = load i32, ptr %844, align 4, !tbaa !5
  store i32 %845, ptr %28, align 4, !tbaa !5
  %846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %847 = call i32 @s2n_print_stacktrace(ptr noundef %846)
  %848 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %849 = trunc i8 %848 to i1
  br i1 %849, label %850, label %872

850:                                              ; preds = %843
  %851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %852 = call i32 @fileno(ptr noundef %851) #11
  %853 = call i32 @isatty(i32 noundef %852) #11
  %854 = icmp ne i32 %853, 0
  br i1 %854, label %855, label %872

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

872:                                              ; preds = %850, %843
  %873 = load i32, ptr %28, align 4, !tbaa !5
  %874 = call ptr @__errno_location() #12
  store i32 %873, ptr %874, align 4, !tbaa !5
  %875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %876 = load i32, ptr @test_count, align 4, !tbaa !5
  %877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %878 = load i32, ptr %877, align 4, !tbaa !5
  %879 = call ptr @s2n_strerror(i32 noundef %878, ptr noundef @.str.4)
  %880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %881 = load i32, ptr %880, align 4, !tbaa !5
  %882 = call ptr @s2n_strerror_debug(i32 noundef %881, ptr noundef @.str.4)
  %883 = call ptr @__errno_location() #12
  %884 = load i32, ptr %883, align 4, !tbaa !5
  %885 = call ptr @strerror(i32 noundef %884) #11
  %886 = call ptr @__errno_location() #12
  %887 = load i32, ptr %886, align 4, !tbaa !5
  %888 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %875, ptr noundef @.str.5, i32 noundef %876, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 188, ptr noundef %879, ptr noundef %882, ptr noundef %885, i32 noundef %887) #11
  br label %889

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

890:                                              ; preds = %889
  br label %891

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

892:                                              ; No predecessors!
  br label %893

893:                                              ; preds = %892
  br label %894

894:                                              ; preds = %893, %836
  br label %895

895:                                              ; preds = %894
  br label %896

896:                                              ; preds = %895
  br label %897

897:                                              ; preds = %896
  %898 = load i32, ptr @test_count, align 4, !tbaa !5
  %899 = add nsw i32 %898, 1
  store i32 %899, ptr @test_count, align 4, !tbaa !5
  %900 = load ptr, ptr %17, align 8, !tbaa !9
  %901 = call i32 @s2n_conn_get_current_message_type(ptr noundef %900)
  %902 = icmp eq i32 %901, 20
  br i1 %902, label %956, label %903

903:                                              ; preds = %897
  br label %904

904:                                              ; preds = %903
  br label %905

905:                                              ; preds = %904
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #11
  %906 = call ptr @__errno_location() #12
  %907 = load i32, ptr %906, align 4, !tbaa !5
  store i32 %907, ptr %29, align 4, !tbaa !5
  %908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %909 = call i32 @s2n_print_stacktrace(ptr noundef %908)
  %910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %911 = trunc i8 %910 to i1
  br i1 %911, label %912, label %934

912:                                              ; preds = %905
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = call i32 @fileno(ptr noundef %913) #11
  %915 = call i32 @isatty(i32 noundef %914) #11
  %916 = icmp ne i32 %915, 0
  br i1 %916, label %917, label %934

917:                                              ; preds = %912
  %918 = load i32, ptr %29, align 4, !tbaa !5
  %919 = call ptr @__errno_location() #12
  store i32 %918, ptr %919, align 4, !tbaa !5
  %920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %921 = load i32, ptr @test_count, align 4, !tbaa !5
  %922 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %923 = load i32, ptr %922, align 4, !tbaa !5
  %924 = call ptr @s2n_strerror(i32 noundef %923, ptr noundef @.str.4)
  %925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %926 = load i32, ptr %925, align 4, !tbaa !5
  %927 = call ptr @s2n_strerror_debug(i32 noundef %926, ptr noundef @.str.4)
  %928 = call ptr @__errno_location() #12
  %929 = load i32, ptr %928, align 4, !tbaa !5
  %930 = call ptr @strerror(i32 noundef %929) #11
  %931 = call ptr @__errno_location() #12
  %932 = load i32, ptr %931, align 4, !tbaa !5
  %933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %920, ptr noundef @.str.2, i32 noundef %921, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 189, ptr noundef %924, ptr noundef %927, ptr noundef %930, i32 noundef %932) #11
  br label %951

934:                                              ; preds = %912, %905
  %935 = load i32, ptr %29, align 4, !tbaa !5
  %936 = call ptr @__errno_location() #12
  store i32 %935, ptr %936, align 4, !tbaa !5
  %937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %938 = load i32, ptr @test_count, align 4, !tbaa !5
  %939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %940 = load i32, ptr %939, align 4, !tbaa !5
  %941 = call ptr @s2n_strerror(i32 noundef %940, ptr noundef @.str.4)
  %942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %943 = load i32, ptr %942, align 4, !tbaa !5
  %944 = call ptr @s2n_strerror_debug(i32 noundef %943, ptr noundef @.str.4)
  %945 = call ptr @__errno_location() #12
  %946 = load i32, ptr %945, align 4, !tbaa !5
  %947 = call ptr @strerror(i32 noundef %946) #11
  %948 = call ptr @__errno_location() #12
  %949 = load i32, ptr %948, align 4, !tbaa !5
  %950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %937, ptr noundef @.str.5, i32 noundef %938, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 189, ptr noundef %941, ptr noundef %944, ptr noundef %947, i32 noundef %949) #11
  br label %951

951:                                              ; preds = %934, %917
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  br label %952

952:                                              ; preds = %951
  br label %953

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

954:                                              ; No predecessors!
  br label %955

955:                                              ; preds = %954
  br label %956

956:                                              ; preds = %955, %897
  br label %957

957:                                              ; preds = %956
  br label %958

958:                                              ; preds = %957
  br label %959

959:                                              ; preds = %958
  %960 = load i32, ptr @test_count, align 4, !tbaa !5
  %961 = add nsw i32 %960, 1
  store i32 %961, ptr @test_count, align 4, !tbaa !5
  %962 = load ptr, ptr %20, align 8, !tbaa !9
  %963 = call i32 @s2n_conn_get_current_message_type(ptr noundef %962)
  %964 = icmp eq i32 %963, 20
  br i1 %964, label %1018, label %965

965:                                              ; preds = %959
  br label %966

966:                                              ; preds = %965
  br label %967

967:                                              ; preds = %966
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #11
  %968 = call ptr @__errno_location() #12
  %969 = load i32, ptr %968, align 4, !tbaa !5
  store i32 %969, ptr %30, align 4, !tbaa !5
  %970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %971 = call i32 @s2n_print_stacktrace(ptr noundef %970)
  %972 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %973 = trunc i8 %972 to i1
  br i1 %973, label %974, label %996

974:                                              ; preds = %967
  %975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %976 = call i32 @fileno(ptr noundef %975) #11
  %977 = call i32 @isatty(i32 noundef %976) #11
  %978 = icmp ne i32 %977, 0
  br i1 %978, label %979, label %996

979:                                              ; preds = %974
  %980 = load i32, ptr %30, align 4, !tbaa !5
  %981 = call ptr @__errno_location() #12
  store i32 %980, ptr %981, align 4, !tbaa !5
  %982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %983 = load i32, ptr @test_count, align 4, !tbaa !5
  %984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %985 = load i32, ptr %984, align 4, !tbaa !5
  %986 = call ptr @s2n_strerror(i32 noundef %985, ptr noundef @.str.4)
  %987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %988 = load i32, ptr %987, align 4, !tbaa !5
  %989 = call ptr @s2n_strerror_debug(i32 noundef %988, ptr noundef @.str.4)
  %990 = call ptr @__errno_location() #12
  %991 = load i32, ptr %990, align 4, !tbaa !5
  %992 = call ptr @strerror(i32 noundef %991) #11
  %993 = call ptr @__errno_location() #12
  %994 = load i32, ptr %993, align 4, !tbaa !5
  %995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %982, ptr noundef @.str.2, i32 noundef %983, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 190, ptr noundef %986, ptr noundef %989, ptr noundef %992, i32 noundef %994) #11
  br label %1013

996:                                              ; preds = %974, %967
  %997 = load i32, ptr %30, align 4, !tbaa !5
  %998 = call ptr @__errno_location() #12
  store i32 %997, ptr %998, align 4, !tbaa !5
  %999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1000 = load i32, ptr @test_count, align 4, !tbaa !5
  %1001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = call ptr @s2n_strerror(i32 noundef %1002, ptr noundef @.str.4)
  %1004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1005 = load i32, ptr %1004, align 4, !tbaa !5
  %1006 = call ptr @s2n_strerror_debug(i32 noundef %1005, ptr noundef @.str.4)
  %1007 = call ptr @__errno_location() #12
  %1008 = load i32, ptr %1007, align 4, !tbaa !5
  %1009 = call ptr @strerror(i32 noundef %1008) #11
  %1010 = call ptr @__errno_location() #12
  %1011 = load i32, ptr %1010, align 4, !tbaa !5
  %1012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %999, ptr noundef @.str.5, i32 noundef %1000, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 190, ptr noundef %1003, ptr noundef %1006, ptr noundef %1009, i32 noundef %1011) #11
  br label %1013

1013:                                             ; preds = %996, %979
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %1014

1014:                                             ; preds = %1013
  br label %1015

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

1016:                                             ; No predecessors!
  br label %1017

1017:                                             ; preds = %1016
  br label %1018

1018:                                             ; preds = %1017, %959
  br label %1019

1019:                                             ; preds = %1018
  br label %1020

1020:                                             ; preds = %1019
  br label %1021

1021:                                             ; preds = %1020
  %1022 = load i32, ptr @test_count, align 4, !tbaa !5
  %1023 = add nsw i32 %1022, 1
  store i32 %1023, ptr @test_count, align 4, !tbaa !5
  %1024 = load ptr, ptr %17, align 8, !tbaa !9
  %1025 = getelementptr inbounds %struct.s2n_connection, ptr %1024, i32 0, i32 23
  %1026 = load i8, ptr %1025, align 4, !tbaa !48
  %1027 = zext i8 %1026 to i32
  %1028 = icmp eq i32 %1027, 34
  br i1 %1028, label %1082, label %1029

1029:                                             ; preds = %1021
  br label %1030

1030:                                             ; preds = %1029
  br label %1031

1031:                                             ; preds = %1030
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #11
  %1032 = call ptr @__errno_location() #12
  %1033 = load i32, ptr %1032, align 4, !tbaa !5
  store i32 %1033, ptr %31, align 4, !tbaa !5
  %1034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1035 = call i32 @s2n_print_stacktrace(ptr noundef %1034)
  %1036 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1037 = trunc i8 %1036 to i1
  br i1 %1037, label %1038, label %1060

1038:                                             ; preds = %1031
  %1039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1040 = call i32 @fileno(ptr noundef %1039) #11
  %1041 = call i32 @isatty(i32 noundef %1040) #11
  %1042 = icmp ne i32 %1041, 0
  br i1 %1042, label %1043, label %1060

1043:                                             ; preds = %1038
  %1044 = load i32, ptr %31, align 4, !tbaa !5
  %1045 = call ptr @__errno_location() #12
  store i32 %1044, ptr %1045, align 4, !tbaa !5
  %1046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1047 = load i32, ptr @test_count, align 4, !tbaa !5
  %1048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1049 = load i32, ptr %1048, align 4, !tbaa !5
  %1050 = call ptr @s2n_strerror(i32 noundef %1049, ptr noundef @.str.4)
  %1051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1052 = load i32, ptr %1051, align 4, !tbaa !5
  %1053 = call ptr @s2n_strerror_debug(i32 noundef %1052, ptr noundef @.str.4)
  %1054 = call ptr @__errno_location() #12
  %1055 = load i32, ptr %1054, align 4, !tbaa !5
  %1056 = call ptr @strerror(i32 noundef %1055) #11
  %1057 = call ptr @__errno_location() #12
  %1058 = load i32, ptr %1057, align 4, !tbaa !5
  %1059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1046, ptr noundef @.str.2, i32 noundef %1047, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 193, ptr noundef %1050, ptr noundef %1053, ptr noundef %1056, i32 noundef %1058) #11
  br label %1077

1060:                                             ; preds = %1038, %1031
  %1061 = load i32, ptr %31, align 4, !tbaa !5
  %1062 = call ptr @__errno_location() #12
  store i32 %1061, ptr %1062, align 4, !tbaa !5
  %1063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1064 = load i32, ptr @test_count, align 4, !tbaa !5
  %1065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1066 = load i32, ptr %1065, align 4, !tbaa !5
  %1067 = call ptr @s2n_strerror(i32 noundef %1066, ptr noundef @.str.4)
  %1068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1069 = load i32, ptr %1068, align 4, !tbaa !5
  %1070 = call ptr @s2n_strerror_debug(i32 noundef %1069, ptr noundef @.str.4)
  %1071 = call ptr @__errno_location() #12
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  %1073 = call ptr @strerror(i32 noundef %1072) #11
  %1074 = call ptr @__errno_location() #12
  %1075 = load i32, ptr %1074, align 4, !tbaa !5
  %1076 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1063, ptr noundef @.str.5, i32 noundef %1064, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 193, ptr noundef %1067, ptr noundef %1070, ptr noundef %1073, i32 noundef %1075) #11
  br label %1077

1077:                                             ; preds = %1060, %1043
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %1078

1078:                                             ; preds = %1077
  br label %1079

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

1080:                                             ; No predecessors!
  br label %1081

1081:                                             ; preds = %1080
  br label %1082

1082:                                             ; preds = %1081, %1021
  br label %1083

1083:                                             ; preds = %1082
  br label %1084

1084:                                             ; preds = %1083
  br label %1085

1085:                                             ; preds = %1084
  %1086 = load i32, ptr @test_count, align 4, !tbaa !5
  %1087 = add nsw i32 %1086, 1
  store i32 %1087, ptr @test_count, align 4, !tbaa !5
  %1088 = load ptr, ptr %20, align 8, !tbaa !9
  %1089 = getelementptr inbounds %struct.s2n_connection, ptr %1088, i32 0, i32 23
  %1090 = load i8, ptr %1089, align 4, !tbaa !48
  %1091 = zext i8 %1090 to i32
  %1092 = icmp eq i32 %1091, 34
  br i1 %1092, label %1146, label %1093

1093:                                             ; preds = %1085
  br label %1094

1094:                                             ; preds = %1093
  br label %1095

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

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

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

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

1141:                                             ; preds = %1124, %1107
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %1142

1142:                                             ; preds = %1141
  br label %1143

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

1144:                                             ; No predecessors!
  br label %1145

1145:                                             ; preds = %1144
  br label %1146

1146:                                             ; preds = %1145, %1085
  br label %1147

1147:                                             ; preds = %1146
  br label %1148

1148:                                             ; preds = %1147
  store i32 0, ptr %13, align 4
  br label %1149

1149:                                             ; preds = %1148, %768
  %1150 = call i32 @s2n_io_stuffer_pair_free(ptr noundef %24)
  %1151 = getelementptr inbounds %struct.s2n_result, ptr %33, i32 0, i32 0
  store i32 %1150, ptr %1151, align 4
  call void @llvm.lifetime.end.p0(i64 80, ptr %24) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr %23) #11
  %1152 = call i32 @s2n_connection_ptr_free(ptr noundef %20)
  %1153 = getelementptr inbounds %struct.s2n_result, ptr %34, i32 0, i32 0
  store i32 %1152, ptr %1153, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #11
  %1154 = call i32 @s2n_connection_ptr_free(ptr noundef %17)
  %1155 = getelementptr inbounds %struct.s2n_result, ptr %35, i32 0, i32 0
  store i32 %1154, ptr %1155, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #11
  %1156 = call i32 @s2n_config_ptr_free(ptr noundef %16)
  %1157 = getelementptr inbounds %struct.s2n_result, ptr %36, i32 0, i32 0
  store i32 %1156, ptr %1157, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #11
  %1158 = load i32, ptr %13, align 4
  switch i32 %1158, label %5114 [
    i32 0, label %1159
  ]

1159:                                             ; preds = %1149
  br label %1160

1160:                                             ; preds = %1159, %390
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #11
  %1161 = load ptr, ptr %10, align 8, !tbaa !9
  %1162 = call ptr @s2n_test_config_new(ptr noundef %1161)
  store ptr %1162, ptr %37, align 8, !tbaa !9
  br label %1163

1163:                                             ; preds = %1160
  %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 %37, align 8, !tbaa !9
  %1167 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %1166, ptr noundef @.str.23)
  %1168 = icmp eq i32 %1167, -1
  br i1 %1168, label %1169, label %1222

1169:                                             ; preds = %1163
  br label %1170

1170:                                             ; preds = %1169
  br label %1171

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

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

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

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

1217:                                             ; preds = %1200, %1183
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1218

1218:                                             ; preds = %1217
  br label %1219

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

1220:                                             ; No predecessors!
  br label %1221

1221:                                             ; preds = %1220
  br label %1222

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

1223:                                             ; preds = %1222
  br label %1224

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

1226:                                             ; preds = %1224
  %1227 = load i32, ptr @test_count, align 4, !tbaa !5
  %1228 = add nsw i32 %1227, 1
  store i32 %1228, ptr @test_count, align 4, !tbaa !5
  %1229 = load ptr, ptr %39, align 8, !tbaa !9
  %1230 = load ptr, ptr %37, align 8, !tbaa !9
  %1231 = call i32 @s2n_connection_set_config(ptr noundef %1229, ptr noundef %1230)
  %1232 = icmp eq i32 %1231, -1
  br i1 %1232, label %1233, label %1286

1233:                                             ; preds = %1226
  br label %1234

1234:                                             ; preds = %1233
  br label %1235

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

1242:                                             ; preds = %1235
  %1243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1244 = call i32 @fileno(ptr noundef %1243) #11
  %1245 = call i32 @isatty(i32 noundef %1244) #11
  %1246 = icmp ne i32 %1245, 0
  br i1 %1246, label %1247, label %1264

1247:                                             ; preds = %1242
  %1248 = load i32, ptr %40, align 4, !tbaa !5
  %1249 = call ptr @__errno_location() #12
  store i32 %1248, ptr %1249, align 4, !tbaa !5
  %1250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1251 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1253, ptr noundef @.str.4)
  %1255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1256 = load i32, ptr %1255, align 4, !tbaa !5
  %1257 = call ptr @s2n_strerror_debug(i32 noundef %1256, ptr noundef @.str.4)
  %1258 = call ptr @__errno_location() #12
  %1259 = load i32, ptr %1258, align 4, !tbaa !5
  %1260 = call ptr @strerror(i32 noundef %1259) #11
  %1261 = call ptr @__errno_location() #12
  %1262 = load i32, ptr %1261, align 4, !tbaa !5
  %1263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1250, ptr noundef @.str.2, i32 noundef %1251, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 204, ptr noundef %1254, ptr noundef %1257, ptr noundef %1260, i32 noundef %1262) #11
  br label %1281

1264:                                             ; preds = %1242, %1235
  %1265 = load i32, ptr %40, align 4, !tbaa !5
  %1266 = call ptr @__errno_location() #12
  store i32 %1265, ptr %1266, align 4, !tbaa !5
  %1267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1268 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1270, ptr noundef @.str.4)
  %1272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1273 = load i32, ptr %1272, align 4, !tbaa !5
  %1274 = call ptr @s2n_strerror_debug(i32 noundef %1273, ptr noundef @.str.4)
  %1275 = call ptr @__errno_location() #12
  %1276 = load i32, ptr %1275, align 4, !tbaa !5
  %1277 = call ptr @strerror(i32 noundef %1276) #11
  %1278 = call ptr @__errno_location() #12
  %1279 = load i32, ptr %1278, align 4, !tbaa !5
  %1280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1267, ptr noundef @.str.5, i32 noundef %1268, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 204, ptr noundef %1271, ptr noundef %1274, ptr noundef %1277, i32 noundef %1279) #11
  br label %1281

1281:                                             ; preds = %1264, %1247
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %1282

1282:                                             ; preds = %1281
  br label %1283

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

1284:                                             ; No predecessors!
  br label %1285

1285:                                             ; preds = %1284
  br label %1286

1286:                                             ; preds = %1285, %1226
  br label %1287

1287:                                             ; preds = %1286
  br label %1288

1288:                                             ; preds = %1287
  br label %1289

1289:                                             ; preds = %1288
  %1290 = load i32, ptr @test_count, align 4, !tbaa !5
  %1291 = add nsw i32 %1290, 1
  store i32 %1291, ptr @test_count, align 4, !tbaa !5
  %1292 = load ptr, ptr %39, align 8, !tbaa !9
  %1293 = call i32 @s2n_connection_set_blinding(ptr noundef %1292, i32 noundef 1)
  %1294 = icmp eq i32 %1293, -1
  br i1 %1294, label %1295, label %1348

1295:                                             ; preds = %1289
  br label %1296

1296:                                             ; preds = %1295
  br label %1297

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

1304:                                             ; preds = %1297
  %1305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1306 = call i32 @fileno(ptr noundef %1305) #11
  %1307 = call i32 @isatty(i32 noundef %1306) #11
  %1308 = icmp ne i32 %1307, 0
  br i1 %1308, label %1309, label %1326

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

1326:                                             ; preds = %1304, %1297
  %1327 = load i32, ptr %41, align 4, !tbaa !5
  %1328 = call ptr @__errno_location() #12
  store i32 %1327, ptr %1328, align 4, !tbaa !5
  %1329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1330 = load i32, ptr @test_count, align 4, !tbaa !5
  %1331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1332 = load i32, ptr %1331, align 4, !tbaa !5
  %1333 = call ptr @s2n_strerror(i32 noundef %1332, ptr noundef @.str.4)
  %1334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1335 = load i32, ptr %1334, align 4, !tbaa !5
  %1336 = call ptr @s2n_strerror_debug(i32 noundef %1335, ptr noundef @.str.4)
  %1337 = call ptr @__errno_location() #12
  %1338 = load i32, ptr %1337, align 4, !tbaa !5
  %1339 = call ptr @strerror(i32 noundef %1338) #11
  %1340 = call ptr @__errno_location() #12
  %1341 = load i32, ptr %1340, align 4, !tbaa !5
  %1342 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1329, ptr noundef @.str.5, i32 noundef %1330, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 205, ptr noundef %1333, ptr noundef %1336, ptr noundef %1339, i32 noundef %1341) #11
  br label %1343

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

1344:                                             ; preds = %1343
  br label %1345

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

1346:                                             ; No predecessors!
  br label %1347

1347:                                             ; preds = %1346
  br label %1348

1348:                                             ; preds = %1347, %1289
  br label %1349

1349:                                             ; preds = %1348
  br label %1350

1350:                                             ; preds = %1349
  %1351 = load i32, ptr %14, align 4, !tbaa !5
  %1352 = trunc i32 %1351 to i16
  %1353 = load ptr, ptr %39, align 8, !tbaa !9
  %1354 = getelementptr inbounds %struct.s2n_connection, ptr %1353, i32 0, i32 53
  store i16 %1352, ptr %1354, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #11
  %1355 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1355, ptr %42, align 8, !tbaa !9
  br label %1356

1356:                                             ; preds = %1350
  %1357 = load i32, ptr @test_count, align 4, !tbaa !5
  %1358 = add nsw i32 %1357, 1
  store i32 %1358, ptr @test_count, align 4, !tbaa !5
  %1359 = load ptr, ptr %42, align 8, !tbaa !9
  %1360 = load ptr, ptr %37, align 8, !tbaa !9
  %1361 = call i32 @s2n_connection_set_config(ptr noundef %1359, ptr noundef %1360)
  %1362 = icmp eq i32 %1361, -1
  br i1 %1362, label %1363, label %1416

1363:                                             ; preds = %1356
  br label %1364

1364:                                             ; preds = %1363
  br label %1365

1365:                                             ; preds = %1364
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #11
  %1366 = call ptr @__errno_location() #12
  %1367 = load i32, ptr %1366, align 4, !tbaa !5
  store i32 %1367, ptr %43, align 4, !tbaa !5
  %1368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1369 = call i32 @s2n_print_stacktrace(ptr noundef %1368)
  %1370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1371 = trunc i8 %1370 to i1
  br i1 %1371, label %1372, label %1394

1372:                                             ; preds = %1365
  %1373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1374 = call i32 @fileno(ptr noundef %1373) #11
  %1375 = call i32 @isatty(i32 noundef %1374) #11
  %1376 = icmp ne i32 %1375, 0
  br i1 %1376, label %1377, label %1394

1377:                                             ; preds = %1372
  %1378 = load i32, ptr %43, align 4, !tbaa !5
  %1379 = call ptr @__errno_location() #12
  store i32 %1378, ptr %1379, align 4, !tbaa !5
  %1380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1381 = load i32, ptr @test_count, align 4, !tbaa !5
  %1382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1383 = load i32, ptr %1382, align 4, !tbaa !5
  %1384 = call ptr @s2n_strerror(i32 noundef %1383, ptr noundef @.str.4)
  %1385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1386 = load i32, ptr %1385, align 4, !tbaa !5
  %1387 = call ptr @s2n_strerror_debug(i32 noundef %1386, ptr noundef @.str.4)
  %1388 = call ptr @__errno_location() #12
  %1389 = load i32, ptr %1388, align 4, !tbaa !5
  %1390 = call ptr @strerror(i32 noundef %1389) #11
  %1391 = call ptr @__errno_location() #12
  %1392 = load i32, ptr %1391, align 4, !tbaa !5
  %1393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1380, ptr noundef @.str.2, i32 noundef %1381, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 209, ptr noundef %1384, ptr noundef %1387, ptr noundef %1390, i32 noundef %1392) #11
  br label %1411

1394:                                             ; preds = %1372, %1365
  %1395 = load i32, ptr %43, align 4, !tbaa !5
  %1396 = call ptr @__errno_location() #12
  store i32 %1395, ptr %1396, align 4, !tbaa !5
  %1397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1398 = load i32, ptr @test_count, align 4, !tbaa !5
  %1399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1400 = load i32, ptr %1399, align 4, !tbaa !5
  %1401 = call ptr @s2n_strerror(i32 noundef %1400, ptr noundef @.str.4)
  %1402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1403 = load i32, ptr %1402, align 4, !tbaa !5
  %1404 = call ptr @s2n_strerror_debug(i32 noundef %1403, ptr noundef @.str.4)
  %1405 = call ptr @__errno_location() #12
  %1406 = load i32, ptr %1405, align 4, !tbaa !5
  %1407 = call ptr @strerror(i32 noundef %1406) #11
  %1408 = call ptr @__errno_location() #12
  %1409 = load i32, ptr %1408, align 4, !tbaa !5
  %1410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1397, ptr noundef @.str.5, i32 noundef %1398, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 209, ptr noundef %1401, ptr noundef %1404, ptr noundef %1407, i32 noundef %1409) #11
  br label %1411

1411:                                             ; preds = %1394, %1377
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %1412

1412:                                             ; preds = %1411
  br label %1413

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

1414:                                             ; No predecessors!
  br label %1415

1415:                                             ; preds = %1414
  br label %1416

1416:                                             ; preds = %1415, %1356
  br label %1417

1417:                                             ; preds = %1416
  br label %1418

1418:                                             ; preds = %1417
  br label %1419

1419:                                             ; preds = %1418
  %1420 = load i32, ptr @test_count, align 4, !tbaa !5
  %1421 = add nsw i32 %1420, 1
  store i32 %1421, ptr @test_count, align 4, !tbaa !5
  %1422 = load ptr, ptr %42, align 8, !tbaa !9
  %1423 = call i32 @s2n_connection_set_blinding(ptr noundef %1422, i32 noundef 1)
  %1424 = icmp eq i32 %1423, -1
  br i1 %1424, label %1425, label %1478

1425:                                             ; preds = %1419
  br label %1426

1426:                                             ; preds = %1425
  br label %1427

1427:                                             ; preds = %1426
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #11
  %1428 = call ptr @__errno_location() #12
  %1429 = load i32, ptr %1428, align 4, !tbaa !5
  store i32 %1429, ptr %44, align 4, !tbaa !5
  %1430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1431 = call i32 @s2n_print_stacktrace(ptr noundef %1430)
  %1432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1433 = trunc i8 %1432 to i1
  br i1 %1433, label %1434, label %1456

1434:                                             ; preds = %1427
  %1435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1436 = call i32 @fileno(ptr noundef %1435) #11
  %1437 = call i32 @isatty(i32 noundef %1436) #11
  %1438 = icmp ne i32 %1437, 0
  br i1 %1438, label %1439, label %1456

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

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

1473:                                             ; preds = %1456, %1439
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %1474

1474:                                             ; preds = %1473
  br label %1475

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

1476:                                             ; No predecessors!
  br label %1477

1477:                                             ; preds = %1476
  br label %1478

1478:                                             ; preds = %1477, %1419
  br label %1479

1479:                                             ; preds = %1478
  br label %1480

1480:                                             ; preds = %1479
  %1481 = load i32, ptr %15, align 4, !tbaa !5
  %1482 = trunc i32 %1481 to i16
  %1483 = load ptr, ptr %42, align 8, !tbaa !9
  %1484 = getelementptr inbounds %struct.s2n_connection, ptr %1483, i32 0, i32 53
  store i16 %1482, ptr %1484, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 80, ptr %45) #11
  call void @llvm.memset.p0.i64(ptr align 8 %45, i8 0, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 80, ptr %46) #11
  call void @llvm.memset.p0.i64(ptr align 8 %46, i8 0, i64 80, i1 false)
  br label %1485

1485:                                             ; preds = %1480
  %1486 = load i32, ptr @test_count, align 4, !tbaa !5
  %1487 = add nsw i32 %1486, 1
  store i32 %1487, ptr @test_count, align 4, !tbaa !5
  %1488 = load ptr, ptr %42, align 8, !tbaa !9
  %1489 = load ptr, ptr %39, align 8, !tbaa !9
  %1490 = call i32 @s2n_connections_set_blocking_io_pair(ptr noundef %45, ptr noundef %1488, ptr noundef %1489, ptr noundef %46)
  %1491 = getelementptr inbounds %struct.s2n_result, ptr %47, i32 0, i32 0
  store i32 %1490, ptr %1491, align 4
  %1492 = getelementptr inbounds %struct.s2n_result, ptr %47, i32 0, i32 0
  %1493 = load i32, ptr %1492, align 4
  %1494 = call zeroext i1 @s2n_result_is_ok(i32 %1493)
  br i1 %1494, label %1548, label %1495

1495:                                             ; preds = %1485
  br label %1496

1496:                                             ; preds = %1495
  br label %1497

1497:                                             ; preds = %1496
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #11
  %1498 = call ptr @__errno_location() #12
  %1499 = load i32, ptr %1498, align 4, !tbaa !5
  store i32 %1499, ptr %48, align 4, !tbaa !5
  %1500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1501 = call i32 @s2n_print_stacktrace(ptr noundef %1500)
  %1502 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1503 = trunc i8 %1502 to i1
  br i1 %1503, label %1504, label %1526

1504:                                             ; preds = %1497
  %1505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1506 = call i32 @fileno(ptr noundef %1505) #11
  %1507 = call i32 @isatty(i32 noundef %1506) #11
  %1508 = icmp ne i32 %1507, 0
  br i1 %1508, label %1509, label %1526

1509:                                             ; preds = %1504
  %1510 = load i32, ptr %48, align 4, !tbaa !5
  %1511 = call ptr @__errno_location() #12
  store i32 %1510, ptr %1511, align 4, !tbaa !5
  %1512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1513 = load i32, ptr @test_count, align 4, !tbaa !5
  %1514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1515 = load i32, ptr %1514, align 4, !tbaa !5
  %1516 = call ptr @s2n_strerror(i32 noundef %1515, ptr noundef @.str.4)
  %1517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1518 = load i32, ptr %1517, align 4, !tbaa !5
  %1519 = call ptr @s2n_strerror_debug(i32 noundef %1518, ptr noundef @.str.4)
  %1520 = call ptr @__errno_location() #12
  %1521 = load i32, ptr %1520, align 4, !tbaa !5
  %1522 = call ptr @strerror(i32 noundef %1521) #11
  %1523 = call ptr @__errno_location() #12
  %1524 = load i32, ptr %1523, align 4, !tbaa !5
  %1525 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1512, ptr noundef @.str.2, i32 noundef %1513, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 215, ptr noundef %1516, ptr noundef %1519, ptr noundef %1522, i32 noundef %1524) #11
  br label %1543

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

1543:                                             ; preds = %1526, %1509
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %1544

1544:                                             ; preds = %1543
  br label %1545

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

1546:                                             ; No predecessors!
  br label %1547

1547:                                             ; preds = %1546
  br label %1548

1548:                                             ; preds = %1547, %1485
  br label %1549

1549:                                             ; preds = %1548
  br label %1550

1550:                                             ; preds = %1549
  br label %1551

1551:                                             ; preds = %1596, %1550
  %1552 = load ptr, ptr %39, align 8, !tbaa !9
  %1553 = load ptr, ptr %42, align 8, !tbaa !9
  %1554 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %1552, ptr noundef %1553)
  %1555 = icmp slt i32 %1554, 0
  br i1 %1555, label %1556, label %1597

1556:                                             ; preds = %1551
  br label %1557

1557:                                             ; preds = %1556
  %1558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1559 = load i32, ptr %1558, align 4, !tbaa !5
  %1560 = icmp ne i32 %1559, 0
  br i1 %1560, label %1594, label %1561

1561:                                             ; preds = %1557
  br label %1562

1562:                                             ; preds = %1561
  br label %1563

1563:                                             ; preds = %1562
  %1564 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %1565 = getelementptr inbounds %struct.s2n_debug_info, ptr %1564, i32 0, i32 0
  store ptr @.str.25, ptr %1565, align 8, !tbaa !43
  %1566 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %1567 = getelementptr inbounds %struct.s2n_debug_info, ptr %1566, i32 0, i32 0
  %1568 = load ptr, ptr %1567, align 8, !tbaa !43
  %1569 = getelementptr inbounds i8, ptr %1568, i64 21
  %1570 = call ptr @strrchr(ptr noundef %1569, i32 noundef 47) #14
  %1571 = icmp ne ptr %1570, null
  br i1 %1571, label %1572, label %1579

1572:                                             ; preds = %1563
  %1573 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %1574 = getelementptr inbounds %struct.s2n_debug_info, ptr %1573, i32 0, i32 0
  %1575 = load ptr, ptr %1574, align 8, !tbaa !43
  %1576 = getelementptr inbounds i8, ptr %1575, i64 21
  %1577 = call ptr @strrchr(ptr noundef %1576, i32 noundef 47) #14
  %1578 = getelementptr inbounds i8, ptr %1577, i64 1
  br label %1584

1579:                                             ; preds = %1563
  %1580 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %1581 = getelementptr inbounds %struct.s2n_debug_info, ptr %1580, i32 0, i32 0
  %1582 = load ptr, ptr %1581, align 8, !tbaa !43
  %1583 = getelementptr inbounds i8, ptr %1582, i64 21
  br label %1584

1584:                                             ; preds = %1579, %1572
  %1585 = phi ptr [ %1578, %1572 ], [ %1583, %1579 ]
  %1586 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %1587 = getelementptr inbounds %struct.s2n_debug_info, ptr %1586, i32 0, i32 1
  store ptr %1585, ptr %1587, align 8, !tbaa !45
  %1588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 201326592, ptr %1588, align 4, !tbaa !5
  %1589 = call i32 @s2n_calculate_stacktrace()
  br label %1590

1590:                                             ; preds = %1584
  br label %1591

1591:                                             ; preds = %1590
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %13, align 4
  br label %1972

1592:                                             ; No predecessors!
  br label %1593

1593:                                             ; preds = %1592
  br label %1594

1594:                                             ; preds = %1593, %1557
  br label %1595

1595:                                             ; preds = %1594
  br label %1596

1596:                                             ; preds = %1595
  br label %1551, !llvm.loop !49

1597:                                             ; preds = %1551
  br label %1598

1598:                                             ; preds = %1597
  %1599 = load i32, ptr @test_count, align 4, !tbaa !5
  %1600 = add nsw i32 %1599, 1
  store i32 %1600, ptr @test_count, align 4, !tbaa !5
  %1601 = load ptr, ptr %39, align 8, !tbaa !9
  %1602 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %1601, i32 noundef 1)
  br i1 %1602, label %1656, label %1603

1603:                                             ; preds = %1598
  br label %1604

1604:                                             ; preds = %1603
  br label %1605

1605:                                             ; preds = %1604
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #11
  %1606 = call ptr @__errno_location() #12
  %1607 = load i32, ptr %1606, align 4, !tbaa !5
  store i32 %1607, ptr %49, align 4, !tbaa !5
  %1608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1609 = call i32 @s2n_print_stacktrace(ptr noundef %1608)
  %1610 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1611 = trunc i8 %1610 to i1
  br i1 %1611, label %1612, label %1634

1612:                                             ; preds = %1605
  %1613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1614 = call i32 @fileno(ptr noundef %1613) #11
  %1615 = call i32 @isatty(i32 noundef %1614) #11
  %1616 = icmp ne i32 %1615, 0
  br i1 %1616, label %1617, label %1634

1617:                                             ; preds = %1612
  %1618 = load i32, ptr %49, align 4, !tbaa !5
  %1619 = call ptr @__errno_location() #12
  store i32 %1618, ptr %1619, align 4, !tbaa !5
  %1620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1621 = load i32, ptr @test_count, align 4, !tbaa !5
  %1622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1623 = load i32, ptr %1622, align 4, !tbaa !5
  %1624 = call ptr @s2n_strerror(i32 noundef %1623, ptr noundef @.str.4)
  %1625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1626 = load i32, ptr %1625, align 4, !tbaa !5
  %1627 = call ptr @s2n_strerror_debug(i32 noundef %1626, ptr noundef @.str.4)
  %1628 = call ptr @__errno_location() #12
  %1629 = load i32, ptr %1628, align 4, !tbaa !5
  %1630 = call ptr @strerror(i32 noundef %1629) #11
  %1631 = call ptr @__errno_location() #12
  %1632 = load i32, ptr %1631, align 4, !tbaa !5
  %1633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1620, ptr noundef @.str.2, i32 noundef %1621, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 222, ptr noundef %1624, ptr noundef %1627, ptr noundef %1630, i32 noundef %1632) #11
  br label %1651

1634:                                             ; preds = %1612, %1605
  %1635 = load i32, ptr %49, align 4, !tbaa !5
  %1636 = call ptr @__errno_location() #12
  store i32 %1635, ptr %1636, align 4, !tbaa !5
  %1637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1638 = load i32, ptr @test_count, align 4, !tbaa !5
  %1639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1640 = load i32, ptr %1639, align 4, !tbaa !5
  %1641 = call ptr @s2n_strerror(i32 noundef %1640, ptr noundef @.str.4)
  %1642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1643 = load i32, ptr %1642, align 4, !tbaa !5
  %1644 = call ptr @s2n_strerror_debug(i32 noundef %1643, ptr noundef @.str.4)
  %1645 = call ptr @__errno_location() #12
  %1646 = load i32, ptr %1645, align 4, !tbaa !5
  %1647 = call ptr @strerror(i32 noundef %1646) #11
  %1648 = call ptr @__errno_location() #12
  %1649 = load i32, ptr %1648, align 4, !tbaa !5
  %1650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1637, ptr noundef @.str.5, i32 noundef %1638, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 222, ptr noundef %1641, ptr noundef %1644, ptr noundef %1647, i32 noundef %1649) #11
  br label %1651

1651:                                             ; preds = %1634, %1617
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %1652

1652:                                             ; preds = %1651
  br label %1653

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

1654:                                             ; No predecessors!
  br label %1655

1655:                                             ; preds = %1654
  br label %1656

1656:                                             ; preds = %1655, %1598
  br label %1657

1657:                                             ; preds = %1656
  br label %1658

1658:                                             ; preds = %1657
  br label %1659

1659:                                             ; preds = %1658
  %1660 = load i32, ptr @test_count, align 4, !tbaa !5
  %1661 = add nsw i32 %1660, 1
  store i32 %1661, ptr @test_count, align 4, !tbaa !5
  %1662 = load ptr, ptr %42, align 8, !tbaa !9
  %1663 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %1662, i32 noundef 1)
  br i1 %1663, label %1717, label %1664

1664:                                             ; preds = %1659
  br label %1665

1665:                                             ; preds = %1664
  br label %1666

1666:                                             ; preds = %1665
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #11
  %1667 = call ptr @__errno_location() #12
  %1668 = load i32, ptr %1667, align 4, !tbaa !5
  store i32 %1668, ptr %50, align 4, !tbaa !5
  %1669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1670 = call i32 @s2n_print_stacktrace(ptr noundef %1669)
  %1671 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1672 = trunc i8 %1671 to i1
  br i1 %1672, label %1673, label %1695

1673:                                             ; preds = %1666
  %1674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1675 = call i32 @fileno(ptr noundef %1674) #11
  %1676 = call i32 @isatty(i32 noundef %1675) #11
  %1677 = icmp ne i32 %1676, 0
  br i1 %1677, label %1678, label %1695

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

1695:                                             ; preds = %1673, %1666
  %1696 = load i32, ptr %50, align 4, !tbaa !5
  %1697 = call ptr @__errno_location() #12
  store i32 %1696, ptr %1697, align 4, !tbaa !5
  %1698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1699 = load i32, ptr @test_count, align 4, !tbaa !5
  %1700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1701 = load i32, ptr %1700, align 4, !tbaa !5
  %1702 = call ptr @s2n_strerror(i32 noundef %1701, ptr noundef @.str.4)
  %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_debug(i32 noundef %1704, ptr noundef @.str.4)
  %1706 = call ptr @__errno_location() #12
  %1707 = load i32, ptr %1706, align 4, !tbaa !5
  %1708 = call ptr @strerror(i32 noundef %1707) #11
  %1709 = call ptr @__errno_location() #12
  %1710 = load i32, ptr %1709, align 4, !tbaa !5
  %1711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1698, ptr noundef @.str.5, i32 noundef %1699, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 223, ptr noundef %1702, ptr noundef %1705, ptr noundef %1708, i32 noundef %1710) #11
  br label %1712

1712:                                             ; preds = %1695, %1678
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %1713

1713:                                             ; preds = %1712
  br label %1714

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

1715:                                             ; No predecessors!
  br label %1716

1716:                                             ; preds = %1715
  br label %1717

1717:                                             ; preds = %1716, %1659
  br label %1718

1718:                                             ; preds = %1717
  br label %1719

1719:                                             ; preds = %1718
  br label %1720

1720:                                             ; preds = %1719
  %1721 = load i32, ptr @test_count, align 4, !tbaa !5
  %1722 = add nsw i32 %1721, 1
  store i32 %1722, ptr @test_count, align 4, !tbaa !5
  %1723 = load ptr, ptr %39, align 8, !tbaa !9
  %1724 = call i32 @s2n_conn_get_current_message_type(ptr noundef %1723)
  %1725 = icmp eq i32 %1724, 20
  br i1 %1725, label %1779, label %1726

1726:                                             ; preds = %1720
  br label %1727

1727:                                             ; preds = %1726
  br label %1728

1728:                                             ; preds = %1727
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #11
  %1729 = call ptr @__errno_location() #12
  %1730 = load i32, ptr %1729, align 4, !tbaa !5
  store i32 %1730, ptr %51, align 4, !tbaa !5
  %1731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1732 = call i32 @s2n_print_stacktrace(ptr noundef %1731)
  %1733 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1734 = trunc i8 %1733 to i1
  br i1 %1734, label %1735, label %1757

1735:                                             ; preds = %1728
  %1736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1737 = call i32 @fileno(ptr noundef %1736) #11
  %1738 = call i32 @isatty(i32 noundef %1737) #11
  %1739 = icmp ne i32 %1738, 0
  br i1 %1739, label %1740, label %1757

1740:                                             ; preds = %1735
  %1741 = load i32, ptr %51, align 4, !tbaa !5
  %1742 = call ptr @__errno_location() #12
  store i32 %1741, ptr %1742, align 4, !tbaa !5
  %1743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1744 = load i32, ptr @test_count, align 4, !tbaa !5
  %1745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1746 = load i32, ptr %1745, align 4, !tbaa !5
  %1747 = call ptr @s2n_strerror(i32 noundef %1746, ptr noundef @.str.4)
  %1748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1749 = load i32, ptr %1748, align 4, !tbaa !5
  %1750 = call ptr @s2n_strerror_debug(i32 noundef %1749, ptr noundef @.str.4)
  %1751 = call ptr @__errno_location() #12
  %1752 = load i32, ptr %1751, align 4, !tbaa !5
  %1753 = call ptr @strerror(i32 noundef %1752) #11
  %1754 = call ptr @__errno_location() #12
  %1755 = load i32, ptr %1754, align 4, !tbaa !5
  %1756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1743, ptr noundef @.str.2, i32 noundef %1744, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 224, ptr noundef %1747, ptr noundef %1750, ptr noundef %1753, i32 noundef %1755) #11
  br label %1774

1757:                                             ; preds = %1735, %1728
  %1758 = load i32, ptr %51, align 4, !tbaa !5
  %1759 = call ptr @__errno_location() #12
  store i32 %1758, ptr %1759, align 4, !tbaa !5
  %1760 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1761 = load i32, ptr @test_count, align 4, !tbaa !5
  %1762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1763 = load i32, ptr %1762, align 4, !tbaa !5
  %1764 = call ptr @s2n_strerror(i32 noundef %1763, ptr noundef @.str.4)
  %1765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1766 = load i32, ptr %1765, align 4, !tbaa !5
  %1767 = call ptr @s2n_strerror_debug(i32 noundef %1766, ptr noundef @.str.4)
  %1768 = call ptr @__errno_location() #12
  %1769 = load i32, ptr %1768, align 4, !tbaa !5
  %1770 = call ptr @strerror(i32 noundef %1769) #11
  %1771 = call ptr @__errno_location() #12
  %1772 = load i32, ptr %1771, align 4, !tbaa !5
  %1773 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1760, ptr noundef @.str.5, i32 noundef %1761, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 224, ptr noundef %1764, ptr noundef %1767, ptr noundef %1770, i32 noundef %1772) #11
  br label %1774

1774:                                             ; preds = %1757, %1740
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %1775

1775:                                             ; preds = %1774
  br label %1776

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

1777:                                             ; No predecessors!
  br label %1778

1778:                                             ; preds = %1777
  br label %1779

1779:                                             ; preds = %1778, %1720
  br label %1780

1780:                                             ; preds = %1779
  br label %1781

1781:                                             ; preds = %1780
  br label %1782

1782:                                             ; preds = %1781
  %1783 = load i32, ptr @test_count, align 4, !tbaa !5
  %1784 = add nsw i32 %1783, 1
  store i32 %1784, ptr @test_count, align 4, !tbaa !5
  %1785 = load ptr, ptr %42, align 8, !tbaa !9
  %1786 = call i32 @s2n_conn_get_current_message_type(ptr noundef %1785)
  %1787 = icmp eq i32 %1786, 20
  br i1 %1787, label %1841, label %1788

1788:                                             ; preds = %1782
  br label %1789

1789:                                             ; preds = %1788
  br label %1790

1790:                                             ; preds = %1789
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #11
  %1791 = call ptr @__errno_location() #12
  %1792 = load i32, ptr %1791, align 4, !tbaa !5
  store i32 %1792, ptr %52, align 4, !tbaa !5
  %1793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1794 = call i32 @s2n_print_stacktrace(ptr noundef %1793)
  %1795 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1796 = trunc i8 %1795 to i1
  br i1 %1796, label %1797, label %1819

1797:                                             ; preds = %1790
  %1798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1799 = call i32 @fileno(ptr noundef %1798) #11
  %1800 = call i32 @isatty(i32 noundef %1799) #11
  %1801 = icmp ne i32 %1800, 0
  br i1 %1801, label %1802, label %1819

1802:                                             ; preds = %1797
  %1803 = load i32, ptr %52, align 4, !tbaa !5
  %1804 = call ptr @__errno_location() #12
  store i32 %1803, ptr %1804, align 4, !tbaa !5
  %1805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1806 = load i32, ptr @test_count, align 4, !tbaa !5
  %1807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1808 = load i32, ptr %1807, align 4, !tbaa !5
  %1809 = call ptr @s2n_strerror(i32 noundef %1808, ptr noundef @.str.4)
  %1810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1811 = load i32, ptr %1810, align 4, !tbaa !5
  %1812 = call ptr @s2n_strerror_debug(i32 noundef %1811, ptr noundef @.str.4)
  %1813 = call ptr @__errno_location() #12
  %1814 = load i32, ptr %1813, align 4, !tbaa !5
  %1815 = call ptr @strerror(i32 noundef %1814) #11
  %1816 = call ptr @__errno_location() #12
  %1817 = load i32, ptr %1816, align 4, !tbaa !5
  %1818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1805, ptr noundef @.str.2, i32 noundef %1806, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 225, ptr noundef %1809, ptr noundef %1812, ptr noundef %1815, i32 noundef %1817) #11
  br label %1836

1819:                                             ; preds = %1797, %1790
  %1820 = load i32, ptr %52, align 4, !tbaa !5
  %1821 = call ptr @__errno_location() #12
  store i32 %1820, ptr %1821, align 4, !tbaa !5
  %1822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1823 = load i32, ptr @test_count, align 4, !tbaa !5
  %1824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1825 = load i32, ptr %1824, align 4, !tbaa !5
  %1826 = call ptr @s2n_strerror(i32 noundef %1825, ptr noundef @.str.4)
  %1827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1828 = load i32, ptr %1827, align 4, !tbaa !5
  %1829 = call ptr @s2n_strerror_debug(i32 noundef %1828, ptr noundef @.str.4)
  %1830 = call ptr @__errno_location() #12
  %1831 = load i32, ptr %1830, align 4, !tbaa !5
  %1832 = call ptr @strerror(i32 noundef %1831) #11
  %1833 = call ptr @__errno_location() #12
  %1834 = load i32, ptr %1833, align 4, !tbaa !5
  %1835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1822, ptr noundef @.str.5, i32 noundef %1823, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 225, ptr noundef %1826, ptr noundef %1829, ptr noundef %1832, i32 noundef %1834) #11
  br label %1836

1836:                                             ; preds = %1819, %1802
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %1837

1837:                                             ; preds = %1836
  br label %1838

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

1839:                                             ; No predecessors!
  br label %1840

1840:                                             ; preds = %1839
  br label %1841

1841:                                             ; preds = %1840, %1782
  br label %1842

1842:                                             ; preds = %1841
  br label %1843

1843:                                             ; preds = %1842
  br label %1844

1844:                                             ; preds = %1843
  %1845 = load i32, ptr @test_count, align 4, !tbaa !5
  %1846 = add nsw i32 %1845, 1
  store i32 %1846, ptr @test_count, align 4, !tbaa !5
  %1847 = load ptr, ptr %39, align 8, !tbaa !9
  %1848 = getelementptr inbounds %struct.s2n_connection, ptr %1847, i32 0, i32 23
  %1849 = load i8, ptr %1848, align 4, !tbaa !48
  %1850 = zext i8 %1849 to i32
  %1851 = icmp eq i32 %1850, 33
  br i1 %1851, label %1905, label %1852

1852:                                             ; preds = %1844
  br label %1853

1853:                                             ; preds = %1852
  br label %1854

1854:                                             ; preds = %1853
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #11
  %1855 = call ptr @__errno_location() #12
  %1856 = load i32, ptr %1855, align 4, !tbaa !5
  store i32 %1856, ptr %53, align 4, !tbaa !5
  %1857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1858 = call i32 @s2n_print_stacktrace(ptr noundef %1857)
  %1859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1860 = trunc i8 %1859 to i1
  br i1 %1860, label %1861, label %1883

1861:                                             ; preds = %1854
  %1862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1863 = call i32 @fileno(ptr noundef %1862) #11
  %1864 = call i32 @isatty(i32 noundef %1863) #11
  %1865 = icmp ne i32 %1864, 0
  br i1 %1865, label %1866, label %1883

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

1883:                                             ; preds = %1861, %1854
  %1884 = load i32, ptr %53, align 4, !tbaa !5
  %1885 = call ptr @__errno_location() #12
  store i32 %1884, ptr %1885, align 4, !tbaa !5
  %1886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1887 = load i32, ptr @test_count, align 4, !tbaa !5
  %1888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1889 = load i32, ptr %1888, align 4, !tbaa !5
  %1890 = call ptr @s2n_strerror(i32 noundef %1889, ptr noundef @.str.4)
  %1891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  %1893 = call ptr @s2n_strerror_debug(i32 noundef %1892, ptr noundef @.str.4)
  %1894 = call ptr @__errno_location() #12
  %1895 = load i32, ptr %1894, align 4, !tbaa !5
  %1896 = call ptr @strerror(i32 noundef %1895) #11
  %1897 = call ptr @__errno_location() #12
  %1898 = load i32, ptr %1897, align 4, !tbaa !5
  %1899 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1886, ptr noundef @.str.5, i32 noundef %1887, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 228, ptr noundef %1890, ptr noundef %1893, ptr noundef %1896, i32 noundef %1898) #11
  br label %1900

1900:                                             ; preds = %1883, %1866
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %1901

1901:                                             ; preds = %1900
  br label %1902

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

1903:                                             ; No predecessors!
  br label %1904

1904:                                             ; preds = %1903
  br label %1905

1905:                                             ; preds = %1904, %1844
  br label %1906

1906:                                             ; preds = %1905
  br label %1907

1907:                                             ; preds = %1906
  br label %1908

1908:                                             ; preds = %1907
  %1909 = load i32, ptr @test_count, align 4, !tbaa !5
  %1910 = add nsw i32 %1909, 1
  store i32 %1910, ptr @test_count, align 4, !tbaa !5
  %1911 = load ptr, ptr %42, align 8, !tbaa !9
  %1912 = getelementptr inbounds %struct.s2n_connection, ptr %1911, i32 0, i32 23
  %1913 = load i8, ptr %1912, align 4, !tbaa !48
  %1914 = zext i8 %1913 to i32
  %1915 = icmp eq i32 %1914, 33
  br i1 %1915, label %1969, label %1916

1916:                                             ; preds = %1908
  br label %1917

1917:                                             ; preds = %1916
  br label %1918

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

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

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

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

1964:                                             ; preds = %1947, %1930
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %1965

1965:                                             ; preds = %1964
  br label %1966

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

1967:                                             ; No predecessors!
  br label %1968

1968:                                             ; preds = %1967
  br label %1969

1969:                                             ; preds = %1968, %1908
  br label %1970

1970:                                             ; preds = %1969
  br label %1971

1971:                                             ; preds = %1970
  store i32 0, ptr %13, align 4
  br label %1972

1972:                                             ; preds = %1971, %1591
  %1973 = call i32 @s2n_io_stuffer_pair_free(ptr noundef %46)
  %1974 = getelementptr inbounds %struct.s2n_result, ptr %55, i32 0, i32 0
  store i32 %1973, ptr %1974, align 4
  call void @llvm.lifetime.end.p0(i64 80, ptr %46) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr %45) #11
  %1975 = call i32 @s2n_connection_ptr_free(ptr noundef %42)
  %1976 = getelementptr inbounds %struct.s2n_result, ptr %56, i32 0, i32 0
  store i32 %1975, ptr %1976, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  %1977 = call i32 @s2n_connection_ptr_free(ptr noundef %39)
  %1978 = getelementptr inbounds %struct.s2n_result, ptr %57, i32 0, i32 0
  store i32 %1977, ptr %1978, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #11
  %1979 = call i32 @s2n_config_ptr_free(ptr noundef %37)
  %1980 = getelementptr inbounds %struct.s2n_result, ptr %58, i32 0, i32 0
  store i32 %1979, ptr %1980, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #11
  %1981 = load i32, ptr %13, align 4
  switch i32 %1981, label %5114 [
    i32 0, label %1982
  ]

1982:                                             ; preds = %1972
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #11
  %1983 = load ptr, ptr %10, align 8, !tbaa !9
  %1984 = call ptr @s2n_test_config_new(ptr noundef %1983)
  store ptr %1984, ptr %59, align 8, !tbaa !9
  br label %1985

1985:                                             ; preds = %1982
  %1986 = load i32, ptr @test_count, align 4, !tbaa !5
  %1987 = add nsw i32 %1986, 1
  store i32 %1987, ptr @test_count, align 4, !tbaa !5
  %1988 = load ptr, ptr %59, align 8, !tbaa !9
  %1989 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %1988, ptr noundef @s2n_client_hello_test_fn, ptr noundef null)
  %1990 = icmp eq i32 %1989, -1
  br i1 %1990, label %1991, label %2044

1991:                                             ; preds = %1985
  br label %1992

1992:                                             ; preds = %1991
  br label %1993

1993:                                             ; preds = %1992
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #11
  %1994 = call ptr @__errno_location() #12
  %1995 = load i32, ptr %1994, align 4, !tbaa !5
  store i32 %1995, ptr %60, align 4, !tbaa !5
  %1996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1997 = call i32 @s2n_print_stacktrace(ptr noundef %1996)
  %1998 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1999 = trunc i8 %1998 to i1
  br i1 %1999, label %2000, label %2022

2000:                                             ; preds = %1993
  %2001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2002 = call i32 @fileno(ptr noundef %2001) #11
  %2003 = call i32 @isatty(i32 noundef %2002) #11
  %2004 = icmp ne i32 %2003, 0
  br i1 %2004, label %2005, label %2022

2005:                                             ; preds = %2000
  %2006 = load i32, ptr %60, align 4, !tbaa !5
  %2007 = call ptr @__errno_location() #12
  store i32 %2006, ptr %2007, align 4, !tbaa !5
  %2008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2009 = load i32, ptr @test_count, align 4, !tbaa !5
  %2010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2011 = load i32, ptr %2010, align 4, !tbaa !5
  %2012 = call ptr @s2n_strerror(i32 noundef %2011, ptr noundef @.str.4)
  %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_debug(i32 noundef %2014, ptr noundef @.str.4)
  %2016 = call ptr @__errno_location() #12
  %2017 = load i32, ptr %2016, align 4, !tbaa !5
  %2018 = call ptr @strerror(i32 noundef %2017) #11
  %2019 = call ptr @__errno_location() #12
  %2020 = load i32, ptr %2019, align 4, !tbaa !5
  %2021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2008, ptr noundef @.str.2, i32 noundef %2009, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 241, ptr noundef %2012, ptr noundef %2015, ptr noundef %2018, i32 noundef %2020) #11
  br label %2039

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

2039:                                             ; preds = %2022, %2005
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %2040

2040:                                             ; preds = %2039
  br label %2041

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

2042:                                             ; No predecessors!
  br label %2043

2043:                                             ; preds = %2042
  br label %2044

2044:                                             ; preds = %2043, %1985
  br label %2045

2045:                                             ; preds = %2044
  br label %2046

2046:                                             ; preds = %2045
  br label %2047

2047:                                             ; preds = %2046
  %2048 = load i32, ptr @test_count, align 4, !tbaa !5
  %2049 = add nsw i32 %2048, 1
  store i32 %2049, ptr @test_count, align 4, !tbaa !5
  %2050 = load ptr, ptr %59, align 8, !tbaa !9
  %2051 = call i32 @s2n_config_set_client_hello_cb_mode(ptr noundef %2050, i32 noundef 1)
  %2052 = icmp eq i32 %2051, -1
  br i1 %2052, label %2053, label %2106

2053:                                             ; preds = %2047
  br label %2054

2054:                                             ; preds = %2053
  br label %2055

2055:                                             ; preds = %2054
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #11
  %2056 = call ptr @__errno_location() #12
  %2057 = load i32, ptr %2056, align 4, !tbaa !5
  store i32 %2057, ptr %61, align 4, !tbaa !5
  %2058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2059 = call i32 @s2n_print_stacktrace(ptr noundef %2058)
  %2060 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2061 = trunc i8 %2060 to i1
  br i1 %2061, label %2062, label %2084

2062:                                             ; preds = %2055
  %2063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2064 = call i32 @fileno(ptr noundef %2063) #11
  %2065 = call i32 @isatty(i32 noundef %2064) #11
  %2066 = icmp ne i32 %2065, 0
  br i1 %2066, label %2067, label %2084

2067:                                             ; preds = %2062
  %2068 = load i32, ptr %61, align 4, !tbaa !5
  %2069 = call ptr @__errno_location() #12
  store i32 %2068, ptr %2069, align 4, !tbaa !5
  %2070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2071 = load i32, ptr @test_count, align 4, !tbaa !5
  %2072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2073 = load i32, ptr %2072, align 4, !tbaa !5
  %2074 = call ptr @s2n_strerror(i32 noundef %2073, ptr noundef @.str.4)
  %2075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  %2077 = call ptr @s2n_strerror_debug(i32 noundef %2076, ptr noundef @.str.4)
  %2078 = call ptr @__errno_location() #12
  %2079 = load i32, ptr %2078, align 4, !tbaa !5
  %2080 = call ptr @strerror(i32 noundef %2079) #11
  %2081 = call ptr @__errno_location() #12
  %2082 = load i32, ptr %2081, align 4, !tbaa !5
  %2083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2070, ptr noundef @.str.2, i32 noundef %2071, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 242, ptr noundef %2074, ptr noundef %2077, ptr noundef %2080, i32 noundef %2082) #11
  br label %2101

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

2101:                                             ; preds = %2084, %2067
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #11
  br label %2102

2102:                                             ; preds = %2101
  br label %2103

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

2104:                                             ; No predecessors!
  br label %2105

2105:                                             ; preds = %2104
  br label %2106

2106:                                             ; preds = %2105, %2047
  br label %2107

2107:                                             ; preds = %2106
  br label %2108

2108:                                             ; preds = %2107
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #11
  %2109 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2109, ptr %62, align 8, !tbaa !9
  br label %2110

2110:                                             ; preds = %2108
  %2111 = load i32, ptr @test_count, align 4, !tbaa !5
  %2112 = add nsw i32 %2111, 1
  store i32 %2112, ptr @test_count, align 4, !tbaa !5
  %2113 = load ptr, ptr %62, align 8, !tbaa !9
  %2114 = load ptr, ptr %59, align 8, !tbaa !9
  %2115 = call i32 @s2n_connection_set_config(ptr noundef %2113, ptr noundef %2114)
  %2116 = icmp eq i32 %2115, -1
  br i1 %2116, label %2117, label %2170

2117:                                             ; preds = %2110
  br label %2118

2118:                                             ; preds = %2117
  br label %2119

2119:                                             ; preds = %2118
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #11
  %2120 = call ptr @__errno_location() #12
  %2121 = load i32, ptr %2120, align 4, !tbaa !5
  store i32 %2121, ptr %63, align 4, !tbaa !5
  %2122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2123 = call i32 @s2n_print_stacktrace(ptr noundef %2122)
  %2124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2125 = trunc i8 %2124 to i1
  br i1 %2125, label %2126, label %2148

2126:                                             ; preds = %2119
  %2127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2128 = call i32 @fileno(ptr noundef %2127) #11
  %2129 = call i32 @isatty(i32 noundef %2128) #11
  %2130 = icmp ne i32 %2129, 0
  br i1 %2130, label %2131, label %2148

2131:                                             ; preds = %2126
  %2132 = load i32, ptr %63, align 4, !tbaa !5
  %2133 = call ptr @__errno_location() #12
  store i32 %2132, ptr %2133, align 4, !tbaa !5
  %2134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2135 = load i32, ptr @test_count, align 4, !tbaa !5
  %2136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2137 = load i32, ptr %2136, align 4, !tbaa !5
  %2138 = call ptr @s2n_strerror(i32 noundef %2137, ptr noundef @.str.4)
  %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_debug(i32 noundef %2140, ptr noundef @.str.4)
  %2142 = call ptr @__errno_location() #12
  %2143 = load i32, ptr %2142, align 4, !tbaa !5
  %2144 = call ptr @strerror(i32 noundef %2143) #11
  %2145 = call ptr @__errno_location() #12
  %2146 = load i32, ptr %2145, align 4, !tbaa !5
  %2147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2134, ptr noundef @.str.2, i32 noundef %2135, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 245, ptr noundef %2138, ptr noundef %2141, ptr noundef %2144, i32 noundef %2146) #11
  br label %2165

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

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

2166:                                             ; preds = %2165
  br label %2167

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

2168:                                             ; No predecessors!
  br label %2169

2169:                                             ; preds = %2168
  br label %2170

2170:                                             ; preds = %2169, %2110
  br label %2171

2171:                                             ; preds = %2170
  br label %2172

2172:                                             ; preds = %2171
  br label %2173

2173:                                             ; preds = %2172
  %2174 = load i32, ptr @test_count, align 4, !tbaa !5
  %2175 = add nsw i32 %2174, 1
  store i32 %2175, ptr @test_count, align 4, !tbaa !5
  %2176 = load ptr, ptr %62, align 8, !tbaa !9
  %2177 = call i32 @s2n_connection_set_blinding(ptr noundef %2176, i32 noundef 1)
  %2178 = icmp eq i32 %2177, -1
  br i1 %2178, label %2179, label %2232

2179:                                             ; preds = %2173
  br label %2180

2180:                                             ; preds = %2179
  br label %2181

2181:                                             ; preds = %2180
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  %2182 = call ptr @__errno_location() #12
  %2183 = load i32, ptr %2182, align 4, !tbaa !5
  store i32 %2183, ptr %64, align 4, !tbaa !5
  %2184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2185 = call i32 @s2n_print_stacktrace(ptr noundef %2184)
  %2186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2187 = trunc i8 %2186 to i1
  br i1 %2187, label %2188, label %2210

2188:                                             ; preds = %2181
  %2189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2190 = call i32 @fileno(ptr noundef %2189) #11
  %2191 = call i32 @isatty(i32 noundef %2190) #11
  %2192 = icmp ne i32 %2191, 0
  br i1 %2192, label %2193, label %2210

2193:                                             ; preds = %2188
  %2194 = load i32, ptr %64, align 4, !tbaa !5
  %2195 = call ptr @__errno_location() #12
  store i32 %2194, ptr %2195, align 4, !tbaa !5
  %2196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2197 = load i32, ptr @test_count, align 4, !tbaa !5
  %2198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2199 = load i32, ptr %2198, align 4, !tbaa !5
  %2200 = call ptr @s2n_strerror(i32 noundef %2199, ptr noundef @.str.4)
  %2201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2202 = load i32, ptr %2201, align 4, !tbaa !5
  %2203 = call ptr @s2n_strerror_debug(i32 noundef %2202, ptr noundef @.str.4)
  %2204 = call ptr @__errno_location() #12
  %2205 = load i32, ptr %2204, align 4, !tbaa !5
  %2206 = call ptr @strerror(i32 noundef %2205) #11
  %2207 = call ptr @__errno_location() #12
  %2208 = load i32, ptr %2207, align 4, !tbaa !5
  %2209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2196, ptr noundef @.str.2, i32 noundef %2197, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 246, ptr noundef %2200, ptr noundef %2203, ptr noundef %2206, i32 noundef %2208) #11
  br label %2227

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

2227:                                             ; preds = %2210, %2193
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

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

2230:                                             ; No predecessors!
  br label %2231

2231:                                             ; preds = %2230
  br label %2232

2232:                                             ; preds = %2231, %2173
  br label %2233

2233:                                             ; preds = %2232
  br label %2234

2234:                                             ; preds = %2233
  %2235 = load i32, ptr %14, align 4, !tbaa !5
  %2236 = trunc i32 %2235 to i16
  %2237 = load ptr, ptr %62, align 8, !tbaa !9
  %2238 = getelementptr inbounds %struct.s2n_connection, ptr %2237, i32 0, i32 53
  store i16 %2236, ptr %2238, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #11
  %2239 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2239, ptr %65, align 8, !tbaa !9
  br label %2240

2240:                                             ; preds = %2234
  %2241 = load i32, ptr @test_count, align 4, !tbaa !5
  %2242 = add nsw i32 %2241, 1
  store i32 %2242, ptr @test_count, align 4, !tbaa !5
  %2243 = load ptr, ptr %65, align 8, !tbaa !9
  %2244 = load ptr, ptr %59, align 8, !tbaa !9
  %2245 = call i32 @s2n_connection_set_config(ptr noundef %2243, ptr noundef %2244)
  %2246 = icmp eq i32 %2245, -1
  br i1 %2246, label %2247, label %2300

2247:                                             ; preds = %2240
  br label %2248

2248:                                             ; preds = %2247
  br label %2249

2249:                                             ; preds = %2248
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  %2250 = call ptr @__errno_location() #12
  %2251 = load i32, ptr %2250, align 4, !tbaa !5
  store i32 %2251, ptr %66, align 4, !tbaa !5
  %2252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2253 = call i32 @s2n_print_stacktrace(ptr noundef %2252)
  %2254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2255 = trunc i8 %2254 to i1
  br i1 %2255, label %2256, label %2278

2256:                                             ; preds = %2249
  %2257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2258 = call i32 @fileno(ptr noundef %2257) #11
  %2259 = call i32 @isatty(i32 noundef %2258) #11
  %2260 = icmp ne i32 %2259, 0
  br i1 %2260, label %2261, label %2278

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

2278:                                             ; preds = %2256, %2249
  %2279 = load i32, ptr %66, align 4, !tbaa !5
  %2280 = call ptr @__errno_location() #12
  store i32 %2279, ptr %2280, align 4, !tbaa !5
  %2281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2282 = load i32, ptr @test_count, align 4, !tbaa !5
  %2283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2284 = load i32, ptr %2283, align 4, !tbaa !5
  %2285 = call ptr @s2n_strerror(i32 noundef %2284, ptr noundef @.str.4)
  %2286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2287 = load i32, ptr %2286, align 4, !tbaa !5
  %2288 = call ptr @s2n_strerror_debug(i32 noundef %2287, ptr noundef @.str.4)
  %2289 = call ptr @__errno_location() #12
  %2290 = load i32, ptr %2289, align 4, !tbaa !5
  %2291 = call ptr @strerror(i32 noundef %2290) #11
  %2292 = call ptr @__errno_location() #12
  %2293 = load i32, ptr %2292, align 4, !tbaa !5
  %2294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2281, ptr noundef @.str.5, i32 noundef %2282, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 250, ptr noundef %2285, ptr noundef %2288, ptr noundef %2291, i32 noundef %2293) #11
  br label %2295

2295:                                             ; preds = %2278, %2261
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %2296

2296:                                             ; preds = %2295
  br label %2297

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

2298:                                             ; No predecessors!
  br label %2299

2299:                                             ; preds = %2298
  br label %2300

2300:                                             ; preds = %2299, %2240
  br label %2301

2301:                                             ; preds = %2300
  br label %2302

2302:                                             ; preds = %2301
  br label %2303

2303:                                             ; preds = %2302
  %2304 = load i32, ptr @test_count, align 4, !tbaa !5
  %2305 = add nsw i32 %2304, 1
  store i32 %2305, ptr @test_count, align 4, !tbaa !5
  %2306 = load ptr, ptr %65, align 8, !tbaa !9
  %2307 = call i32 @s2n_connection_set_blinding(ptr noundef %2306, i32 noundef 1)
  %2308 = icmp eq i32 %2307, -1
  br i1 %2308, label %2309, label %2362

2309:                                             ; preds = %2303
  br label %2310

2310:                                             ; preds = %2309
  br label %2311

2311:                                             ; preds = %2310
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  %2312 = call ptr @__errno_location() #12
  %2313 = load i32, ptr %2312, align 4, !tbaa !5
  store i32 %2313, ptr %67, align 4, !tbaa !5
  %2314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2315 = call i32 @s2n_print_stacktrace(ptr noundef %2314)
  %2316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2317 = trunc i8 %2316 to i1
  br i1 %2317, label %2318, label %2340

2318:                                             ; preds = %2311
  %2319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2320 = call i32 @fileno(ptr noundef %2319) #11
  %2321 = call i32 @isatty(i32 noundef %2320) #11
  %2322 = icmp ne i32 %2321, 0
  br i1 %2322, label %2323, label %2340

2323:                                             ; preds = %2318
  %2324 = load i32, ptr %67, align 4, !tbaa !5
  %2325 = call ptr @__errno_location() #12
  store i32 %2324, ptr %2325, align 4, !tbaa !5
  %2326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2327 = load i32, ptr @test_count, align 4, !tbaa !5
  %2328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2329 = load i32, ptr %2328, align 4, !tbaa !5
  %2330 = call ptr @s2n_strerror(i32 noundef %2329, ptr noundef @.str.4)
  %2331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2332 = load i32, ptr %2331, align 4, !tbaa !5
  %2333 = call ptr @s2n_strerror_debug(i32 noundef %2332, ptr noundef @.str.4)
  %2334 = call ptr @__errno_location() #12
  %2335 = load i32, ptr %2334, align 4, !tbaa !5
  %2336 = call ptr @strerror(i32 noundef %2335) #11
  %2337 = call ptr @__errno_location() #12
  %2338 = load i32, ptr %2337, align 4, !tbaa !5
  %2339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2326, ptr noundef @.str.2, i32 noundef %2327, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 251, ptr noundef %2330, ptr noundef %2333, ptr noundef %2336, i32 noundef %2338) #11
  br label %2357

2340:                                             ; preds = %2318, %2311
  %2341 = load i32, ptr %67, align 4, !tbaa !5
  %2342 = call ptr @__errno_location() #12
  store i32 %2341, ptr %2342, align 4, !tbaa !5
  %2343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2344 = load i32, ptr @test_count, align 4, !tbaa !5
  %2345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2346 = load i32, ptr %2345, align 4, !tbaa !5
  %2347 = call ptr @s2n_strerror(i32 noundef %2346, ptr noundef @.str.4)
  %2348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2349 = load i32, ptr %2348, align 4, !tbaa !5
  %2350 = call ptr @s2n_strerror_debug(i32 noundef %2349, ptr noundef @.str.4)
  %2351 = call ptr @__errno_location() #12
  %2352 = load i32, ptr %2351, align 4, !tbaa !5
  %2353 = call ptr @strerror(i32 noundef %2352) #11
  %2354 = call ptr @__errno_location() #12
  %2355 = load i32, ptr %2354, align 4, !tbaa !5
  %2356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2343, ptr noundef @.str.5, i32 noundef %2344, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 251, ptr noundef %2347, ptr noundef %2350, ptr noundef %2353, i32 noundef %2355) #11
  br label %2357

2357:                                             ; preds = %2340, %2323
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %2358

2358:                                             ; preds = %2357
  br label %2359

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

2360:                                             ; No predecessors!
  br label %2361

2361:                                             ; preds = %2360
  br label %2362

2362:                                             ; preds = %2361, %2303
  br label %2363

2363:                                             ; preds = %2362
  br label %2364

2364:                                             ; preds = %2363
  %2365 = load i32, ptr %15, align 4, !tbaa !5
  %2366 = trunc i32 %2365 to i16
  %2367 = load ptr, ptr %65, align 8, !tbaa !9
  %2368 = getelementptr inbounds %struct.s2n_connection, ptr %2367, i32 0, i32 53
  store i16 %2366, ptr %2368, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 80, ptr %68) #11
  call void @llvm.memset.p0.i64(ptr align 8 %68, i8 0, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 80, ptr %69) #11
  call void @llvm.memset.p0.i64(ptr align 8 %69, i8 0, i64 80, i1 false)
  br label %2369

2369:                                             ; preds = %2364
  %2370 = load i32, ptr @test_count, align 4, !tbaa !5
  %2371 = add nsw i32 %2370, 1
  store i32 %2371, ptr @test_count, align 4, !tbaa !5
  %2372 = load ptr, ptr %65, align 8, !tbaa !9
  %2373 = load ptr, ptr %62, align 8, !tbaa !9
  %2374 = call i32 @s2n_connections_set_blocking_io_pair(ptr noundef %68, ptr noundef %2372, ptr noundef %2373, ptr noundef %69)
  %2375 = getelementptr inbounds %struct.s2n_result, ptr %70, i32 0, i32 0
  store i32 %2374, ptr %2375, align 4
  %2376 = getelementptr inbounds %struct.s2n_result, ptr %70, i32 0, i32 0
  %2377 = load i32, ptr %2376, align 4
  %2378 = call zeroext i1 @s2n_result_is_ok(i32 %2377)
  br i1 %2378, label %2432, label %2379

2379:                                             ; preds = %2369
  br label %2380

2380:                                             ; preds = %2379
  br label %2381

2381:                                             ; preds = %2380
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #11
  %2382 = call ptr @__errno_location() #12
  %2383 = load i32, ptr %2382, align 4, !tbaa !5
  store i32 %2383, ptr %71, align 4, !tbaa !5
  %2384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2385 = call i32 @s2n_print_stacktrace(ptr noundef %2384)
  %2386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2387 = trunc i8 %2386 to i1
  br i1 %2387, label %2388, label %2410

2388:                                             ; preds = %2381
  %2389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2390 = call i32 @fileno(ptr noundef %2389) #11
  %2391 = call i32 @isatty(i32 noundef %2390) #11
  %2392 = icmp ne i32 %2391, 0
  br i1 %2392, label %2393, label %2410

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

2410:                                             ; preds = %2388, %2381
  %2411 = load i32, ptr %71, align 4, !tbaa !5
  %2412 = call ptr @__errno_location() #12
  store i32 %2411, ptr %2412, align 4, !tbaa !5
  %2413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2414 = load i32, ptr @test_count, align 4, !tbaa !5
  %2415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  %2417 = call ptr @s2n_strerror(i32 noundef %2416, ptr noundef @.str.4)
  %2418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2419 = load i32, ptr %2418, align 4, !tbaa !5
  %2420 = call ptr @s2n_strerror_debug(i32 noundef %2419, ptr noundef @.str.4)
  %2421 = call ptr @__errno_location() #12
  %2422 = load i32, ptr %2421, align 4, !tbaa !5
  %2423 = call ptr @strerror(i32 noundef %2422) #11
  %2424 = call ptr @__errno_location() #12
  %2425 = load i32, ptr %2424, align 4, !tbaa !5
  %2426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2413, ptr noundef @.str.5, i32 noundef %2414, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 256, ptr noundef %2417, ptr noundef %2420, ptr noundef %2423, i32 noundef %2425) #11
  br label %2427

2427:                                             ; preds = %2410, %2393
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %2428

2428:                                             ; preds = %2427
  br label %2429

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

2430:                                             ; No predecessors!
  br label %2431

2431:                                             ; preds = %2430
  br label %2432

2432:                                             ; preds = %2431, %2369
  br label %2433

2433:                                             ; preds = %2432
  br label %2434

2434:                                             ; preds = %2433
  call void @llvm.lifetime.start.p0(i64 1, ptr %72) #11
  store i8 0, ptr %72, align 1, !tbaa !11
  br label %2435

2435:                                             ; preds = %2548, %2434
  %2436 = load ptr, ptr %62, align 8, !tbaa !9
  %2437 = load ptr, ptr %65, align 8, !tbaa !9
  %2438 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %2436, ptr noundef %2437)
  %2439 = icmp slt i32 %2438, 0
  br i1 %2439, label %2440, label %2549

2440:                                             ; preds = %2435
  %2441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2442 = load i32, ptr %2441, align 4, !tbaa !5
  %2443 = icmp eq i32 %2442, 201326593
  br i1 %2443, label %2444, label %2507

2444:                                             ; preds = %2440
  br label %2445

2445:                                             ; preds = %2444
  %2446 = load i32, ptr @test_count, align 4, !tbaa !5
  %2447 = add nsw i32 %2446, 1
  store i32 %2447, ptr @test_count, align 4, !tbaa !5
  %2448 = load ptr, ptr %62, align 8, !tbaa !9
  %2449 = call i32 @s2n_client_hello_cb_done(ptr noundef %2448)
  %2450 = icmp eq i32 %2449, -1
  br i1 %2450, label %2451, label %2504

2451:                                             ; preds = %2445
  br label %2452

2452:                                             ; preds = %2451
  br label %2453

2453:                                             ; preds = %2452
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #11
  %2454 = call ptr @__errno_location() #12
  %2455 = load i32, ptr %2454, align 4, !tbaa !5
  store i32 %2455, ptr %73, align 4, !tbaa !5
  %2456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2457 = call i32 @s2n_print_stacktrace(ptr noundef %2456)
  %2458 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2459 = trunc i8 %2458 to i1
  br i1 %2459, label %2460, label %2482

2460:                                             ; preds = %2453
  %2461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2462 = call i32 @fileno(ptr noundef %2461) #11
  %2463 = call i32 @isatty(i32 noundef %2462) #11
  %2464 = icmp ne i32 %2463, 0
  br i1 %2464, label %2465, label %2482

2465:                                             ; preds = %2460
  %2466 = load i32, ptr %73, align 4, !tbaa !5
  %2467 = call ptr @__errno_location() #12
  store i32 %2466, ptr %2467, align 4, !tbaa !5
  %2468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2469 = load i32, ptr @test_count, align 4, !tbaa !5
  %2470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2471 = load i32, ptr %2470, align 4, !tbaa !5
  %2472 = call ptr @s2n_strerror(i32 noundef %2471, ptr noundef @.str.4)
  %2473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2474 = load i32, ptr %2473, align 4, !tbaa !5
  %2475 = call ptr @s2n_strerror_debug(i32 noundef %2474, ptr noundef @.str.4)
  %2476 = call ptr @__errno_location() #12
  %2477 = load i32, ptr %2476, align 4, !tbaa !5
  %2478 = call ptr @strerror(i32 noundef %2477) #11
  %2479 = call ptr @__errno_location() #12
  %2480 = load i32, ptr %2479, align 4, !tbaa !5
  %2481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2468, ptr noundef @.str.2, i32 noundef %2469, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 261, ptr noundef %2472, ptr noundef %2475, ptr noundef %2478, i32 noundef %2480) #11
  br label %2499

2482:                                             ; preds = %2460, %2453
  %2483 = load i32, ptr %73, align 4, !tbaa !5
  %2484 = call ptr @__errno_location() #12
  store i32 %2483, ptr %2484, align 4, !tbaa !5
  %2485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2486 = load i32, ptr @test_count, align 4, !tbaa !5
  %2487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2488 = load i32, ptr %2487, align 4, !tbaa !5
  %2489 = call ptr @s2n_strerror(i32 noundef %2488, ptr noundef @.str.4)
  %2490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2491 = load i32, ptr %2490, align 4, !tbaa !5
  %2492 = call ptr @s2n_strerror_debug(i32 noundef %2491, ptr noundef @.str.4)
  %2493 = call ptr @__errno_location() #12
  %2494 = load i32, ptr %2493, align 4, !tbaa !5
  %2495 = call ptr @strerror(i32 noundef %2494) #11
  %2496 = call ptr @__errno_location() #12
  %2497 = load i32, ptr %2496, align 4, !tbaa !5
  %2498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2485, ptr noundef @.str.5, i32 noundef %2486, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 261, ptr noundef %2489, ptr noundef %2492, ptr noundef %2495, i32 noundef %2497) #11
  br label %2499

2499:                                             ; preds = %2482, %2465
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #11
  br label %2500

2500:                                             ; preds = %2499
  br label %2501

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

2502:                                             ; No predecessors!
  br label %2503

2503:                                             ; preds = %2502
  br label %2504

2504:                                             ; preds = %2503, %2445
  br label %2505

2505:                                             ; preds = %2504
  br label %2506

2506:                                             ; preds = %2505
  store i8 1, ptr %72, align 1, !tbaa !11
  br label %2548

2507:                                             ; preds = %2440
  br label %2508

2508:                                             ; preds = %2507
  %2509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2510 = load i32, ptr %2509, align 4, !tbaa !5
  %2511 = icmp ne i32 %2510, 0
  br i1 %2511, label %2545, label %2512

2512:                                             ; preds = %2508
  br label %2513

2513:                                             ; preds = %2512
  br label %2514

2514:                                             ; preds = %2513
  %2515 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2516 = getelementptr inbounds %struct.s2n_debug_info, ptr %2515, i32 0, i32 0
  store ptr @.str.31, ptr %2516, align 8, !tbaa !43
  %2517 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2518 = getelementptr inbounds %struct.s2n_debug_info, ptr %2517, i32 0, i32 0
  %2519 = load ptr, ptr %2518, align 8, !tbaa !43
  %2520 = getelementptr inbounds i8, ptr %2519, i64 21
  %2521 = call ptr @strrchr(ptr noundef %2520, i32 noundef 47) #14
  %2522 = icmp ne ptr %2521, null
  br i1 %2522, label %2523, label %2530

2523:                                             ; preds = %2514
  %2524 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2525 = getelementptr inbounds %struct.s2n_debug_info, ptr %2524, i32 0, i32 0
  %2526 = load ptr, ptr %2525, align 8, !tbaa !43
  %2527 = getelementptr inbounds i8, ptr %2526, i64 21
  %2528 = call ptr @strrchr(ptr noundef %2527, i32 noundef 47) #14
  %2529 = getelementptr inbounds i8, ptr %2528, i64 1
  br label %2535

2530:                                             ; preds = %2514
  %2531 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2532 = getelementptr inbounds %struct.s2n_debug_info, ptr %2531, i32 0, i32 0
  %2533 = load ptr, ptr %2532, align 8, !tbaa !43
  %2534 = getelementptr inbounds i8, ptr %2533, i64 21
  br label %2535

2535:                                             ; preds = %2530, %2523
  %2536 = phi ptr [ %2529, %2523 ], [ %2534, %2530 ]
  %2537 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %2538 = getelementptr inbounds %struct.s2n_debug_info, ptr %2537, i32 0, i32 1
  store ptr %2536, ptr %2538, align 8, !tbaa !45
  %2539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 201326592, ptr %2539, align 4, !tbaa !5
  %2540 = call i32 @s2n_calculate_stacktrace()
  br label %2541

2541:                                             ; preds = %2535
  br label %2542

2542:                                             ; preds = %2541
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %13, align 4
  br label %2857

2543:                                             ; No predecessors!
  br label %2544

2544:                                             ; preds = %2543
  br label %2545

2545:                                             ; preds = %2544, %2508
  br label %2546

2546:                                             ; preds = %2545
  br label %2547

2547:                                             ; preds = %2546
  br label %2548

2548:                                             ; preds = %2547, %2506
  br label %2435, !llvm.loop !50

2549:                                             ; preds = %2435
  br label %2550

2550:                                             ; preds = %2549
  %2551 = load i32, ptr @test_count, align 4, !tbaa !5
  %2552 = add nsw i32 %2551, 1
  store i32 %2552, ptr @test_count, align 4, !tbaa !5
  %2553 = load i8, ptr %72, align 1, !tbaa !11, !range !13, !noundef !14
  %2554 = trunc i8 %2553 to i1
  br i1 %2554, label %2608, label %2555

2555:                                             ; preds = %2550
  br label %2556

2556:                                             ; preds = %2555
  br label %2557

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

2564:                                             ; preds = %2557
  %2565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2566 = call i32 @fileno(ptr noundef %2565) #11
  %2567 = call i32 @isatty(i32 noundef %2566) #11
  %2568 = icmp ne i32 %2567, 0
  br i1 %2568, label %2569, label %2586

2569:                                             ; preds = %2564
  %2570 = load i32, ptr %74, align 4, !tbaa !5
  %2571 = call ptr @__errno_location() #12
  store i32 %2570, ptr %2571, align 4, !tbaa !5
  %2572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2573 = load i32, ptr @test_count, align 4, !tbaa !5
  %2574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2575 = load i32, ptr %2574, align 4, !tbaa !5
  %2576 = call ptr @s2n_strerror(i32 noundef %2575, ptr noundef @.str.4)
  %2577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2578 = load i32, ptr %2577, align 4, !tbaa !5
  %2579 = call ptr @s2n_strerror_debug(i32 noundef %2578, ptr noundef @.str.4)
  %2580 = call ptr @__errno_location() #12
  %2581 = load i32, ptr %2580, align 4, !tbaa !5
  %2582 = call ptr @strerror(i32 noundef %2581) #11
  %2583 = call ptr @__errno_location() #12
  %2584 = load i32, ptr %2583, align 4, !tbaa !5
  %2585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2572, ptr noundef @.str.2, i32 noundef %2573, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 267, ptr noundef %2576, ptr noundef %2579, ptr noundef %2582, i32 noundef %2584) #11
  br label %2603

2586:                                             ; preds = %2564, %2557
  %2587 = load i32, ptr %74, align 4, !tbaa !5
  %2588 = call ptr @__errno_location() #12
  store i32 %2587, ptr %2588, align 4, !tbaa !5
  %2589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2590 = load i32, ptr @test_count, align 4, !tbaa !5
  %2591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2592 = load i32, ptr %2591, align 4, !tbaa !5
  %2593 = call ptr @s2n_strerror(i32 noundef %2592, ptr noundef @.str.4)
  %2594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2595 = load i32, ptr %2594, align 4, !tbaa !5
  %2596 = call ptr @s2n_strerror_debug(i32 noundef %2595, ptr noundef @.str.4)
  %2597 = call ptr @__errno_location() #12
  %2598 = load i32, ptr %2597, align 4, !tbaa !5
  %2599 = call ptr @strerror(i32 noundef %2598) #11
  %2600 = call ptr @__errno_location() #12
  %2601 = load i32, ptr %2600, align 4, !tbaa !5
  %2602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2589, ptr noundef @.str.5, i32 noundef %2590, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 267, ptr noundef %2593, ptr noundef %2596, ptr noundef %2599, i32 noundef %2601) #11
  br label %2603

2603:                                             ; preds = %2586, %2569
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %2604

2604:                                             ; preds = %2603
  br label %2605

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

2606:                                             ; No predecessors!
  br label %2607

2607:                                             ; preds = %2606
  br label %2608

2608:                                             ; preds = %2607, %2550
  br label %2609

2609:                                             ; preds = %2608
  br label %2610

2610:                                             ; preds = %2609
  br label %2611

2611:                                             ; preds = %2610
  %2612 = load i32, ptr @test_count, align 4, !tbaa !5
  %2613 = add nsw i32 %2612, 1
  store i32 %2613, ptr @test_count, align 4, !tbaa !5
  %2614 = load ptr, ptr %62, align 8, !tbaa !9
  %2615 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %2614, i32 noundef 1)
  br i1 %2615, label %2669, label %2616

2616:                                             ; preds = %2611
  br label %2617

2617:                                             ; preds = %2616
  br label %2618

2618:                                             ; preds = %2617
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #11
  %2619 = call ptr @__errno_location() #12
  %2620 = load i32, ptr %2619, align 4, !tbaa !5
  store i32 %2620, ptr %75, align 4, !tbaa !5
  %2621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2622 = call i32 @s2n_print_stacktrace(ptr noundef %2621)
  %2623 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2624 = trunc i8 %2623 to i1
  br i1 %2624, label %2625, label %2647

2625:                                             ; preds = %2618
  %2626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2627 = call i32 @fileno(ptr noundef %2626) #11
  %2628 = call i32 @isatty(i32 noundef %2627) #11
  %2629 = icmp ne i32 %2628, 0
  br i1 %2629, label %2630, label %2647

2630:                                             ; preds = %2625
  %2631 = load i32, ptr %75, align 4, !tbaa !5
  %2632 = call ptr @__errno_location() #12
  store i32 %2631, ptr %2632, align 4, !tbaa !5
  %2633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2634 = load i32, ptr @test_count, align 4, !tbaa !5
  %2635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2636 = load i32, ptr %2635, align 4, !tbaa !5
  %2637 = call ptr @s2n_strerror(i32 noundef %2636, ptr noundef @.str.4)
  %2638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2639 = load i32, ptr %2638, align 4, !tbaa !5
  %2640 = call ptr @s2n_strerror_debug(i32 noundef %2639, ptr noundef @.str.4)
  %2641 = call ptr @__errno_location() #12
  %2642 = load i32, ptr %2641, align 4, !tbaa !5
  %2643 = call ptr @strerror(i32 noundef %2642) #11
  %2644 = call ptr @__errno_location() #12
  %2645 = load i32, ptr %2644, align 4, !tbaa !5
  %2646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2633, ptr noundef @.str.2, i32 noundef %2634, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 270, ptr noundef %2637, ptr noundef %2640, ptr noundef %2643, i32 noundef %2645) #11
  br label %2664

2647:                                             ; preds = %2625, %2618
  %2648 = load i32, ptr %75, align 4, !tbaa !5
  %2649 = call ptr @__errno_location() #12
  store i32 %2648, ptr %2649, align 4, !tbaa !5
  %2650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2651 = load i32, ptr @test_count, align 4, !tbaa !5
  %2652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2653 = load i32, ptr %2652, align 4, !tbaa !5
  %2654 = call ptr @s2n_strerror(i32 noundef %2653, ptr noundef @.str.4)
  %2655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2656 = load i32, ptr %2655, align 4, !tbaa !5
  %2657 = call ptr @s2n_strerror_debug(i32 noundef %2656, ptr noundef @.str.4)
  %2658 = call ptr @__errno_location() #12
  %2659 = load i32, ptr %2658, align 4, !tbaa !5
  %2660 = call ptr @strerror(i32 noundef %2659) #11
  %2661 = call ptr @__errno_location() #12
  %2662 = load i32, ptr %2661, align 4, !tbaa !5
  %2663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2650, ptr noundef @.str.5, i32 noundef %2651, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 270, ptr noundef %2654, ptr noundef %2657, ptr noundef %2660, i32 noundef %2662) #11
  br label %2664

2664:                                             ; preds = %2647, %2630
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #11
  br label %2665

2665:                                             ; preds = %2664
  br label %2666

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

2667:                                             ; No predecessors!
  br label %2668

2668:                                             ; preds = %2667
  br label %2669

2669:                                             ; preds = %2668, %2611
  br label %2670

2670:                                             ; preds = %2669
  br label %2671

2671:                                             ; preds = %2670
  br label %2672

2672:                                             ; preds = %2671
  %2673 = load i32, ptr @test_count, align 4, !tbaa !5
  %2674 = add nsw i32 %2673, 1
  store i32 %2674, ptr @test_count, align 4, !tbaa !5
  %2675 = load ptr, ptr %65, align 8, !tbaa !9
  %2676 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %2675, i32 noundef 1)
  br i1 %2676, label %2730, label %2677

2677:                                             ; preds = %2672
  br label %2678

2678:                                             ; preds = %2677
  br label %2679

2679:                                             ; preds = %2678
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #11
  %2680 = call ptr @__errno_location() #12
  %2681 = load i32, ptr %2680, align 4, !tbaa !5
  store i32 %2681, ptr %76, align 4, !tbaa !5
  %2682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2683 = call i32 @s2n_print_stacktrace(ptr noundef %2682)
  %2684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2685 = trunc i8 %2684 to i1
  br i1 %2685, label %2686, label %2708

2686:                                             ; preds = %2679
  %2687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2688 = call i32 @fileno(ptr noundef %2687) #11
  %2689 = call i32 @isatty(i32 noundef %2688) #11
  %2690 = icmp ne i32 %2689, 0
  br i1 %2690, label %2691, label %2708

2691:                                             ; preds = %2686
  %2692 = load i32, ptr %76, align 4, !tbaa !5
  %2693 = call ptr @__errno_location() #12
  store i32 %2692, ptr %2693, align 4, !tbaa !5
  %2694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2695 = load i32, ptr @test_count, align 4, !tbaa !5
  %2696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2697 = load i32, ptr %2696, align 4, !tbaa !5
  %2698 = call ptr @s2n_strerror(i32 noundef %2697, ptr noundef @.str.4)
  %2699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2700 = load i32, ptr %2699, align 4, !tbaa !5
  %2701 = call ptr @s2n_strerror_debug(i32 noundef %2700, ptr noundef @.str.4)
  %2702 = call ptr @__errno_location() #12
  %2703 = load i32, ptr %2702, align 4, !tbaa !5
  %2704 = call ptr @strerror(i32 noundef %2703) #11
  %2705 = call ptr @__errno_location() #12
  %2706 = load i32, ptr %2705, align 4, !tbaa !5
  %2707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2694, ptr noundef @.str.2, i32 noundef %2695, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 271, ptr noundef %2698, ptr noundef %2701, ptr noundef %2704, i32 noundef %2706) #11
  br label %2725

2708:                                             ; preds = %2686, %2679
  %2709 = load i32, ptr %76, align 4, !tbaa !5
  %2710 = call ptr @__errno_location() #12
  store i32 %2709, ptr %2710, align 4, !tbaa !5
  %2711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2712 = load i32, ptr @test_count, align 4, !tbaa !5
  %2713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2714 = load i32, ptr %2713, align 4, !tbaa !5
  %2715 = call ptr @s2n_strerror(i32 noundef %2714, ptr noundef @.str.4)
  %2716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2717 = load i32, ptr %2716, align 4, !tbaa !5
  %2718 = call ptr @s2n_strerror_debug(i32 noundef %2717, ptr noundef @.str.4)
  %2719 = call ptr @__errno_location() #12
  %2720 = load i32, ptr %2719, align 4, !tbaa !5
  %2721 = call ptr @strerror(i32 noundef %2720) #11
  %2722 = call ptr @__errno_location() #12
  %2723 = load i32, ptr %2722, align 4, !tbaa !5
  %2724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2711, ptr noundef @.str.5, i32 noundef %2712, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 271, ptr noundef %2715, ptr noundef %2718, ptr noundef %2721, i32 noundef %2723) #11
  br label %2725

2725:                                             ; preds = %2708, %2691
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #11
  br label %2726

2726:                                             ; preds = %2725
  br label %2727

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

2728:                                             ; No predecessors!
  br label %2729

2729:                                             ; preds = %2728
  br label %2730

2730:                                             ; preds = %2729, %2672
  br label %2731

2731:                                             ; preds = %2730
  br label %2732

2732:                                             ; preds = %2731
  br label %2733

2733:                                             ; preds = %2732
  %2734 = load i32, ptr @test_count, align 4, !tbaa !5
  %2735 = add nsw i32 %2734, 1
  store i32 %2735, ptr @test_count, align 4, !tbaa !5
  %2736 = load ptr, ptr %62, align 8, !tbaa !9
  %2737 = call i32 @s2n_conn_get_current_message_type(ptr noundef %2736)
  %2738 = icmp eq i32 %2737, 20
  br i1 %2738, label %2792, label %2739

2739:                                             ; preds = %2733
  br label %2740

2740:                                             ; preds = %2739
  br label %2741

2741:                                             ; preds = %2740
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #11
  %2742 = call ptr @__errno_location() #12
  %2743 = load i32, ptr %2742, align 4, !tbaa !5
  store i32 %2743, ptr %77, align 4, !tbaa !5
  %2744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2745 = call i32 @s2n_print_stacktrace(ptr noundef %2744)
  %2746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2747 = trunc i8 %2746 to i1
  br i1 %2747, label %2748, label %2770

2748:                                             ; preds = %2741
  %2749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2750 = call i32 @fileno(ptr noundef %2749) #11
  %2751 = call i32 @isatty(i32 noundef %2750) #11
  %2752 = icmp ne i32 %2751, 0
  br i1 %2752, label %2753, label %2770

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

2770:                                             ; preds = %2748, %2741
  %2771 = load i32, ptr %77, align 4, !tbaa !5
  %2772 = call ptr @__errno_location() #12
  store i32 %2771, ptr %2772, align 4, !tbaa !5
  %2773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2774 = load i32, ptr @test_count, align 4, !tbaa !5
  %2775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2776 = load i32, ptr %2775, align 4, !tbaa !5
  %2777 = call ptr @s2n_strerror(i32 noundef %2776, ptr noundef @.str.4)
  %2778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2779 = load i32, ptr %2778, align 4, !tbaa !5
  %2780 = call ptr @s2n_strerror_debug(i32 noundef %2779, ptr noundef @.str.4)
  %2781 = call ptr @__errno_location() #12
  %2782 = load i32, ptr %2781, align 4, !tbaa !5
  %2783 = call ptr @strerror(i32 noundef %2782) #11
  %2784 = call ptr @__errno_location() #12
  %2785 = load i32, ptr %2784, align 4, !tbaa !5
  %2786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2773, ptr noundef @.str.5, i32 noundef %2774, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 272, ptr noundef %2777, ptr noundef %2780, ptr noundef %2783, i32 noundef %2785) #11
  br label %2787

2787:                                             ; preds = %2770, %2753
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  br label %2788

2788:                                             ; preds = %2787
  br label %2789

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

2790:                                             ; No predecessors!
  br label %2791

2791:                                             ; preds = %2790
  br label %2792

2792:                                             ; preds = %2791, %2733
  br label %2793

2793:                                             ; preds = %2792
  br label %2794

2794:                                             ; preds = %2793
  br label %2795

2795:                                             ; preds = %2794
  %2796 = load i32, ptr @test_count, align 4, !tbaa !5
  %2797 = add nsw i32 %2796, 1
  store i32 %2797, ptr @test_count, align 4, !tbaa !5
  %2798 = load ptr, ptr %65, align 8, !tbaa !9
  %2799 = call i32 @s2n_conn_get_current_message_type(ptr noundef %2798)
  %2800 = icmp eq i32 %2799, 20
  br i1 %2800, label %2854, label %2801

2801:                                             ; preds = %2795
  br label %2802

2802:                                             ; preds = %2801
  br label %2803

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

2810:                                             ; preds = %2803
  %2811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2812 = call i32 @fileno(ptr noundef %2811) #11
  %2813 = call i32 @isatty(i32 noundef %2812) #11
  %2814 = icmp ne i32 %2813, 0
  br i1 %2814, label %2815, label %2832

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

2832:                                             ; preds = %2810, %2803
  %2833 = load i32, ptr %78, align 4, !tbaa !5
  %2834 = call ptr @__errno_location() #12
  store i32 %2833, ptr %2834, align 4, !tbaa !5
  %2835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2836 = load i32, ptr @test_count, align 4, !tbaa !5
  %2837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2838 = load i32, ptr %2837, align 4, !tbaa !5
  %2839 = call ptr @s2n_strerror(i32 noundef %2838, ptr noundef @.str.4)
  %2840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2841 = load i32, ptr %2840, align 4, !tbaa !5
  %2842 = call ptr @s2n_strerror_debug(i32 noundef %2841, ptr noundef @.str.4)
  %2843 = call ptr @__errno_location() #12
  %2844 = load i32, ptr %2843, align 4, !tbaa !5
  %2845 = call ptr @strerror(i32 noundef %2844) #11
  %2846 = call ptr @__errno_location() #12
  %2847 = load i32, ptr %2846, align 4, !tbaa !5
  %2848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2835, ptr noundef @.str.5, i32 noundef %2836, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 273, ptr noundef %2839, ptr noundef %2842, ptr noundef %2845, i32 noundef %2847) #11
  br label %2849

2849:                                             ; preds = %2832, %2815
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  br label %2850

2850:                                             ; preds = %2849
  br label %2851

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

2852:                                             ; No predecessors!
  br label %2853

2853:                                             ; preds = %2852
  br label %2854

2854:                                             ; preds = %2853, %2795
  br label %2855

2855:                                             ; preds = %2854
  br label %2856

2856:                                             ; preds = %2855
  store i32 0, ptr %13, align 4
  br label %2857

2857:                                             ; preds = %2856, %2542
  call void @llvm.lifetime.end.p0(i64 1, ptr %72) #11
  %2858 = call i32 @s2n_io_stuffer_pair_free(ptr noundef %69)
  %2859 = getelementptr inbounds %struct.s2n_result, ptr %79, i32 0, i32 0
  store i32 %2858, ptr %2859, align 4
  call void @llvm.lifetime.end.p0(i64 80, ptr %69) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr %68) #11
  %2860 = call i32 @s2n_connection_ptr_free(ptr noundef %65)
  %2861 = getelementptr inbounds %struct.s2n_result, ptr %80, i32 0, i32 0
  store i32 %2860, ptr %2861, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #11
  %2862 = call i32 @s2n_connection_ptr_free(ptr noundef %62)
  %2863 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  store i32 %2862, ptr %2863, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #11
  %2864 = call i32 @s2n_config_ptr_free(ptr noundef %59)
  %2865 = getelementptr inbounds %struct.s2n_result, ptr %82, i32 0, i32 0
  store i32 %2864, ptr %2865, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #11
  %2866 = load i32, ptr %13, align 4
  switch i32 %2866, label %5114 [
    i32 0, label %2867
  ]

2867:                                             ; preds = %2857
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #11
  %2868 = load ptr, ptr %10, align 8, !tbaa !9
  %2869 = call ptr @s2n_test_config_new(ptr noundef %2868)
  store ptr %2869, ptr %83, align 8, !tbaa !9
  br label %2870

2870:                                             ; preds = %2867
  %2871 = load i32, ptr @test_count, align 4, !tbaa !5
  %2872 = add nsw i32 %2871, 1
  store i32 %2872, ptr @test_count, align 4, !tbaa !5
  %2873 = load ptr, ptr %83, align 8, !tbaa !9
  %2874 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef %2873, ptr noundef @async_pkey_test_fn)
  %2875 = icmp eq i32 %2874, -1
  br i1 %2875, label %2876, label %2929

2876:                                             ; preds = %2870
  br label %2877

2877:                                             ; preds = %2876
  br label %2878

2878:                                             ; preds = %2877
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #11
  %2879 = call ptr @__errno_location() #12
  %2880 = load i32, ptr %2879, align 4, !tbaa !5
  store i32 %2880, ptr %84, align 4, !tbaa !5
  %2881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2882 = call i32 @s2n_print_stacktrace(ptr noundef %2881)
  %2883 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2884 = trunc i8 %2883 to i1
  br i1 %2884, label %2885, label %2907

2885:                                             ; preds = %2878
  %2886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2887 = call i32 @fileno(ptr noundef %2886) #11
  %2888 = call i32 @isatty(i32 noundef %2887) #11
  %2889 = icmp ne i32 %2888, 0
  br i1 %2889, label %2890, label %2907

2890:                                             ; preds = %2885
  %2891 = load i32, ptr %84, align 4, !tbaa !5
  %2892 = call ptr @__errno_location() #12
  store i32 %2891, ptr %2892, align 4, !tbaa !5
  %2893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2894 = load i32, ptr @test_count, align 4, !tbaa !5
  %2895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2896 = load i32, ptr %2895, align 4, !tbaa !5
  %2897 = call ptr @s2n_strerror(i32 noundef %2896, ptr noundef @.str.4)
  %2898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2899 = load i32, ptr %2898, align 4, !tbaa !5
  %2900 = call ptr @s2n_strerror_debug(i32 noundef %2899, ptr noundef @.str.4)
  %2901 = call ptr @__errno_location() #12
  %2902 = load i32, ptr %2901, align 4, !tbaa !5
  %2903 = call ptr @strerror(i32 noundef %2902) #11
  %2904 = call ptr @__errno_location() #12
  %2905 = load i32, ptr %2904, align 4, !tbaa !5
  %2906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2893, ptr noundef @.str.2, i32 noundef %2894, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 287, ptr noundef %2897, ptr noundef %2900, ptr noundef %2903, i32 noundef %2905) #11
  br label %2924

2907:                                             ; preds = %2885, %2878
  %2908 = load i32, ptr %84, align 4, !tbaa !5
  %2909 = call ptr @__errno_location() #12
  store i32 %2908, ptr %2909, align 4, !tbaa !5
  %2910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2911 = load i32, ptr @test_count, align 4, !tbaa !5
  %2912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  %2914 = call ptr @s2n_strerror(i32 noundef %2913, ptr noundef @.str.4)
  %2915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2916 = load i32, ptr %2915, align 4, !tbaa !5
  %2917 = call ptr @s2n_strerror_debug(i32 noundef %2916, ptr noundef @.str.4)
  %2918 = call ptr @__errno_location() #12
  %2919 = load i32, ptr %2918, align 4, !tbaa !5
  %2920 = call ptr @strerror(i32 noundef %2919) #11
  %2921 = call ptr @__errno_location() #12
  %2922 = load i32, ptr %2921, align 4, !tbaa !5
  %2923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2910, ptr noundef @.str.5, i32 noundef %2911, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 287, ptr noundef %2914, ptr noundef %2917, ptr noundef %2920, i32 noundef %2922) #11
  br label %2924

2924:                                             ; preds = %2907, %2890
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #11
  br label %2925

2925:                                             ; preds = %2924
  br label %2926

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

2927:                                             ; No predecessors!
  br label %2928

2928:                                             ; preds = %2927
  br label %2929

2929:                                             ; preds = %2928, %2870
  br label %2930

2930:                                             ; preds = %2929
  br label %2931

2931:                                             ; preds = %2930
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #11
  %2932 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2932, ptr %85, align 8, !tbaa !9
  br label %2933

2933:                                             ; preds = %2931
  %2934 = load i32, ptr @test_count, align 4, !tbaa !5
  %2935 = add nsw i32 %2934, 1
  store i32 %2935, ptr @test_count, align 4, !tbaa !5
  %2936 = load ptr, ptr %85, align 8, !tbaa !9
  %2937 = load ptr, ptr %83, align 8, !tbaa !9
  %2938 = call i32 @s2n_connection_set_config(ptr noundef %2936, ptr noundef %2937)
  %2939 = icmp eq i32 %2938, -1
  br i1 %2939, label %2940, label %2993

2940:                                             ; preds = %2933
  br label %2941

2941:                                             ; preds = %2940
  br label %2942

2942:                                             ; preds = %2941
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #11
  %2943 = call ptr @__errno_location() #12
  %2944 = load i32, ptr %2943, align 4, !tbaa !5
  store i32 %2944, ptr %86, align 4, !tbaa !5
  %2945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2946 = call i32 @s2n_print_stacktrace(ptr noundef %2945)
  %2947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2948 = trunc i8 %2947 to i1
  br i1 %2948, label %2949, label %2971

2949:                                             ; preds = %2942
  %2950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2951 = call i32 @fileno(ptr noundef %2950) #11
  %2952 = call i32 @isatty(i32 noundef %2951) #11
  %2953 = icmp ne i32 %2952, 0
  br i1 %2953, label %2954, label %2971

2954:                                             ; preds = %2949
  %2955 = load i32, ptr %86, align 4, !tbaa !5
  %2956 = call ptr @__errno_location() #12
  store i32 %2955, ptr %2956, align 4, !tbaa !5
  %2957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2958 = load i32, ptr @test_count, align 4, !tbaa !5
  %2959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2960 = load i32, ptr %2959, align 4, !tbaa !5
  %2961 = call ptr @s2n_strerror(i32 noundef %2960, ptr noundef @.str.4)
  %2962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2963 = load i32, ptr %2962, align 4, !tbaa !5
  %2964 = call ptr @s2n_strerror_debug(i32 noundef %2963, ptr noundef @.str.4)
  %2965 = call ptr @__errno_location() #12
  %2966 = load i32, ptr %2965, align 4, !tbaa !5
  %2967 = call ptr @strerror(i32 noundef %2966) #11
  %2968 = call ptr @__errno_location() #12
  %2969 = load i32, ptr %2968, align 4, !tbaa !5
  %2970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2957, ptr noundef @.str.2, i32 noundef %2958, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 290, ptr noundef %2961, ptr noundef %2964, ptr noundef %2967, i32 noundef %2969) #11
  br label %2988

2971:                                             ; preds = %2949, %2942
  %2972 = load i32, ptr %86, align 4, !tbaa !5
  %2973 = call ptr @__errno_location() #12
  store i32 %2972, ptr %2973, align 4, !tbaa !5
  %2974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2975 = load i32, ptr @test_count, align 4, !tbaa !5
  %2976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2977 = load i32, ptr %2976, align 4, !tbaa !5
  %2978 = call ptr @s2n_strerror(i32 noundef %2977, ptr noundef @.str.4)
  %2979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2980 = load i32, ptr %2979, align 4, !tbaa !5
  %2981 = call ptr @s2n_strerror_debug(i32 noundef %2980, ptr noundef @.str.4)
  %2982 = call ptr @__errno_location() #12
  %2983 = load i32, ptr %2982, align 4, !tbaa !5
  %2984 = call ptr @strerror(i32 noundef %2983) #11
  %2985 = call ptr @__errno_location() #12
  %2986 = load i32, ptr %2985, align 4, !tbaa !5
  %2987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2974, ptr noundef @.str.5, i32 noundef %2975, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 290, ptr noundef %2978, ptr noundef %2981, ptr noundef %2984, i32 noundef %2986) #11
  br label %2988

2988:                                             ; preds = %2971, %2954
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  br label %2989

2989:                                             ; preds = %2988
  br label %2990

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

2991:                                             ; No predecessors!
  br label %2992

2992:                                             ; preds = %2991
  br label %2993

2993:                                             ; preds = %2992, %2933
  br label %2994

2994:                                             ; preds = %2993
  br label %2995

2995:                                             ; preds = %2994
  br label %2996

2996:                                             ; preds = %2995
  %2997 = load i32, ptr @test_count, align 4, !tbaa !5
  %2998 = add nsw i32 %2997, 1
  store i32 %2998, ptr @test_count, align 4, !tbaa !5
  %2999 = load ptr, ptr %85, align 8, !tbaa !9
  %3000 = call i32 @s2n_connection_set_blinding(ptr noundef %2999, i32 noundef 1)
  %3001 = icmp eq i32 %3000, -1
  br i1 %3001, label %3002, label %3055

3002:                                             ; preds = %2996
  br label %3003

3003:                                             ; preds = %3002
  br label %3004

3004:                                             ; preds = %3003
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #11
  %3005 = call ptr @__errno_location() #12
  %3006 = load i32, ptr %3005, align 4, !tbaa !5
  store i32 %3006, ptr %87, align 4, !tbaa !5
  %3007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3008 = call i32 @s2n_print_stacktrace(ptr noundef %3007)
  %3009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3010 = trunc i8 %3009 to i1
  br i1 %3010, label %3011, label %3033

3011:                                             ; preds = %3004
  %3012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3013 = call i32 @fileno(ptr noundef %3012) #11
  %3014 = call i32 @isatty(i32 noundef %3013) #11
  %3015 = icmp ne i32 %3014, 0
  br i1 %3015, label %3016, label %3033

3016:                                             ; preds = %3011
  %3017 = load i32, ptr %87, align 4, !tbaa !5
  %3018 = call ptr @__errno_location() #12
  store i32 %3017, ptr %3018, align 4, !tbaa !5
  %3019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3020 = load i32, ptr @test_count, align 4, !tbaa !5
  %3021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3022 = load i32, ptr %3021, align 4, !tbaa !5
  %3023 = call ptr @s2n_strerror(i32 noundef %3022, ptr noundef @.str.4)
  %3024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3025 = load i32, ptr %3024, align 4, !tbaa !5
  %3026 = call ptr @s2n_strerror_debug(i32 noundef %3025, ptr noundef @.str.4)
  %3027 = call ptr @__errno_location() #12
  %3028 = load i32, ptr %3027, align 4, !tbaa !5
  %3029 = call ptr @strerror(i32 noundef %3028) #11
  %3030 = call ptr @__errno_location() #12
  %3031 = load i32, ptr %3030, align 4, !tbaa !5
  %3032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3019, ptr noundef @.str.2, i32 noundef %3020, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 291, ptr noundef %3023, ptr noundef %3026, ptr noundef %3029, i32 noundef %3031) #11
  br label %3050

3033:                                             ; preds = %3011, %3004
  %3034 = load i32, ptr %87, align 4, !tbaa !5
  %3035 = call ptr @__errno_location() #12
  store i32 %3034, ptr %3035, align 4, !tbaa !5
  %3036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3037 = load i32, ptr @test_count, align 4, !tbaa !5
  %3038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3039 = load i32, ptr %3038, align 4, !tbaa !5
  %3040 = call ptr @s2n_strerror(i32 noundef %3039, ptr noundef @.str.4)
  %3041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3042 = load i32, ptr %3041, align 4, !tbaa !5
  %3043 = call ptr @s2n_strerror_debug(i32 noundef %3042, ptr noundef @.str.4)
  %3044 = call ptr @__errno_location() #12
  %3045 = load i32, ptr %3044, align 4, !tbaa !5
  %3046 = call ptr @strerror(i32 noundef %3045) #11
  %3047 = call ptr @__errno_location() #12
  %3048 = load i32, ptr %3047, align 4, !tbaa !5
  %3049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3036, ptr noundef @.str.5, i32 noundef %3037, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 291, ptr noundef %3040, ptr noundef %3043, ptr noundef %3046, i32 noundef %3048) #11
  br label %3050

3050:                                             ; preds = %3033, %3016
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  br label %3051

3051:                                             ; preds = %3050
  br label %3052

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

3053:                                             ; No predecessors!
  br label %3054

3054:                                             ; preds = %3053
  br label %3055

3055:                                             ; preds = %3054, %2996
  br label %3056

3056:                                             ; preds = %3055
  br label %3057

3057:                                             ; preds = %3056
  %3058 = load i32, ptr %14, align 4, !tbaa !5
  %3059 = trunc i32 %3058 to i16
  %3060 = load ptr, ptr %85, align 8, !tbaa !9
  %3061 = getelementptr inbounds %struct.s2n_connection, ptr %3060, i32 0, i32 53
  store i16 %3059, ptr %3061, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #11
  %3062 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3062, ptr %88, align 8, !tbaa !9
  br label %3063

3063:                                             ; preds = %3057
  %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 %88, align 8, !tbaa !9
  %3067 = load ptr, ptr %83, align 8, !tbaa !9
  %3068 = call i32 @s2n_connection_set_config(ptr noundef %3066, ptr noundef %3067)
  %3069 = icmp eq i32 %3068, -1
  br i1 %3069, label %3070, label %3123

3070:                                             ; preds = %3063
  br label %3071

3071:                                             ; preds = %3070
  br label %3072

3072:                                             ; preds = %3071
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #11
  %3073 = call ptr @__errno_location() #12
  %3074 = load i32, ptr %3073, align 4, !tbaa !5
  store i32 %3074, ptr %89, align 4, !tbaa !5
  %3075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3076 = call i32 @s2n_print_stacktrace(ptr noundef %3075)
  %3077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3078 = trunc i8 %3077 to i1
  br i1 %3078, label %3079, label %3101

3079:                                             ; preds = %3072
  %3080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3081 = call i32 @fileno(ptr noundef %3080) #11
  %3082 = call i32 @isatty(i32 noundef %3081) #11
  %3083 = icmp ne i32 %3082, 0
  br i1 %3083, label %3084, label %3101

3084:                                             ; preds = %3079
  %3085 = load i32, ptr %89, align 4, !tbaa !5
  %3086 = call ptr @__errno_location() #12
  store i32 %3085, ptr %3086, align 4, !tbaa !5
  %3087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3088 = load i32, ptr @test_count, align 4, !tbaa !5
  %3089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3090 = load i32, ptr %3089, align 4, !tbaa !5
  %3091 = call ptr @s2n_strerror(i32 noundef %3090, ptr noundef @.str.4)
  %3092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3093 = load i32, ptr %3092, align 4, !tbaa !5
  %3094 = call ptr @s2n_strerror_debug(i32 noundef %3093, ptr noundef @.str.4)
  %3095 = call ptr @__errno_location() #12
  %3096 = load i32, ptr %3095, align 4, !tbaa !5
  %3097 = call ptr @strerror(i32 noundef %3096) #11
  %3098 = call ptr @__errno_location() #12
  %3099 = load i32, ptr %3098, align 4, !tbaa !5
  %3100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3087, ptr noundef @.str.2, i32 noundef %3088, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 295, ptr noundef %3091, ptr noundef %3094, ptr noundef %3097, i32 noundef %3099) #11
  br label %3118

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

3118:                                             ; preds = %3101, %3084
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %3119

3119:                                             ; preds = %3118
  br label %3120

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

3121:                                             ; No predecessors!
  br label %3122

3122:                                             ; preds = %3121
  br label %3123

3123:                                             ; preds = %3122, %3063
  br label %3124

3124:                                             ; preds = %3123
  br label %3125

3125:                                             ; preds = %3124
  br label %3126

3126:                                             ; preds = %3125
  %3127 = load i32, ptr @test_count, align 4, !tbaa !5
  %3128 = add nsw i32 %3127, 1
  store i32 %3128, ptr @test_count, align 4, !tbaa !5
  %3129 = load ptr, ptr %88, align 8, !tbaa !9
  %3130 = call i32 @s2n_connection_set_blinding(ptr noundef %3129, i32 noundef 1)
  %3131 = icmp eq i32 %3130, -1
  br i1 %3131, label %3132, label %3185

3132:                                             ; preds = %3126
  br label %3133

3133:                                             ; preds = %3132
  br label %3134

3134:                                             ; preds = %3133
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #11
  %3135 = call ptr @__errno_location() #12
  %3136 = load i32, ptr %3135, align 4, !tbaa !5
  store i32 %3136, ptr %90, align 4, !tbaa !5
  %3137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3138 = call i32 @s2n_print_stacktrace(ptr noundef %3137)
  %3139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3140 = trunc i8 %3139 to i1
  br i1 %3140, label %3141, label %3163

3141:                                             ; preds = %3134
  %3142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3143 = call i32 @fileno(ptr noundef %3142) #11
  %3144 = call i32 @isatty(i32 noundef %3143) #11
  %3145 = icmp ne i32 %3144, 0
  br i1 %3145, label %3146, label %3163

3146:                                             ; preds = %3141
  %3147 = load i32, ptr %90, align 4, !tbaa !5
  %3148 = call ptr @__errno_location() #12
  store i32 %3147, ptr %3148, align 4, !tbaa !5
  %3149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3150 = load i32, ptr @test_count, align 4, !tbaa !5
  %3151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3152 = load i32, ptr %3151, align 4, !tbaa !5
  %3153 = call ptr @s2n_strerror(i32 noundef %3152, ptr noundef @.str.4)
  %3154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3155 = load i32, ptr %3154, align 4, !tbaa !5
  %3156 = call ptr @s2n_strerror_debug(i32 noundef %3155, ptr noundef @.str.4)
  %3157 = call ptr @__errno_location() #12
  %3158 = load i32, ptr %3157, align 4, !tbaa !5
  %3159 = call ptr @strerror(i32 noundef %3158) #11
  %3160 = call ptr @__errno_location() #12
  %3161 = load i32, ptr %3160, align 4, !tbaa !5
  %3162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3149, ptr noundef @.str.2, i32 noundef %3150, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 296, ptr noundef %3153, ptr noundef %3156, ptr noundef %3159, i32 noundef %3161) #11
  br label %3180

3163:                                             ; preds = %3141, %3134
  %3164 = load i32, ptr %90, align 4, !tbaa !5
  %3165 = call ptr @__errno_location() #12
  store i32 %3164, ptr %3165, align 4, !tbaa !5
  %3166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3167 = load i32, ptr @test_count, align 4, !tbaa !5
  %3168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3169 = load i32, ptr %3168, align 4, !tbaa !5
  %3170 = call ptr @s2n_strerror(i32 noundef %3169, ptr noundef @.str.4)
  %3171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3172 = load i32, ptr %3171, align 4, !tbaa !5
  %3173 = call ptr @s2n_strerror_debug(i32 noundef %3172, ptr noundef @.str.4)
  %3174 = call ptr @__errno_location() #12
  %3175 = load i32, ptr %3174, align 4, !tbaa !5
  %3176 = call ptr @strerror(i32 noundef %3175) #11
  %3177 = call ptr @__errno_location() #12
  %3178 = load i32, ptr %3177, align 4, !tbaa !5
  %3179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3166, ptr noundef @.str.5, i32 noundef %3167, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 296, ptr noundef %3170, ptr noundef %3173, ptr noundef %3176, i32 noundef %3178) #11
  br label %3180

3180:                                             ; preds = %3163, %3146
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %3181

3181:                                             ; preds = %3180
  br label %3182

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

3183:                                             ; No predecessors!
  br label %3184

3184:                                             ; preds = %3183
  br label %3185

3185:                                             ; preds = %3184, %3126
  br label %3186

3186:                                             ; preds = %3185
  br label %3187

3187:                                             ; preds = %3186
  %3188 = load i32, ptr %15, align 4, !tbaa !5
  %3189 = trunc i32 %3188 to i16
  %3190 = load ptr, ptr %88, align 8, !tbaa !9
  %3191 = getelementptr inbounds %struct.s2n_connection, ptr %3190, i32 0, i32 53
  store i16 %3189, ptr %3191, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 80, ptr %91) #11
  call void @llvm.memset.p0.i64(ptr align 8 %91, i8 0, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 80, ptr %92) #11
  call void @llvm.memset.p0.i64(ptr align 8 %92, i8 0, i64 80, i1 false)
  br label %3192

3192:                                             ; preds = %3187
  %3193 = load i32, ptr @test_count, align 4, !tbaa !5
  %3194 = add nsw i32 %3193, 1
  store i32 %3194, ptr @test_count, align 4, !tbaa !5
  %3195 = load ptr, ptr %88, align 8, !tbaa !9
  %3196 = load ptr, ptr %85, align 8, !tbaa !9
  %3197 = call i32 @s2n_connections_set_blocking_io_pair(ptr noundef %91, ptr noundef %3195, ptr noundef %3196, ptr noundef %92)
  %3198 = getelementptr inbounds %struct.s2n_result, ptr %93, i32 0, i32 0
  store i32 %3197, ptr %3198, align 4
  %3199 = getelementptr inbounds %struct.s2n_result, ptr %93, i32 0, i32 0
  %3200 = load i32, ptr %3199, align 4
  %3201 = call zeroext i1 @s2n_result_is_ok(i32 %3200)
  br i1 %3201, label %3255, label %3202

3202:                                             ; preds = %3192
  br label %3203

3203:                                             ; preds = %3202
  br label %3204

3204:                                             ; preds = %3203
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #11
  %3205 = call ptr @__errno_location() #12
  %3206 = load i32, ptr %3205, align 4, !tbaa !5
  store i32 %3206, ptr %94, align 4, !tbaa !5
  %3207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3208 = call i32 @s2n_print_stacktrace(ptr noundef %3207)
  %3209 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3210 = trunc i8 %3209 to i1
  br i1 %3210, label %3211, label %3233

3211:                                             ; preds = %3204
  %3212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3213 = call i32 @fileno(ptr noundef %3212) #11
  %3214 = call i32 @isatty(i32 noundef %3213) #11
  %3215 = icmp ne i32 %3214, 0
  br i1 %3215, label %3216, label %3233

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

3233:                                             ; preds = %3211, %3204
  %3234 = load i32, ptr %94, align 4, !tbaa !5
  %3235 = call ptr @__errno_location() #12
  store i32 %3234, ptr %3235, align 4, !tbaa !5
  %3236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3237 = load i32, ptr @test_count, align 4, !tbaa !5
  %3238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3239 = load i32, ptr %3238, align 4, !tbaa !5
  %3240 = call ptr @s2n_strerror(i32 noundef %3239, ptr noundef @.str.4)
  %3241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3242 = load i32, ptr %3241, align 4, !tbaa !5
  %3243 = call ptr @s2n_strerror_debug(i32 noundef %3242, ptr noundef @.str.4)
  %3244 = call ptr @__errno_location() #12
  %3245 = load i32, ptr %3244, align 4, !tbaa !5
  %3246 = call ptr @strerror(i32 noundef %3245) #11
  %3247 = call ptr @__errno_location() #12
  %3248 = load i32, ptr %3247, align 4, !tbaa !5
  %3249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3236, ptr noundef @.str.5, i32 noundef %3237, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 301, ptr noundef %3240, ptr noundef %3243, ptr noundef %3246, i32 noundef %3248) #11
  br label %3250

3250:                                             ; preds = %3233, %3216
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %3251

3251:                                             ; preds = %3250
  br label %3252

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

3253:                                             ; No predecessors!
  br label %3254

3254:                                             ; preds = %3253
  br label %3255

3255:                                             ; preds = %3254, %3192
  br label %3256

3256:                                             ; preds = %3255
  br label %3257

3257:                                             ; preds = %3256
  call void @llvm.lifetime.start.p0(i64 1, ptr %95) #11
  store i8 0, ptr %95, align 1, !tbaa !11
  br label %3258

3258:                                             ; preds = %3434, %3257
  %3259 = load ptr, ptr %85, align 8, !tbaa !9
  %3260 = load ptr, ptr %88, align 8, !tbaa !9
  %3261 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %3259, ptr noundef %3260)
  %3262 = icmp slt i32 %3261, 0
  br i1 %3262, label %3263, label %3435

3263:                                             ; preds = %3258
  %3264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3265 = load i32, ptr %3264, align 4, !tbaa !5
  %3266 = icmp eq i32 %3265, 201326593
  br i1 %3266, label %3267, label %3393

3267:                                             ; preds = %3263
  br label %3268

3268:                                             ; preds = %3267
  %3269 = load i32, ptr @test_count, align 4, !tbaa !5
  %3270 = add nsw i32 %3269, 1
  store i32 %3270, ptr @test_count, align 4, !tbaa !5
  %3271 = load ptr, ptr @pkey_op, align 8, !tbaa !9
  %3272 = load ptr, ptr %85, align 8, !tbaa !9
  %3273 = call i32 @s2n_async_pkey_op_apply(ptr noundef %3271, ptr noundef %3272)
  %3274 = icmp eq i32 %3273, -1
  br i1 %3274, label %3275, label %3328

3275:                                             ; preds = %3268
  br label %3276

3276:                                             ; preds = %3275
  br label %3277

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

3284:                                             ; preds = %3277
  %3285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3286 = call i32 @fileno(ptr noundef %3285) #11
  %3287 = call i32 @isatty(i32 noundef %3286) #11
  %3288 = icmp ne i32 %3287, 0
  br i1 %3288, label %3289, label %3306

3289:                                             ; preds = %3284
  %3290 = load i32, ptr %96, align 4, !tbaa !5
  %3291 = call ptr @__errno_location() #12
  store i32 %3290, ptr %3291, align 4, !tbaa !5
  %3292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3293 = load i32, ptr @test_count, align 4, !tbaa !5
  %3294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3295 = load i32, ptr %3294, align 4, !tbaa !5
  %3296 = call ptr @s2n_strerror(i32 noundef %3295, ptr noundef @.str.4)
  %3297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3298 = load i32, ptr %3297, align 4, !tbaa !5
  %3299 = call ptr @s2n_strerror_debug(i32 noundef %3298, ptr noundef @.str.4)
  %3300 = call ptr @__errno_location() #12
  %3301 = load i32, ptr %3300, align 4, !tbaa !5
  %3302 = call ptr @strerror(i32 noundef %3301) #11
  %3303 = call ptr @__errno_location() #12
  %3304 = load i32, ptr %3303, align 4, !tbaa !5
  %3305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3292, ptr noundef @.str.2, i32 noundef %3293, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 306, ptr noundef %3296, ptr noundef %3299, ptr noundef %3302, i32 noundef %3304) #11
  br label %3323

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

3323:                                             ; preds = %3306, %3289
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #11
  br label %3324

3324:                                             ; preds = %3323
  br label %3325

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

3326:                                             ; No predecessors!
  br label %3327

3327:                                             ; preds = %3326
  br label %3328

3328:                                             ; preds = %3327, %3268
  br label %3329

3329:                                             ; preds = %3328
  br label %3330

3330:                                             ; preds = %3329
  br label %3331

3331:                                             ; preds = %3330
  %3332 = load i32, ptr @test_count, align 4, !tbaa !5
  %3333 = add nsw i32 %3332, 1
  store i32 %3333, ptr @test_count, align 4, !tbaa !5
  %3334 = load ptr, ptr @pkey_op, align 8, !tbaa !9
  %3335 = call i32 @s2n_async_pkey_op_free(ptr noundef %3334)
  %3336 = icmp eq i32 %3335, -1
  br i1 %3336, label %3337, label %3390

3337:                                             ; preds = %3331
  br label %3338

3338:                                             ; preds = %3337
  br label %3339

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

3346:                                             ; preds = %3339
  %3347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3348 = call i32 @fileno(ptr noundef %3347) #11
  %3349 = call i32 @isatty(i32 noundef %3348) #11
  %3350 = icmp ne i32 %3349, 0
  br i1 %3350, label %3351, label %3368

3351:                                             ; preds = %3346
  %3352 = load i32, ptr %97, align 4, !tbaa !5
  %3353 = call ptr @__errno_location() #12
  store i32 %3352, ptr %3353, align 4, !tbaa !5
  %3354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3355 = load i32, ptr @test_count, align 4, !tbaa !5
  %3356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3357 = load i32, ptr %3356, align 4, !tbaa !5
  %3358 = call ptr @s2n_strerror(i32 noundef %3357, ptr noundef @.str.4)
  %3359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3360 = load i32, ptr %3359, align 4, !tbaa !5
  %3361 = call ptr @s2n_strerror_debug(i32 noundef %3360, ptr noundef @.str.4)
  %3362 = call ptr @__errno_location() #12
  %3363 = load i32, ptr %3362, align 4, !tbaa !5
  %3364 = call ptr @strerror(i32 noundef %3363) #11
  %3365 = call ptr @__errno_location() #12
  %3366 = load i32, ptr %3365, align 4, !tbaa !5
  %3367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3354, ptr noundef @.str.2, i32 noundef %3355, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 307, ptr noundef %3358, ptr noundef %3361, ptr noundef %3364, i32 noundef %3366) #11
  br label %3385

3368:                                             ; preds = %3346, %3339
  %3369 = load i32, ptr %97, align 4, !tbaa !5
  %3370 = call ptr @__errno_location() #12
  store i32 %3369, ptr %3370, align 4, !tbaa !5
  %3371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3372 = load i32, ptr @test_count, align 4, !tbaa !5
  %3373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3374 = load i32, ptr %3373, align 4, !tbaa !5
  %3375 = call ptr @s2n_strerror(i32 noundef %3374, ptr noundef @.str.4)
  %3376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3377 = load i32, ptr %3376, align 4, !tbaa !5
  %3378 = call ptr @s2n_strerror_debug(i32 noundef %3377, ptr noundef @.str.4)
  %3379 = call ptr @__errno_location() #12
  %3380 = load i32, ptr %3379, align 4, !tbaa !5
  %3381 = call ptr @strerror(i32 noundef %3380) #11
  %3382 = call ptr @__errno_location() #12
  %3383 = load i32, ptr %3382, align 4, !tbaa !5
  %3384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3371, ptr noundef @.str.5, i32 noundef %3372, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 307, ptr noundef %3375, ptr noundef %3378, ptr noundef %3381, i32 noundef %3383) #11
  br label %3385

3385:                                             ; preds = %3368, %3351
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #11
  br label %3386

3386:                                             ; preds = %3385
  br label %3387

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

3388:                                             ; No predecessors!
  br label %3389

3389:                                             ; preds = %3388
  br label %3390

3390:                                             ; preds = %3389, %3331
  br label %3391

3391:                                             ; preds = %3390
  br label %3392

3392:                                             ; preds = %3391
  store i8 1, ptr %95, align 1, !tbaa !11
  br label %3434

3393:                                             ; preds = %3263
  br label %3394

3394:                                             ; preds = %3393
  %3395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3396 = load i32, ptr %3395, align 4, !tbaa !5
  %3397 = icmp ne i32 %3396, 0
  br i1 %3397, label %3431, label %3398

3398:                                             ; preds = %3394
  br label %3399

3399:                                             ; preds = %3398
  br label %3400

3400:                                             ; preds = %3399
  %3401 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3402 = getelementptr inbounds %struct.s2n_debug_info, ptr %3401, i32 0, i32 0
  store ptr @.str.36, ptr %3402, align 8, !tbaa !43
  %3403 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3404 = getelementptr inbounds %struct.s2n_debug_info, ptr %3403, i32 0, i32 0
  %3405 = load ptr, ptr %3404, align 8, !tbaa !43
  %3406 = getelementptr inbounds i8, ptr %3405, i64 21
  %3407 = call ptr @strrchr(ptr noundef %3406, i32 noundef 47) #14
  %3408 = icmp ne ptr %3407, null
  br i1 %3408, label %3409, label %3416

3409:                                             ; preds = %3400
  %3410 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3411 = getelementptr inbounds %struct.s2n_debug_info, ptr %3410, i32 0, i32 0
  %3412 = load ptr, ptr %3411, align 8, !tbaa !43
  %3413 = getelementptr inbounds i8, ptr %3412, i64 21
  %3414 = call ptr @strrchr(ptr noundef %3413, i32 noundef 47) #14
  %3415 = getelementptr inbounds i8, ptr %3414, i64 1
  br label %3421

3416:                                             ; preds = %3400
  %3417 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3418 = getelementptr inbounds %struct.s2n_debug_info, ptr %3417, i32 0, i32 0
  %3419 = load ptr, ptr %3418, align 8, !tbaa !43
  %3420 = getelementptr inbounds i8, ptr %3419, i64 21
  br label %3421

3421:                                             ; preds = %3416, %3409
  %3422 = phi ptr [ %3415, %3409 ], [ %3420, %3416 ]
  %3423 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %3424 = getelementptr inbounds %struct.s2n_debug_info, ptr %3423, i32 0, i32 1
  store ptr %3422, ptr %3424, align 8, !tbaa !45
  %3425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 201326592, ptr %3425, align 4, !tbaa !5
  %3426 = call i32 @s2n_calculate_stacktrace()
  br label %3427

3427:                                             ; preds = %3421
  br label %3428

3428:                                             ; preds = %3427
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %13, align 4
  br label %3743

3429:                                             ; No predecessors!
  br label %3430

3430:                                             ; preds = %3429
  br label %3431

3431:                                             ; preds = %3430, %3394
  br label %3432

3432:                                             ; preds = %3431
  br label %3433

3433:                                             ; preds = %3432
  br label %3434

3434:                                             ; preds = %3433, %3392
  br label %3258, !llvm.loop !51

3435:                                             ; preds = %3258
  br label %3436

3436:                                             ; preds = %3435
  %3437 = load i32, ptr @test_count, align 4, !tbaa !5
  %3438 = add nsw i32 %3437, 1
  store i32 %3438, ptr @test_count, align 4, !tbaa !5
  %3439 = load i8, ptr %95, align 1, !tbaa !11, !range !13, !noundef !14
  %3440 = trunc i8 %3439 to i1
  br i1 %3440, label %3494, label %3441

3441:                                             ; preds = %3436
  br label %3442

3442:                                             ; preds = %3441
  br label %3443

3443:                                             ; preds = %3442
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #11
  %3444 = call ptr @__errno_location() #12
  %3445 = load i32, ptr %3444, align 4, !tbaa !5
  store i32 %3445, ptr %98, align 4, !tbaa !5
  %3446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3447 = call i32 @s2n_print_stacktrace(ptr noundef %3446)
  %3448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3449 = trunc i8 %3448 to i1
  br i1 %3449, label %3450, label %3472

3450:                                             ; preds = %3443
  %3451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3452 = call i32 @fileno(ptr noundef %3451) #11
  %3453 = call i32 @isatty(i32 noundef %3452) #11
  %3454 = icmp ne i32 %3453, 0
  br i1 %3454, label %3455, label %3472

3455:                                             ; preds = %3450
  %3456 = load i32, ptr %98, align 4, !tbaa !5
  %3457 = call ptr @__errno_location() #12
  store i32 %3456, ptr %3457, align 4, !tbaa !5
  %3458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3459 = load i32, ptr @test_count, align 4, !tbaa !5
  %3460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3461 = load i32, ptr %3460, align 4, !tbaa !5
  %3462 = call ptr @s2n_strerror(i32 noundef %3461, ptr noundef @.str.4)
  %3463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3464 = load i32, ptr %3463, align 4, !tbaa !5
  %3465 = call ptr @s2n_strerror_debug(i32 noundef %3464, ptr noundef @.str.4)
  %3466 = call ptr @__errno_location() #12
  %3467 = load i32, ptr %3466, align 4, !tbaa !5
  %3468 = call ptr @strerror(i32 noundef %3467) #11
  %3469 = call ptr @__errno_location() #12
  %3470 = load i32, ptr %3469, align 4, !tbaa !5
  %3471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3458, ptr noundef @.str.2, i32 noundef %3459, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 313, ptr noundef %3462, ptr noundef %3465, ptr noundef %3468, i32 noundef %3470) #11
  br label %3489

3472:                                             ; preds = %3450, %3443
  %3473 = load i32, ptr %98, align 4, !tbaa !5
  %3474 = call ptr @__errno_location() #12
  store i32 %3473, ptr %3474, align 4, !tbaa !5
  %3475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3476 = load i32, ptr @test_count, align 4, !tbaa !5
  %3477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3478 = load i32, ptr %3477, align 4, !tbaa !5
  %3479 = call ptr @s2n_strerror(i32 noundef %3478, ptr noundef @.str.4)
  %3480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3481 = load i32, ptr %3480, align 4, !tbaa !5
  %3482 = call ptr @s2n_strerror_debug(i32 noundef %3481, ptr noundef @.str.4)
  %3483 = call ptr @__errno_location() #12
  %3484 = load i32, ptr %3483, align 4, !tbaa !5
  %3485 = call ptr @strerror(i32 noundef %3484) #11
  %3486 = call ptr @__errno_location() #12
  %3487 = load i32, ptr %3486, align 4, !tbaa !5
  %3488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3475, ptr noundef @.str.5, i32 noundef %3476, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 313, ptr noundef %3479, ptr noundef %3482, ptr noundef %3485, i32 noundef %3487) #11
  br label %3489

3489:                                             ; preds = %3472, %3455
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #11
  br label %3490

3490:                                             ; preds = %3489
  br label %3491

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

3492:                                             ; No predecessors!
  br label %3493

3493:                                             ; preds = %3492
  br label %3494

3494:                                             ; preds = %3493, %3436
  br label %3495

3495:                                             ; preds = %3494
  br label %3496

3496:                                             ; preds = %3495
  br label %3497

3497:                                             ; preds = %3496
  %3498 = load i32, ptr @test_count, align 4, !tbaa !5
  %3499 = add nsw i32 %3498, 1
  store i32 %3499, ptr @test_count, align 4, !tbaa !5
  %3500 = load ptr, ptr %85, align 8, !tbaa !9
  %3501 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %3500, i32 noundef 1)
  br i1 %3501, label %3555, label %3502

3502:                                             ; preds = %3497
  br label %3503

3503:                                             ; preds = %3502
  br label %3504

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

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

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

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

3550:                                             ; preds = %3533, %3516
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #11
  br label %3551

3551:                                             ; preds = %3550
  br label %3552

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

3553:                                             ; No predecessors!
  br label %3554

3554:                                             ; preds = %3553
  br label %3555

3555:                                             ; preds = %3554, %3497
  br label %3556

3556:                                             ; preds = %3555
  br label %3557

3557:                                             ; preds = %3556
  br label %3558

3558:                                             ; preds = %3557
  %3559 = load i32, ptr @test_count, align 4, !tbaa !5
  %3560 = add nsw i32 %3559, 1
  store i32 %3560, ptr @test_count, align 4, !tbaa !5
  %3561 = load ptr, ptr %88, align 8, !tbaa !9
  %3562 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %3561, i32 noundef 1)
  br i1 %3562, label %3616, label %3563

3563:                                             ; preds = %3558
  br label %3564

3564:                                             ; preds = %3563
  br label %3565

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

3572:                                             ; preds = %3565
  %3573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3574 = call i32 @fileno(ptr noundef %3573) #11
  %3575 = call i32 @isatty(i32 noundef %3574) #11
  %3576 = icmp ne i32 %3575, 0
  br i1 %3576, label %3577, label %3594

3577:                                             ; preds = %3572
  %3578 = load i32, ptr %100, align 4, !tbaa !5
  %3579 = call ptr @__errno_location() #12
  store i32 %3578, ptr %3579, align 4, !tbaa !5
  %3580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3581 = load i32, ptr @test_count, align 4, !tbaa !5
  %3582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3583 = load i32, ptr %3582, align 4, !tbaa !5
  %3584 = call ptr @s2n_strerror(i32 noundef %3583, ptr noundef @.str.4)
  %3585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3586 = load i32, ptr %3585, align 4, !tbaa !5
  %3587 = call ptr @s2n_strerror_debug(i32 noundef %3586, ptr noundef @.str.4)
  %3588 = call ptr @__errno_location() #12
  %3589 = load i32, ptr %3588, align 4, !tbaa !5
  %3590 = call ptr @strerror(i32 noundef %3589) #11
  %3591 = call ptr @__errno_location() #12
  %3592 = load i32, ptr %3591, align 4, !tbaa !5
  %3593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3580, ptr noundef @.str.2, i32 noundef %3581, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 317, ptr noundef %3584, ptr noundef %3587, ptr noundef %3590, i32 noundef %3592) #11
  br label %3611

3594:                                             ; preds = %3572, %3565
  %3595 = load i32, ptr %100, align 4, !tbaa !5
  %3596 = call ptr @__errno_location() #12
  store i32 %3595, ptr %3596, align 4, !tbaa !5
  %3597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3598 = load i32, ptr @test_count, align 4, !tbaa !5
  %3599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3600 = load i32, ptr %3599, align 4, !tbaa !5
  %3601 = call ptr @s2n_strerror(i32 noundef %3600, ptr noundef @.str.4)
  %3602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3603 = load i32, ptr %3602, align 4, !tbaa !5
  %3604 = call ptr @s2n_strerror_debug(i32 noundef %3603, ptr noundef @.str.4)
  %3605 = call ptr @__errno_location() #12
  %3606 = load i32, ptr %3605, align 4, !tbaa !5
  %3607 = call ptr @strerror(i32 noundef %3606) #11
  %3608 = call ptr @__errno_location() #12
  %3609 = load i32, ptr %3608, align 4, !tbaa !5
  %3610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3597, ptr noundef @.str.5, i32 noundef %3598, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 317, ptr noundef %3601, ptr noundef %3604, ptr noundef %3607, i32 noundef %3609) #11
  br label %3611

3611:                                             ; preds = %3594, %3577
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #11
  br label %3612

3612:                                             ; preds = %3611
  br label %3613

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

3614:                                             ; No predecessors!
  br label %3615

3615:                                             ; preds = %3614
  br label %3616

3616:                                             ; preds = %3615, %3558
  br label %3617

3617:                                             ; preds = %3616
  br label %3618

3618:                                             ; preds = %3617
  br label %3619

3619:                                             ; preds = %3618
  %3620 = load i32, ptr @test_count, align 4, !tbaa !5
  %3621 = add nsw i32 %3620, 1
  store i32 %3621, ptr @test_count, align 4, !tbaa !5
  %3622 = load ptr, ptr %85, align 8, !tbaa !9
  %3623 = call i32 @s2n_conn_get_current_message_type(ptr noundef %3622)
  %3624 = icmp eq i32 %3623, 20
  br i1 %3624, label %3678, label %3625

3625:                                             ; preds = %3619
  br label %3626

3626:                                             ; preds = %3625
  br label %3627

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

3634:                                             ; preds = %3627
  %3635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3636 = call i32 @fileno(ptr noundef %3635) #11
  %3637 = call i32 @isatty(i32 noundef %3636) #11
  %3638 = icmp ne i32 %3637, 0
  br i1 %3638, label %3639, label %3656

3639:                                             ; preds = %3634
  %3640 = load i32, ptr %101, align 4, !tbaa !5
  %3641 = call ptr @__errno_location() #12
  store i32 %3640, ptr %3641, align 4, !tbaa !5
  %3642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3643 = load i32, ptr @test_count, align 4, !tbaa !5
  %3644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3645 = load i32, ptr %3644, align 4, !tbaa !5
  %3646 = call ptr @s2n_strerror(i32 noundef %3645, ptr noundef @.str.4)
  %3647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3648 = load i32, ptr %3647, align 4, !tbaa !5
  %3649 = call ptr @s2n_strerror_debug(i32 noundef %3648, ptr noundef @.str.4)
  %3650 = call ptr @__errno_location() #12
  %3651 = load i32, ptr %3650, align 4, !tbaa !5
  %3652 = call ptr @strerror(i32 noundef %3651) #11
  %3653 = call ptr @__errno_location() #12
  %3654 = load i32, ptr %3653, align 4, !tbaa !5
  %3655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3642, ptr noundef @.str.2, i32 noundef %3643, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 318, ptr noundef %3646, ptr noundef %3649, ptr noundef %3652, i32 noundef %3654) #11
  br label %3673

3656:                                             ; preds = %3634, %3627
  %3657 = load i32, ptr %101, align 4, !tbaa !5
  %3658 = call ptr @__errno_location() #12
  store i32 %3657, ptr %3658, align 4, !tbaa !5
  %3659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3660 = load i32, ptr @test_count, align 4, !tbaa !5
  %3661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3662 = load i32, ptr %3661, align 4, !tbaa !5
  %3663 = call ptr @s2n_strerror(i32 noundef %3662, ptr noundef @.str.4)
  %3664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3665 = load i32, ptr %3664, align 4, !tbaa !5
  %3666 = call ptr @s2n_strerror_debug(i32 noundef %3665, ptr noundef @.str.4)
  %3667 = call ptr @__errno_location() #12
  %3668 = load i32, ptr %3667, align 4, !tbaa !5
  %3669 = call ptr @strerror(i32 noundef %3668) #11
  %3670 = call ptr @__errno_location() #12
  %3671 = load i32, ptr %3670, align 4, !tbaa !5
  %3672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3659, ptr noundef @.str.5, i32 noundef %3660, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 318, ptr noundef %3663, ptr noundef %3666, ptr noundef %3669, i32 noundef %3671) #11
  br label %3673

3673:                                             ; preds = %3656, %3639
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %3674

3674:                                             ; preds = %3673
  br label %3675

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

3676:                                             ; No predecessors!
  br label %3677

3677:                                             ; preds = %3676
  br label %3678

3678:                                             ; preds = %3677, %3619
  br label %3679

3679:                                             ; preds = %3678
  br label %3680

3680:                                             ; preds = %3679
  br label %3681

3681:                                             ; preds = %3680
  %3682 = load i32, ptr @test_count, align 4, !tbaa !5
  %3683 = add nsw i32 %3682, 1
  store i32 %3683, ptr @test_count, align 4, !tbaa !5
  %3684 = load ptr, ptr %88, align 8, !tbaa !9
  %3685 = call i32 @s2n_conn_get_current_message_type(ptr noundef %3684)
  %3686 = icmp eq i32 %3685, 20
  br i1 %3686, label %3740, label %3687

3687:                                             ; preds = %3681
  br label %3688

3688:                                             ; preds = %3687
  br label %3689

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

3696:                                             ; preds = %3689
  %3697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3698 = call i32 @fileno(ptr noundef %3697) #11
  %3699 = call i32 @isatty(i32 noundef %3698) #11
  %3700 = icmp ne i32 %3699, 0
  br i1 %3700, label %3701, label %3718

3701:                                             ; preds = %3696
  %3702 = load i32, ptr %102, align 4, !tbaa !5
  %3703 = call ptr @__errno_location() #12
  store i32 %3702, ptr %3703, align 4, !tbaa !5
  %3704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3705 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3707, ptr noundef @.str.4)
  %3709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3710 = load i32, ptr %3709, align 4, !tbaa !5
  %3711 = call ptr @s2n_strerror_debug(i32 noundef %3710, ptr noundef @.str.4)
  %3712 = call ptr @__errno_location() #12
  %3713 = load i32, ptr %3712, align 4, !tbaa !5
  %3714 = call ptr @strerror(i32 noundef %3713) #11
  %3715 = call ptr @__errno_location() #12
  %3716 = load i32, ptr %3715, align 4, !tbaa !5
  %3717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3704, ptr noundef @.str.2, i32 noundef %3705, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 319, ptr noundef %3708, ptr noundef %3711, ptr noundef %3714, i32 noundef %3716) #11
  br label %3735

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

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

3736:                                             ; preds = %3735
  br label %3737

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

3738:                                             ; No predecessors!
  br label %3739

3739:                                             ; preds = %3738
  br label %3740

3740:                                             ; preds = %3739, %3681
  br label %3741

3741:                                             ; preds = %3740
  br label %3742

3742:                                             ; preds = %3741
  store i32 0, ptr %13, align 4
  br label %3743

3743:                                             ; preds = %3742, %3428
  call void @llvm.lifetime.end.p0(i64 1, ptr %95) #11
  %3744 = call i32 @s2n_io_stuffer_pair_free(ptr noundef %92)
  %3745 = getelementptr inbounds %struct.s2n_result, ptr %103, i32 0, i32 0
  store i32 %3744, ptr %3745, align 4
  call void @llvm.lifetime.end.p0(i64 80, ptr %92) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr %91) #11
  %3746 = call i32 @s2n_connection_ptr_free(ptr noundef %88)
  %3747 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  store i32 %3746, ptr %3747, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #11
  %3748 = call i32 @s2n_connection_ptr_free(ptr noundef %85)
  %3749 = getelementptr inbounds %struct.s2n_result, ptr %105, i32 0, i32 0
  store i32 %3748, ptr %3749, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #11
  %3750 = call i32 @s2n_config_ptr_free(ptr noundef %83)
  %3751 = getelementptr inbounds %struct.s2n_result, ptr %106, i32 0, i32 0
  store i32 %3750, ptr %3751, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #11
  %3752 = load i32, ptr %13, align 4
  switch i32 %3752, label %5114 [
    i32 0, label %3753
  ]

3753:                                             ; preds = %3743
  %3754 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %3754, label %3755, label %5113

3755:                                             ; preds = %3753
  call void @llvm.lifetime.start.p0(i64 12, ptr %107) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %107, ptr align 1 @__const.main.early_data_bytes, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %108) #11
  call void @llvm.memset.p0.i64(ptr align 8 %108, i8 0, i64 24, i1 false)
  br label %3756

3756:                                             ; preds = %3755
  %3757 = load i32, ptr @test_count, align 4, !tbaa !5
  %3758 = add nsw i32 %3757, 1
  store i32 %3758, ptr @test_count, align 4, !tbaa !5
  %3759 = getelementptr inbounds [12 x i8], ptr %107, i64 0, i64 0
  %3760 = call i32 @s2n_blob_init(ptr noundef %108, ptr noundef %3759, i32 noundef 12)
  %3761 = icmp eq i32 %3760, -1
  br i1 %3761, label %3762, label %3815

3762:                                             ; preds = %3756
  br label %3763

3763:                                             ; preds = %3762
  br label %3764

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

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

3776:                                             ; preds = %3771
  %3777 = load i32, ptr %109, 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.2, i32 noundef %3780, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 326, ptr noundef %3783, ptr noundef %3786, ptr noundef %3789, i32 noundef %3791) #11
  br label %3810

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

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

3811:                                             ; preds = %3810
  br label %3812

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

3813:                                             ; No predecessors!
  br label %3814

3814:                                             ; preds = %3813
  br label %3815

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

3816:                                             ; preds = %3815
  br label %3817

3817:                                             ; preds = %3816
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #11
  %3818 = load ptr, ptr %10, align 8, !tbaa !9
  %3819 = call ptr @s2n_test_config_new(ptr noundef %3818)
  store ptr %3819, ptr %110, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %111) #11
  %3820 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %3820, ptr %111, align 8, !tbaa !9
  br label %3821

3821:                                             ; preds = %3817
  %3822 = load i32, ptr @test_count, align 4, !tbaa !5
  %3823 = add nsw i32 %3822, 1
  store i32 %3823, ptr @test_count, align 4, !tbaa !5
  %3824 = load ptr, ptr %111, align 8, !tbaa !9
  %3825 = load ptr, ptr %110, align 8, !tbaa !9
  %3826 = call i32 @s2n_connection_set_config(ptr noundef %3824, ptr noundef %3825)
  %3827 = icmp eq i32 %3826, -1
  br i1 %3827, label %3828, label %3881

3828:                                             ; preds = %3821
  br label %3829

3829:                                             ; preds = %3828
  br label %3830

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

3837:                                             ; preds = %3830
  %3838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3839 = call i32 @fileno(ptr noundef %3838) #11
  %3840 = call i32 @isatty(i32 noundef %3839) #11
  %3841 = icmp ne i32 %3840, 0
  br i1 %3841, label %3842, label %3859

3842:                                             ; preds = %3837
  %3843 = load i32, ptr %112, align 4, !tbaa !5
  %3844 = call ptr @__errno_location() #12
  store i32 %3843, ptr %3844, align 4, !tbaa !5
  %3845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3846 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3848, ptr noundef @.str.4)
  %3850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3851 = load i32, ptr %3850, align 4, !tbaa !5
  %3852 = call ptr @s2n_strerror_debug(i32 noundef %3851, ptr noundef @.str.4)
  %3853 = call ptr @__errno_location() #12
  %3854 = load i32, ptr %3853, align 4, !tbaa !5
  %3855 = call ptr @strerror(i32 noundef %3854) #11
  %3856 = call ptr @__errno_location() #12
  %3857 = load i32, ptr %3856, align 4, !tbaa !5
  %3858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3845, ptr noundef @.str.2, i32 noundef %3846, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 332, ptr noundef %3849, ptr noundef %3852, ptr noundef %3855, i32 noundef %3857) #11
  br label %3876

3859:                                             ; preds = %3837, %3830
  %3860 = load i32, ptr %112, align 4, !tbaa !5
  %3861 = call ptr @__errno_location() #12
  store i32 %3860, ptr %3861, align 4, !tbaa !5
  %3862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3863 = load i32, ptr @test_count, align 4, !tbaa !5
  %3864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3865 = load i32, ptr %3864, align 4, !tbaa !5
  %3866 = call ptr @s2n_strerror(i32 noundef %3865, ptr noundef @.str.4)
  %3867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3868 = load i32, ptr %3867, align 4, !tbaa !5
  %3869 = call ptr @s2n_strerror_debug(i32 noundef %3868, ptr noundef @.str.4)
  %3870 = call ptr @__errno_location() #12
  %3871 = load i32, ptr %3870, align 4, !tbaa !5
  %3872 = call ptr @strerror(i32 noundef %3871) #11
  %3873 = call ptr @__errno_location() #12
  %3874 = load i32, ptr %3873, align 4, !tbaa !5
  %3875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3862, ptr noundef @.str.5, i32 noundef %3863, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 332, ptr noundef %3866, ptr noundef %3869, ptr noundef %3872, i32 noundef %3874) #11
  br label %3876

3876:                                             ; preds = %3859, %3842
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %3877

3877:                                             ; preds = %3876
  br label %3878

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

3879:                                             ; No predecessors!
  br label %3880

3880:                                             ; preds = %3879
  br label %3881

3881:                                             ; preds = %3880, %3821
  br label %3882

3882:                                             ; preds = %3881
  br label %3883

3883:                                             ; preds = %3882
  br label %3884

3884:                                             ; preds = %3883
  %3885 = load i32, ptr @test_count, align 4, !tbaa !5
  %3886 = add nsw i32 %3885, 1
  store i32 %3886, ptr @test_count, align 4, !tbaa !5
  %3887 = load ptr, ptr %111, align 8, !tbaa !9
  %3888 = call i32 @s2n_connection_set_blinding(ptr noundef %3887, i32 noundef 1)
  %3889 = icmp eq i32 %3888, -1
  br i1 %3889, label %3890, label %3943

3890:                                             ; preds = %3884
  br label %3891

3891:                                             ; preds = %3890
  br label %3892

3892:                                             ; preds = %3891
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #11
  %3893 = call ptr @__errno_location() #12
  %3894 = load i32, ptr %3893, align 4, !tbaa !5
  store i32 %3894, ptr %113, align 4, !tbaa !5
  %3895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3896 = call i32 @s2n_print_stacktrace(ptr noundef %3895)
  %3897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3898 = trunc i8 %3897 to i1
  br i1 %3898, label %3899, label %3921

3899:                                             ; preds = %3892
  %3900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3901 = call i32 @fileno(ptr noundef %3900) #11
  %3902 = call i32 @isatty(i32 noundef %3901) #11
  %3903 = icmp ne i32 %3902, 0
  br i1 %3903, label %3904, label %3921

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

3921:                                             ; preds = %3899, %3892
  %3922 = load i32, ptr %113, align 4, !tbaa !5
  %3923 = call ptr @__errno_location() #12
  store i32 %3922, ptr %3923, align 4, !tbaa !5
  %3924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3925 = load i32, ptr @test_count, align 4, !tbaa !5
  %3926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3927 = load i32, ptr %3926, align 4, !tbaa !5
  %3928 = call ptr @s2n_strerror(i32 noundef %3927, ptr noundef @.str.4)
  %3929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3930 = load i32, ptr %3929, align 4, !tbaa !5
  %3931 = call ptr @s2n_strerror_debug(i32 noundef %3930, ptr noundef @.str.4)
  %3932 = call ptr @__errno_location() #12
  %3933 = load i32, ptr %3932, align 4, !tbaa !5
  %3934 = call ptr @strerror(i32 noundef %3933) #11
  %3935 = call ptr @__errno_location() #12
  %3936 = load i32, ptr %3935, align 4, !tbaa !5
  %3937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3924, ptr noundef @.str.5, i32 noundef %3925, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 333, ptr noundef %3928, ptr noundef %3931, ptr noundef %3934, i32 noundef %3936) #11
  br label %3938

3938:                                             ; preds = %3921, %3904
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %3939

3939:                                             ; preds = %3938
  br label %3940

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

3941:                                             ; No predecessors!
  br label %3942

3942:                                             ; preds = %3941
  br label %3943

3943:                                             ; preds = %3942, %3884
  br label %3944

3944:                                             ; preds = %3943
  br label %3945

3945:                                             ; preds = %3944
  br label %3946

3946:                                             ; preds = %3945
  %3947 = load i32, ptr @test_count, align 4, !tbaa !5
  %3948 = add nsw i32 %3947, 1
  store i32 %3948, ptr @test_count, align 4, !tbaa !5
  %3949 = load ptr, ptr %111, align 8, !tbaa !9
  %3950 = getelementptr inbounds %struct.s2n_blob, ptr %108, i32 0, i32 1
  %3951 = load i32, ptr %3950, align 8, !tbaa !52
  %3952 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %3949, i32 noundef %3951, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %3953 = getelementptr inbounds %struct.s2n_result, ptr %114, i32 0, i32 0
  store i32 %3952, ptr %3953, align 4
  %3954 = getelementptr inbounds %struct.s2n_result, ptr %114, i32 0, i32 0
  %3955 = load i32, ptr %3954, align 4
  %3956 = call zeroext i1 @s2n_result_is_ok(i32 %3955)
  br i1 %3956, label %4010, label %3957

3957:                                             ; preds = %3946
  br label %3958

3958:                                             ; preds = %3957
  br label %3959

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

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

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

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

4005:                                             ; preds = %3988, %3971
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %4006

4006:                                             ; preds = %4005
  br label %4007

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

4008:                                             ; No predecessors!
  br label %4009

4009:                                             ; preds = %4008
  br label %4010

4010:                                             ; preds = %4009, %3946
  br label %4011

4011:                                             ; preds = %4010
  br label %4012

4012:                                             ; preds = %4011
  %4013 = load i32, ptr %14, align 4, !tbaa !5
  %4014 = trunc i32 %4013 to i16
  %4015 = load ptr, ptr %111, align 8, !tbaa !9
  %4016 = getelementptr inbounds %struct.s2n_connection, ptr %4015, i32 0, i32 53
  store i16 %4014, ptr %4016, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #11
  %4017 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4017, ptr %116, align 8, !tbaa !9
  br label %4018

4018:                                             ; preds = %4012
  %4019 = load i32, ptr @test_count, align 4, !tbaa !5
  %4020 = add nsw i32 %4019, 1
  store i32 %4020, ptr @test_count, align 4, !tbaa !5
  %4021 = load ptr, ptr %116, align 8, !tbaa !9
  %4022 = load ptr, ptr %110, align 8, !tbaa !9
  %4023 = call i32 @s2n_connection_set_config(ptr noundef %4021, ptr noundef %4022)
  %4024 = icmp eq i32 %4023, -1
  br i1 %4024, label %4025, label %4078

4025:                                             ; preds = %4018
  br label %4026

4026:                                             ; preds = %4025
  br label %4027

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

4034:                                             ; preds = %4027
  %4035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4036 = call i32 @fileno(ptr noundef %4035) #11
  %4037 = call i32 @isatty(i32 noundef %4036) #11
  %4038 = icmp ne i32 %4037, 0
  br i1 %4038, label %4039, label %4056

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

4056:                                             ; preds = %4034, %4027
  %4057 = load i32, ptr %117, align 4, !tbaa !5
  %4058 = call ptr @__errno_location() #12
  store i32 %4057, ptr %4058, align 4, !tbaa !5
  %4059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4060 = load i32, ptr @test_count, align 4, !tbaa !5
  %4061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4062 = load i32, ptr %4061, align 4, !tbaa !5
  %4063 = call ptr @s2n_strerror(i32 noundef %4062, ptr noundef @.str.4)
  %4064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4065 = load i32, ptr %4064, align 4, !tbaa !5
  %4066 = call ptr @s2n_strerror_debug(i32 noundef %4065, ptr noundef @.str.4)
  %4067 = call ptr @__errno_location() #12
  %4068 = load i32, ptr %4067, align 4, !tbaa !5
  %4069 = call ptr @strerror(i32 noundef %4068) #11
  %4070 = call ptr @__errno_location() #12
  %4071 = load i32, ptr %4070, align 4, !tbaa !5
  %4072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4059, ptr noundef @.str.5, i32 noundef %4060, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 338, ptr noundef %4063, ptr noundef %4066, ptr noundef %4069, i32 noundef %4071) #11
  br label %4073

4073:                                             ; preds = %4056, %4039
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %4074

4074:                                             ; preds = %4073
  br label %4075

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

4076:                                             ; No predecessors!
  br label %4077

4077:                                             ; preds = %4076
  br label %4078

4078:                                             ; preds = %4077, %4018
  br label %4079

4079:                                             ; preds = %4078
  br label %4080

4080:                                             ; preds = %4079
  br label %4081

4081:                                             ; preds = %4080
  %4082 = load i32, ptr @test_count, align 4, !tbaa !5
  %4083 = add nsw i32 %4082, 1
  store i32 %4083, ptr @test_count, align 4, !tbaa !5
  %4084 = load ptr, ptr %116, align 8, !tbaa !9
  %4085 = call i32 @s2n_connection_set_blinding(ptr noundef %4084, i32 noundef 1)
  %4086 = icmp eq i32 %4085, -1
  br i1 %4086, label %4087, label %4140

4087:                                             ; preds = %4081
  br label %4088

4088:                                             ; preds = %4087
  br label %4089

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

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

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

4118:                                             ; preds = %4096, %4089
  %4119 = load i32, ptr %118, align 4, !tbaa !5
  %4120 = call ptr @__errno_location() #12
  store i32 %4119, ptr %4120, align 4, !tbaa !5
  %4121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4122 = load i32, ptr @test_count, align 4, !tbaa !5
  %4123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4124 = load i32, ptr %4123, align 4, !tbaa !5
  %4125 = call ptr @s2n_strerror(i32 noundef %4124, ptr noundef @.str.4)
  %4126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4127 = load i32, ptr %4126, align 4, !tbaa !5
  %4128 = call ptr @s2n_strerror_debug(i32 noundef %4127, ptr noundef @.str.4)
  %4129 = call ptr @__errno_location() #12
  %4130 = load i32, ptr %4129, align 4, !tbaa !5
  %4131 = call ptr @strerror(i32 noundef %4130) #11
  %4132 = call ptr @__errno_location() #12
  %4133 = load i32, ptr %4132, align 4, !tbaa !5
  %4134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4121, ptr noundef @.str.5, i32 noundef %4122, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 339, ptr noundef %4125, ptr noundef %4128, ptr noundef %4131, i32 noundef %4133) #11
  br label %4135

4135:                                             ; preds = %4118, %4101
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %4136

4136:                                             ; preds = %4135
  br label %4137

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

4138:                                             ; No predecessors!
  br label %4139

4139:                                             ; preds = %4138
  br label %4140

4140:                                             ; preds = %4139, %4081
  br label %4141

4141:                                             ; preds = %4140
  br label %4142

4142:                                             ; preds = %4141
  br label %4143

4143:                                             ; preds = %4142
  %4144 = load i32, ptr @test_count, align 4, !tbaa !5
  %4145 = add nsw i32 %4144, 1
  store i32 %4145, ptr @test_count, align 4, !tbaa !5
  %4146 = load ptr, ptr %116, align 8, !tbaa !9
  %4147 = getelementptr inbounds %struct.s2n_blob, ptr %108, i32 0, i32 1
  %4148 = load i32, ptr %4147, align 8, !tbaa !52
  %4149 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %4146, i32 noundef %4148, ptr noundef @s2n_tls13_aes_256_gcm_sha384)
  %4150 = getelementptr inbounds %struct.s2n_result, ptr %119, i32 0, i32 0
  store i32 %4149, ptr %4150, align 4
  %4151 = getelementptr inbounds %struct.s2n_result, ptr %119, i32 0, i32 0
  %4152 = load i32, ptr %4151, align 4
  %4153 = call zeroext i1 @s2n_result_is_ok(i32 %4152)
  br i1 %4153, label %4207, label %4154

4154:                                             ; preds = %4143
  br label %4155

4155:                                             ; preds = %4154
  br label %4156

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

4163:                                             ; preds = %4156
  %4164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4165 = call i32 @fileno(ptr noundef %4164) #11
  %4166 = call i32 @isatty(i32 noundef %4165) #11
  %4167 = icmp ne i32 %4166, 0
  br i1 %4167, label %4168, label %4185

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

4185:                                             ; preds = %4163, %4156
  %4186 = load i32, ptr %120, align 4, !tbaa !5
  %4187 = call ptr @__errno_location() #12
  store i32 %4186, ptr %4187, align 4, !tbaa !5
  %4188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4189 = load i32, ptr @test_count, align 4, !tbaa !5
  %4190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4191 = load i32, ptr %4190, align 4, !tbaa !5
  %4192 = call ptr @s2n_strerror(i32 noundef %4191, ptr noundef @.str.4)
  %4193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4194 = load i32, ptr %4193, align 4, !tbaa !5
  %4195 = call ptr @s2n_strerror_debug(i32 noundef %4194, ptr noundef @.str.4)
  %4196 = call ptr @__errno_location() #12
  %4197 = load i32, ptr %4196, align 4, !tbaa !5
  %4198 = call ptr @strerror(i32 noundef %4197) #11
  %4199 = call ptr @__errno_location() #12
  %4200 = load i32, ptr %4199, align 4, !tbaa !5
  %4201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4188, ptr noundef @.str.5, i32 noundef %4189, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 340, ptr noundef %4192, ptr noundef %4195, ptr noundef %4198, i32 noundef %4200) #11
  br label %4202

4202:                                             ; preds = %4185, %4168
  call void @llvm.lifetime.end.p0(i64 4, ptr %120) #11
  br label %4203

4203:                                             ; preds = %4202
  br label %4204

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

4205:                                             ; No predecessors!
  br label %4206

4206:                                             ; preds = %4205
  br label %4207

4207:                                             ; preds = %4206, %4143
  br label %4208

4208:                                             ; preds = %4207
  br label %4209

4209:                                             ; preds = %4208
  %4210 = load i32, ptr %15, align 4, !tbaa !5
  %4211 = trunc i32 %4210 to i16
  %4212 = load ptr, ptr %116, align 8, !tbaa !9
  %4213 = getelementptr inbounds %struct.s2n_connection, ptr %4212, i32 0, i32 53
  store i16 %4211, ptr %4213, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 80, ptr %121) #11
  call void @llvm.memset.p0.i64(ptr align 8 %121, i8 0, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 80, ptr %122) #11
  call void @llvm.memset.p0.i64(ptr align 8 %122, i8 0, i64 80, i1 false)
  br label %4214

4214:                                             ; preds = %4209
  %4215 = load i32, ptr @test_count, align 4, !tbaa !5
  %4216 = add nsw i32 %4215, 1
  store i32 %4216, ptr @test_count, align 4, !tbaa !5
  %4217 = load ptr, ptr %116, align 8, !tbaa !9
  %4218 = load ptr, ptr %111, align 8, !tbaa !9
  %4219 = call i32 @s2n_connections_set_blocking_io_pair(ptr noundef %121, ptr noundef %4217, ptr noundef %4218, ptr noundef %122)
  %4220 = getelementptr inbounds %struct.s2n_result, ptr %123, i32 0, i32 0
  store i32 %4219, ptr %4220, align 4
  %4221 = getelementptr inbounds %struct.s2n_result, ptr %123, i32 0, i32 0
  %4222 = load i32, ptr %4221, align 4
  %4223 = call zeroext i1 @s2n_result_is_ok(i32 %4222)
  br i1 %4223, label %4277, label %4224

4224:                                             ; preds = %4214
  br label %4225

4225:                                             ; preds = %4224
  br label %4226

4226:                                             ; preds = %4225
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #11
  %4227 = call ptr @__errno_location() #12
  %4228 = load i32, ptr %4227, align 4, !tbaa !5
  store i32 %4228, ptr %124, align 4, !tbaa !5
  %4229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4230 = call i32 @s2n_print_stacktrace(ptr noundef %4229)
  %4231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4232 = trunc i8 %4231 to i1
  br i1 %4232, label %4233, label %4255

4233:                                             ; preds = %4226
  %4234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4235 = call i32 @fileno(ptr noundef %4234) #11
  %4236 = call i32 @isatty(i32 noundef %4235) #11
  %4237 = icmp ne i32 %4236, 0
  br i1 %4237, label %4238, label %4255

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

4255:                                             ; preds = %4233, %4226
  %4256 = load i32, ptr %124, align 4, !tbaa !5
  %4257 = call ptr @__errno_location() #12
  store i32 %4256, ptr %4257, align 4, !tbaa !5
  %4258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4259 = load i32, ptr @test_count, align 4, !tbaa !5
  %4260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4261 = load i32, ptr %4260, align 4, !tbaa !5
  %4262 = call ptr @s2n_strerror(i32 noundef %4261, ptr noundef @.str.4)
  %4263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4264 = load i32, ptr %4263, align 4, !tbaa !5
  %4265 = call ptr @s2n_strerror_debug(i32 noundef %4264, ptr noundef @.str.4)
  %4266 = call ptr @__errno_location() #12
  %4267 = load i32, ptr %4266, align 4, !tbaa !5
  %4268 = call ptr @strerror(i32 noundef %4267) #11
  %4269 = call ptr @__errno_location() #12
  %4270 = load i32, ptr %4269, align 4, !tbaa !5
  %4271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4258, ptr noundef @.str.5, i32 noundef %4259, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 345, ptr noundef %4262, ptr noundef %4265, ptr noundef %4268, i32 noundef %4270) #11
  br label %4272

4272:                                             ; preds = %4255, %4238
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #11
  br label %4273

4273:                                             ; preds = %4272
  br label %4274

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

4275:                                             ; No predecessors!
  br label %4276

4276:                                             ; preds = %4275
  br label %4277

4277:                                             ; preds = %4276, %4214
  br label %4278

4278:                                             ; preds = %4277
  br label %4279

4279:                                             ; preds = %4278
  call void @llvm.lifetime.start.p0(i64 12, ptr %125) #11
  call void @llvm.memset.p0.i64(ptr align 1 %125, i8 0, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %126) #11
  call void @llvm.memset.p0.i64(ptr align 8 %126, i8 0, i64 24, i1 false)
  br label %4280

4280:                                             ; preds = %4279
  %4281 = load i32, ptr @test_count, align 4, !tbaa !5
  %4282 = add nsw i32 %4281, 1
  store i32 %4282, ptr @test_count, align 4, !tbaa !5
  %4283 = getelementptr inbounds [12 x i8], ptr %125, i64 0, i64 0
  %4284 = call i32 @s2n_blob_init(ptr noundef %126, ptr noundef %4283, i32 noundef 12)
  %4285 = icmp eq i32 %4284, -1
  br i1 %4285, label %4286, label %4339

4286:                                             ; preds = %4280
  br label %4287

4287:                                             ; preds = %4286
  br label %4288

4288:                                             ; preds = %4287
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #11
  %4289 = call ptr @__errno_location() #12
  %4290 = load i32, ptr %4289, align 4, !tbaa !5
  store i32 %4290, ptr %127, align 4, !tbaa !5
  %4291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4292 = call i32 @s2n_print_stacktrace(ptr noundef %4291)
  %4293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4294 = trunc i8 %4293 to i1
  br i1 %4294, label %4295, label %4317

4295:                                             ; preds = %4288
  %4296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4297 = call i32 @fileno(ptr noundef %4296) #11
  %4298 = call i32 @isatty(i32 noundef %4297) #11
  %4299 = icmp ne i32 %4298, 0
  br i1 %4299, label %4300, label %4317

4300:                                             ; preds = %4295
  %4301 = load i32, ptr %127, align 4, !tbaa !5
  %4302 = call ptr @__errno_location() #12
  store i32 %4301, ptr %4302, align 4, !tbaa !5
  %4303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4304 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4306, ptr noundef @.str.4)
  %4308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4309 = load i32, ptr %4308, align 4, !tbaa !5
  %4310 = call ptr @s2n_strerror_debug(i32 noundef %4309, ptr noundef @.str.4)
  %4311 = call ptr @__errno_location() #12
  %4312 = load i32, ptr %4311, align 4, !tbaa !5
  %4313 = call ptr @strerror(i32 noundef %4312) #11
  %4314 = call ptr @__errno_location() #12
  %4315 = load i32, ptr %4314, align 4, !tbaa !5
  %4316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4303, ptr noundef @.str.2, i32 noundef %4304, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 349, ptr noundef %4307, ptr noundef %4310, ptr noundef %4313, i32 noundef %4315) #11
  br label %4334

4317:                                             ; preds = %4295, %4288
  %4318 = load i32, ptr %127, align 4, !tbaa !5
  %4319 = call ptr @__errno_location() #12
  store i32 %4318, ptr %4319, align 4, !tbaa !5
  %4320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4321 = load i32, ptr @test_count, align 4, !tbaa !5
  %4322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4323 = load i32, ptr %4322, align 4, !tbaa !5
  %4324 = call ptr @s2n_strerror(i32 noundef %4323, ptr noundef @.str.4)
  %4325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4326 = load i32, ptr %4325, align 4, !tbaa !5
  %4327 = call ptr @s2n_strerror_debug(i32 noundef %4326, ptr noundef @.str.4)
  %4328 = call ptr @__errno_location() #12
  %4329 = load i32, ptr %4328, align 4, !tbaa !5
  %4330 = call ptr @strerror(i32 noundef %4329) #11
  %4331 = call ptr @__errno_location() #12
  %4332 = load i32, ptr %4331, align 4, !tbaa !5
  %4333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4320, ptr noundef @.str.5, i32 noundef %4321, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 349, ptr noundef %4324, ptr noundef %4327, ptr noundef %4330, i32 noundef %4332) #11
  br label %4334

4334:                                             ; preds = %4317, %4300
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #11
  br label %4335

4335:                                             ; preds = %4334
  br label %4336

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

4337:                                             ; No predecessors!
  br label %4338

4338:                                             ; preds = %4337
  br label %4339

4339:                                             ; preds = %4338, %4280
  br label %4340

4340:                                             ; preds = %4339
  br label %4341

4341:                                             ; preds = %4340
  br label %4342

4342:                                             ; preds = %4341
  br label %4343

4343:                                             ; preds = %4342
  br label %4344

4344:                                             ; preds = %4343
  %4345 = load i32, ptr @test_count, align 4, !tbaa !5
  %4346 = add nsw i32 %4345, 1
  store i32 %4346, ptr @test_count, align 4, !tbaa !5
  %4347 = load ptr, ptr %111, align 8, !tbaa !9
  %4348 = load ptr, ptr %116, align 8, !tbaa !9
  %4349 = call i32 @s2n_negotiate_test_server_and_client_with_early_data(ptr noundef %4347, ptr noundef %4348, ptr noundef %108, ptr noundef %126)
  %4350 = getelementptr inbounds %struct.s2n_result, ptr %128, i32 0, i32 0
  store i32 %4349, ptr %4350, align 4
  %4351 = getelementptr inbounds %struct.s2n_result, ptr %128, i32 0, i32 0
  %4352 = load i32, ptr %4351, align 4
  %4353 = call zeroext i1 @s2n_result_is_error(i32 %4352)
  br i1 %4353, label %4407, label %4354

4354:                                             ; preds = %4344
  br label %4355

4355:                                             ; preds = %4354
  br label %4356

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

4363:                                             ; preds = %4356
  %4364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4365 = call i32 @fileno(ptr noundef %4364) #11
  %4366 = call i32 @isatty(i32 noundef %4365) #11
  %4367 = icmp ne i32 %4366, 0
  br i1 %4367, label %4368, label %4385

4368:                                             ; preds = %4363
  %4369 = load i32, ptr %129, align 4, !tbaa !5
  %4370 = call ptr @__errno_location() #12
  store i32 %4369, ptr %4370, align 4, !tbaa !5
  %4371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4372 = load i32, ptr @test_count, align 4, !tbaa !5
  %4373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4374 = load i32, ptr %4373, align 4, !tbaa !5
  %4375 = call ptr @s2n_strerror(i32 noundef %4374, ptr noundef @.str.4)
  %4376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4377 = load i32, ptr %4376, align 4, !tbaa !5
  %4378 = call ptr @s2n_strerror_debug(i32 noundef %4377, ptr noundef @.str.4)
  %4379 = call ptr @__errno_location() #12
  %4380 = load i32, ptr %4379, align 4, !tbaa !5
  %4381 = call ptr @strerror(i32 noundef %4380) #11
  %4382 = call ptr @__errno_location() #12
  %4383 = load i32, ptr %4382, align 4, !tbaa !5
  %4384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4371, ptr noundef @.str.2, i32 noundef %4372, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 353, ptr noundef %4375, ptr noundef %4378, ptr noundef %4381, i32 noundef %4383) #11
  br label %4402

4385:                                             ; preds = %4363, %4356
  %4386 = load i32, ptr %129, align 4, !tbaa !5
  %4387 = call ptr @__errno_location() #12
  store i32 %4386, ptr %4387, align 4, !tbaa !5
  %4388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4389 = load i32, ptr @test_count, align 4, !tbaa !5
  %4390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4391 = load i32, ptr %4390, align 4, !tbaa !5
  %4392 = call ptr @s2n_strerror(i32 noundef %4391, ptr noundef @.str.4)
  %4393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4394 = load i32, ptr %4393, align 4, !tbaa !5
  %4395 = call ptr @s2n_strerror_debug(i32 noundef %4394, ptr noundef @.str.4)
  %4396 = call ptr @__errno_location() #12
  %4397 = load i32, ptr %4396, align 4, !tbaa !5
  %4398 = call ptr @strerror(i32 noundef %4397) #11
  %4399 = call ptr @__errno_location() #12
  %4400 = load i32, ptr %4399, align 4, !tbaa !5
  %4401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4388, ptr noundef @.str.5, i32 noundef %4389, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 353, ptr noundef %4392, ptr noundef %4395, ptr noundef %4398, i32 noundef %4400) #11
  br label %4402

4402:                                             ; preds = %4385, %4368
  call void @llvm.lifetime.end.p0(i64 4, ptr %129) #11
  br label %4403

4403:                                             ; preds = %4402
  br label %4404

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

4405:                                             ; No predecessors!
  br label %4406

4406:                                             ; preds = %4405
  br label %4407

4407:                                             ; preds = %4406, %4344
  br label %4408

4408:                                             ; preds = %4407
  br label %4409

4409:                                             ; preds = %4408
  br label %4410

4410:                                             ; preds = %4409
  %4411 = load i32, ptr @test_count, align 4, !tbaa !5
  %4412 = add nsw i32 %4411, 1
  store i32 %4412, ptr @test_count, align 4, !tbaa !5
  %4413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4414 = load i32, ptr %4413, align 4, !tbaa !5
  %4415 = icmp eq i32 %4414, 201326592
  br i1 %4415, label %4469, label %4416

4416:                                             ; preds = %4410
  br label %4417

4417:                                             ; preds = %4416
  br label %4418

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

4425:                                             ; preds = %4418
  %4426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4427 = call i32 @fileno(ptr noundef %4426) #11
  %4428 = call i32 @isatty(i32 noundef %4427) #11
  %4429 = icmp ne i32 %4428, 0
  br i1 %4429, label %4430, label %4447

4430:                                             ; preds = %4425
  %4431 = load i32, ptr %130, align 4, !tbaa !5
  %4432 = call ptr @__errno_location() #12
  store i32 %4431, ptr %4432, align 4, !tbaa !5
  %4433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4434 = load i32, ptr @test_count, align 4, !tbaa !5
  %4435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4436 = load i32, ptr %4435, align 4, !tbaa !5
  %4437 = call ptr @s2n_strerror(i32 noundef %4436, ptr noundef @.str.4)
  %4438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4439 = load i32, ptr %4438, align 4, !tbaa !5
  %4440 = call ptr @s2n_strerror_debug(i32 noundef %4439, ptr noundef @.str.4)
  %4441 = call ptr @__errno_location() #12
  %4442 = load i32, ptr %4441, align 4, !tbaa !5
  %4443 = call ptr @strerror(i32 noundef %4442) #11
  %4444 = call ptr @__errno_location() #12
  %4445 = load i32, ptr %4444, align 4, !tbaa !5
  %4446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4433, ptr noundef @.str.2, i32 noundef %4434, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 353, ptr noundef %4437, ptr noundef %4440, ptr noundef %4443, i32 noundef %4445) #11
  br label %4464

4447:                                             ; preds = %4425, %4418
  %4448 = load i32, ptr %130, align 4, !tbaa !5
  %4449 = call ptr @__errno_location() #12
  store i32 %4448, ptr %4449, align 4, !tbaa !5
  %4450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4451 = load i32, ptr @test_count, align 4, !tbaa !5
  %4452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4453 = load i32, ptr %4452, align 4, !tbaa !5
  %4454 = call ptr @s2n_strerror(i32 noundef %4453, ptr noundef @.str.4)
  %4455 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4456 = load i32, ptr %4455, align 4, !tbaa !5
  %4457 = call ptr @s2n_strerror_debug(i32 noundef %4456, ptr noundef @.str.4)
  %4458 = call ptr @__errno_location() #12
  %4459 = load i32, ptr %4458, align 4, !tbaa !5
  %4460 = call ptr @strerror(i32 noundef %4459) #11
  %4461 = call ptr @__errno_location() #12
  %4462 = load i32, ptr %4461, align 4, !tbaa !5
  %4463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4450, ptr noundef @.str.5, i32 noundef %4451, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 353, ptr noundef %4454, ptr noundef %4457, ptr noundef %4460, i32 noundef %4462) #11
  br label %4464

4464:                                             ; preds = %4447, %4430
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #11
  br label %4465

4465:                                             ; preds = %4464
  br label %4466

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

4467:                                             ; No predecessors!
  br label %4468

4468:                                             ; preds = %4467
  br label %4469

4469:                                             ; preds = %4468, %4410
  br label %4470

4470:                                             ; preds = %4469
  br label %4471

4471:                                             ; preds = %4470
  br label %4472

4472:                                             ; preds = %4471
  %4473 = load i32, ptr @test_count, align 4, !tbaa !5
  %4474 = add nsw i32 %4473, 1
  store i32 %4474, ptr @test_count, align 4, !tbaa !5
  %4475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4476 = load i32, ptr %4475, align 4, !tbaa !5
  %4477 = call ptr @s2n_strerror_debug(i32 noundef %4476, ptr noundef @.str.4)
  %4478 = icmp eq ptr %4477, null
  br i1 %4478, label %4479, label %4532

4479:                                             ; preds = %4472
  br label %4480

4480:                                             ; preds = %4479
  br label %4481

4481:                                             ; preds = %4480
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #11
  %4482 = call ptr @__errno_location() #12
  %4483 = load i32, ptr %4482, align 4, !tbaa !5
  store i32 %4483, ptr %131, align 4, !tbaa !5
  %4484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4485 = call i32 @s2n_print_stacktrace(ptr noundef %4484)
  %4486 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4487 = trunc i8 %4486 to i1
  br i1 %4487, label %4488, label %4510

4488:                                             ; preds = %4481
  %4489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4490 = call i32 @fileno(ptr noundef %4489) #11
  %4491 = call i32 @isatty(i32 noundef %4490) #11
  %4492 = icmp ne i32 %4491, 0
  br i1 %4492, label %4493, label %4510

4493:                                             ; preds = %4488
  %4494 = load i32, ptr %131, align 4, !tbaa !5
  %4495 = call ptr @__errno_location() #12
  store i32 %4494, ptr %4495, align 4, !tbaa !5
  %4496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4497 = load i32, ptr @test_count, align 4, !tbaa !5
  %4498 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4499 = load i32, ptr %4498, align 4, !tbaa !5
  %4500 = call ptr @s2n_strerror(i32 noundef %4499, ptr noundef @.str.4)
  %4501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4502 = load i32, ptr %4501, align 4, !tbaa !5
  %4503 = call ptr @s2n_strerror_debug(i32 noundef %4502, ptr noundef @.str.4)
  %4504 = call ptr @__errno_location() #12
  %4505 = load i32, ptr %4504, align 4, !tbaa !5
  %4506 = call ptr @strerror(i32 noundef %4505) #11
  %4507 = call ptr @__errno_location() #12
  %4508 = load i32, ptr %4507, align 4, !tbaa !5
  %4509 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4496, ptr noundef @.str.2, i32 noundef %4497, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 353, ptr noundef %4500, ptr noundef %4503, ptr noundef %4506, i32 noundef %4508) #11
  br label %4527

4510:                                             ; preds = %4488, %4481
  %4511 = load i32, ptr %131, align 4, !tbaa !5
  %4512 = call ptr @__errno_location() #12
  store i32 %4511, ptr %4512, align 4, !tbaa !5
  %4513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4514 = load i32, ptr @test_count, align 4, !tbaa !5
  %4515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4516 = load i32, ptr %4515, align 4, !tbaa !5
  %4517 = call ptr @s2n_strerror(i32 noundef %4516, ptr noundef @.str.4)
  %4518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4519 = load i32, ptr %4518, align 4, !tbaa !5
  %4520 = call ptr @s2n_strerror_debug(i32 noundef %4519, ptr noundef @.str.4)
  %4521 = call ptr @__errno_location() #12
  %4522 = load i32, ptr %4521, align 4, !tbaa !5
  %4523 = call ptr @strerror(i32 noundef %4522) #11
  %4524 = call ptr @__errno_location() #12
  %4525 = load i32, ptr %4524, align 4, !tbaa !5
  %4526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4513, ptr noundef @.str.5, i32 noundef %4514, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 353, ptr noundef %4517, ptr noundef %4520, ptr noundef %4523, i32 noundef %4525) #11
  br label %4527

4527:                                             ; preds = %4510, %4493
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  br label %4528

4528:                                             ; preds = %4527
  br label %4529

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

4530:                                             ; No predecessors!
  br label %4531

4531:                                             ; preds = %4530
  br label %4532

4532:                                             ; preds = %4531, %4472
  br label %4533

4533:                                             ; preds = %4532
  br label %4534

4534:                                             ; preds = %4533
  br label %4535

4535:                                             ; preds = %4534
  br label %4536

4536:                                             ; preds = %4535
  br label %4537

4537:                                             ; preds = %4536
  %4538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4538, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4539 = call ptr @__errno_location() #12
  store i32 0, ptr %4539, align 4, !tbaa !5
  br label %4540

4540:                                             ; preds = %4537
  br label %4541

4541:                                             ; preds = %4540
  br label %4542

4542:                                             ; preds = %4541
  br label %4543

4543:                                             ; preds = %4542
  br label %4544

4544:                                             ; preds = %4543
  %4545 = load i32, ptr @test_count, align 4, !tbaa !5
  %4546 = add nsw i32 %4545, 1
  store i32 %4546, ptr @test_count, align 4, !tbaa !5
  %4547 = load ptr, ptr %111, align 8, !tbaa !9
  %4548 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %4547, i32 noundef 64)
  br i1 %4548, label %4602, label %4549

4549:                                             ; preds = %4544
  br label %4550

4550:                                             ; preds = %4549
  br label %4551

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

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

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

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

4597:                                             ; preds = %4580, %4563
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #11
  br label %4598

4598:                                             ; preds = %4597
  br label %4599

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

4600:                                             ; No predecessors!
  br label %4601

4601:                                             ; preds = %4600
  br label %4602

4602:                                             ; preds = %4601, %4544
  br label %4603

4603:                                             ; preds = %4602
  br label %4604

4604:                                             ; preds = %4603
  br label %4605

4605:                                             ; preds = %4604
  %4606 = load i32, ptr @test_count, align 4, !tbaa !5
  %4607 = add nsw i32 %4606, 1
  store i32 %4607, ptr @test_count, align 4, !tbaa !5
  %4608 = load ptr, ptr %116, align 8, !tbaa !9
  %4609 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %4608, i32 noundef 64)
  br i1 %4609, label %4663, label %4610

4610:                                             ; preds = %4605
  br label %4611

4611:                                             ; preds = %4610
  br label %4612

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

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

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

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

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

4659:                                             ; preds = %4658
  br label %4660

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

4661:                                             ; No predecessors!
  br label %4662

4662:                                             ; preds = %4661
  br label %4663

4663:                                             ; preds = %4662, %4605
  br label %4664

4664:                                             ; preds = %4663
  br label %4665

4665:                                             ; preds = %4664
  br label %4666

4666:                                             ; preds = %4665
  br label %4667

4667:                                             ; preds = %4666
  %4668 = load i32, ptr @test_count, align 4, !tbaa !5
  %4669 = add nsw i32 %4668, 1
  store i32 %4669, ptr @test_count, align 4, !tbaa !5
  %4670 = getelementptr inbounds %struct.s2n_blob, ptr %108, i32 0, i32 1
  %4671 = load i32, ptr %4670, align 8, !tbaa !52
  %4672 = getelementptr inbounds %struct.s2n_blob, ptr %126, i32 0, i32 1
  %4673 = load i32, ptr %4672, align 8, !tbaa !52
  %4674 = icmp eq i32 %4671, %4673
  br i1 %4674, label %4728, label %4675

4675:                                             ; preds = %4667
  br label %4676

4676:                                             ; preds = %4675
  br label %4677

4677:                                             ; preds = %4676
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #11
  %4678 = call ptr @__errno_location() #12
  %4679 = load i32, ptr %4678, align 4, !tbaa !5
  store i32 %4679, ptr %134, align 4, !tbaa !5
  %4680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4681 = call i32 @s2n_print_stacktrace(ptr noundef %4680)
  %4682 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4683 = trunc i8 %4682 to i1
  br i1 %4683, label %4684, label %4706

4684:                                             ; preds = %4677
  %4685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4686 = call i32 @fileno(ptr noundef %4685) #11
  %4687 = call i32 @isatty(i32 noundef %4686) #11
  %4688 = icmp ne i32 %4687, 0
  br i1 %4688, label %4689, label %4706

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

4706:                                             ; preds = %4684, %4677
  %4707 = load i32, ptr %134, align 4, !tbaa !5
  %4708 = call ptr @__errno_location() #12
  store i32 %4707, ptr %4708, align 4, !tbaa !5
  %4709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4710 = load i32, ptr @test_count, align 4, !tbaa !5
  %4711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4712 = load i32, ptr %4711, align 4, !tbaa !5
  %4713 = call ptr @s2n_strerror(i32 noundef %4712, ptr noundef @.str.4)
  %4714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4715 = load i32, ptr %4714, align 4, !tbaa !5
  %4716 = call ptr @s2n_strerror_debug(i32 noundef %4715, ptr noundef @.str.4)
  %4717 = call ptr @__errno_location() #12
  %4718 = load i32, ptr %4717, align 4, !tbaa !5
  %4719 = call ptr @strerror(i32 noundef %4718) #11
  %4720 = call ptr @__errno_location() #12
  %4721 = load i32, ptr %4720, align 4, !tbaa !5
  %4722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4709, ptr noundef @.str.5, i32 noundef %4710, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 358, ptr noundef %4713, ptr noundef %4716, ptr noundef %4719, i32 noundef %4721) #11
  br label %4723

4723:                                             ; preds = %4706, %4689
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #11
  br label %4724

4724:                                             ; preds = %4723
  br label %4725

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

4726:                                             ; No predecessors!
  br label %4727

4727:                                             ; preds = %4726
  br label %4728

4728:                                             ; preds = %4727, %4667
  br label %4729

4729:                                             ; preds = %4728
  br label %4730

4730:                                             ; preds = %4729
  br label %4731

4731:                                             ; preds = %4730
  %4732 = getelementptr inbounds %struct.s2n_blob, ptr %108, i32 0, i32 1
  %4733 = load i32, ptr %4732, align 8, !tbaa !52
  %4734 = icmp ne i32 %4733, 0
  br i1 %4734, label %4735, label %4804

4735:                                             ; preds = %4731
  br label %4736

4736:                                             ; preds = %4735
  %4737 = load i32, ptr @test_count, align 4, !tbaa !5
  %4738 = add nsw i32 %4737, 1
  store i32 %4738, ptr @test_count, align 4, !tbaa !5
  %4739 = getelementptr inbounds %struct.s2n_blob, ptr %108, i32 0, i32 0
  %4740 = load ptr, ptr %4739, align 8, !tbaa !53
  %4741 = getelementptr inbounds %struct.s2n_blob, ptr %126, i32 0, i32 0
  %4742 = load ptr, ptr %4741, align 8, !tbaa !53
  %4743 = getelementptr inbounds %struct.s2n_blob, ptr %108, i32 0, i32 1
  %4744 = load i32, ptr %4743, align 8, !tbaa !52
  %4745 = zext i32 %4744 to i64
  %4746 = call i32 @memcmp(ptr noundef %4740, ptr noundef %4742, i64 noundef %4745) #14
  %4747 = icmp eq i32 %4746, 0
  br i1 %4747, label %4801, label %4748

4748:                                             ; preds = %4736
  br label %4749

4749:                                             ; preds = %4748
  br label %4750

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

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

4762:                                             ; preds = %4757
  %4763 = load i32, ptr %135, align 4, !tbaa !5
  %4764 = call ptr @__errno_location() #12
  store i32 %4763, ptr %4764, align 4, !tbaa !5
  %4765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4766 = load i32, ptr @test_count, align 4, !tbaa !5
  %4767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4768 = load i32, ptr %4767, align 4, !tbaa !5
  %4769 = call ptr @s2n_strerror(i32 noundef %4768, ptr noundef @.str.4)
  %4770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4771 = load i32, ptr %4770, align 4, !tbaa !5
  %4772 = call ptr @s2n_strerror_debug(i32 noundef %4771, ptr noundef @.str.4)
  %4773 = call ptr @__errno_location() #12
  %4774 = load i32, ptr %4773, align 4, !tbaa !5
  %4775 = call ptr @strerror(i32 noundef %4774) #11
  %4776 = call ptr @__errno_location() #12
  %4777 = load i32, ptr %4776, align 4, !tbaa !5
  %4778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4765, ptr noundef @.str.2, i32 noundef %4766, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 358, ptr noundef %4769, ptr noundef %4772, ptr noundef %4775, i32 noundef %4777) #11
  br label %4796

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

4796:                                             ; preds = %4779, %4762
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #11
  br label %4797

4797:                                             ; preds = %4796
  br label %4798

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

4799:                                             ; No predecessors!
  br label %4800

4800:                                             ; preds = %4799
  br label %4801

4801:                                             ; preds = %4800, %4736
  br label %4802

4802:                                             ; preds = %4801
  br label %4803

4803:                                             ; preds = %4802
  br label %4804

4804:                                             ; preds = %4803, %4731
  br label %4805

4805:                                             ; preds = %4804
  br label %4806

4806:                                             ; preds = %4805
  br label %4807

4807:                                             ; preds = %4806
  br label %4808

4808:                                             ; preds = %4807
  br label %4809

4809:                                             ; preds = %4854, %4808
  %4810 = load ptr, ptr %111, align 8, !tbaa !9
  %4811 = load ptr, ptr %116, align 8, !tbaa !9
  %4812 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %4810, ptr noundef %4811)
  %4813 = icmp slt i32 %4812, 0
  br i1 %4813, label %4814, label %4855

4814:                                             ; preds = %4809
  br label %4815

4815:                                             ; preds = %4814
  %4816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4817 = load i32, ptr %4816, align 4, !tbaa !5
  %4818 = icmp ne i32 %4817, 0
  br i1 %4818, label %4852, label %4819

4819:                                             ; preds = %4815
  br label %4820

4820:                                             ; preds = %4819
  br label %4821

4821:                                             ; preds = %4820
  %4822 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4823 = getelementptr inbounds %struct.s2n_debug_info, ptr %4822, i32 0, i32 0
  store ptr @.str.48, ptr %4823, align 8, !tbaa !43
  %4824 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4825 = getelementptr inbounds %struct.s2n_debug_info, ptr %4824, i32 0, i32 0
  %4826 = load ptr, ptr %4825, align 8, !tbaa !43
  %4827 = getelementptr inbounds i8, ptr %4826, i64 21
  %4828 = call ptr @strrchr(ptr noundef %4827, i32 noundef 47) #14
  %4829 = icmp ne ptr %4828, null
  br i1 %4829, label %4830, label %4837

4830:                                             ; preds = %4821
  %4831 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4832 = getelementptr inbounds %struct.s2n_debug_info, ptr %4831, i32 0, i32 0
  %4833 = load ptr, ptr %4832, align 8, !tbaa !43
  %4834 = getelementptr inbounds i8, ptr %4833, i64 21
  %4835 = call ptr @strrchr(ptr noundef %4834, i32 noundef 47) #14
  %4836 = getelementptr inbounds i8, ptr %4835, i64 1
  br label %4842

4837:                                             ; preds = %4821
  %4838 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4839 = getelementptr inbounds %struct.s2n_debug_info, ptr %4838, i32 0, i32 0
  %4840 = load ptr, ptr %4839, align 8, !tbaa !43
  %4841 = getelementptr inbounds i8, ptr %4840, i64 21
  br label %4842

4842:                                             ; preds = %4837, %4830
  %4843 = phi ptr [ %4836, %4830 ], [ %4841, %4837 ]
  %4844 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %4845 = getelementptr inbounds %struct.s2n_debug_info, ptr %4844, i32 0, i32 1
  store ptr %4843, ptr %4845, align 8, !tbaa !45
  %4846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 201326592, ptr %4846, align 4, !tbaa !5
  %4847 = call i32 @s2n_calculate_stacktrace()
  br label %4848

4848:                                             ; preds = %4842
  br label %4849

4849:                                             ; preds = %4848
  store i32 -1, ptr %3, align 4
  store i32 1, ptr %13, align 4
  br label %5102

4850:                                             ; No predecessors!
  br label %4851

4851:                                             ; preds = %4850
  br label %4852

4852:                                             ; preds = %4851, %4815
  br label %4853

4853:                                             ; preds = %4852
  br label %4854

4854:                                             ; preds = %4853
  br label %4809, !llvm.loop !54

4855:                                             ; preds = %4809
  br label %4856

4856:                                             ; preds = %4855
  %4857 = load i32, ptr @test_count, align 4, !tbaa !5
  %4858 = add nsw i32 %4857, 1
  store i32 %4858, ptr @test_count, align 4, !tbaa !5
  %4859 = load ptr, ptr %111, align 8, !tbaa !9
  %4860 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %4859, i32 noundef 1)
  br i1 %4860, label %4914, label %4861

4861:                                             ; preds = %4856
  br label %4862

4862:                                             ; preds = %4861
  br label %4863

4863:                                             ; preds = %4862
  call void @llvm.lifetime.start.p0(i64 4, ptr %136) #11
  %4864 = call ptr @__errno_location() #12
  %4865 = load i32, ptr %4864, align 4, !tbaa !5
  store i32 %4865, ptr %136, align 4, !tbaa !5
  %4866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4867 = call i32 @s2n_print_stacktrace(ptr noundef %4866)
  %4868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4869 = trunc i8 %4868 to i1
  br i1 %4869, label %4870, label %4892

4870:                                             ; preds = %4863
  %4871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4872 = call i32 @fileno(ptr noundef %4871) #11
  %4873 = call i32 @isatty(i32 noundef %4872) #11
  %4874 = icmp ne i32 %4873, 0
  br i1 %4874, label %4875, label %4892

4875:                                             ; preds = %4870
  %4876 = load i32, ptr %136, align 4, !tbaa !5
  %4877 = call ptr @__errno_location() #12
  store i32 %4876, ptr %4877, align 4, !tbaa !5
  %4878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4879 = load i32, ptr @test_count, align 4, !tbaa !5
  %4880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4881 = load i32, ptr %4880, align 4, !tbaa !5
  %4882 = call ptr @s2n_strerror(i32 noundef %4881, ptr noundef @.str.4)
  %4883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4884 = load i32, ptr %4883, align 4, !tbaa !5
  %4885 = call ptr @s2n_strerror_debug(i32 noundef %4884, ptr noundef @.str.4)
  %4886 = call ptr @__errno_location() #12
  %4887 = load i32, ptr %4886, align 4, !tbaa !5
  %4888 = call ptr @strerror(i32 noundef %4887) #11
  %4889 = call ptr @__errno_location() #12
  %4890 = load i32, ptr %4889, align 4, !tbaa !5
  %4891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4878, ptr noundef @.str.2, i32 noundef %4879, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 365, ptr noundef %4882, ptr noundef %4885, ptr noundef %4888, i32 noundef %4890) #11
  br label %4909

4892:                                             ; preds = %4870, %4863
  %4893 = load i32, ptr %136, align 4, !tbaa !5
  %4894 = call ptr @__errno_location() #12
  store i32 %4893, ptr %4894, align 4, !tbaa !5
  %4895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4896 = load i32, ptr @test_count, align 4, !tbaa !5
  %4897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4898 = load i32, ptr %4897, align 4, !tbaa !5
  %4899 = call ptr @s2n_strerror(i32 noundef %4898, ptr noundef @.str.4)
  %4900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4901 = load i32, ptr %4900, align 4, !tbaa !5
  %4902 = call ptr @s2n_strerror_debug(i32 noundef %4901, ptr noundef @.str.4)
  %4903 = call ptr @__errno_location() #12
  %4904 = load i32, ptr %4903, align 4, !tbaa !5
  %4905 = call ptr @strerror(i32 noundef %4904) #11
  %4906 = call ptr @__errno_location() #12
  %4907 = load i32, ptr %4906, align 4, !tbaa !5
  %4908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4895, ptr noundef @.str.5, i32 noundef %4896, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 365, ptr noundef %4899, ptr noundef %4902, ptr noundef %4905, i32 noundef %4907) #11
  br label %4909

4909:                                             ; preds = %4892, %4875
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #11
  br label %4910

4910:                                             ; preds = %4909
  br label %4911

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

4912:                                             ; No predecessors!
  br label %4913

4913:                                             ; preds = %4912
  br label %4914

4914:                                             ; preds = %4913, %4856
  br label %4915

4915:                                             ; preds = %4914
  br label %4916

4916:                                             ; preds = %4915
  br label %4917

4917:                                             ; preds = %4916
  %4918 = load i32, ptr @test_count, align 4, !tbaa !5
  %4919 = add nsw i32 %4918, 1
  store i32 %4919, ptr @test_count, align 4, !tbaa !5
  %4920 = load ptr, ptr %116, align 8, !tbaa !9
  %4921 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %4920, i32 noundef 1)
  br i1 %4921, label %4975, label %4922

4922:                                             ; preds = %4917
  br label %4923

4923:                                             ; preds = %4922
  br label %4924

4924:                                             ; preds = %4923
  call void @llvm.lifetime.start.p0(i64 4, ptr %137) #11
  %4925 = call ptr @__errno_location() #12
  %4926 = load i32, ptr %4925, align 4, !tbaa !5
  store i32 %4926, ptr %137, align 4, !tbaa !5
  %4927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4928 = call i32 @s2n_print_stacktrace(ptr noundef %4927)
  %4929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4930 = trunc i8 %4929 to i1
  br i1 %4930, label %4931, label %4953

4931:                                             ; preds = %4924
  %4932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4933 = call i32 @fileno(ptr noundef %4932) #11
  %4934 = call i32 @isatty(i32 noundef %4933) #11
  %4935 = icmp ne i32 %4934, 0
  br i1 %4935, label %4936, label %4953

4936:                                             ; preds = %4931
  %4937 = load i32, ptr %137, align 4, !tbaa !5
  %4938 = call ptr @__errno_location() #12
  store i32 %4937, ptr %4938, align 4, !tbaa !5
  %4939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4940 = load i32, ptr @test_count, align 4, !tbaa !5
  %4941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4942 = load i32, ptr %4941, align 4, !tbaa !5
  %4943 = call ptr @s2n_strerror(i32 noundef %4942, ptr noundef @.str.4)
  %4944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4945 = load i32, ptr %4944, align 4, !tbaa !5
  %4946 = call ptr @s2n_strerror_debug(i32 noundef %4945, ptr noundef @.str.4)
  %4947 = call ptr @__errno_location() #12
  %4948 = load i32, ptr %4947, align 4, !tbaa !5
  %4949 = call ptr @strerror(i32 noundef %4948) #11
  %4950 = call ptr @__errno_location() #12
  %4951 = load i32, ptr %4950, align 4, !tbaa !5
  %4952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4939, ptr noundef @.str.2, i32 noundef %4940, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 366, ptr noundef %4943, ptr noundef %4946, ptr noundef %4949, i32 noundef %4951) #11
  br label %4970

4953:                                             ; preds = %4931, %4924
  %4954 = load i32, ptr %137, align 4, !tbaa !5
  %4955 = call ptr @__errno_location() #12
  store i32 %4954, ptr %4955, align 4, !tbaa !5
  %4956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4957 = load i32, ptr @test_count, align 4, !tbaa !5
  %4958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4959 = load i32, ptr %4958, align 4, !tbaa !5
  %4960 = call ptr @s2n_strerror(i32 noundef %4959, ptr noundef @.str.4)
  %4961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4962 = load i32, ptr %4961, align 4, !tbaa !5
  %4963 = call ptr @s2n_strerror_debug(i32 noundef %4962, ptr noundef @.str.4)
  %4964 = call ptr @__errno_location() #12
  %4965 = load i32, ptr %4964, align 4, !tbaa !5
  %4966 = call ptr @strerror(i32 noundef %4965) #11
  %4967 = call ptr @__errno_location() #12
  %4968 = load i32, ptr %4967, align 4, !tbaa !5
  %4969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4956, ptr noundef @.str.5, i32 noundef %4957, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 366, ptr noundef %4960, ptr noundef %4963, ptr noundef %4966, i32 noundef %4968) #11
  br label %4970

4970:                                             ; preds = %4953, %4936
  call void @llvm.lifetime.end.p0(i64 4, ptr %137) #11
  br label %4971

4971:                                             ; preds = %4970
  br label %4972

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

4973:                                             ; No predecessors!
  br label %4974

4974:                                             ; preds = %4973
  br label %4975

4975:                                             ; preds = %4974, %4917
  br label %4976

4976:                                             ; preds = %4975
  br label %4977

4977:                                             ; preds = %4976
  br label %4978

4978:                                             ; preds = %4977
  %4979 = load i32, ptr @test_count, align 4, !tbaa !5
  %4980 = add nsw i32 %4979, 1
  store i32 %4980, ptr @test_count, align 4, !tbaa !5
  %4981 = load ptr, ptr %111, align 8, !tbaa !9
  %4982 = call i32 @s2n_conn_get_current_message_type(ptr noundef %4981)
  %4983 = icmp eq i32 %4982, 20
  br i1 %4983, label %5037, label %4984

4984:                                             ; preds = %4978
  br label %4985

4985:                                             ; preds = %4984
  br label %4986

4986:                                             ; preds = %4985
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #11
  %4987 = call ptr @__errno_location() #12
  %4988 = load i32, ptr %4987, align 4, !tbaa !5
  store i32 %4988, ptr %138, align 4, !tbaa !5
  %4989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4990 = call i32 @s2n_print_stacktrace(ptr noundef %4989)
  %4991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4992 = trunc i8 %4991 to i1
  br i1 %4992, label %4993, label %5015

4993:                                             ; preds = %4986
  %4994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4995 = call i32 @fileno(ptr noundef %4994) #11
  %4996 = call i32 @isatty(i32 noundef %4995) #11
  %4997 = icmp ne i32 %4996, 0
  br i1 %4997, label %4998, label %5015

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

5015:                                             ; preds = %4993, %4986
  %5016 = load i32, ptr %138, align 4, !tbaa !5
  %5017 = call ptr @__errno_location() #12
  store i32 %5016, ptr %5017, align 4, !tbaa !5
  %5018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5019 = load i32, ptr @test_count, align 4, !tbaa !5
  %5020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5021 = load i32, ptr %5020, align 4, !tbaa !5
  %5022 = call ptr @s2n_strerror(i32 noundef %5021, ptr noundef @.str.4)
  %5023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5024 = load i32, ptr %5023, align 4, !tbaa !5
  %5025 = call ptr @s2n_strerror_debug(i32 noundef %5024, ptr noundef @.str.4)
  %5026 = call ptr @__errno_location() #12
  %5027 = load i32, ptr %5026, align 4, !tbaa !5
  %5028 = call ptr @strerror(i32 noundef %5027) #11
  %5029 = call ptr @__errno_location() #12
  %5030 = load i32, ptr %5029, align 4, !tbaa !5
  %5031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5018, ptr noundef @.str.5, i32 noundef %5019, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 367, ptr noundef %5022, ptr noundef %5025, ptr noundef %5028, i32 noundef %5030) #11
  br label %5032

5032:                                             ; preds = %5015, %4998
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  br label %5033

5033:                                             ; preds = %5032
  br label %5034

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

5035:                                             ; No predecessors!
  br label %5036

5036:                                             ; preds = %5035
  br label %5037

5037:                                             ; preds = %5036, %4978
  br label %5038

5038:                                             ; preds = %5037
  br label %5039

5039:                                             ; preds = %5038
  br label %5040

5040:                                             ; preds = %5039
  %5041 = load i32, ptr @test_count, align 4, !tbaa !5
  %5042 = add nsw i32 %5041, 1
  store i32 %5042, ptr @test_count, align 4, !tbaa !5
  %5043 = load ptr, ptr %116, align 8, !tbaa !9
  %5044 = call i32 @s2n_conn_get_current_message_type(ptr noundef %5043)
  %5045 = icmp eq i32 %5044, 20
  br i1 %5045, label %5099, label %5046

5046:                                             ; preds = %5040
  br label %5047

5047:                                             ; preds = %5046
  br label %5048

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

5055:                                             ; preds = %5048
  %5056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5057 = call i32 @fileno(ptr noundef %5056) #11
  %5058 = call i32 @isatty(i32 noundef %5057) #11
  %5059 = icmp ne i32 %5058, 0
  br i1 %5059, label %5060, label %5077

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

5077:                                             ; preds = %5055, %5048
  %5078 = load i32, ptr %139, align 4, !tbaa !5
  %5079 = call ptr @__errno_location() #12
  store i32 %5078, ptr %5079, align 4, !tbaa !5
  %5080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5081 = load i32, ptr @test_count, align 4, !tbaa !5
  %5082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5083 = load i32, ptr %5082, align 4, !tbaa !5
  %5084 = call ptr @s2n_strerror(i32 noundef %5083, ptr noundef @.str.4)
  %5085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5086 = load i32, ptr %5085, align 4, !tbaa !5
  %5087 = call ptr @s2n_strerror_debug(i32 noundef %5086, ptr noundef @.str.4)
  %5088 = call ptr @__errno_location() #12
  %5089 = load i32, ptr %5088, align 4, !tbaa !5
  %5090 = call ptr @strerror(i32 noundef %5089) #11
  %5091 = call ptr @__errno_location() #12
  %5092 = load i32, ptr %5091, align 4, !tbaa !5
  %5093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5080, ptr noundef @.str.5, i32 noundef %5081, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 368, ptr noundef %5084, ptr noundef %5087, ptr noundef %5090, i32 noundef %5092) #11
  br label %5094

5094:                                             ; preds = %5077, %5060
  call void @llvm.lifetime.end.p0(i64 4, ptr %139) #11
  br label %5095

5095:                                             ; preds = %5094
  br label %5096

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

5097:                                             ; No predecessors!
  br label %5098

5098:                                             ; preds = %5097
  br label %5099

5099:                                             ; preds = %5098, %5040
  br label %5100

5100:                                             ; preds = %5099
  br label %5101

5101:                                             ; preds = %5100
  store i32 0, ptr %13, align 4
  br label %5102

5102:                                             ; preds = %5101, %4849
  call void @llvm.lifetime.end.p0(i64 24, ptr %126) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr %125) #11
  %5103 = call i32 @s2n_io_stuffer_pair_free(ptr noundef %122)
  %5104 = getelementptr inbounds %struct.s2n_result, ptr %140, i32 0, i32 0
  store i32 %5103, ptr %5104, align 4
  call void @llvm.lifetime.end.p0(i64 80, ptr %122) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr %121) #11
  %5105 = call i32 @s2n_connection_ptr_free(ptr noundef %116)
  %5106 = getelementptr inbounds %struct.s2n_result, ptr %141, i32 0, i32 0
  store i32 %5105, ptr %5106, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #11
  %5107 = call i32 @s2n_connection_ptr_free(ptr noundef %111)
  %5108 = getelementptr inbounds %struct.s2n_result, ptr %142, i32 0, i32 0
  store i32 %5107, ptr %5108, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %111) #11
  %5109 = call i32 @s2n_config_ptr_free(ptr noundef %110)
  %5110 = getelementptr inbounds %struct.s2n_result, ptr %143, i32 0, i32 0
  store i32 %5109, ptr %5110, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %108) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr %107) #11
  %5111 = load i32, ptr %13, align 4
  switch i32 %5111, label %5114 [
    i32 0, label %5112
  ]

5112:                                             ; preds = %5102
  br label %5113

5113:                                             ; preds = %5112, %3753
  store i32 0, ptr %13, align 4
  br label %5114

5114:                                             ; preds = %5113, %5102, %3743, %2857, %1972, %1149
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  %5115 = load i32, ptr %13, align 4
  switch i32 %5115, label %5120 [
    i32 0, label %5116
  ]

5116:                                             ; preds = %5114
  br label %5117

5117:                                             ; preds = %5116
  %5118 = load i64, ptr %12, align 8, !tbaa !15
  %5119 = add i64 %5118, 1
  store i64 %5119, ptr %12, align 8, !tbaa !15
  br label %386, !llvm.loop !55

5120:                                             ; preds = %5114, %389
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #11
  %5121 = load i32, ptr %13, align 4
  switch i32 %5121, label %5277 [
    i32 30, label %5122
  ]

5122:                                             ; preds = %5120
  br label %5123

5123:                                             ; preds = %5122
  br label %5124

5124:                                             ; preds = %5123
  %5125 = call i32 @s2n_cleanup()
  %5126 = icmp eq i32 %5125, -1
  br i1 %5126, label %5127, label %5180

5127:                                             ; preds = %5124
  br label %5128

5128:                                             ; preds = %5127
  br label %5129

5129:                                             ; preds = %5128
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #11
  %5130 = call ptr @__errno_location() #12
  %5131 = load i32, ptr %5130, align 4, !tbaa !5
  store i32 %5131, ptr %144, align 4, !tbaa !5
  %5132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5133 = call i32 @s2n_print_stacktrace(ptr noundef %5132)
  %5134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5135 = trunc i8 %5134 to i1
  br i1 %5135, label %5136, label %5158

5136:                                             ; preds = %5129
  %5137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5138 = call i32 @fileno(ptr noundef %5137) #11
  %5139 = call i32 @isatty(i32 noundef %5138) #11
  %5140 = icmp ne i32 %5139, 0
  br i1 %5140, label %5141, label %5158

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

5158:                                             ; preds = %5136, %5129
  %5159 = load i32, ptr %144, align 4, !tbaa !5
  %5160 = call ptr @__errno_location() #12
  store i32 %5159, ptr %5160, align 4, !tbaa !5
  %5161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5162 = load i32, ptr @test_count, align 4, !tbaa !5
  %5163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5164 = load i32, ptr %5163, align 4, !tbaa !5
  %5165 = call ptr @s2n_strerror(i32 noundef %5164, ptr noundef @.str.4)
  %5166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5167 = load i32, ptr %5166, align 4, !tbaa !5
  %5168 = call ptr @s2n_strerror_debug(i32 noundef %5167, ptr noundef @.str.4)
  %5169 = call ptr @__errno_location() #12
  %5170 = load i32, ptr %5169, align 4, !tbaa !5
  %5171 = call ptr @strerror(i32 noundef %5170) #11
  %5172 = call ptr @__errno_location() #12
  %5173 = load i32, ptr %5172, align 4, !tbaa !5
  %5174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5161, ptr noundef @.str.5, i32 noundef %5162, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 372, ptr noundef %5165, ptr noundef %5168, ptr noundef %5171, i32 noundef %5173) #11
  br label %5175

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

5176:                                             ; preds = %5175
  br label %5177

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

5178:                                             ; No predecessors!
  br label %5179

5179:                                             ; preds = %5178
  br label %5180

5180:                                             ; preds = %5179, %5124
  br label %5181

5181:                                             ; preds = %5180
  br label %5182

5182:                                             ; preds = %5181
  br label %5183

5183:                                             ; preds = %5182
  br label %5184

5184:                                             ; preds = %5183
  %5185 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %5186 = icmp eq i32 %5185, -1
  br i1 %5186, label %5187, label %5240

5187:                                             ; preds = %5184
  br label %5188

5188:                                             ; preds = %5187
  br label %5189

5189:                                             ; preds = %5188
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #11
  %5190 = call ptr @__errno_location() #12
  %5191 = load i32, ptr %5190, align 4, !tbaa !5
  store i32 %5191, ptr %145, align 4, !tbaa !5
  %5192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5193 = call i32 @s2n_print_stacktrace(ptr noundef %5192)
  %5194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5195 = trunc i8 %5194 to i1
  br i1 %5195, label %5196, label %5218

5196:                                             ; preds = %5189
  %5197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5198 = call i32 @fileno(ptr noundef %5197) #11
  %5199 = call i32 @isatty(i32 noundef %5198) #11
  %5200 = icmp ne i32 %5199, 0
  br i1 %5200, label %5201, label %5218

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

5218:                                             ; preds = %5196, %5189
  %5219 = load i32, ptr %145, align 4, !tbaa !5
  %5220 = call ptr @__errno_location() #12
  store i32 %5219, ptr %5220, align 4, !tbaa !5
  %5221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5222 = load i32, ptr @test_count, align 4, !tbaa !5
  %5223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5224 = load i32, ptr %5223, align 4, !tbaa !5
  %5225 = call ptr @s2n_strerror(i32 noundef %5224, ptr noundef @.str.4)
  %5226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5227 = load i32, ptr %5226, align 4, !tbaa !5
  %5228 = call ptr @s2n_strerror_debug(i32 noundef %5227, ptr noundef @.str.4)
  %5229 = call ptr @__errno_location() #12
  %5230 = load i32, ptr %5229, align 4, !tbaa !5
  %5231 = call ptr @strerror(i32 noundef %5230) #11
  %5232 = call ptr @__errno_location() #12
  %5233 = load i32, ptr %5232, align 4, !tbaa !5
  %5234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5221, ptr noundef @.str.5, i32 noundef %5222, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 372, ptr noundef %5225, ptr noundef %5228, ptr noundef %5231, i32 noundef %5233) #11
  br label %5235

5235:                                             ; preds = %5218, %5201
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #11
  br label %5236

5236:                                             ; preds = %5235
  br label %5237

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

5238:                                             ; No predecessors!
  br label %5239

5239:                                             ; preds = %5238
  br label %5240

5240:                                             ; preds = %5239, %5184
  br label %5241

5241:                                             ; preds = %5240
  br label %5242

5242:                                             ; preds = %5241
  %5243 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5244 = trunc i8 %5243 to i1
  br i1 %5244, label %5245, label %5261

5245:                                             ; preds = %5242
  %5246 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5247 = call i32 @fileno(ptr noundef %5246) #11
  %5248 = call i32 @isatty(i32 noundef %5247) #11
  %5249 = icmp ne i32 %5248, 0
  br i1 %5249, label %5250, label %5261

5250:                                             ; preds = %5245
  %5251 = load i32, ptr @test_count, align 4, !tbaa !5
  %5252 = icmp ne i32 %5251, 0
  br i1 %5252, label %5253, label %5257

5253:                                             ; preds = %5250
  %5254 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5255 = load i32, ptr @test_count, align 4, !tbaa !5
  %5256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5254, ptr noundef @.str.51, i32 noundef %5255) #11
  br label %5260

5257:                                             ; preds = %5250
  %5258 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5258, ptr noundef @.str.52) #11
  br label %5260

5260:                                             ; preds = %5257, %5253
  br label %5272

5261:                                             ; preds = %5245, %5242
  %5262 = load i32, ptr @test_count, align 4, !tbaa !5
  %5263 = icmp ne i32 %5262, 0
  br i1 %5263, label %5264, label %5268

5264:                                             ; preds = %5261
  %5265 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5266 = load i32, ptr @test_count, align 4, !tbaa !5
  %5267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5265, ptr noundef @.str.53, i32 noundef %5266) #11
  br label %5271

5268:                                             ; preds = %5261
  %5269 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5269, ptr noundef @.str.54) #11
  br label %5271

5271:                                             ; preds = %5268, %5264
  br label %5272

5272:                                             ; preds = %5271, %5260
  store i32 0, ptr %3, align 4
  store i32 1, ptr %13, align 4
  br label %5277

5273:                                             ; No predecessors!
  br label %5274

5274:                                             ; preds = %5273
  br label %5275

5275:                                             ; preds = %5274
  br label %5276

5276:                                             ; preds = %5275
  store i32 0, ptr %13, align 4
  br label %5277

5277:                                             ; preds = %5276, %5272, %5120
  %5278 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %10)
  %5279 = getelementptr inbounds %struct.s2n_result, ptr %146, i32 0, i32 0
  store i32 %5278, ptr %5279, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %9) #11
  %5280 = load i32, ptr %13, align 4
  switch i32 %5280, label %5283 [
    i32 0, label %5281
    i32 1, label %5281
  ]

5281:                                             ; preds = %5277, %5277
  %5282 = load i32, ptr %3, align 4
  ret i32 %5282

5283:                                             ; preds = %5277
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #5

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

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

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 zeroext i1 @s2n_is_tls13_fully_supported(...) #2

; Function Attrs: nounwind uwtable
declare hidden ptr @s2n_test_config_new(ptr noundef) #0

declare i32 @s2n_config_ptr_free(ptr noundef) #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

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

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

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

declare i32 @s2n_io_stuffer_pair_free(ptr noundef) #2

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

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

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

; Function Attrs: nounwind willreturn memory(read)
declare ptr @strrchr(ptr noundef, i32 noundef) #10

declare i32 @s2n_calculate_stacktrace() #2

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

declare i32 @s2n_conn_get_current_message_type(ptr noundef) #2

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

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

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

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

declare i32 @s2n_client_hello_cb_done(ptr noundef) #2

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

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

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

declare i32 @s2n_async_pkey_op_free(ptr noundef) #2

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

declare i32 @s2n_append_test_psk_with_early_data(ptr noundef, i32 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_with_early_data(ptr noundef, ptr noundef, ptr noundef, ptr noundef) #2

declare void @s2n_debug_info_reset() #2

declare zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef, i32 noundef) #2

; Function Attrs: nounwind willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #10

declare i32 @s2n_cleanup() #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: 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, !32, i64 2208}
!18 = !{!"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, !19, 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, !20, i64 240, !10, i64 632, !10, i64 640, !21, i64 648, !27, i64 1144, !30, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !33, i64 1776, !33, i64 1816, !33, i64 1856, !33, i64 1896, !6, i64 1936, !16, i64 1944, !7, i64 1952, !33, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !34, i64 2004, !34, i64 2008, !35, i64 2016, !32, i64 2208, !6, i64 2212, !32, i64 2216, !16, i64 2224, !7, i64 2232, !16, i64 2240, !16, i64 2248, !16, i64 2256, !34, i64 2264, !34, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !26, i64 2792, !6, i64 2816, !26, i64 2824, !26, i64 2848, !26, i64 2872, !37, i64 2896, !39, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !26, i64 3784, !6, i64 3808, !41, i64 3816, !7, i64 3848, !33, i64 3992, !26, i64 4032, !26, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !32, i64 4084, !32, i64 4086, !6, i64 4088, !6, i64 4092, !26, i64 4096, !6, i64 4120, !42, i64 4128, !34, i64 4176, !7, i64 4180, !7, i64 4181}
!19 = !{!"s2n_timer", !16, i64 0}
!20 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!21 = !{!"s2n_kex_parameters", !22, i64 0, !23, i64 8, !7, i64 24, !23, i64 56, !24, i64 72, !24, i64 184, !7, i64 296, !25, i64 360, !26, i64 448, !26, i64 472}
!22 = !{!"s2n_dh_params", !10, i64 0}
!23 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!24 = !{!"s2n_kem_group_params", !10, i64 0, !25, i64 8, !23, i64 96}
!25 = !{!"s2n_kem_params", !10, i64 0, !26, i64 8, !26, i64 32, !26, i64 56, !12, i64 80}
!26 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!27 = !{!"s2n_handshake_parameters", !28, i64 0, !28, i64 48, !26, i64 96, !6, i64 120, !29, 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}
!28 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!29 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!30 = !{!"s2n_psk_parameters", !6, i64 0, !31, i64 8, !32, i64 40, !32, i64 42, !10, i64 48, !6, i64 56}
!31 = !{!"s2n_array", !26, i64 0, !6, i64 24, !6, i64 28}
!32 = !{!"short", !7, i64 0}
!33 = !{!"s2n_stuffer", !26, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!34 = !{!"", !6, i64 0}
!35 = !{!"s2n_handshake", !33, 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, !36, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!36 = !{!"s2n_offered_early_data", !10, i64 0}
!37 = !{!"s2n_client_hello", !26, i64 0, !38, i64 24, !26, i64 728, !26, i64 752, !26, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!38 = !{!"", !7, i64 0, !26, i64 672, !32, i64 696}
!39 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !32, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !40, i64 48, !12, i64 52}
!40 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!41 = !{!"s2n_ticket_fields", !26, i64 0, !6, i64 24}
!42 = !{!"s2n_post_handshake", !33, i64 0, !7, i64 40}
!43 = !{!44, !10, i64 0}
!44 = !{!"s2n_debug_info", !10, i64 0, !10, i64 8}
!45 = !{!44, !10, i64 8}
!46 = distinct !{!46, !47}
!47 = !{!"llvm.loop.mustprogress"}
!48 = !{!18, !7, i64 220}
!49 = distinct !{!49, !47}
!50 = distinct !{!50, !47}
!51 = distinct !{!51, !47}
!52 = !{!26, !6, i64 8}
!53 = !{!26, !10, i64 0}
!54 = distinct !{!54, !47}
!55 = distinct !{!55, !47}


; 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_debug_info = type { ptr, ptr }
%struct.s2n_cipher_suite = type { i8, ptr, ptr, [2 x i8], ptr, i32, ptr, [2 x ptr], i8, ptr, ptr, i32, i8 }
%struct.s2n_io_wrapper_pair = type { %struct.s2n_io_wrapper, %struct.s2n_io_wrapper }
%struct.s2n_io_wrapper = type { i8, i8, ptr, ptr, ptr, ptr }
%struct.s2n_test_io_stuffer_pair = type { %struct.s2n_stuffer, %struct.s2n_stuffer }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@pkey_op = external dso_local local_unnamed_addr global ptr, align 8
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [86 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@__const.main.fragment_sizes = external hidden unnamed_addr constant [6 x i32], align 16
@.str.8 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [149 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [111 x i8], align 1
@_s2n_debug_info = external thread_local local_unnamed_addr global %struct.s2n_debug_info, align 8
@.str.17 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [111 x i8], align 1
@__const.main.early_data_bytes = external hidden unnamed_addr constant [12 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [99 x i8], align 1
@s2n_tls13_aes_256_gcm_sha384 = external global %struct.s2n_cipher_suite, align 8
@.str.38 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [128 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [148 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [111 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local range(i32 -1, 1) i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca %struct.s2n_io_wrapper_pair, align 8
  %8 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca %struct.s2n_io_wrapper_pair, align 8
  %13 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca %struct.s2n_io_wrapper_pair, align 8
  %18 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %19 = alloca ptr, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca %struct.s2n_io_wrapper_pair, align 8
  %23 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %24 = alloca [12 x i8], align 1
  %25 = alloca %struct.s2n_blob, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca %struct.s2n_io_wrapper_pair, align 8
  %30 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %31 = alloca [12 x i8], align 1
  %32 = alloca %struct.s2n_blob, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %33 = load ptr, ptr @stdout, align 8, !tbaa !9
  %34 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #13
  %35 = load ptr, ptr @stdout, align 8, !tbaa !9
  %36 = tail call i32 @fflush(ptr noundef %35)
  %37 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #13
  %38 = icmp eq i32 %37, -1
  br i1 %38, label %39, label %63

39:                                               ; preds = %2
  %40 = tail call ptr @__errno_location() #14
  %41 = load i32, ptr %40, align 4, !tbaa !5
  %42 = load ptr, ptr @stderr, align 8, !tbaa !9
  %43 = tail call i32 @s2n_print_stacktrace(ptr noundef %42) #13
  %44 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %45 = trunc nuw i8 %44 to i1
  br i1 %45, label %46, label %50

46:                                               ; preds = %39
  %47 = load ptr, ptr @stderr, align 8, !tbaa !9
  %48 = tail call i32 @fileno(ptr noundef %47) #13
  %49 = tail call i32 @isatty(i32 noundef %48) #13
  %.not317 = icmp eq i32 %49, 0
  br i1 %.not317, label %50, label %51

50:                                               ; preds = %46, %39
  br label %51

51:                                               ; preds = %46, %50
  %.str.5.sink = phi ptr [ @.str.5, %50 ], [ @.str.2, %46 ]
  store i32 %41, ptr %40, align 4, !tbaa !5
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = load i32, ptr @test_count, align 4, !tbaa !5
  %54 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %55 = load i32, ptr %54, align 4, !tbaa !5
  %56 = tail call ptr @s2n_strerror(i32 noundef %55, ptr noundef nonnull @.str.4) #13
  %57 = load i32, ptr %54, align 4, !tbaa !5
  %58 = tail call ptr @s2n_strerror_debug(i32 noundef %57, ptr noundef nonnull @.str.4) #13
  %59 = load i32, ptr %40, align 4, !tbaa !5
  %60 = tail call ptr @strerror(i32 noundef %59) #13
  %61 = load i32, ptr %40, align 4, !tbaa !5
  %62 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %52, ptr noundef nonnull %.str.5.sink, i32 noundef %53, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %56, ptr noundef %58, ptr noundef %60, i32 noundef %61) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

63:                                               ; preds = %2
  %64 = load i32, ptr @test_count, align 4, !tbaa !5
  %65 = add nsw i32 %64, 1
  store i32 %65, ptr @test_count, align 4, !tbaa !5
  %66 = tail call i32 @s2n_enable_atexit() #13
  %67 = icmp eq i32 %66, -1
  br i1 %67, label %68, label %92

68:                                               ; preds = %63
  %69 = tail call ptr @__errno_location() #14
  %70 = load i32, ptr %69, align 4, !tbaa !5
  %71 = load ptr, ptr @stderr, align 8, !tbaa !9
  %72 = tail call i32 @s2n_print_stacktrace(ptr noundef %71) #13
  %73 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %74 = trunc nuw i8 %73 to i1
  br i1 %74, label %75, label %79

75:                                               ; preds = %68
  %76 = load ptr, ptr @stderr, align 8, !tbaa !9
  %77 = tail call i32 @fileno(ptr noundef %76) #13
  %78 = tail call i32 @isatty(i32 noundef %77) #13
  %.not316 = icmp eq i32 %78, 0
  br i1 %.not316, label %79, label %80

79:                                               ; preds = %75, %68
  br label %80

80:                                               ; preds = %75, %79
  %.str.5.sink429 = phi ptr [ @.str.5, %79 ], [ @.str.2, %75 ]
  store i32 %70, ptr %69, align 4, !tbaa !5
  %81 = load ptr, ptr @stderr, align 8, !tbaa !9
  %82 = load i32, ptr @test_count, align 4, !tbaa !5
  %83 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %84 = load i32, ptr %83, align 4, !tbaa !5
  %85 = tail call ptr @s2n_strerror(i32 noundef %84, ptr noundef nonnull @.str.4) #13
  %86 = load i32, ptr %83, align 4, !tbaa !5
  %87 = tail call ptr @s2n_strerror_debug(i32 noundef %86, ptr noundef nonnull @.str.4) #13
  %88 = load i32, ptr %69, align 4, !tbaa !5
  %89 = tail call ptr @strerror(i32 noundef %88) #13
  %90 = load i32, ptr %69, align 4, !tbaa !5
  %91 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %81, ptr noundef nonnull %.str.5.sink429, i32 noundef %82, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %85, ptr noundef %87, ptr noundef %89, i32 noundef %90) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

92:                                               ; preds = %63
  %93 = tail call i32 @s2n_init() #13
  %94 = icmp eq i32 %93, -1
  br i1 %94, label %95, label %119

95:                                               ; preds = %92
  %96 = tail call ptr @__errno_location() #14
  %97 = load i32, ptr %96, align 4, !tbaa !5
  %98 = load ptr, ptr @stderr, align 8, !tbaa !9
  %99 = tail call i32 @s2n_print_stacktrace(ptr noundef %98) #13
  %100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %101 = trunc nuw i8 %100 to i1
  br i1 %101, label %102, label %106

102:                                              ; preds = %95
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = tail call i32 @fileno(ptr noundef %103) #13
  %105 = tail call i32 @isatty(i32 noundef %104) #13
  %.not315 = icmp eq i32 %105, 0
  br i1 %.not315, label %106, label %107

106:                                              ; preds = %102, %95
  br label %107

107:                                              ; preds = %102, %106
  %.str.5.sink440 = phi ptr [ @.str.5, %106 ], [ @.str.2, %102 ]
  store i32 %97, ptr %96, align 4, !tbaa !5
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = load i32, ptr @test_count, align 4, !tbaa !5
  %110 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %111 = load i32, ptr %110, align 4, !tbaa !5
  %112 = tail call ptr @s2n_strerror(i32 noundef %111, ptr noundef nonnull @.str.4) #13
  %113 = load i32, ptr %110, align 4, !tbaa !5
  %114 = tail call ptr @s2n_strerror_debug(i32 noundef %113, ptr noundef nonnull @.str.4) #13
  %115 = load i32, ptr %96, align 4, !tbaa !5
  %116 = tail call ptr @strerror(i32 noundef %115) #13
  %117 = load i32, ptr %96, align 4, !tbaa !5
  %118 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %108, ptr noundef nonnull %.str.5.sink440, i32 noundef %109, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %112, ptr noundef %114, ptr noundef %116, i32 noundef %117) #15
  tail call void @exit(i32 noundef 1) #16
  unreachable

119:                                              ; preds = %92
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #13
  store ptr null, ptr %3, align 8, !tbaa !9
  %120 = load i32, ptr @test_count, align 4, !tbaa !5
  %121 = add nsw i32 %120, 1
  store i32 %121, ptr @test_count, align 4, !tbaa !5
  %122 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %3, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.9) #13
  %123 = icmp eq i32 %122, -1
  br i1 %123, label %129, label %.preheader329

.preheader329:                                    ; preds = %119
  %124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %125 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_s2n_debug_info)
  %126 = getelementptr inbounds i8, ptr %125, i64 8
  %127 = getelementptr inbounds i8, ptr %25, i64 8
  %128 = getelementptr inbounds i8, ptr %32, i64 8
  br label %153

129:                                              ; preds = %119
  %130 = tail call ptr @__errno_location() #14
  %131 = load i32, ptr %130, align 4, !tbaa !5
  %132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %133 = call i32 @s2n_print_stacktrace(ptr noundef %132) #13
  %134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %135 = trunc nuw i8 %134 to i1
  br i1 %135, label %136, label %140

136:                                              ; preds = %129
  %137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %138 = call i32 @fileno(ptr noundef %137) #13
  %139 = call i32 @isatty(i32 noundef %138) #13
  %.not314 = icmp eq i32 %139, 0
  br i1 %.not314, label %140, label %141

140:                                              ; preds = %136, %129
  br label %141

141:                                              ; preds = %136, %140
  %.str.5.sink451 = phi ptr [ @.str.5, %140 ], [ @.str.2, %136 ]
  store i32 %131, ptr %130, align 4, !tbaa !5
  %142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %143 = load i32, ptr @test_count, align 4, !tbaa !5
  %144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %145 = load i32, ptr %144, align 4, !tbaa !5
  %146 = call ptr @s2n_strerror(i32 noundef %145, ptr noundef nonnull @.str.4) #13
  %147 = load i32, ptr %144, align 4, !tbaa !5
  %148 = call ptr @s2n_strerror_debug(i32 noundef %147, ptr noundef nonnull @.str.4) #13
  %149 = load i32, ptr %130, align 4, !tbaa !5
  %150 = call ptr @strerror(i32 noundef %149) #13
  %151 = load i32, ptr %130, align 4, !tbaa !5
  %152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %142, ptr noundef nonnull %.str.5.sink451, i32 noundef %143, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %146, ptr noundef %148, ptr noundef %150, i32 noundef %151) #15
  call void @exit(i32 noundef 1) #16
  unreachable

153:                                              ; preds = %.preheader329, %.thread320
  %.0380 = phi i32 [ 0, %.preheader329 ], [ %.8323, %.thread320 ]
  %.0208379 = phi i64 [ 0, %.preheader329 ], [ %2268, %.thread320 ]
  %154 = getelementptr inbounds [6 x i32], ptr @__const.main.fragment_sizes, i64 0, i64 %.0208379
  %155 = load i32, ptr %154, align 4, !tbaa !5
  %156 = add i32 %155, 1
  %157 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #13
  br i1 %157, label %158, label %502

158:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #13
  %159 = load ptr, ptr %3, align 8, !tbaa !9
  %160 = call ptr @s2n_test_config_new(ptr noundef %159)
  store ptr %160, ptr %4, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #13
  %161 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %161, ptr %5, align 8, !tbaa !9
  %162 = load i32, ptr @test_count, align 4, !tbaa !5
  %163 = add nsw i32 %162, 1
  store i32 %163, ptr @test_count, align 4, !tbaa !5
  %164 = load ptr, ptr %4, align 8, !tbaa !9
  %165 = call i32 @s2n_connection_set_config(ptr noundef %161, ptr noundef %164) #13
  %166 = icmp eq i32 %165, -1
  br i1 %166, label %167, label %190

167:                                              ; preds = %158
  %168 = tail call ptr @__errno_location() #14
  %169 = load i32, ptr %168, align 4, !tbaa !5
  %170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %171 = call i32 @s2n_print_stacktrace(ptr noundef %170) #13
  %172 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %173 = trunc nuw i8 %172 to i1
  br i1 %173, label %174, label %178

174:                                              ; preds = %167
  %175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %176 = call i32 @fileno(ptr noundef %175) #13
  %177 = call i32 @isatty(i32 noundef %176) #13
  %.not313 = icmp eq i32 %177, 0
  br i1 %.not313, label %178, label %179

178:                                              ; preds = %174, %167
  br label %179

179:                                              ; preds = %174, %178
  %.str.5.sink462 = phi ptr [ @.str.5, %178 ], [ @.str.2, %174 ]
  store i32 %169, ptr %168, align 4, !tbaa !5
  %180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %181 = load i32, ptr @test_count, align 4, !tbaa !5
  %182 = load i32, ptr %124, align 4, !tbaa !5
  %183 = call ptr @s2n_strerror(i32 noundef %182, ptr noundef nonnull @.str.4) #13
  %184 = load i32, ptr %124, align 4, !tbaa !5
  %185 = call ptr @s2n_strerror_debug(i32 noundef %184, ptr noundef nonnull @.str.4) #13
  %186 = load i32, ptr %168, align 4, !tbaa !5
  %187 = call ptr @strerror(i32 noundef %186) #13
  %188 = load i32, ptr %168, align 4, !tbaa !5
  %189 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %180, ptr noundef nonnull %.str.5.sink462, i32 noundef %181, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %183, ptr noundef %185, ptr noundef %187, i32 noundef %188) #15
  call void @exit(i32 noundef 1) #16
  unreachable

190:                                              ; preds = %158
  %191 = load i32, ptr @test_count, align 4, !tbaa !5
  %192 = add nsw i32 %191, 1
  store i32 %192, ptr @test_count, align 4, !tbaa !5
  %193 = load ptr, ptr %5, align 8, !tbaa !9
  %194 = call i32 @s2n_connection_set_blinding(ptr noundef %193, i32 noundef 1) #13
  %195 = icmp eq i32 %194, -1
  br i1 %195, label %196, label %219

196:                                              ; preds = %190
  %197 = tail call ptr @__errno_location() #14
  %198 = load i32, ptr %197, align 4, !tbaa !5
  %199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %200 = call i32 @s2n_print_stacktrace(ptr noundef %199) #13
  %201 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %202 = trunc nuw i8 %201 to i1
  br i1 %202, label %203, label %207

203:                                              ; preds = %196
  %204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %205 = call i32 @fileno(ptr noundef %204) #13
  %206 = call i32 @isatty(i32 noundef %205) #13
  %.not312 = icmp eq i32 %206, 0
  br i1 %.not312, label %207, label %208

207:                                              ; preds = %203, %196
  br label %208

208:                                              ; preds = %203, %207
  %.str.5.sink471 = phi ptr [ @.str.5, %207 ], [ @.str.2, %203 ]
  store i32 %198, ptr %197, align 4, !tbaa !5
  %209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %210 = load i32, ptr @test_count, align 4, !tbaa !5
  %211 = load i32, ptr %124, align 4, !tbaa !5
  %212 = call ptr @s2n_strerror(i32 noundef %211, ptr noundef nonnull @.str.4) #13
  %213 = load i32, ptr %124, align 4, !tbaa !5
  %214 = call ptr @s2n_strerror_debug(i32 noundef %213, ptr noundef nonnull @.str.4) #13
  %215 = load i32, ptr %197, align 4, !tbaa !5
  %216 = call ptr @strerror(i32 noundef %215) #13
  %217 = load i32, ptr %197, align 4, !tbaa !5
  %218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %209, ptr noundef nonnull %.str.5.sink471, i32 noundef %210, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %212, ptr noundef %214, ptr noundef %216, i32 noundef %217) #15
  call void @exit(i32 noundef 1) #16
  unreachable

219:                                              ; preds = %190
  %220 = trunc i32 %155 to i16
  %221 = load ptr, ptr %5, align 8, !tbaa !9
  %222 = getelementptr inbounds i8, ptr %221, i64 2208
  store i16 %220, ptr %222, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #13
  %223 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %223, ptr %6, align 8, !tbaa !9
  %224 = load i32, ptr @test_count, align 4, !tbaa !5
  %225 = add nsw i32 %224, 1
  store i32 %225, ptr @test_count, align 4, !tbaa !5
  %226 = load ptr, ptr %4, align 8, !tbaa !9
  %227 = call i32 @s2n_connection_set_config(ptr noundef %223, ptr noundef %226) #13
  %228 = icmp eq i32 %227, -1
  br i1 %228, label %229, label %252

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

236:                                              ; preds = %229
  %237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %238 = call i32 @fileno(ptr noundef %237) #13
  %239 = call i32 @isatty(i32 noundef %238) #13
  %.not311 = icmp eq i32 %239, 0
  br i1 %.not311, label %240, label %241

240:                                              ; preds = %236, %229
  br label %241

241:                                              ; preds = %236, %240
  %.str.5.sink480 = phi ptr [ @.str.5, %240 ], [ @.str.2, %236 ]
  store i32 %231, ptr %230, align 4, !tbaa !5
  %242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %243 = load i32, ptr @test_count, align 4, !tbaa !5
  %244 = load i32, ptr %124, align 4, !tbaa !5
  %245 = call ptr @s2n_strerror(i32 noundef %244, ptr noundef nonnull @.str.4) #13
  %246 = load i32, ptr %124, align 4, !tbaa !5
  %247 = call ptr @s2n_strerror_debug(i32 noundef %246, ptr noundef nonnull @.str.4) #13
  %248 = load i32, ptr %230, align 4, !tbaa !5
  %249 = call ptr @strerror(i32 noundef %248) #13
  %250 = load i32, ptr %230, align 4, !tbaa !5
  %251 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %242, ptr noundef nonnull %.str.5.sink480, i32 noundef %243, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %245, ptr noundef %247, ptr noundef %249, i32 noundef %250) #15
  call void @exit(i32 noundef 1) #16
  unreachable

252:                                              ; preds = %219
  %253 = load i32, ptr @test_count, align 4, !tbaa !5
  %254 = add nsw i32 %253, 1
  store i32 %254, ptr @test_count, align 4, !tbaa !5
  %255 = load ptr, ptr %6, align 8, !tbaa !9
  %256 = call i32 @s2n_connection_set_blinding(ptr noundef %255, i32 noundef 1) #13
  %257 = icmp eq i32 %256, -1
  br i1 %257, label %258, label %281

258:                                              ; preds = %252
  %259 = tail call ptr @__errno_location() #14
  %260 = load i32, ptr %259, align 4, !tbaa !5
  %261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %262 = call i32 @s2n_print_stacktrace(ptr noundef %261) #13
  %263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %264 = trunc nuw i8 %263 to i1
  br i1 %264, label %265, label %269

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

269:                                              ; preds = %265, %258
  br label %270

270:                                              ; preds = %265, %269
  %.str.5.sink489 = phi ptr [ @.str.5, %269 ], [ @.str.2, %265 ]
  store i32 %260, ptr %259, align 4, !tbaa !5
  %271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %272 = load i32, ptr @test_count, align 4, !tbaa !5
  %273 = load i32, ptr %124, align 4, !tbaa !5
  %274 = call ptr @s2n_strerror(i32 noundef %273, ptr noundef nonnull @.str.4) #13
  %275 = load i32, ptr %124, align 4, !tbaa !5
  %276 = call ptr @s2n_strerror_debug(i32 noundef %275, ptr noundef nonnull @.str.4) #13
  %277 = load i32, ptr %259, align 4, !tbaa !5
  %278 = call ptr @strerror(i32 noundef %277) #13
  %279 = load i32, ptr %259, align 4, !tbaa !5
  %280 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %271, ptr noundef nonnull %.str.5.sink489, i32 noundef %272, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 175, ptr noundef %274, ptr noundef %276, ptr noundef %278, i32 noundef %279) #15
  call void @exit(i32 noundef 1) #16
  unreachable

281:                                              ; preds = %252
  %282 = trunc i32 %156 to i16
  %283 = load ptr, ptr %6, align 8, !tbaa !9
  %284 = getelementptr inbounds i8, ptr %283, i64 2208
  store i16 %282, ptr %284, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %7) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %7, i8 0, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %8) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %8, i8 0, i64 80, i1 false)
  %285 = load i32, ptr @test_count, align 4, !tbaa !5
  %286 = add nsw i32 %285, 1
  store i32 %286, ptr @test_count, align 4, !tbaa !5
  %287 = load ptr, ptr %5, align 8, !tbaa !9
  %288 = call i32 @s2n_connections_set_blocking_io_pair(ptr noundef nonnull %7, ptr noundef %283, ptr noundef %287, ptr noundef nonnull %8)
  %289 = call zeroext i1 @s2n_result_is_ok(i32 %288)
  br i1 %289, label %.preheader328, label %290

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

297:                                              ; preds = %290
  %298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %299 = call i32 @fileno(ptr noundef %298) #13
  %300 = call i32 @isatty(i32 noundef %299) #13
  %.not = icmp eq i32 %300, 0
  br i1 %.not, label %301, label %302

301:                                              ; preds = %297, %290
  br label %302

302:                                              ; preds = %297, %301
  %.str.5.sink498 = phi ptr [ @.str.5, %301 ], [ @.str.2, %297 ]
  store i32 %292, ptr %291, align 4, !tbaa !5
  %303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %304 = load i32, ptr @test_count, align 4, !tbaa !5
  %305 = load i32, ptr %124, align 4, !tbaa !5
  %306 = call ptr @s2n_strerror(i32 noundef %305, ptr noundef nonnull @.str.4) #13
  %307 = load i32, ptr %124, align 4, !tbaa !5
  %308 = call ptr @s2n_strerror_debug(i32 noundef %307, ptr noundef nonnull @.str.4) #13
  %309 = load i32, ptr %291, align 4, !tbaa !5
  %310 = call ptr @strerror(i32 noundef %309) #13
  %311 = load i32, ptr %291, align 4, !tbaa !5
  %312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %303, ptr noundef nonnull %.str.5.sink498, i32 noundef %304, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %306, ptr noundef %308, ptr noundef %310, i32 noundef %311) #15
  call void @exit(i32 noundef 1) #16
  unreachable

.preheader328:                                    ; preds = %281, %317
  %313 = load ptr, ptr %5, align 8, !tbaa !9
  %314 = load ptr, ptr %6, align 8, !tbaa !9
  %315 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %313, ptr noundef %314) #13
  %316 = icmp sgt i32 %315, -1
  br i1 %316, label %324, label %317

317:                                              ; preds = %.preheader328
  %318 = load i32, ptr %124, align 4, !tbaa !5
  %.not236 = icmp eq i32 %318, 0
  br i1 %.not236, label %319, label %.preheader328, !llvm.loop !42

319:                                              ; preds = %317
  store ptr @.str.16, ptr %125, align 8, !tbaa !44
  %320 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.16, i64 21), i32 noundef 47) #17
  %.not237 = icmp eq ptr %320, null
  %321 = getelementptr inbounds i8, ptr %320, i64 1
  %322 = select i1 %.not237, ptr getelementptr inbounds (i8, ptr @.str.16, i64 21), ptr %321
  store ptr %322, ptr %126, align 8, !tbaa !46
  store i32 201326592, ptr %124, align 4, !tbaa !5
  %323 = call i32 @s2n_calculate_stacktrace() #13
  br label %497

324:                                              ; preds = %.preheader328
  %325 = load i32, ptr @test_count, align 4, !tbaa !5
  %326 = add nsw i32 %325, 1
  store i32 %326, ptr @test_count, align 4, !tbaa !5
  %327 = load ptr, ptr %5, align 8, !tbaa !9
  %328 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %327, i32 noundef 1) #13
  br i1 %328, label %352, label %329

329:                                              ; preds = %324
  %330 = tail call ptr @__errno_location() #14
  %331 = load i32, ptr %330, align 4, !tbaa !5
  %332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %333 = call i32 @s2n_print_stacktrace(ptr noundef %332) #13
  %334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %335 = trunc nuw i8 %334 to i1
  br i1 %335, label %336, label %340

336:                                              ; preds = %329
  %337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %338 = call i32 @fileno(ptr noundef %337) #13
  %339 = call i32 @isatty(i32 noundef %338) #13
  %.not230 = icmp eq i32 %339, 0
  br i1 %.not230, label %340, label %341

340:                                              ; preds = %336, %329
  br label %341

341:                                              ; preds = %336, %340
  %.str.5.sink507 = phi ptr [ @.str.5, %340 ], [ @.str.2, %336 ]
  store i32 %331, ptr %330, align 4, !tbaa !5
  %342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %343 = load i32, ptr @test_count, align 4, !tbaa !5
  %344 = load i32, ptr %124, align 4, !tbaa !5
  %345 = call ptr @s2n_strerror(i32 noundef %344, ptr noundef nonnull @.str.4) #13
  %346 = load i32, ptr %124, align 4, !tbaa !5
  %347 = call ptr @s2n_strerror_debug(i32 noundef %346, ptr noundef nonnull @.str.4) #13
  %348 = load i32, ptr %330, align 4, !tbaa !5
  %349 = call ptr @strerror(i32 noundef %348) #13
  %350 = load i32, ptr %330, align 4, !tbaa !5
  %351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %342, ptr noundef nonnull %.str.5.sink507, i32 noundef %343, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %345, ptr noundef %347, ptr noundef %349, i32 noundef %350) #15
  call void @exit(i32 noundef 1) #16
  unreachable

352:                                              ; preds = %324
  %353 = load i32, ptr @test_count, align 4, !tbaa !5
  %354 = add nsw i32 %353, 1
  store i32 %354, ptr @test_count, align 4, !tbaa !5
  %355 = load ptr, ptr %6, align 8, !tbaa !9
  %356 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %355, i32 noundef 1) #13
  br i1 %356, label %380, label %357

357:                                              ; preds = %352
  %358 = tail call ptr @__errno_location() #14
  %359 = load i32, ptr %358, align 4, !tbaa !5
  %360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %361 = call i32 @s2n_print_stacktrace(ptr noundef %360) #13
  %362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %363 = trunc nuw i8 %362 to i1
  br i1 %363, label %364, label %368

364:                                              ; preds = %357
  %365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %366 = call i32 @fileno(ptr noundef %365) #13
  %367 = call i32 @isatty(i32 noundef %366) #13
  %.not231 = icmp eq i32 %367, 0
  br i1 %.not231, label %368, label %369

368:                                              ; preds = %364, %357
  br label %369

369:                                              ; preds = %364, %368
  %.str.5.sink516 = phi ptr [ @.str.5, %368 ], [ @.str.2, %364 ]
  store i32 %359, ptr %358, align 4, !tbaa !5
  %370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %371 = load i32, ptr @test_count, align 4, !tbaa !5
  %372 = load i32, ptr %124, align 4, !tbaa !5
  %373 = call ptr @s2n_strerror(i32 noundef %372, ptr noundef nonnull @.str.4) #13
  %374 = load i32, ptr %124, align 4, !tbaa !5
  %375 = call ptr @s2n_strerror_debug(i32 noundef %374, ptr noundef nonnull @.str.4) #13
  %376 = load i32, ptr %358, align 4, !tbaa !5
  %377 = call ptr @strerror(i32 noundef %376) #13
  %378 = load i32, ptr %358, align 4, !tbaa !5
  %379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %370, ptr noundef nonnull %.str.5.sink516, i32 noundef %371, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %373, ptr noundef %375, ptr noundef %377, i32 noundef %378) #15
  call void @exit(i32 noundef 1) #16
  unreachable

380:                                              ; preds = %352
  %381 = load i32, ptr @test_count, align 4, !tbaa !5
  %382 = add nsw i32 %381, 1
  store i32 %382, ptr @test_count, align 4, !tbaa !5
  %383 = load ptr, ptr %5, align 8, !tbaa !9
  %384 = call i32 @s2n_conn_get_current_message_type(ptr noundef %383) #13
  %385 = icmp eq i32 %384, 20
  br i1 %385, label %409, label %386

386:                                              ; preds = %380
  %387 = tail call ptr @__errno_location() #14
  %388 = load i32, ptr %387, align 4, !tbaa !5
  %389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %390 = call i32 @s2n_print_stacktrace(ptr noundef %389) #13
  %391 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %392 = trunc nuw i8 %391 to i1
  br i1 %392, label %393, label %397

393:                                              ; preds = %386
  %394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %395 = call i32 @fileno(ptr noundef %394) #13
  %396 = call i32 @isatty(i32 noundef %395) #13
  %.not232 = icmp eq i32 %396, 0
  br i1 %.not232, label %397, label %398

397:                                              ; preds = %393, %386
  br label %398

398:                                              ; preds = %393, %397
  %.str.5.sink525 = phi ptr [ @.str.5, %397 ], [ @.str.2, %393 ]
  store i32 %388, ptr %387, align 4, !tbaa !5
  %399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %400 = load i32, ptr @test_count, align 4, !tbaa !5
  %401 = load i32, ptr %124, align 4, !tbaa !5
  %402 = call ptr @s2n_strerror(i32 noundef %401, ptr noundef nonnull @.str.4) #13
  %403 = load i32, ptr %124, align 4, !tbaa !5
  %404 = call ptr @s2n_strerror_debug(i32 noundef %403, ptr noundef nonnull @.str.4) #13
  %405 = load i32, ptr %387, align 4, !tbaa !5
  %406 = call ptr @strerror(i32 noundef %405) #13
  %407 = load i32, ptr %387, align 4, !tbaa !5
  %408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %399, ptr noundef nonnull %.str.5.sink525, i32 noundef %400, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 189, ptr noundef %402, ptr noundef %404, ptr noundef %406, i32 noundef %407) #15
  call void @exit(i32 noundef 1) #16
  unreachable

409:                                              ; preds = %380
  %410 = load i32, ptr @test_count, align 4, !tbaa !5
  %411 = add nsw i32 %410, 1
  store i32 %411, ptr @test_count, align 4, !tbaa !5
  %412 = load ptr, ptr %6, align 8, !tbaa !9
  %413 = call i32 @s2n_conn_get_current_message_type(ptr noundef %412) #13
  %414 = icmp eq i32 %413, 20
  br i1 %414, label %438, label %415

415:                                              ; preds = %409
  %416 = tail call ptr @__errno_location() #14
  %417 = load i32, ptr %416, align 4, !tbaa !5
  %418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %419 = call i32 @s2n_print_stacktrace(ptr noundef %418) #13
  %420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %421 = trunc nuw i8 %420 to i1
  br i1 %421, label %422, label %426

422:                                              ; preds = %415
  %423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %424 = call i32 @fileno(ptr noundef %423) #13
  %425 = call i32 @isatty(i32 noundef %424) #13
  %.not233 = icmp eq i32 %425, 0
  br i1 %.not233, label %426, label %427

426:                                              ; preds = %422, %415
  br label %427

427:                                              ; preds = %422, %426
  %.str.5.sink534 = phi ptr [ @.str.5, %426 ], [ @.str.2, %422 ]
  store i32 %417, ptr %416, align 4, !tbaa !5
  %428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %429 = load i32, ptr @test_count, align 4, !tbaa !5
  %430 = load i32, ptr %124, align 4, !tbaa !5
  %431 = call ptr @s2n_strerror(i32 noundef %430, ptr noundef nonnull @.str.4) #13
  %432 = load i32, ptr %124, align 4, !tbaa !5
  %433 = call ptr @s2n_strerror_debug(i32 noundef %432, ptr noundef nonnull @.str.4) #13
  %434 = load i32, ptr %416, align 4, !tbaa !5
  %435 = call ptr @strerror(i32 noundef %434) #13
  %436 = load i32, ptr %416, align 4, !tbaa !5
  %437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %428, ptr noundef nonnull %.str.5.sink534, i32 noundef %429, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 190, ptr noundef %431, ptr noundef %433, ptr noundef %435, i32 noundef %436) #15
  call void @exit(i32 noundef 1) #16
  unreachable

438:                                              ; preds = %409
  %439 = load i32, ptr @test_count, align 4, !tbaa !5
  %440 = add nsw i32 %439, 1
  store i32 %440, ptr @test_count, align 4, !tbaa !5
  %441 = load ptr, ptr %5, align 8, !tbaa !9
  %442 = getelementptr inbounds i8, ptr %441, i64 220
  %443 = load i8, ptr %442, align 4, !tbaa !47
  %444 = icmp eq i8 %443, 34
  br i1 %444, label %468, label %445

445:                                              ; preds = %438
  %446 = tail call ptr @__errno_location() #14
  %447 = load i32, ptr %446, align 4, !tbaa !5
  %448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %449 = call i32 @s2n_print_stacktrace(ptr noundef %448) #13
  %450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %451 = trunc nuw i8 %450 to i1
  br i1 %451, label %452, label %456

452:                                              ; preds = %445
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = call i32 @fileno(ptr noundef %453) #13
  %455 = call i32 @isatty(i32 noundef %454) #13
  %.not234 = icmp eq i32 %455, 0
  br i1 %.not234, label %456, label %457

456:                                              ; preds = %452, %445
  br label %457

457:                                              ; preds = %452, %456
  %.str.5.sink543 = phi ptr [ @.str.5, %456 ], [ @.str.2, %452 ]
  store i32 %447, ptr %446, align 4, !tbaa !5
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = load i32, ptr @test_count, align 4, !tbaa !5
  %460 = load i32, ptr %124, align 4, !tbaa !5
  %461 = call ptr @s2n_strerror(i32 noundef %460, ptr noundef nonnull @.str.4) #13
  %462 = load i32, ptr %124, align 4, !tbaa !5
  %463 = call ptr @s2n_strerror_debug(i32 noundef %462, ptr noundef nonnull @.str.4) #13
  %464 = load i32, ptr %446, align 4, !tbaa !5
  %465 = call ptr @strerror(i32 noundef %464) #13
  %466 = load i32, ptr %446, align 4, !tbaa !5
  %467 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %458, ptr noundef nonnull %.str.5.sink543, i32 noundef %459, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 193, ptr noundef %461, ptr noundef %463, ptr noundef %465, i32 noundef %466) #15
  call void @exit(i32 noundef 1) #16
  unreachable

468:                                              ; preds = %438
  %469 = add nsw i32 %439, 2
  store i32 %469, ptr @test_count, align 4, !tbaa !5
  %470 = load ptr, ptr %6, align 8, !tbaa !9
  %471 = getelementptr inbounds i8, ptr %470, i64 220
  %472 = load i8, ptr %471, align 4, !tbaa !47
  %473 = icmp eq i8 %472, 34
  br i1 %473, label %497, label %474

474:                                              ; preds = %468
  %475 = tail call ptr @__errno_location() #14
  %476 = load i32, ptr %475, align 4, !tbaa !5
  %477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %478 = call i32 @s2n_print_stacktrace(ptr noundef %477) #13
  %479 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %480 = trunc nuw i8 %479 to i1
  br i1 %480, label %481, label %485

481:                                              ; preds = %474
  %482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %483 = call i32 @fileno(ptr noundef %482) #13
  %484 = call i32 @isatty(i32 noundef %483) #13
  %.not235 = icmp eq i32 %484, 0
  br i1 %.not235, label %485, label %486

485:                                              ; preds = %481, %474
  br label %486

486:                                              ; preds = %481, %485
  %.str.5.sink552 = phi ptr [ @.str.5, %485 ], [ @.str.2, %481 ]
  store i32 %476, ptr %475, align 4, !tbaa !5
  %487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %488 = load i32, ptr @test_count, align 4, !tbaa !5
  %489 = load i32, ptr %124, align 4, !tbaa !5
  %490 = call ptr @s2n_strerror(i32 noundef %489, ptr noundef nonnull @.str.4) #13
  %491 = load i32, ptr %124, align 4, !tbaa !5
  %492 = call ptr @s2n_strerror_debug(i32 noundef %491, ptr noundef nonnull @.str.4) #13
  %493 = load i32, ptr %475, align 4, !tbaa !5
  %494 = call ptr @strerror(i32 noundef %493) #13
  %495 = load i32, ptr %475, align 4, !tbaa !5
  %496 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %487, ptr noundef nonnull %.str.5.sink552, i32 noundef %488, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 194, ptr noundef %490, ptr noundef %492, ptr noundef %494, i32 noundef %495) #15
  call void @exit(i32 noundef 1) #16
  unreachable

497:                                              ; preds = %468, %319
  %.1 = phi i32 [ -1, %319 ], [ %.0380, %468 ]
  %498 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %8) #13
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %8) #13
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %7) #13
  %499 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %6) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #13
  %500 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %5) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #13
  %501 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %4) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #13
  br i1 %316, label %502, label %.thread

502:                                              ; preds = %497, %153
  %.2 = phi i32 [ %.1, %497 ], [ %.0380, %153 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #13
  %503 = load ptr, ptr %3, align 8, !tbaa !9
  %504 = call ptr @s2n_test_config_new(ptr noundef %503)
  store ptr %504, ptr %9, align 8, !tbaa !9
  %505 = load i32, ptr @test_count, align 4, !tbaa !5
  %506 = add nsw i32 %505, 1
  store i32 %506, ptr @test_count, align 4, !tbaa !5
  %507 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %504, ptr noundef nonnull @.str.23) #13
  %508 = icmp eq i32 %507, -1
  br i1 %508, label %509, label %532

509:                                              ; preds = %502
  %510 = tail call ptr @__errno_location() #14
  %511 = load i32, ptr %510, align 4, !tbaa !5
  %512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %513 = call i32 @s2n_print_stacktrace(ptr noundef %512) #13
  %514 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %515 = trunc nuw i8 %514 to i1
  br i1 %515, label %516, label %520

516:                                              ; preds = %509
  %517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %518 = call i32 @fileno(ptr noundef %517) #13
  %519 = call i32 @isatty(i32 noundef %518) #13
  %.not309 = icmp eq i32 %519, 0
  br i1 %.not309, label %520, label %521

520:                                              ; preds = %516, %509
  br label %521

521:                                              ; preds = %516, %520
  %.str.5.sink561 = phi ptr [ @.str.5, %520 ], [ @.str.2, %516 ]
  store i32 %511, ptr %510, align 4, !tbaa !5
  %522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %523 = load i32, ptr @test_count, align 4, !tbaa !5
  %524 = load i32, ptr %124, align 4, !tbaa !5
  %525 = call ptr @s2n_strerror(i32 noundef %524, ptr noundef nonnull @.str.4) #13
  %526 = load i32, ptr %124, align 4, !tbaa !5
  %527 = call ptr @s2n_strerror_debug(i32 noundef %526, ptr noundef nonnull @.str.4) #13
  %528 = load i32, ptr %510, align 4, !tbaa !5
  %529 = call ptr @strerror(i32 noundef %528) #13
  %530 = load i32, ptr %510, align 4, !tbaa !5
  %531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %522, ptr noundef nonnull %.str.5.sink561, i32 noundef %523, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %525, ptr noundef %527, ptr noundef %529, i32 noundef %530) #15
  call void @exit(i32 noundef 1) #16
  unreachable

532:                                              ; preds = %502
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #13
  %533 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %533, ptr %10, align 8, !tbaa !9
  %534 = load i32, ptr @test_count, align 4, !tbaa !5
  %535 = add nsw i32 %534, 1
  store i32 %535, ptr @test_count, align 4, !tbaa !5
  %536 = load ptr, ptr %9, align 8, !tbaa !9
  %537 = call i32 @s2n_connection_set_config(ptr noundef %533, ptr noundef %536) #13
  %538 = icmp eq i32 %537, -1
  br i1 %538, label %539, label %562

539:                                              ; preds = %532
  %540 = tail call ptr @__errno_location() #14
  %541 = load i32, ptr %540, align 4, !tbaa !5
  %542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %543 = call i32 @s2n_print_stacktrace(ptr noundef %542) #13
  %544 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %545 = trunc nuw i8 %544 to i1
  br i1 %545, label %546, label %550

546:                                              ; preds = %539
  %547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %548 = call i32 @fileno(ptr noundef %547) #13
  %549 = call i32 @isatty(i32 noundef %548) #13
  %.not308 = icmp eq i32 %549, 0
  br i1 %.not308, label %550, label %551

550:                                              ; preds = %546, %539
  br label %551

551:                                              ; preds = %546, %550
  %.str.5.sink570 = phi ptr [ @.str.5, %550 ], [ @.str.2, %546 ]
  store i32 %541, ptr %540, align 4, !tbaa !5
  %552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %553 = load i32, ptr @test_count, align 4, !tbaa !5
  %554 = load i32, ptr %124, align 4, !tbaa !5
  %555 = call ptr @s2n_strerror(i32 noundef %554, ptr noundef nonnull @.str.4) #13
  %556 = load i32, ptr %124, align 4, !tbaa !5
  %557 = call ptr @s2n_strerror_debug(i32 noundef %556, ptr noundef nonnull @.str.4) #13
  %558 = load i32, ptr %540, align 4, !tbaa !5
  %559 = call ptr @strerror(i32 noundef %558) #13
  %560 = load i32, ptr %540, align 4, !tbaa !5
  %561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %552, ptr noundef nonnull %.str.5.sink570, i32 noundef %553, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 204, ptr noundef %555, ptr noundef %557, ptr noundef %559, i32 noundef %560) #15
  call void @exit(i32 noundef 1) #16
  unreachable

562:                                              ; preds = %532
  %563 = load i32, ptr @test_count, align 4, !tbaa !5
  %564 = add nsw i32 %563, 1
  store i32 %564, ptr @test_count, align 4, !tbaa !5
  %565 = load ptr, ptr %10, align 8, !tbaa !9
  %566 = call i32 @s2n_connection_set_blinding(ptr noundef %565, i32 noundef 1) #13
  %567 = icmp eq i32 %566, -1
  br i1 %567, label %568, label %591

568:                                              ; preds = %562
  %569 = tail call ptr @__errno_location() #14
  %570 = load i32, ptr %569, align 4, !tbaa !5
  %571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %572 = call i32 @s2n_print_stacktrace(ptr noundef %571) #13
  %573 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %574 = trunc nuw i8 %573 to i1
  br i1 %574, label %575, label %579

575:                                              ; preds = %568
  %576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %577 = call i32 @fileno(ptr noundef %576) #13
  %578 = call i32 @isatty(i32 noundef %577) #13
  %.not307 = icmp eq i32 %578, 0
  br i1 %.not307, label %579, label %580

579:                                              ; preds = %575, %568
  br label %580

580:                                              ; preds = %575, %579
  %.str.5.sink579 = phi ptr [ @.str.5, %579 ], [ @.str.2, %575 ]
  store i32 %570, ptr %569, align 4, !tbaa !5
  %581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %582 = load i32, ptr @test_count, align 4, !tbaa !5
  %583 = load i32, ptr %124, align 4, !tbaa !5
  %584 = call ptr @s2n_strerror(i32 noundef %583, ptr noundef nonnull @.str.4) #13
  %585 = load i32, ptr %124, align 4, !tbaa !5
  %586 = call ptr @s2n_strerror_debug(i32 noundef %585, ptr noundef nonnull @.str.4) #13
  %587 = load i32, ptr %569, align 4, !tbaa !5
  %588 = call ptr @strerror(i32 noundef %587) #13
  %589 = load i32, ptr %569, align 4, !tbaa !5
  %590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %581, ptr noundef nonnull %.str.5.sink579, i32 noundef %582, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 205, ptr noundef %584, ptr noundef %586, ptr noundef %588, i32 noundef %589) #15
  call void @exit(i32 noundef 1) #16
  unreachable

591:                                              ; preds = %562
  %592 = trunc i32 %155 to i16
  %593 = load ptr, ptr %10, align 8, !tbaa !9
  %594 = getelementptr inbounds i8, ptr %593, i64 2208
  store i16 %592, ptr %594, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #13
  %595 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %595, ptr %11, align 8, !tbaa !9
  %596 = load i32, ptr @test_count, align 4, !tbaa !5
  %597 = add nsw i32 %596, 1
  store i32 %597, ptr @test_count, align 4, !tbaa !5
  %598 = load ptr, ptr %9, align 8, !tbaa !9
  %599 = call i32 @s2n_connection_set_config(ptr noundef %595, ptr noundef %598) #13
  %600 = icmp eq i32 %599, -1
  br i1 %600, label %601, label %624

601:                                              ; preds = %591
  %602 = tail call ptr @__errno_location() #14
  %603 = load i32, ptr %602, align 4, !tbaa !5
  %604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %605 = call i32 @s2n_print_stacktrace(ptr noundef %604) #13
  %606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %607 = trunc nuw i8 %606 to i1
  br i1 %607, label %608, label %612

608:                                              ; preds = %601
  %609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %610 = call i32 @fileno(ptr noundef %609) #13
  %611 = call i32 @isatty(i32 noundef %610) #13
  %.not306 = icmp eq i32 %611, 0
  br i1 %.not306, label %612, label %613

612:                                              ; preds = %608, %601
  br label %613

613:                                              ; preds = %608, %612
  %.str.5.sink588 = phi ptr [ @.str.5, %612 ], [ @.str.2, %608 ]
  store i32 %603, ptr %602, align 4, !tbaa !5
  %614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %615 = load i32, ptr @test_count, align 4, !tbaa !5
  %616 = load i32, ptr %124, align 4, !tbaa !5
  %617 = call ptr @s2n_strerror(i32 noundef %616, ptr noundef nonnull @.str.4) #13
  %618 = load i32, ptr %124, align 4, !tbaa !5
  %619 = call ptr @s2n_strerror_debug(i32 noundef %618, ptr noundef nonnull @.str.4) #13
  %620 = load i32, ptr %602, align 4, !tbaa !5
  %621 = call ptr @strerror(i32 noundef %620) #13
  %622 = load i32, ptr %602, align 4, !tbaa !5
  %623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %614, ptr noundef nonnull %.str.5.sink588, i32 noundef %615, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %617, ptr noundef %619, ptr noundef %621, i32 noundef %622) #15
  call void @exit(i32 noundef 1) #16
  unreachable

624:                                              ; preds = %591
  %625 = load i32, ptr @test_count, align 4, !tbaa !5
  %626 = add nsw i32 %625, 1
  store i32 %626, ptr @test_count, align 4, !tbaa !5
  %627 = load ptr, ptr %11, align 8, !tbaa !9
  %628 = call i32 @s2n_connection_set_blinding(ptr noundef %627, i32 noundef 1) #13
  %629 = icmp eq i32 %628, -1
  br i1 %629, label %630, label %653

630:                                              ; preds = %624
  %631 = tail call ptr @__errno_location() #14
  %632 = load i32, ptr %631, align 4, !tbaa !5
  %633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %634 = call i32 @s2n_print_stacktrace(ptr noundef %633) #13
  %635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %636 = trunc nuw i8 %635 to i1
  br i1 %636, label %637, label %641

637:                                              ; preds = %630
  %638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %639 = call i32 @fileno(ptr noundef %638) #13
  %640 = call i32 @isatty(i32 noundef %639) #13
  %.not305 = icmp eq i32 %640, 0
  br i1 %.not305, label %641, label %642

641:                                              ; preds = %637, %630
  br label %642

642:                                              ; preds = %637, %641
  %.str.5.sink597 = phi ptr [ @.str.5, %641 ], [ @.str.2, %637 ]
  store i32 %632, ptr %631, align 4, !tbaa !5
  %643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %644 = load i32, ptr @test_count, align 4, !tbaa !5
  %645 = load i32, ptr %124, align 4, !tbaa !5
  %646 = call ptr @s2n_strerror(i32 noundef %645, ptr noundef nonnull @.str.4) #13
  %647 = load i32, ptr %124, align 4, !tbaa !5
  %648 = call ptr @s2n_strerror_debug(i32 noundef %647, ptr noundef nonnull @.str.4) #13
  %649 = load i32, ptr %631, align 4, !tbaa !5
  %650 = call ptr @strerror(i32 noundef %649) #13
  %651 = load i32, ptr %631, align 4, !tbaa !5
  %652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %643, ptr noundef nonnull %.str.5.sink597, i32 noundef %644, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 210, ptr noundef %646, ptr noundef %648, ptr noundef %650, i32 noundef %651) #15
  call void @exit(i32 noundef 1) #16
  unreachable

653:                                              ; preds = %624
  %654 = trunc i32 %156 to i16
  %655 = load ptr, ptr %11, align 8, !tbaa !9
  %656 = getelementptr inbounds i8, ptr %655, i64 2208
  store i16 %654, ptr %656, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %12) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %12, i8 0, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %13) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %13, i8 0, i64 80, i1 false)
  %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 %10, align 8, !tbaa !9
  %660 = call i32 @s2n_connections_set_blocking_io_pair(ptr noundef nonnull %12, ptr noundef %655, ptr noundef %659, ptr noundef nonnull %13)
  %661 = call zeroext i1 @s2n_result_is_ok(i32 %660)
  br i1 %661, label %.preheader327, label %662

662:                                              ; preds = %653
  %663 = tail call ptr @__errno_location() #14
  %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) #13
  %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) #13
  %672 = call i32 @isatty(i32 noundef %671) #13
  %.not238 = icmp eq i32 %672, 0
  br i1 %.not238, label %673, label %674

673:                                              ; preds = %669, %662
  br label %674

674:                                              ; preds = %669, %673
  %.str.5.sink606 = 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 %124, align 4, !tbaa !5
  %678 = call ptr @s2n_strerror(i32 noundef %677, ptr noundef nonnull @.str.4) #13
  %679 = load i32, ptr %124, align 4, !tbaa !5
  %680 = call ptr @s2n_strerror_debug(i32 noundef %679, ptr noundef nonnull @.str.4) #13
  %681 = load i32, ptr %663, align 4, !tbaa !5
  %682 = call ptr @strerror(i32 noundef %681) #13
  %683 = load i32, ptr %663, align 4, !tbaa !5
  %684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %675, ptr noundef nonnull %.str.5.sink606, i32 noundef %676, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %678, ptr noundef %680, ptr noundef %682, i32 noundef %683) #15
  call void @exit(i32 noundef 1) #16
  unreachable

.preheader327:                                    ; preds = %653, %689
  %685 = load ptr, ptr %10, align 8, !tbaa !9
  %686 = load ptr, ptr %11, align 8, !tbaa !9
  %687 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %685, ptr noundef %686) #13
  %688 = icmp sgt i32 %687, -1
  br i1 %688, label %696, label %689

689:                                              ; preds = %.preheader327
  %690 = load i32, ptr %124, align 4, !tbaa !5
  %.not245 = icmp eq i32 %690, 0
  br i1 %.not245, label %691, label %.preheader327, !llvm.loop !48

691:                                              ; preds = %689
  store ptr @.str.25, ptr %125, align 8, !tbaa !44
  %692 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.25, i64 21), i32 noundef 47) #17
  %.not246 = icmp eq ptr %692, null
  %693 = getelementptr inbounds i8, ptr %692, i64 1
  %694 = select i1 %.not246, ptr getelementptr inbounds (i8, ptr @.str.25, i64 21), ptr %693
  store ptr %694, ptr %126, align 8, !tbaa !46
  store i32 201326592, ptr %124, align 4, !tbaa !5
  %695 = call i32 @s2n_calculate_stacktrace() #13
  br label %869

696:                                              ; preds = %.preheader327
  %697 = load i32, ptr @test_count, align 4, !tbaa !5
  %698 = add nsw i32 %697, 1
  store i32 %698, ptr @test_count, align 4, !tbaa !5
  %699 = load ptr, ptr %10, align 8, !tbaa !9
  %700 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %699, i32 noundef 1) #13
  br i1 %700, label %724, label %701

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

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

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

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

724:                                              ; preds = %696
  %725 = load i32, ptr @test_count, align 4, !tbaa !5
  %726 = add nsw i32 %725, 1
  store i32 %726, ptr @test_count, align 4, !tbaa !5
  %727 = load ptr, ptr %11, align 8, !tbaa !9
  %728 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %727, i32 noundef 1) #13
  br i1 %728, label %752, label %729

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

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

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

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

752:                                              ; preds = %724
  %753 = load i32, ptr @test_count, align 4, !tbaa !5
  %754 = add nsw i32 %753, 1
  store i32 %754, ptr @test_count, align 4, !tbaa !5
  %755 = load ptr, ptr %10, align 8, !tbaa !9
  %756 = call i32 @s2n_conn_get_current_message_type(ptr noundef %755) #13
  %757 = icmp eq i32 %756, 20
  br i1 %757, label %781, label %758

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

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

769:                                              ; preds = %765, %758
  br label %770

770:                                              ; preds = %765, %769
  %.str.5.sink633 = phi ptr [ @.str.5, %769 ], [ @.str.2, %765 ]
  store i32 %760, ptr %759, align 4, !tbaa !5
  %771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %772 = load i32, ptr @test_count, align 4, !tbaa !5
  %773 = load i32, ptr %124, align 4, !tbaa !5
  %774 = call ptr @s2n_strerror(i32 noundef %773, ptr noundef nonnull @.str.4) #13
  %775 = load i32, ptr %124, align 4, !tbaa !5
  %776 = call ptr @s2n_strerror_debug(i32 noundef %775, ptr noundef nonnull @.str.4) #13
  %777 = load i32, ptr %759, align 4, !tbaa !5
  %778 = call ptr @strerror(i32 noundef %777) #13
  %779 = load i32, ptr %759, align 4, !tbaa !5
  %780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %771, ptr noundef nonnull %.str.5.sink633, i32 noundef %772, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 224, ptr noundef %774, ptr noundef %776, ptr noundef %778, i32 noundef %779) #15
  call void @exit(i32 noundef 1) #16
  unreachable

781:                                              ; preds = %752
  %782 = load i32, ptr @test_count, align 4, !tbaa !5
  %783 = add nsw i32 %782, 1
  store i32 %783, ptr @test_count, align 4, !tbaa !5
  %784 = load ptr, ptr %11, align 8, !tbaa !9
  %785 = call i32 @s2n_conn_get_current_message_type(ptr noundef %784) #13
  %786 = icmp eq i32 %785, 20
  br i1 %786, label %810, label %787

787:                                              ; preds = %781
  %788 = tail call ptr @__errno_location() #14
  %789 = load i32, ptr %788, align 4, !tbaa !5
  %790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %791 = call i32 @s2n_print_stacktrace(ptr noundef %790) #13
  %792 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %793 = trunc nuw i8 %792 to i1
  br i1 %793, label %794, label %798

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

798:                                              ; preds = %794, %787
  br label %799

799:                                              ; preds = %794, %798
  %.str.5.sink642 = phi ptr [ @.str.5, %798 ], [ @.str.2, %794 ]
  store i32 %789, ptr %788, align 4, !tbaa !5
  %800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %801 = load i32, ptr @test_count, align 4, !tbaa !5
  %802 = load i32, ptr %124, align 4, !tbaa !5
  %803 = call ptr @s2n_strerror(i32 noundef %802, ptr noundef nonnull @.str.4) #13
  %804 = load i32, ptr %124, align 4, !tbaa !5
  %805 = call ptr @s2n_strerror_debug(i32 noundef %804, ptr noundef nonnull @.str.4) #13
  %806 = load i32, ptr %788, align 4, !tbaa !5
  %807 = call ptr @strerror(i32 noundef %806) #13
  %808 = load i32, ptr %788, align 4, !tbaa !5
  %809 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %800, ptr noundef nonnull %.str.5.sink642, i32 noundef %801, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 225, ptr noundef %803, ptr noundef %805, ptr noundef %807, i32 noundef %808) #15
  call void @exit(i32 noundef 1) #16
  unreachable

810:                                              ; preds = %781
  %811 = load i32, ptr @test_count, align 4, !tbaa !5
  %812 = add nsw i32 %811, 1
  store i32 %812, ptr @test_count, align 4, !tbaa !5
  %813 = load ptr, ptr %10, align 8, !tbaa !9
  %814 = getelementptr inbounds i8, ptr %813, i64 220
  %815 = load i8, ptr %814, align 4, !tbaa !47
  %816 = icmp eq i8 %815, 33
  br i1 %816, label %840, label %817

817:                                              ; preds = %810
  %818 = tail call ptr @__errno_location() #14
  %819 = load i32, ptr %818, align 4, !tbaa !5
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = call i32 @s2n_print_stacktrace(ptr noundef %820) #13
  %822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %823 = trunc nuw i8 %822 to i1
  br i1 %823, label %824, label %828

824:                                              ; preds = %817
  %825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %826 = call i32 @fileno(ptr noundef %825) #13
  %827 = call i32 @isatty(i32 noundef %826) #13
  %.not243 = icmp eq i32 %827, 0
  br i1 %.not243, label %828, label %829

828:                                              ; preds = %824, %817
  br label %829

829:                                              ; preds = %824, %828
  %.str.5.sink651 = phi ptr [ @.str.5, %828 ], [ @.str.2, %824 ]
  store i32 %819, ptr %818, align 4, !tbaa !5
  %830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %831 = load i32, ptr @test_count, align 4, !tbaa !5
  %832 = load i32, ptr %124, align 4, !tbaa !5
  %833 = call ptr @s2n_strerror(i32 noundef %832, ptr noundef nonnull @.str.4) #13
  %834 = load i32, ptr %124, align 4, !tbaa !5
  %835 = call ptr @s2n_strerror_debug(i32 noundef %834, ptr noundef nonnull @.str.4) #13
  %836 = load i32, ptr %818, align 4, !tbaa !5
  %837 = call ptr @strerror(i32 noundef %836) #13
  %838 = load i32, ptr %818, align 4, !tbaa !5
  %839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %830, ptr noundef nonnull %.str.5.sink651, i32 noundef %831, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %833, ptr noundef %835, ptr noundef %837, i32 noundef %838) #15
  call void @exit(i32 noundef 1) #16
  unreachable

840:                                              ; preds = %810
  %841 = add nsw i32 %811, 2
  store i32 %841, ptr @test_count, align 4, !tbaa !5
  %842 = load ptr, ptr %11, align 8, !tbaa !9
  %843 = getelementptr inbounds i8, ptr %842, i64 220
  %844 = load i8, ptr %843, align 4, !tbaa !47
  %845 = icmp eq i8 %844, 33
  br i1 %845, label %869, label %846

846:                                              ; preds = %840
  %847 = tail call ptr @__errno_location() #14
  %848 = load i32, ptr %847, align 4, !tbaa !5
  %849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %850 = call i32 @s2n_print_stacktrace(ptr noundef %849) #13
  %851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %852 = trunc nuw i8 %851 to i1
  br i1 %852, label %853, label %857

853:                                              ; preds = %846
  %854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %855 = call i32 @fileno(ptr noundef %854) #13
  %856 = call i32 @isatty(i32 noundef %855) #13
  %.not244 = icmp eq i32 %856, 0
  br i1 %.not244, label %857, label %858

857:                                              ; preds = %853, %846
  br label %858

858:                                              ; preds = %853, %857
  %.str.5.sink660 = phi ptr [ @.str.5, %857 ], [ @.str.2, %853 ]
  store i32 %848, ptr %847, align 4, !tbaa !5
  %859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %860 = load i32, ptr @test_count, align 4, !tbaa !5
  %861 = load i32, ptr %124, align 4, !tbaa !5
  %862 = call ptr @s2n_strerror(i32 noundef %861, ptr noundef nonnull @.str.4) #13
  %863 = load i32, ptr %124, align 4, !tbaa !5
  %864 = call ptr @s2n_strerror_debug(i32 noundef %863, ptr noundef nonnull @.str.4) #13
  %865 = load i32, ptr %847, align 4, !tbaa !5
  %866 = call ptr @strerror(i32 noundef %865) #13
  %867 = load i32, ptr %847, align 4, !tbaa !5
  %868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %859, ptr noundef nonnull %.str.5.sink660, i32 noundef %860, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %862, ptr noundef %864, ptr noundef %866, i32 noundef %867) #15
  call void @exit(i32 noundef 1) #16
  unreachable

869:                                              ; preds = %840, %691
  %.3 = phi i32 [ -1, %691 ], [ %.2, %840 ]
  %870 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %13) #13
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %13) #13
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %12) #13
  %871 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %11) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #13
  %872 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %10) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #13
  %873 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %9) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #13
  br i1 %688, label %874, label %.thread

874:                                              ; preds = %869
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #13
  %875 = load ptr, ptr %3, align 8, !tbaa !9
  %876 = call ptr @s2n_test_config_new(ptr noundef %875)
  store ptr %876, ptr %14, align 8, !tbaa !9
  %877 = load i32, ptr @test_count, align 4, !tbaa !5
  %878 = add nsw i32 %877, 1
  store i32 %878, ptr @test_count, align 4, !tbaa !5
  %879 = call i32 @s2n_config_set_client_hello_cb(ptr noundef %876, ptr noundef nonnull @s2n_client_hello_test_fn, ptr noundef null) #13
  %880 = icmp eq i32 %879, -1
  br i1 %880, label %881, label %904

881:                                              ; preds = %874
  %882 = tail call ptr @__errno_location() #14
  %883 = load i32, ptr %882, align 4, !tbaa !5
  %884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %885 = call i32 @s2n_print_stacktrace(ptr noundef %884) #13
  %886 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %887 = trunc nuw i8 %886 to i1
  br i1 %887, label %888, label %892

888:                                              ; preds = %881
  %889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %890 = call i32 @fileno(ptr noundef %889) #13
  %891 = call i32 @isatty(i32 noundef %890) #13
  %.not304 = icmp eq i32 %891, 0
  br i1 %.not304, label %892, label %893

892:                                              ; preds = %888, %881
  br label %893

893:                                              ; preds = %888, %892
  %.str.5.sink669 = phi ptr [ @.str.5, %892 ], [ @.str.2, %888 ]
  store i32 %883, ptr %882, align 4, !tbaa !5
  %894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %895 = load i32, ptr @test_count, align 4, !tbaa !5
  %896 = load i32, ptr %124, align 4, !tbaa !5
  %897 = call ptr @s2n_strerror(i32 noundef %896, ptr noundef nonnull @.str.4) #13
  %898 = load i32, ptr %124, align 4, !tbaa !5
  %899 = call ptr @s2n_strerror_debug(i32 noundef %898, ptr noundef nonnull @.str.4) #13
  %900 = load i32, ptr %882, align 4, !tbaa !5
  %901 = call ptr @strerror(i32 noundef %900) #13
  %902 = load i32, ptr %882, align 4, !tbaa !5
  %903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %894, ptr noundef nonnull %.str.5.sink669, i32 noundef %895, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 241, ptr noundef %897, ptr noundef %899, ptr noundef %901, i32 noundef %902) #15
  call void @exit(i32 noundef 1) #16
  unreachable

904:                                              ; preds = %874
  %905 = load i32, ptr @test_count, align 4, !tbaa !5
  %906 = add nsw i32 %905, 1
  store i32 %906, ptr @test_count, align 4, !tbaa !5
  %907 = load ptr, ptr %14, align 8, !tbaa !9
  %908 = call i32 @s2n_config_set_client_hello_cb_mode(ptr noundef %907, i32 noundef 1) #13
  %909 = icmp eq i32 %908, -1
  br i1 %909, label %910, label %933

910:                                              ; preds = %904
  %911 = tail call ptr @__errno_location() #14
  %912 = load i32, ptr %911, align 4, !tbaa !5
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = call i32 @s2n_print_stacktrace(ptr noundef %913) #13
  %915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %916 = trunc nuw i8 %915 to i1
  br i1 %916, label %917, label %921

917:                                              ; preds = %910
  %918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %919 = call i32 @fileno(ptr noundef %918) #13
  %920 = call i32 @isatty(i32 noundef %919) #13
  %.not303 = icmp eq i32 %920, 0
  br i1 %.not303, label %921, label %922

921:                                              ; preds = %917, %910
  br label %922

922:                                              ; preds = %917, %921
  %.str.5.sink678 = phi ptr [ @.str.5, %921 ], [ @.str.2, %917 ]
  store i32 %912, ptr %911, align 4, !tbaa !5
  %923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %924 = load i32, ptr @test_count, align 4, !tbaa !5
  %925 = load i32, ptr %124, align 4, !tbaa !5
  %926 = call ptr @s2n_strerror(i32 noundef %925, ptr noundef nonnull @.str.4) #13
  %927 = load i32, ptr %124, align 4, !tbaa !5
  %928 = call ptr @s2n_strerror_debug(i32 noundef %927, ptr noundef nonnull @.str.4) #13
  %929 = load i32, ptr %911, align 4, !tbaa !5
  %930 = call ptr @strerror(i32 noundef %929) #13
  %931 = load i32, ptr %911, align 4, !tbaa !5
  %932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %923, ptr noundef nonnull %.str.5.sink678, i32 noundef %924, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 242, ptr noundef %926, ptr noundef %928, ptr noundef %930, i32 noundef %931) #15
  call void @exit(i32 noundef 1) #16
  unreachable

933:                                              ; preds = %904
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #13
  %934 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %934, ptr %15, align 8, !tbaa !9
  %935 = load i32, ptr @test_count, align 4, !tbaa !5
  %936 = add nsw i32 %935, 1
  store i32 %936, ptr @test_count, align 4, !tbaa !5
  %937 = load ptr, ptr %14, align 8, !tbaa !9
  %938 = call i32 @s2n_connection_set_config(ptr noundef %934, ptr noundef %937) #13
  %939 = icmp eq i32 %938, -1
  br i1 %939, label %940, label %963

940:                                              ; preds = %933
  %941 = tail call ptr @__errno_location() #14
  %942 = load i32, ptr %941, align 4, !tbaa !5
  %943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %944 = call i32 @s2n_print_stacktrace(ptr noundef %943) #13
  %945 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %946 = trunc nuw i8 %945 to i1
  br i1 %946, label %947, label %951

947:                                              ; preds = %940
  %948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %949 = call i32 @fileno(ptr noundef %948) #13
  %950 = call i32 @isatty(i32 noundef %949) #13
  %.not302 = icmp eq i32 %950, 0
  br i1 %.not302, label %951, label %952

951:                                              ; preds = %947, %940
  br label %952

952:                                              ; preds = %947, %951
  %.str.5.sink687 = phi ptr [ @.str.5, %951 ], [ @.str.2, %947 ]
  store i32 %942, ptr %941, align 4, !tbaa !5
  %953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %954 = load i32, ptr @test_count, align 4, !tbaa !5
  %955 = load i32, ptr %124, align 4, !tbaa !5
  %956 = call ptr @s2n_strerror(i32 noundef %955, ptr noundef nonnull @.str.4) #13
  %957 = load i32, ptr %124, align 4, !tbaa !5
  %958 = call ptr @s2n_strerror_debug(i32 noundef %957, ptr noundef nonnull @.str.4) #13
  %959 = load i32, ptr %941, align 4, !tbaa !5
  %960 = call ptr @strerror(i32 noundef %959) #13
  %961 = load i32, ptr %941, align 4, !tbaa !5
  %962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %953, ptr noundef nonnull %.str.5.sink687, i32 noundef %954, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 245, ptr noundef %956, ptr noundef %958, ptr noundef %960, i32 noundef %961) #15
  call void @exit(i32 noundef 1) #16
  unreachable

963:                                              ; preds = %933
  %964 = load i32, ptr @test_count, align 4, !tbaa !5
  %965 = add nsw i32 %964, 1
  store i32 %965, ptr @test_count, align 4, !tbaa !5
  %966 = load ptr, ptr %15, align 8, !tbaa !9
  %967 = call i32 @s2n_connection_set_blinding(ptr noundef %966, i32 noundef 1) #13
  %968 = icmp eq i32 %967, -1
  br i1 %968, label %969, label %992

969:                                              ; preds = %963
  %970 = tail call ptr @__errno_location() #14
  %971 = load i32, ptr %970, align 4, !tbaa !5
  %972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %973 = call i32 @s2n_print_stacktrace(ptr noundef %972) #13
  %974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %975 = trunc nuw i8 %974 to i1
  br i1 %975, label %976, label %980

976:                                              ; preds = %969
  %977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %978 = call i32 @fileno(ptr noundef %977) #13
  %979 = call i32 @isatty(i32 noundef %978) #13
  %.not301 = icmp eq i32 %979, 0
  br i1 %.not301, label %980, label %981

980:                                              ; preds = %976, %969
  br label %981

981:                                              ; preds = %976, %980
  %.str.5.sink696 = phi ptr [ @.str.5, %980 ], [ @.str.2, %976 ]
  store i32 %971, ptr %970, align 4, !tbaa !5
  %982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %983 = load i32, ptr @test_count, align 4, !tbaa !5
  %984 = load i32, ptr %124, align 4, !tbaa !5
  %985 = call ptr @s2n_strerror(i32 noundef %984, ptr noundef nonnull @.str.4) #13
  %986 = load i32, ptr %124, align 4, !tbaa !5
  %987 = call ptr @s2n_strerror_debug(i32 noundef %986, ptr noundef nonnull @.str.4) #13
  %988 = load i32, ptr %970, align 4, !tbaa !5
  %989 = call ptr @strerror(i32 noundef %988) #13
  %990 = load i32, ptr %970, align 4, !tbaa !5
  %991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %982, ptr noundef nonnull %.str.5.sink696, i32 noundef %983, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 246, ptr noundef %985, ptr noundef %987, ptr noundef %989, i32 noundef %990) #15
  call void @exit(i32 noundef 1) #16
  unreachable

992:                                              ; preds = %963
  %993 = load ptr, ptr %15, align 8, !tbaa !9
  %994 = getelementptr inbounds i8, ptr %993, i64 2208
  store i16 %592, ptr %994, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #13
  %995 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %995, ptr %16, align 8, !tbaa !9
  %996 = load i32, ptr @test_count, align 4, !tbaa !5
  %997 = add nsw i32 %996, 1
  store i32 %997, ptr @test_count, align 4, !tbaa !5
  %998 = load ptr, ptr %14, align 8, !tbaa !9
  %999 = call i32 @s2n_connection_set_config(ptr noundef %995, ptr noundef %998) #13
  %1000 = icmp eq i32 %999, -1
  br i1 %1000, label %1001, label %1024

1001:                                             ; preds = %992
  %1002 = tail call ptr @__errno_location() #14
  %1003 = load i32, ptr %1002, align 4, !tbaa !5
  %1004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1005 = call i32 @s2n_print_stacktrace(ptr noundef %1004) #13
  %1006 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1007 = trunc nuw i8 %1006 to i1
  br i1 %1007, label %1008, label %1012

1008:                                             ; preds = %1001
  %1009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1010 = call i32 @fileno(ptr noundef %1009) #13
  %1011 = call i32 @isatty(i32 noundef %1010) #13
  %.not300 = icmp eq i32 %1011, 0
  br i1 %.not300, label %1012, label %1013

1012:                                             ; preds = %1008, %1001
  br label %1013

1013:                                             ; preds = %1008, %1012
  %.str.5.sink705 = phi ptr [ @.str.5, %1012 ], [ @.str.2, %1008 ]
  store i32 %1003, ptr %1002, align 4, !tbaa !5
  %1014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1015 = load i32, ptr @test_count, align 4, !tbaa !5
  %1016 = load i32, ptr %124, align 4, !tbaa !5
  %1017 = call ptr @s2n_strerror(i32 noundef %1016, ptr noundef nonnull @.str.4) #13
  %1018 = load i32, ptr %124, align 4, !tbaa !5
  %1019 = call ptr @s2n_strerror_debug(i32 noundef %1018, ptr noundef nonnull @.str.4) #13
  %1020 = load i32, ptr %1002, align 4, !tbaa !5
  %1021 = call ptr @strerror(i32 noundef %1020) #13
  %1022 = load i32, ptr %1002, align 4, !tbaa !5
  %1023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1014, ptr noundef nonnull %.str.5.sink705, i32 noundef %1015, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 250, ptr noundef %1017, ptr noundef %1019, ptr noundef %1021, i32 noundef %1022) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1024:                                             ; preds = %992
  %1025 = load i32, ptr @test_count, align 4, !tbaa !5
  %1026 = add nsw i32 %1025, 1
  store i32 %1026, ptr @test_count, align 4, !tbaa !5
  %1027 = load ptr, ptr %16, align 8, !tbaa !9
  %1028 = call i32 @s2n_connection_set_blinding(ptr noundef %1027, i32 noundef 1) #13
  %1029 = icmp eq i32 %1028, -1
  br i1 %1029, label %1030, label %1053

1030:                                             ; preds = %1024
  %1031 = tail call ptr @__errno_location() #14
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  %1033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1034 = call i32 @s2n_print_stacktrace(ptr noundef %1033) #13
  %1035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1036 = trunc nuw i8 %1035 to i1
  br i1 %1036, label %1037, label %1041

1037:                                             ; preds = %1030
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = call i32 @fileno(ptr noundef %1038) #13
  %1040 = call i32 @isatty(i32 noundef %1039) #13
  %.not299 = icmp eq i32 %1040, 0
  br i1 %.not299, label %1041, label %1042

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

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

1053:                                             ; preds = %1024
  %1054 = load ptr, ptr %16, align 8, !tbaa !9
  %1055 = getelementptr inbounds i8, ptr %1054, i64 2208
  store i16 %654, ptr %1055, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %17) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %17, i8 0, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %18) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %18, i8 0, i64 80, i1 false)
  %1056 = load i32, ptr @test_count, align 4, !tbaa !5
  %1057 = add nsw i32 %1056, 1
  store i32 %1057, ptr @test_count, align 4, !tbaa !5
  %1058 = load ptr, ptr %15, align 8, !tbaa !9
  %1059 = call i32 @s2n_connections_set_blocking_io_pair(ptr noundef nonnull %17, ptr noundef %1054, ptr noundef %1058, ptr noundef nonnull %18)
  %1060 = call zeroext i1 @s2n_result_is_ok(i32 %1059)
  br i1 %1060, label %.preheader326, label %1067

.preheader326:                                    ; preds = %1053
  %1061 = load ptr, ptr %15, align 8, !tbaa !9
  %1062 = load ptr, ptr %16, align 8, !tbaa !9
  %1063 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %1061, ptr noundef %1062) #13
  %1064 = icmp sgt i32 %1063, -1
  br i1 %1064, label %._crit_edge.thread, label %.lr.ph

._crit_edge.thread:                               ; preds = %.preheader326
  %1065 = load i32, ptr @test_count, align 4, !tbaa !5
  %1066 = add nsw i32 %1065, 1
  store i32 %1066, ptr @test_count, align 4, !tbaa !5
  br label %.loopexit

1067:                                             ; preds = %1053
  %1068 = tail call ptr @__errno_location() #14
  %1069 = load i32, ptr %1068, align 4, !tbaa !5
  %1070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1071 = call i32 @s2n_print_stacktrace(ptr noundef %1070) #13
  %1072 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1073 = trunc nuw i8 %1072 to i1
  br i1 %1073, label %1074, label %1078

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

1078:                                             ; preds = %1074, %1067
  br label %1079

1079:                                             ; preds = %1074, %1078
  %.str.5.sink723 = phi ptr [ @.str.5, %1078 ], [ @.str.2, %1074 ]
  store i32 %1069, ptr %1068, align 4, !tbaa !5
  %1080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1081 = load i32, ptr @test_count, align 4, !tbaa !5
  %1082 = load i32, ptr %124, align 4, !tbaa !5
  %1083 = call ptr @s2n_strerror(i32 noundef %1082, ptr noundef nonnull @.str.4) #13
  %1084 = load i32, ptr %124, align 4, !tbaa !5
  %1085 = call ptr @s2n_strerror_debug(i32 noundef %1084, ptr noundef nonnull @.str.4) #13
  %1086 = load i32, ptr %1068, align 4, !tbaa !5
  %1087 = call ptr @strerror(i32 noundef %1086) #13
  %1088 = load i32, ptr %1068, align 4, !tbaa !5
  %1089 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1080, ptr noundef nonnull %.str.5.sink723, i32 noundef %1081, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 256, ptr noundef %1083, ptr noundef %1085, ptr noundef %1087, i32 noundef %1088) #15
  call void @exit(i32 noundef 1) #16
  unreachable

.lr.ph:                                           ; preds = %.preheader326, %1125
  %.0216372 = phi i1 [ %.1217, %1125 ], [ false, %.preheader326 ]
  %1090 = load i32, ptr %124, align 4, !tbaa !5
  switch i32 %1090, label %1125 [
    i32 201326593, label %1091
    i32 0, label %1120
  ]

1091:                                             ; preds = %.lr.ph
  %1092 = load i32, ptr @test_count, align 4, !tbaa !5
  %1093 = add nsw i32 %1092, 1
  store i32 %1093, ptr @test_count, align 4, !tbaa !5
  %1094 = load ptr, ptr %15, align 8, !tbaa !9
  %1095 = call i32 @s2n_client_hello_cb_done(ptr noundef %1094) #13
  %1096 = icmp eq i32 %1095, -1
  br i1 %1096, label %1097, label %1125

1097:                                             ; preds = %1091
  %1098 = tail call ptr @__errno_location() #14
  %1099 = load i32, ptr %1098, align 4, !tbaa !5
  %1100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1101 = call i32 @s2n_print_stacktrace(ptr noundef %1100) #13
  %1102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1103 = trunc nuw i8 %1102 to i1
  br i1 %1103, label %1104, label %1108

1104:                                             ; preds = %1097
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1106 = call i32 @fileno(ptr noundef %1105) #13
  %1107 = call i32 @isatty(i32 noundef %1106) #13
  %.not298 = icmp eq i32 %1107, 0
  br i1 %.not298, label %1108, label %1109

1108:                                             ; preds = %1104, %1097
  br label %1109

1109:                                             ; preds = %1104, %1108
  %.str.5.sink732 = phi ptr [ @.str.5, %1108 ], [ @.str.2, %1104 ]
  store i32 %1099, ptr %1098, align 4, !tbaa !5
  %1110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1111 = load i32, ptr @test_count, align 4, !tbaa !5
  %1112 = load i32, ptr %124, align 4, !tbaa !5
  %1113 = call ptr @s2n_strerror(i32 noundef %1112, ptr noundef nonnull @.str.4) #13
  %1114 = load i32, ptr %124, align 4, !tbaa !5
  %1115 = call ptr @s2n_strerror_debug(i32 noundef %1114, ptr noundef nonnull @.str.4) #13
  %1116 = load i32, ptr %1098, align 4, !tbaa !5
  %1117 = call ptr @strerror(i32 noundef %1116) #13
  %1118 = load i32, ptr %1098, align 4, !tbaa !5
  %1119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1110, ptr noundef nonnull %.str.5.sink732, i32 noundef %1111, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 261, ptr noundef %1113, ptr noundef %1115, ptr noundef %1117, i32 noundef %1118) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1120:                                             ; preds = %.lr.ph
  store ptr @.str.31, ptr %125, align 8, !tbaa !44
  %1121 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.31, i64 21), i32 noundef 47) #17
  %.not254 = icmp eq ptr %1121, null
  %1122 = getelementptr inbounds i8, ptr %1121, i64 1
  %1123 = select i1 %.not254, ptr getelementptr inbounds (i8, ptr @.str.31, i64 21), ptr %1122
  store ptr %1123, ptr %126, align 8, !tbaa !46
  store i32 201326592, ptr %124, align 4, !tbaa !5
  %1124 = call i32 @s2n_calculate_stacktrace() #13
  br label %1267

1125:                                             ; preds = %.lr.ph, %1091
  %.1217 = phi i1 [ true, %1091 ], [ %.0216372, %.lr.ph ]
  %1126 = load ptr, ptr %15, align 8, !tbaa !9
  %1127 = load ptr, ptr %16, align 8, !tbaa !9
  %1128 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %1126, ptr noundef %1127) #13
  %1129 = icmp sgt i32 %1128, -1
  br i1 %1129, label %._crit_edge, label %.lr.ph, !llvm.loop !49

._crit_edge:                                      ; preds = %1125
  %1130 = load i32, ptr @test_count, align 4, !tbaa !5
  %1131 = add nsw i32 %1130, 1
  store i32 %1131, ptr @test_count, align 4, !tbaa !5
  br i1 %.1217, label %1154, label %.loopexit

.loopexit:                                        ; preds = %._crit_edge, %._crit_edge.thread
  %1132 = tail call ptr @__errno_location() #14
  %1133 = load i32, ptr %1132, align 4, !tbaa !5
  %1134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1135 = call i32 @s2n_print_stacktrace(ptr noundef %1134) #13
  %1136 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1137 = trunc nuw i8 %1136 to i1
  br i1 %1137, label %1138, label %1142

1138:                                             ; preds = %.loopexit
  %1139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1140 = call i32 @fileno(ptr noundef %1139) #13
  %1141 = call i32 @isatty(i32 noundef %1140) #13
  %.not248 = icmp eq i32 %1141, 0
  br i1 %.not248, label %1142, label %1143

1142:                                             ; preds = %1138, %.loopexit
  br label %1143

1143:                                             ; preds = %1138, %1142
  %.str.5.sink741 = phi ptr [ @.str.5, %1142 ], [ @.str.2, %1138 ]
  store i32 %1133, ptr %1132, align 4, !tbaa !5
  %1144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1145 = load i32, ptr @test_count, align 4, !tbaa !5
  %1146 = load i32, ptr %124, align 4, !tbaa !5
  %1147 = call ptr @s2n_strerror(i32 noundef %1146, ptr noundef nonnull @.str.4) #13
  %1148 = load i32, ptr %124, align 4, !tbaa !5
  %1149 = call ptr @s2n_strerror_debug(i32 noundef %1148, ptr noundef nonnull @.str.4) #13
  %1150 = load i32, ptr %1132, align 4, !tbaa !5
  %1151 = call ptr @strerror(i32 noundef %1150) #13
  %1152 = load i32, ptr %1132, align 4, !tbaa !5
  %1153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1144, ptr noundef nonnull %.str.5.sink741, i32 noundef %1145, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 267, ptr noundef %1147, ptr noundef %1149, ptr noundef %1151, i32 noundef %1152) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1154:                                             ; preds = %._crit_edge
  %1155 = add nsw i32 %1130, 2
  store i32 %1155, ptr @test_count, align 4, !tbaa !5
  %1156 = load ptr, ptr %15, align 8, !tbaa !9
  %1157 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %1156, i32 noundef 1) #13
  br i1 %1157, label %1181, label %1158

1158:                                             ; preds = %1154
  %1159 = tail call ptr @__errno_location() #14
  %1160 = load i32, ptr %1159, align 4, !tbaa !5
  %1161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1162 = call i32 @s2n_print_stacktrace(ptr noundef %1161) #13
  %1163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1164 = trunc nuw i8 %1163 to i1
  br i1 %1164, label %1165, label %1169

1165:                                             ; preds = %1158
  %1166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1167 = call i32 @fileno(ptr noundef %1166) #13
  %1168 = call i32 @isatty(i32 noundef %1167) #13
  %.not249 = icmp eq i32 %1168, 0
  br i1 %.not249, label %1169, label %1170

1169:                                             ; preds = %1165, %1158
  br label %1170

1170:                                             ; preds = %1165, %1169
  %.str.5.sink750 = phi ptr [ @.str.5, %1169 ], [ @.str.2, %1165 ]
  store i32 %1160, ptr %1159, align 4, !tbaa !5
  %1171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1172 = load i32, ptr @test_count, align 4, !tbaa !5
  %1173 = load i32, ptr %124, align 4, !tbaa !5
  %1174 = call ptr @s2n_strerror(i32 noundef %1173, ptr noundef nonnull @.str.4) #13
  %1175 = load i32, ptr %124, align 4, !tbaa !5
  %1176 = call ptr @s2n_strerror_debug(i32 noundef %1175, ptr noundef nonnull @.str.4) #13
  %1177 = load i32, ptr %1159, align 4, !tbaa !5
  %1178 = call ptr @strerror(i32 noundef %1177) #13
  %1179 = load i32, ptr %1159, align 4, !tbaa !5
  %1180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1171, ptr noundef nonnull %.str.5.sink750, i32 noundef %1172, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 270, ptr noundef %1174, ptr noundef %1176, ptr noundef %1178, i32 noundef %1179) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1181:                                             ; preds = %1154
  %1182 = load i32, ptr @test_count, align 4, !tbaa !5
  %1183 = add nsw i32 %1182, 1
  store i32 %1183, ptr @test_count, align 4, !tbaa !5
  %1184 = load ptr, ptr %16, align 8, !tbaa !9
  %1185 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %1184, i32 noundef 1) #13
  br i1 %1185, label %1209, label %1186

1186:                                             ; preds = %1181
  %1187 = tail call ptr @__errno_location() #14
  %1188 = load i32, ptr %1187, align 4, !tbaa !5
  %1189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1190 = call i32 @s2n_print_stacktrace(ptr noundef %1189) #13
  %1191 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1192 = trunc nuw i8 %1191 to i1
  br i1 %1192, label %1193, label %1197

1193:                                             ; preds = %1186
  %1194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1195 = call i32 @fileno(ptr noundef %1194) #13
  %1196 = call i32 @isatty(i32 noundef %1195) #13
  %.not250 = icmp eq i32 %1196, 0
  br i1 %.not250, label %1197, label %1198

1197:                                             ; preds = %1193, %1186
  br label %1198

1198:                                             ; preds = %1193, %1197
  %.str.5.sink759 = phi ptr [ @.str.5, %1197 ], [ @.str.2, %1193 ]
  store i32 %1188, ptr %1187, align 4, !tbaa !5
  %1199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1200 = load i32, ptr @test_count, align 4, !tbaa !5
  %1201 = load i32, ptr %124, align 4, !tbaa !5
  %1202 = call ptr @s2n_strerror(i32 noundef %1201, ptr noundef nonnull @.str.4) #13
  %1203 = load i32, ptr %124, align 4, !tbaa !5
  %1204 = call ptr @s2n_strerror_debug(i32 noundef %1203, ptr noundef nonnull @.str.4) #13
  %1205 = load i32, ptr %1187, align 4, !tbaa !5
  %1206 = call ptr @strerror(i32 noundef %1205) #13
  %1207 = load i32, ptr %1187, align 4, !tbaa !5
  %1208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1199, ptr noundef nonnull %.str.5.sink759, i32 noundef %1200, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 271, ptr noundef %1202, ptr noundef %1204, ptr noundef %1206, i32 noundef %1207) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1209:                                             ; preds = %1181
  %1210 = load i32, ptr @test_count, align 4, !tbaa !5
  %1211 = add nsw i32 %1210, 1
  store i32 %1211, ptr @test_count, align 4, !tbaa !5
  %1212 = load ptr, ptr %15, align 8, !tbaa !9
  %1213 = call i32 @s2n_conn_get_current_message_type(ptr noundef %1212) #13
  %1214 = icmp eq i32 %1213, 20
  br i1 %1214, label %1238, label %1215

1215:                                             ; preds = %1209
  %1216 = tail call ptr @__errno_location() #14
  %1217 = load i32, ptr %1216, align 4, !tbaa !5
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = call i32 @s2n_print_stacktrace(ptr noundef %1218) #13
  %1220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1221 = trunc nuw i8 %1220 to i1
  br i1 %1221, label %1222, label %1226

1222:                                             ; preds = %1215
  %1223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1224 = call i32 @fileno(ptr noundef %1223) #13
  %1225 = call i32 @isatty(i32 noundef %1224) #13
  %.not251 = icmp eq i32 %1225, 0
  br i1 %.not251, label %1226, label %1227

1226:                                             ; preds = %1222, %1215
  br label %1227

1227:                                             ; preds = %1222, %1226
  %.str.5.sink768 = phi ptr [ @.str.5, %1226 ], [ @.str.2, %1222 ]
  store i32 %1217, ptr %1216, align 4, !tbaa !5
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = load i32, ptr @test_count, align 4, !tbaa !5
  %1230 = load i32, ptr %124, align 4, !tbaa !5
  %1231 = call ptr @s2n_strerror(i32 noundef %1230, ptr noundef nonnull @.str.4) #13
  %1232 = load i32, ptr %124, align 4, !tbaa !5
  %1233 = call ptr @s2n_strerror_debug(i32 noundef %1232, ptr noundef nonnull @.str.4) #13
  %1234 = load i32, ptr %1216, align 4, !tbaa !5
  %1235 = call ptr @strerror(i32 noundef %1234) #13
  %1236 = load i32, ptr %1216, align 4, !tbaa !5
  %1237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1228, ptr noundef nonnull %.str.5.sink768, i32 noundef %1229, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %1231, ptr noundef %1233, ptr noundef %1235, i32 noundef %1236) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1238:                                             ; preds = %1209
  %1239 = load i32, ptr @test_count, align 4, !tbaa !5
  %1240 = add nsw i32 %1239, 1
  store i32 %1240, ptr @test_count, align 4, !tbaa !5
  %1241 = load ptr, ptr %16, align 8, !tbaa !9
  %1242 = call i32 @s2n_conn_get_current_message_type(ptr noundef %1241) #13
  %1243 = icmp eq i32 %1242, 20
  br i1 %1243, label %1267, label %1244

1244:                                             ; preds = %1238
  %1245 = tail call ptr @__errno_location() #14
  %1246 = load i32, ptr %1245, align 4, !tbaa !5
  %1247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1248 = call i32 @s2n_print_stacktrace(ptr noundef %1247) #13
  %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 = %1244
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = call i32 @fileno(ptr noundef %1252) #13
  %1254 = call i32 @isatty(i32 noundef %1253) #13
  %.not252 = icmp eq i32 %1254, 0
  br i1 %.not252, label %1255, label %1256

1255:                                             ; preds = %1251, %1244
  br label %1256

1256:                                             ; preds = %1251, %1255
  %.str.5.sink777 = phi ptr [ @.str.5, %1255 ], [ @.str.2, %1251 ]
  store i32 %1246, ptr %1245, 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 %124, align 4, !tbaa !5
  %1260 = call ptr @s2n_strerror(i32 noundef %1259, ptr noundef nonnull @.str.4) #13
  %1261 = load i32, ptr %124, align 4, !tbaa !5
  %1262 = call ptr @s2n_strerror_debug(i32 noundef %1261, ptr noundef nonnull @.str.4) #13
  %1263 = load i32, ptr %1245, align 4, !tbaa !5
  %1264 = call ptr @strerror(i32 noundef %1263) #13
  %1265 = load i32, ptr %1245, align 4, !tbaa !5
  %1266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1257, ptr noundef nonnull %.str.5.sink777, i32 noundef %1258, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 273, ptr noundef %1260, ptr noundef %1262, ptr noundef %1264, i32 noundef %1265) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1267:                                             ; preds = %1238, %1120
  %1268 = phi i1 [ false, %1120 ], [ true, %1238 ]
  %.4 = phi i32 [ -1, %1120 ], [ %.3, %1238 ]
  %1269 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %18) #13
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %18) #13
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %17) #13
  %1270 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %16) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #13
  %1271 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %15) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #13
  %1272 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %14) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #13
  br i1 %1268, label %1273, label %.thread

1273:                                             ; preds = %1267
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #13
  %1274 = load ptr, ptr %3, align 8, !tbaa !9
  %1275 = call ptr @s2n_test_config_new(ptr noundef %1274)
  store ptr %1275, ptr %19, align 8, !tbaa !9
  %1276 = load i32, ptr @test_count, align 4, !tbaa !5
  %1277 = add nsw i32 %1276, 1
  store i32 %1277, ptr @test_count, align 4, !tbaa !5
  %1278 = call i32 @s2n_config_set_async_pkey_callback(ptr noundef %1275, ptr noundef nonnull @async_pkey_test_fn) #13
  %1279 = icmp eq i32 %1278, -1
  br i1 %1279, label %1280, label %1303

1280:                                             ; preds = %1273
  %1281 = tail call ptr @__errno_location() #14
  %1282 = load i32, ptr %1281, align 4, !tbaa !5
  %1283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1284 = call i32 @s2n_print_stacktrace(ptr noundef %1283) #13
  %1285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1286 = trunc nuw i8 %1285 to i1
  br i1 %1286, label %1287, label %1291

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

1291:                                             ; preds = %1287, %1280
  br label %1292

1292:                                             ; preds = %1287, %1291
  %.str.5.sink786 = phi ptr [ @.str.5, %1291 ], [ @.str.2, %1287 ]
  store i32 %1282, ptr %1281, align 4, !tbaa !5
  %1293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1294 = load i32, ptr @test_count, align 4, !tbaa !5
  %1295 = load i32, ptr %124, align 4, !tbaa !5
  %1296 = call ptr @s2n_strerror(i32 noundef %1295, ptr noundef nonnull @.str.4) #13
  %1297 = load i32, ptr %124, align 4, !tbaa !5
  %1298 = call ptr @s2n_strerror_debug(i32 noundef %1297, ptr noundef nonnull @.str.4) #13
  %1299 = load i32, ptr %1281, align 4, !tbaa !5
  %1300 = call ptr @strerror(i32 noundef %1299) #13
  %1301 = load i32, ptr %1281, align 4, !tbaa !5
  %1302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1293, ptr noundef nonnull %.str.5.sink786, i32 noundef %1294, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 287, ptr noundef %1296, ptr noundef %1298, ptr noundef %1300, i32 noundef %1301) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1303:                                             ; preds = %1273
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #13
  %1304 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %1304, ptr %20, align 8, !tbaa !9
  %1305 = load i32, ptr @test_count, align 4, !tbaa !5
  %1306 = add nsw i32 %1305, 1
  store i32 %1306, ptr @test_count, align 4, !tbaa !5
  %1307 = load ptr, ptr %19, align 8, !tbaa !9
  %1308 = call i32 @s2n_connection_set_config(ptr noundef %1304, ptr noundef %1307) #13
  %1309 = icmp eq i32 %1308, -1
  br i1 %1309, label %1310, label %1333

1310:                                             ; preds = %1303
  %1311 = tail call ptr @__errno_location() #14
  %1312 = load i32, ptr %1311, align 4, !tbaa !5
  %1313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1314 = call i32 @s2n_print_stacktrace(ptr noundef %1313) #13
  %1315 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1316 = trunc nuw i8 %1315 to i1
  br i1 %1316, label %1317, label %1321

1317:                                             ; preds = %1310
  %1318 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1319 = call i32 @fileno(ptr noundef %1318) #13
  %1320 = call i32 @isatty(i32 noundef %1319) #13
  %.not296 = icmp eq i32 %1320, 0
  br i1 %.not296, label %1321, label %1322

1321:                                             ; preds = %1317, %1310
  br label %1322

1322:                                             ; preds = %1317, %1321
  %.str.5.sink795 = phi ptr [ @.str.5, %1321 ], [ @.str.2, %1317 ]
  store i32 %1312, ptr %1311, align 4, !tbaa !5
  %1323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1324 = load i32, ptr @test_count, align 4, !tbaa !5
  %1325 = load i32, ptr %124, align 4, !tbaa !5
  %1326 = call ptr @s2n_strerror(i32 noundef %1325, ptr noundef nonnull @.str.4) #13
  %1327 = load i32, ptr %124, align 4, !tbaa !5
  %1328 = call ptr @s2n_strerror_debug(i32 noundef %1327, ptr noundef nonnull @.str.4) #13
  %1329 = load i32, ptr %1311, align 4, !tbaa !5
  %1330 = call ptr @strerror(i32 noundef %1329) #13
  %1331 = load i32, ptr %1311, align 4, !tbaa !5
  %1332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1323, ptr noundef nonnull %.str.5.sink795, i32 noundef %1324, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 290, ptr noundef %1326, ptr noundef %1328, ptr noundef %1330, i32 noundef %1331) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1333:                                             ; preds = %1303
  %1334 = load i32, ptr @test_count, align 4, !tbaa !5
  %1335 = add nsw i32 %1334, 1
  store i32 %1335, ptr @test_count, align 4, !tbaa !5
  %1336 = load ptr, ptr %20, align 8, !tbaa !9
  %1337 = call i32 @s2n_connection_set_blinding(ptr noundef %1336, i32 noundef 1) #13
  %1338 = icmp eq i32 %1337, -1
  br i1 %1338, label %1339, label %1362

1339:                                             ; preds = %1333
  %1340 = tail call ptr @__errno_location() #14
  %1341 = load i32, ptr %1340, align 4, !tbaa !5
  %1342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1343 = call i32 @s2n_print_stacktrace(ptr noundef %1342) #13
  %1344 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1345 = trunc nuw i8 %1344 to i1
  br i1 %1345, label %1346, label %1350

1346:                                             ; preds = %1339
  %1347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1348 = call i32 @fileno(ptr noundef %1347) #13
  %1349 = call i32 @isatty(i32 noundef %1348) #13
  %.not295 = icmp eq i32 %1349, 0
  br i1 %.not295, label %1350, label %1351

1350:                                             ; preds = %1346, %1339
  br label %1351

1351:                                             ; preds = %1346, %1350
  %.str.5.sink804 = phi ptr [ @.str.5, %1350 ], [ @.str.2, %1346 ]
  store i32 %1341, ptr %1340, align 4, !tbaa !5
  %1352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1353 = load i32, ptr @test_count, align 4, !tbaa !5
  %1354 = load i32, ptr %124, align 4, !tbaa !5
  %1355 = call ptr @s2n_strerror(i32 noundef %1354, ptr noundef nonnull @.str.4) #13
  %1356 = load i32, ptr %124, align 4, !tbaa !5
  %1357 = call ptr @s2n_strerror_debug(i32 noundef %1356, ptr noundef nonnull @.str.4) #13
  %1358 = load i32, ptr %1340, align 4, !tbaa !5
  %1359 = call ptr @strerror(i32 noundef %1358) #13
  %1360 = load i32, ptr %1340, align 4, !tbaa !5
  %1361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1352, ptr noundef nonnull %.str.5.sink804, i32 noundef %1353, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 291, ptr noundef %1355, ptr noundef %1357, ptr noundef %1359, i32 noundef %1360) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1362:                                             ; preds = %1333
  %1363 = load ptr, ptr %20, align 8, !tbaa !9
  %1364 = getelementptr inbounds i8, ptr %1363, i64 2208
  store i16 %592, ptr %1364, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #13
  %1365 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %1365, ptr %21, align 8, !tbaa !9
  %1366 = load i32, ptr @test_count, align 4, !tbaa !5
  %1367 = add nsw i32 %1366, 1
  store i32 %1367, ptr @test_count, align 4, !tbaa !5
  %1368 = load ptr, ptr %19, align 8, !tbaa !9
  %1369 = call i32 @s2n_connection_set_config(ptr noundef %1365, ptr noundef %1368) #13
  %1370 = icmp eq i32 %1369, -1
  br i1 %1370, label %1371, label %1394

1371:                                             ; preds = %1362
  %1372 = tail call ptr @__errno_location() #14
  %1373 = load i32, ptr %1372, align 4, !tbaa !5
  %1374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1375 = call i32 @s2n_print_stacktrace(ptr noundef %1374) #13
  %1376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1377 = trunc nuw i8 %1376 to i1
  br i1 %1377, label %1378, label %1382

1378:                                             ; preds = %1371
  %1379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1380 = call i32 @fileno(ptr noundef %1379) #13
  %1381 = call i32 @isatty(i32 noundef %1380) #13
  %.not294 = icmp eq i32 %1381, 0
  br i1 %.not294, label %1382, label %1383

1382:                                             ; preds = %1378, %1371
  br label %1383

1383:                                             ; preds = %1378, %1382
  %.str.5.sink813 = phi ptr [ @.str.5, %1382 ], [ @.str.2, %1378 ]
  store i32 %1373, ptr %1372, align 4, !tbaa !5
  %1384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1385 = load i32, ptr @test_count, align 4, !tbaa !5
  %1386 = load i32, ptr %124, align 4, !tbaa !5
  %1387 = call ptr @s2n_strerror(i32 noundef %1386, ptr noundef nonnull @.str.4) #13
  %1388 = load i32, ptr %124, align 4, !tbaa !5
  %1389 = call ptr @s2n_strerror_debug(i32 noundef %1388, ptr noundef nonnull @.str.4) #13
  %1390 = load i32, ptr %1372, align 4, !tbaa !5
  %1391 = call ptr @strerror(i32 noundef %1390) #13
  %1392 = load i32, ptr %1372, align 4, !tbaa !5
  %1393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1384, ptr noundef nonnull %.str.5.sink813, i32 noundef %1385, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 295, ptr noundef %1387, ptr noundef %1389, ptr noundef %1391, i32 noundef %1392) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1394:                                             ; preds = %1362
  %1395 = load i32, ptr @test_count, align 4, !tbaa !5
  %1396 = add nsw i32 %1395, 1
  store i32 %1396, ptr @test_count, align 4, !tbaa !5
  %1397 = load ptr, ptr %21, align 8, !tbaa !9
  %1398 = call i32 @s2n_connection_set_blinding(ptr noundef %1397, i32 noundef 1) #13
  %1399 = icmp eq i32 %1398, -1
  br i1 %1399, label %1400, label %1423

1400:                                             ; preds = %1394
  %1401 = tail call ptr @__errno_location() #14
  %1402 = load i32, ptr %1401, align 4, !tbaa !5
  %1403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1404 = call i32 @s2n_print_stacktrace(ptr noundef %1403) #13
  %1405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1406 = trunc nuw i8 %1405 to i1
  br i1 %1406, label %1407, label %1411

1407:                                             ; preds = %1400
  %1408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1409 = call i32 @fileno(ptr noundef %1408) #13
  %1410 = call i32 @isatty(i32 noundef %1409) #13
  %.not293 = icmp eq i32 %1410, 0
  br i1 %.not293, label %1411, label %1412

1411:                                             ; preds = %1407, %1400
  br label %1412

1412:                                             ; preds = %1407, %1411
  %.str.5.sink822 = phi ptr [ @.str.5, %1411 ], [ @.str.2, %1407 ]
  store i32 %1402, ptr %1401, align 4, !tbaa !5
  %1413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1414 = load i32, ptr @test_count, align 4, !tbaa !5
  %1415 = load i32, ptr %124, align 4, !tbaa !5
  %1416 = call ptr @s2n_strerror(i32 noundef %1415, ptr noundef nonnull @.str.4) #13
  %1417 = load i32, ptr %124, align 4, !tbaa !5
  %1418 = call ptr @s2n_strerror_debug(i32 noundef %1417, ptr noundef nonnull @.str.4) #13
  %1419 = load i32, ptr %1401, align 4, !tbaa !5
  %1420 = call ptr @strerror(i32 noundef %1419) #13
  %1421 = load i32, ptr %1401, align 4, !tbaa !5
  %1422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1413, ptr noundef nonnull %.str.5.sink822, i32 noundef %1414, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 296, ptr noundef %1416, ptr noundef %1418, ptr noundef %1420, i32 noundef %1421) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1423:                                             ; preds = %1394
  %1424 = load ptr, ptr %21, align 8, !tbaa !9
  %1425 = getelementptr inbounds i8, ptr %1424, i64 2208
  store i16 %654, ptr %1425, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %22) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %22, i8 0, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %23) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %23, i8 0, i64 80, i1 false)
  %1426 = load i32, ptr @test_count, align 4, !tbaa !5
  %1427 = add nsw i32 %1426, 1
  store i32 %1427, ptr @test_count, align 4, !tbaa !5
  %1428 = load ptr, ptr %20, align 8, !tbaa !9
  %1429 = call i32 @s2n_connections_set_blocking_io_pair(ptr noundef nonnull %22, ptr noundef %1424, ptr noundef %1428, ptr noundef nonnull %23)
  %1430 = call zeroext i1 @s2n_result_is_ok(i32 %1429)
  br i1 %1430, label %.preheader, label %1437

.preheader:                                       ; preds = %1423
  %1431 = load ptr, ptr %20, align 8, !tbaa !9
  %1432 = load ptr, ptr %21, align 8, !tbaa !9
  %1433 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %1431, ptr noundef %1432) #13
  %1434 = icmp sgt i32 %1433, -1
  br i1 %1434, label %._crit_edge376.thread, label %.lr.ph375

._crit_edge376.thread:                            ; preds = %.preheader
  %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
  br label %.loopexit405

1437:                                             ; preds = %1423
  %1438 = tail call ptr @__errno_location() #14
  %1439 = load i32, ptr %1438, align 4, !tbaa !5
  %1440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1441 = call i32 @s2n_print_stacktrace(ptr noundef %1440) #13
  %1442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1443 = trunc nuw i8 %1442 to i1
  br i1 %1443, label %1444, label %1448

1444:                                             ; preds = %1437
  %1445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1446 = call i32 @fileno(ptr noundef %1445) #13
  %1447 = call i32 @isatty(i32 noundef %1446) #13
  %.not255 = icmp eq i32 %1447, 0
  br i1 %.not255, label %1448, label %1449

1448:                                             ; preds = %1444, %1437
  br label %1449

1449:                                             ; preds = %1444, %1448
  %.str.5.sink831 = phi ptr [ @.str.5, %1448 ], [ @.str.2, %1444 ]
  store i32 %1439, ptr %1438, align 4, !tbaa !5
  %1450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1451 = load i32, ptr @test_count, align 4, !tbaa !5
  %1452 = load i32, ptr %124, align 4, !tbaa !5
  %1453 = call ptr @s2n_strerror(i32 noundef %1452, ptr noundef nonnull @.str.4) #13
  %1454 = load i32, ptr %124, align 4, !tbaa !5
  %1455 = call ptr @s2n_strerror_debug(i32 noundef %1454, ptr noundef nonnull @.str.4) #13
  %1456 = load i32, ptr %1438, align 4, !tbaa !5
  %1457 = call ptr @strerror(i32 noundef %1456) #13
  %1458 = load i32, ptr %1438, align 4, !tbaa !5
  %1459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1450, ptr noundef nonnull %.str.5.sink831, i32 noundef %1451, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 301, ptr noundef %1453, ptr noundef %1455, ptr noundef %1457, i32 noundef %1458) #15
  call void @exit(i32 noundef 1) #16
  unreachable

.lr.ph375:                                        ; preds = %.preheader, %1525
  %.0218374 = phi i1 [ %.1219, %1525 ], [ false, %.preheader ]
  %1460 = load i32, ptr %124, align 4, !tbaa !5
  switch i32 %1460, label %1525 [
    i32 201326593, label %1461
    i32 0, label %1520
  ]

1461:                                             ; preds = %.lr.ph375
  %1462 = load i32, ptr @test_count, align 4, !tbaa !5
  %1463 = add nsw i32 %1462, 1
  store i32 %1463, ptr @test_count, align 4, !tbaa !5
  %1464 = load ptr, ptr @pkey_op, align 8, !tbaa !9
  %1465 = load ptr, ptr %20, align 8, !tbaa !9
  %1466 = call i32 @s2n_async_pkey_op_apply(ptr noundef %1464, ptr noundef %1465) #13
  %1467 = icmp eq i32 %1466, -1
  br i1 %1467, label %1468, label %1491

1468:                                             ; preds = %1461
  %1469 = tail call ptr @__errno_location() #14
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  %1471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1472 = call i32 @s2n_print_stacktrace(ptr noundef %1471) #13
  %1473 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1474 = trunc nuw i8 %1473 to i1
  br i1 %1474, label %1475, label %1479

1475:                                             ; preds = %1468
  %1476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1477 = call i32 @fileno(ptr noundef %1476) #13
  %1478 = call i32 @isatty(i32 noundef %1477) #13
  %.not292 = icmp eq i32 %1478, 0
  br i1 %.not292, label %1479, label %1480

1479:                                             ; preds = %1475, %1468
  br label %1480

1480:                                             ; preds = %1475, %1479
  %.str.5.sink840 = phi ptr [ @.str.5, %1479 ], [ @.str.2, %1475 ]
  store i32 %1470, ptr %1469, align 4, !tbaa !5
  %1481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1482 = load i32, ptr @test_count, align 4, !tbaa !5
  %1483 = load i32, ptr %124, align 4, !tbaa !5
  %1484 = call ptr @s2n_strerror(i32 noundef %1483, ptr noundef nonnull @.str.4) #13
  %1485 = load i32, ptr %124, align 4, !tbaa !5
  %1486 = call ptr @s2n_strerror_debug(i32 noundef %1485, ptr noundef nonnull @.str.4) #13
  %1487 = load i32, ptr %1469, align 4, !tbaa !5
  %1488 = call ptr @strerror(i32 noundef %1487) #13
  %1489 = load i32, ptr %1469, align 4, !tbaa !5
  %1490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1481, ptr noundef nonnull %.str.5.sink840, i32 noundef %1482, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 306, ptr noundef %1484, ptr noundef %1486, ptr noundef %1488, i32 noundef %1489) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1491:                                             ; preds = %1461
  %1492 = load i32, ptr @test_count, align 4, !tbaa !5
  %1493 = add nsw i32 %1492, 1
  store i32 %1493, ptr @test_count, align 4, !tbaa !5
  %1494 = load ptr, ptr @pkey_op, align 8, !tbaa !9
  %1495 = call i32 @s2n_async_pkey_op_free(ptr noundef %1494) #13
  %1496 = icmp eq i32 %1495, -1
  br i1 %1496, label %1497, label %1525

1497:                                             ; preds = %1491
  %1498 = tail call ptr @__errno_location() #14
  %1499 = load i32, ptr %1498, align 4, !tbaa !5
  %1500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1501 = call i32 @s2n_print_stacktrace(ptr noundef %1500) #13
  %1502 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1503 = trunc nuw i8 %1502 to i1
  br i1 %1503, label %1504, label %1508

1504:                                             ; preds = %1497
  %1505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1506 = call i32 @fileno(ptr noundef %1505) #13
  %1507 = call i32 @isatty(i32 noundef %1506) #13
  %.not291 = icmp eq i32 %1507, 0
  br i1 %.not291, label %1508, label %1509

1508:                                             ; preds = %1504, %1497
  br label %1509

1509:                                             ; preds = %1504, %1508
  %.str.5.sink849 = phi ptr [ @.str.5, %1508 ], [ @.str.2, %1504 ]
  store i32 %1499, ptr %1498, align 4, !tbaa !5
  %1510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1511 = load i32, ptr @test_count, align 4, !tbaa !5
  %1512 = load i32, ptr %124, align 4, !tbaa !5
  %1513 = call ptr @s2n_strerror(i32 noundef %1512, ptr noundef nonnull @.str.4) #13
  %1514 = load i32, ptr %124, align 4, !tbaa !5
  %1515 = call ptr @s2n_strerror_debug(i32 noundef %1514, ptr noundef nonnull @.str.4) #13
  %1516 = load i32, ptr %1498, align 4, !tbaa !5
  %1517 = call ptr @strerror(i32 noundef %1516) #13
  %1518 = load i32, ptr %1498, align 4, !tbaa !5
  %1519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1510, ptr noundef nonnull %.str.5.sink849, i32 noundef %1511, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 307, ptr noundef %1513, ptr noundef %1515, ptr noundef %1517, i32 noundef %1518) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1520:                                             ; preds = %.lr.ph375
  store ptr @.str.36, ptr %125, align 8, !tbaa !44
  %1521 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.36, i64 21), i32 noundef 47) #17
  %.not262 = icmp eq ptr %1521, null
  %1522 = getelementptr inbounds i8, ptr %1521, i64 1
  %1523 = select i1 %.not262, ptr getelementptr inbounds (i8, ptr @.str.36, i64 21), ptr %1522
  store ptr %1523, ptr %126, align 8, !tbaa !46
  store i32 201326592, ptr %124, align 4, !tbaa !5
  %1524 = call i32 @s2n_calculate_stacktrace() #13
  br label %1667

1525:                                             ; preds = %.lr.ph375, %1491
  %.1219 = phi i1 [ true, %1491 ], [ %.0218374, %.lr.ph375 ]
  %1526 = load ptr, ptr %20, align 8, !tbaa !9
  %1527 = load ptr, ptr %21, align 8, !tbaa !9
  %1528 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %1526, ptr noundef %1527) #13
  %1529 = icmp sgt i32 %1528, -1
  br i1 %1529, label %._crit_edge376, label %.lr.ph375, !llvm.loop !50

._crit_edge376:                                   ; preds = %1525
  %1530 = load i32, ptr @test_count, align 4, !tbaa !5
  %1531 = add nsw i32 %1530, 1
  store i32 %1531, ptr @test_count, align 4, !tbaa !5
  br i1 %.1219, label %1554, label %.loopexit405

.loopexit405:                                     ; preds = %._crit_edge376, %._crit_edge376.thread
  %1532 = tail call ptr @__errno_location() #14
  %1533 = load i32, ptr %1532, align 4, !tbaa !5
  %1534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1535 = call i32 @s2n_print_stacktrace(ptr noundef %1534) #13
  %1536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1537 = trunc nuw i8 %1536 to i1
  br i1 %1537, label %1538, label %1542

1538:                                             ; preds = %.loopexit405
  %1539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1540 = call i32 @fileno(ptr noundef %1539) #13
  %1541 = call i32 @isatty(i32 noundef %1540) #13
  %.not256 = icmp eq i32 %1541, 0
  br i1 %.not256, label %1542, label %1543

1542:                                             ; preds = %1538, %.loopexit405
  br label %1543

1543:                                             ; preds = %1538, %1542
  %.str.5.sink858 = phi ptr [ @.str.5, %1542 ], [ @.str.2, %1538 ]
  store i32 %1533, ptr %1532, align 4, !tbaa !5
  %1544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1545 = load i32, ptr @test_count, align 4, !tbaa !5
  %1546 = load i32, ptr %124, align 4, !tbaa !5
  %1547 = call ptr @s2n_strerror(i32 noundef %1546, ptr noundef nonnull @.str.4) #13
  %1548 = load i32, ptr %124, align 4, !tbaa !5
  %1549 = call ptr @s2n_strerror_debug(i32 noundef %1548, ptr noundef nonnull @.str.4) #13
  %1550 = load i32, ptr %1532, align 4, !tbaa !5
  %1551 = call ptr @strerror(i32 noundef %1550) #13
  %1552 = load i32, ptr %1532, align 4, !tbaa !5
  %1553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1544, ptr noundef nonnull %.str.5.sink858, i32 noundef %1545, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 313, ptr noundef %1547, ptr noundef %1549, ptr noundef %1551, i32 noundef %1552) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1554:                                             ; preds = %._crit_edge376
  %1555 = add nsw i32 %1530, 2
  store i32 %1555, ptr @test_count, align 4, !tbaa !5
  %1556 = load ptr, ptr %20, align 8, !tbaa !9
  %1557 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %1556, i32 noundef 1) #13
  br i1 %1557, label %1581, label %1558

1558:                                             ; preds = %1554
  %1559 = tail call ptr @__errno_location() #14
  %1560 = load i32, ptr %1559, align 4, !tbaa !5
  %1561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1562 = call i32 @s2n_print_stacktrace(ptr noundef %1561) #13
  %1563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1564 = trunc nuw i8 %1563 to i1
  br i1 %1564, label %1565, label %1569

1565:                                             ; preds = %1558
  %1566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1567 = call i32 @fileno(ptr noundef %1566) #13
  %1568 = call i32 @isatty(i32 noundef %1567) #13
  %.not257 = icmp eq i32 %1568, 0
  br i1 %.not257, label %1569, label %1570

1569:                                             ; preds = %1565, %1558
  br label %1570

1570:                                             ; preds = %1565, %1569
  %.str.5.sink867 = phi ptr [ @.str.5, %1569 ], [ @.str.2, %1565 ]
  store i32 %1560, ptr %1559, align 4, !tbaa !5
  %1571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1572 = load i32, ptr @test_count, align 4, !tbaa !5
  %1573 = load i32, ptr %124, align 4, !tbaa !5
  %1574 = call ptr @s2n_strerror(i32 noundef %1573, ptr noundef nonnull @.str.4) #13
  %1575 = load i32, ptr %124, align 4, !tbaa !5
  %1576 = call ptr @s2n_strerror_debug(i32 noundef %1575, ptr noundef nonnull @.str.4) #13
  %1577 = load i32, ptr %1559, align 4, !tbaa !5
  %1578 = call ptr @strerror(i32 noundef %1577) #13
  %1579 = load i32, ptr %1559, align 4, !tbaa !5
  %1580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1571, ptr noundef nonnull %.str.5.sink867, i32 noundef %1572, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 316, ptr noundef %1574, ptr noundef %1576, ptr noundef %1578, i32 noundef %1579) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1581:                                             ; preds = %1554
  %1582 = load i32, ptr @test_count, align 4, !tbaa !5
  %1583 = add nsw i32 %1582, 1
  store i32 %1583, ptr @test_count, align 4, !tbaa !5
  %1584 = load ptr, ptr %21, align 8, !tbaa !9
  %1585 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %1584, i32 noundef 1) #13
  br i1 %1585, label %1609, label %1586

1586:                                             ; preds = %1581
  %1587 = tail call ptr @__errno_location() #14
  %1588 = load i32, ptr %1587, align 4, !tbaa !5
  %1589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1590 = call i32 @s2n_print_stacktrace(ptr noundef %1589) #13
  %1591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1592 = trunc nuw i8 %1591 to i1
  br i1 %1592, label %1593, label %1597

1593:                                             ; preds = %1586
  %1594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1595 = call i32 @fileno(ptr noundef %1594) #13
  %1596 = call i32 @isatty(i32 noundef %1595) #13
  %.not258 = icmp eq i32 %1596, 0
  br i1 %.not258, label %1597, label %1598

1597:                                             ; preds = %1593, %1586
  br label %1598

1598:                                             ; preds = %1593, %1597
  %.str.5.sink876 = phi ptr [ @.str.5, %1597 ], [ @.str.2, %1593 ]
  store i32 %1588, ptr %1587, align 4, !tbaa !5
  %1599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1600 = load i32, ptr @test_count, align 4, !tbaa !5
  %1601 = load i32, ptr %124, align 4, !tbaa !5
  %1602 = call ptr @s2n_strerror(i32 noundef %1601, ptr noundef nonnull @.str.4) #13
  %1603 = load i32, ptr %124, align 4, !tbaa !5
  %1604 = call ptr @s2n_strerror_debug(i32 noundef %1603, ptr noundef nonnull @.str.4) #13
  %1605 = load i32, ptr %1587, align 4, !tbaa !5
  %1606 = call ptr @strerror(i32 noundef %1605) #13
  %1607 = load i32, ptr %1587, align 4, !tbaa !5
  %1608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1599, ptr noundef nonnull %.str.5.sink876, i32 noundef %1600, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 317, ptr noundef %1602, ptr noundef %1604, ptr noundef %1606, i32 noundef %1607) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1609:                                             ; preds = %1581
  %1610 = load i32, ptr @test_count, align 4, !tbaa !5
  %1611 = add nsw i32 %1610, 1
  store i32 %1611, ptr @test_count, align 4, !tbaa !5
  %1612 = load ptr, ptr %20, align 8, !tbaa !9
  %1613 = call i32 @s2n_conn_get_current_message_type(ptr noundef %1612) #13
  %1614 = icmp eq i32 %1613, 20
  br i1 %1614, label %1638, label %1615

1615:                                             ; preds = %1609
  %1616 = tail call ptr @__errno_location() #14
  %1617 = load i32, ptr %1616, align 4, !tbaa !5
  %1618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1619 = call i32 @s2n_print_stacktrace(ptr noundef %1618) #13
  %1620 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1621 = trunc nuw i8 %1620 to i1
  br i1 %1621, label %1622, label %1626

1622:                                             ; preds = %1615
  %1623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1624 = call i32 @fileno(ptr noundef %1623) #13
  %1625 = call i32 @isatty(i32 noundef %1624) #13
  %.not259 = icmp eq i32 %1625, 0
  br i1 %.not259, label %1626, label %1627

1626:                                             ; preds = %1622, %1615
  br label %1627

1627:                                             ; preds = %1622, %1626
  %.str.5.sink885 = phi ptr [ @.str.5, %1626 ], [ @.str.2, %1622 ]
  store i32 %1617, ptr %1616, align 4, !tbaa !5
  %1628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1629 = load i32, ptr @test_count, align 4, !tbaa !5
  %1630 = load i32, ptr %124, align 4, !tbaa !5
  %1631 = call ptr @s2n_strerror(i32 noundef %1630, ptr noundef nonnull @.str.4) #13
  %1632 = load i32, ptr %124, align 4, !tbaa !5
  %1633 = call ptr @s2n_strerror_debug(i32 noundef %1632, ptr noundef nonnull @.str.4) #13
  %1634 = load i32, ptr %1616, align 4, !tbaa !5
  %1635 = call ptr @strerror(i32 noundef %1634) #13
  %1636 = load i32, ptr %1616, align 4, !tbaa !5
  %1637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1628, ptr noundef nonnull %.str.5.sink885, i32 noundef %1629, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 318, ptr noundef %1631, ptr noundef %1633, ptr noundef %1635, i32 noundef %1636) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1638:                                             ; preds = %1609
  %1639 = load i32, ptr @test_count, align 4, !tbaa !5
  %1640 = add nsw i32 %1639, 1
  store i32 %1640, ptr @test_count, align 4, !tbaa !5
  %1641 = load ptr, ptr %21, align 8, !tbaa !9
  %1642 = call i32 @s2n_conn_get_current_message_type(ptr noundef %1641) #13
  %1643 = icmp eq i32 %1642, 20
  br i1 %1643, label %1667, label %1644

1644:                                             ; preds = %1638
  %1645 = tail call ptr @__errno_location() #14
  %1646 = load i32, ptr %1645, align 4, !tbaa !5
  %1647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1648 = call i32 @s2n_print_stacktrace(ptr noundef %1647) #13
  %1649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1650 = trunc nuw i8 %1649 to i1
  br i1 %1650, label %1651, label %1655

1651:                                             ; preds = %1644
  %1652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1653 = call i32 @fileno(ptr noundef %1652) #13
  %1654 = call i32 @isatty(i32 noundef %1653) #13
  %.not260 = icmp eq i32 %1654, 0
  br i1 %.not260, label %1655, label %1656

1655:                                             ; preds = %1651, %1644
  br label %1656

1656:                                             ; preds = %1651, %1655
  %.str.5.sink894 = phi ptr [ @.str.5, %1655 ], [ @.str.2, %1651 ]
  store i32 %1646, ptr %1645, align 4, !tbaa !5
  %1657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1658 = load i32, ptr @test_count, align 4, !tbaa !5
  %1659 = load i32, ptr %124, align 4, !tbaa !5
  %1660 = call ptr @s2n_strerror(i32 noundef %1659, ptr noundef nonnull @.str.4) #13
  %1661 = load i32, ptr %124, align 4, !tbaa !5
  %1662 = call ptr @s2n_strerror_debug(i32 noundef %1661, ptr noundef nonnull @.str.4) #13
  %1663 = load i32, ptr %1645, align 4, !tbaa !5
  %1664 = call ptr @strerror(i32 noundef %1663) #13
  %1665 = load i32, ptr %1645, align 4, !tbaa !5
  %1666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1657, ptr noundef nonnull %.str.5.sink894, i32 noundef %1658, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 319, ptr noundef %1660, ptr noundef %1662, ptr noundef %1664, i32 noundef %1665) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1667:                                             ; preds = %1638, %1520
  %1668 = phi i1 [ false, %1520 ], [ true, %1638 ]
  %.5 = phi i32 [ -1, %1520 ], [ %.4, %1638 ]
  %1669 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %23) #13
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %23) #13
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %22) #13
  %1670 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %21) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #13
  %1671 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %20) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #13
  %1672 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %19) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #13
  br i1 %1668, label %1673, label %.thread

1673:                                             ; preds = %1667
  %1674 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #13
  br i1 %1674, label %1675, label %.thread320

1675:                                             ; preds = %1673
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %24) #13
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(12) %24, ptr noundef nonnull align 1 dereferenceable(12) @__const.main.early_data_bytes, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %25) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %25, i8 0, i64 24, i1 false)
  %1676 = load i32, ptr @test_count, align 4, !tbaa !5
  %1677 = add nsw i32 %1676, 1
  store i32 %1677, ptr @test_count, align 4, !tbaa !5
  %1678 = call i32 @s2n_blob_init(ptr noundef nonnull %25, ptr noundef nonnull %24, i32 noundef 12) #13
  %1679 = icmp eq i32 %1678, -1
  br i1 %1679, label %1680, label %1703

1680:                                             ; preds = %1675
  %1681 = tail call ptr @__errno_location() #14
  %1682 = load i32, ptr %1681, align 4, !tbaa !5
  %1683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1684 = call i32 @s2n_print_stacktrace(ptr noundef %1683) #13
  %1685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1686 = trunc nuw i8 %1685 to i1
  br i1 %1686, label %1687, label %1691

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

1691:                                             ; preds = %1687, %1680
  br label %1692

1692:                                             ; preds = %1687, %1691
  %.str.5.sink903 = phi ptr [ @.str.5, %1691 ], [ @.str.2, %1687 ]
  store i32 %1682, ptr %1681, align 4, !tbaa !5
  %1693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1694 = load i32, ptr @test_count, align 4, !tbaa !5
  %1695 = load i32, ptr %124, align 4, !tbaa !5
  %1696 = call ptr @s2n_strerror(i32 noundef %1695, ptr noundef nonnull @.str.4) #13
  %1697 = load i32, ptr %124, align 4, !tbaa !5
  %1698 = call ptr @s2n_strerror_debug(i32 noundef %1697, ptr noundef nonnull @.str.4) #13
  %1699 = load i32, ptr %1681, align 4, !tbaa !5
  %1700 = call ptr @strerror(i32 noundef %1699) #13
  %1701 = load i32, ptr %1681, align 4, !tbaa !5
  %1702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1693, ptr noundef nonnull %.str.5.sink903, i32 noundef %1694, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 326, ptr noundef %1696, ptr noundef %1698, ptr noundef %1700, i32 noundef %1701) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1703:                                             ; preds = %1675
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #13
  %1704 = load ptr, ptr %3, align 8, !tbaa !9
  %1705 = call ptr @s2n_test_config_new(ptr noundef %1704)
  store ptr %1705, ptr %26, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #13
  %1706 = call ptr @s2n_connection_new(i32 noundef 0) #13
  store ptr %1706, ptr %27, align 8, !tbaa !9
  %1707 = load i32, ptr @test_count, align 4, !tbaa !5
  %1708 = add nsw i32 %1707, 1
  store i32 %1708, ptr @test_count, align 4, !tbaa !5
  %1709 = load ptr, ptr %26, align 8, !tbaa !9
  %1710 = call i32 @s2n_connection_set_config(ptr noundef %1706, ptr noundef %1709) #13
  %1711 = icmp eq i32 %1710, -1
  br i1 %1711, label %1712, label %1735

1712:                                             ; preds = %1703
  %1713 = tail call ptr @__errno_location() #14
  %1714 = load i32, ptr %1713, align 4, !tbaa !5
  %1715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1716 = call i32 @s2n_print_stacktrace(ptr noundef %1715) #13
  %1717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1718 = trunc nuw i8 %1717 to i1
  br i1 %1718, label %1719, label %1723

1719:                                             ; preds = %1712
  %1720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1721 = call i32 @fileno(ptr noundef %1720) #13
  %1722 = call i32 @isatty(i32 noundef %1721) #13
  %.not289 = icmp eq i32 %1722, 0
  br i1 %.not289, label %1723, label %1724

1723:                                             ; preds = %1719, %1712
  br label %1724

1724:                                             ; preds = %1719, %1723
  %.str.5.sink912 = phi ptr [ @.str.5, %1723 ], [ @.str.2, %1719 ]
  store i32 %1714, ptr %1713, align 4, !tbaa !5
  %1725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1726 = load i32, ptr @test_count, align 4, !tbaa !5
  %1727 = load i32, ptr %124, align 4, !tbaa !5
  %1728 = call ptr @s2n_strerror(i32 noundef %1727, ptr noundef nonnull @.str.4) #13
  %1729 = load i32, ptr %124, align 4, !tbaa !5
  %1730 = call ptr @s2n_strerror_debug(i32 noundef %1729, ptr noundef nonnull @.str.4) #13
  %1731 = load i32, ptr %1713, align 4, !tbaa !5
  %1732 = call ptr @strerror(i32 noundef %1731) #13
  %1733 = load i32, ptr %1713, align 4, !tbaa !5
  %1734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1725, ptr noundef nonnull %.str.5.sink912, i32 noundef %1726, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 332, ptr noundef %1728, ptr noundef %1730, ptr noundef %1732, i32 noundef %1733) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1735:                                             ; preds = %1703
  %1736 = load i32, ptr @test_count, align 4, !tbaa !5
  %1737 = add nsw i32 %1736, 1
  store i32 %1737, ptr @test_count, align 4, !tbaa !5
  %1738 = load ptr, ptr %27, align 8, !tbaa !9
  %1739 = call i32 @s2n_connection_set_blinding(ptr noundef %1738, i32 noundef 1) #13
  %1740 = icmp eq i32 %1739, -1
  br i1 %1740, label %1741, label %1764

1741:                                             ; preds = %1735
  %1742 = tail call ptr @__errno_location() #14
  %1743 = load i32, ptr %1742, align 4, !tbaa !5
  %1744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1745 = call i32 @s2n_print_stacktrace(ptr noundef %1744) #13
  %1746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1747 = trunc nuw i8 %1746 to i1
  br i1 %1747, label %1748, label %1752

1748:                                             ; preds = %1741
  %1749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1750 = call i32 @fileno(ptr noundef %1749) #13
  %1751 = call i32 @isatty(i32 noundef %1750) #13
  %.not288 = icmp eq i32 %1751, 0
  br i1 %.not288, label %1752, label %1753

1752:                                             ; preds = %1748, %1741
  br label %1753

1753:                                             ; preds = %1748, %1752
  %.str.5.sink921 = phi ptr [ @.str.5, %1752 ], [ @.str.2, %1748 ]
  store i32 %1743, ptr %1742, align 4, !tbaa !5
  %1754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1755 = load i32, ptr @test_count, align 4, !tbaa !5
  %1756 = load i32, ptr %124, align 4, !tbaa !5
  %1757 = call ptr @s2n_strerror(i32 noundef %1756, ptr noundef nonnull @.str.4) #13
  %1758 = load i32, ptr %124, align 4, !tbaa !5
  %1759 = call ptr @s2n_strerror_debug(i32 noundef %1758, ptr noundef nonnull @.str.4) #13
  %1760 = load i32, ptr %1742, align 4, !tbaa !5
  %1761 = call ptr @strerror(i32 noundef %1760) #13
  %1762 = load i32, ptr %1742, align 4, !tbaa !5
  %1763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1754, ptr noundef nonnull %.str.5.sink921, i32 noundef %1755, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 333, ptr noundef %1757, ptr noundef %1759, ptr noundef %1761, i32 noundef %1762) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1764:                                             ; preds = %1735
  %1765 = load i32, ptr @test_count, align 4, !tbaa !5
  %1766 = add nsw i32 %1765, 1
  store i32 %1766, ptr @test_count, align 4, !tbaa !5
  %1767 = load ptr, ptr %27, align 8, !tbaa !9
  %1768 = load i32, ptr %127, align 8, !tbaa !51
  %1769 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %1767, i32 noundef %1768, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #13
  %1770 = call zeroext i1 @s2n_result_is_ok(i32 %1769)
  br i1 %1770, label %1794, label %1771

1771:                                             ; preds = %1764
  %1772 = tail call ptr @__errno_location() #14
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  %1774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1775 = call i32 @s2n_print_stacktrace(ptr noundef %1774) #13
  %1776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1777 = trunc nuw i8 %1776 to i1
  br i1 %1777, label %1778, label %1782

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

1782:                                             ; preds = %1778, %1771
  br label %1783

1783:                                             ; preds = %1778, %1782
  %.str.5.sink930 = phi ptr [ @.str.5, %1782 ], [ @.str.2, %1778 ]
  store i32 %1773, ptr %1772, align 4, !tbaa !5
  %1784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1785 = load i32, ptr @test_count, align 4, !tbaa !5
  %1786 = load i32, ptr %124, align 4, !tbaa !5
  %1787 = call ptr @s2n_strerror(i32 noundef %1786, ptr noundef nonnull @.str.4) #13
  %1788 = load i32, ptr %124, align 4, !tbaa !5
  %1789 = call ptr @s2n_strerror_debug(i32 noundef %1788, ptr noundef nonnull @.str.4) #13
  %1790 = load i32, ptr %1772, align 4, !tbaa !5
  %1791 = call ptr @strerror(i32 noundef %1790) #13
  %1792 = load i32, ptr %1772, align 4, !tbaa !5
  %1793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1784, ptr noundef nonnull %.str.5.sink930, i32 noundef %1785, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 334, ptr noundef %1787, ptr noundef %1789, ptr noundef %1791, i32 noundef %1792) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1794:                                             ; preds = %1764
  %1795 = load ptr, ptr %27, align 8, !tbaa !9
  %1796 = getelementptr inbounds i8, ptr %1795, i64 2208
  store i16 %592, ptr %1796, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #13
  %1797 = call ptr @s2n_connection_new(i32 noundef 1) #13
  store ptr %1797, ptr %28, align 8, !tbaa !9
  %1798 = load i32, ptr @test_count, align 4, !tbaa !5
  %1799 = add nsw i32 %1798, 1
  store i32 %1799, ptr @test_count, align 4, !tbaa !5
  %1800 = load ptr, ptr %26, align 8, !tbaa !9
  %1801 = call i32 @s2n_connection_set_config(ptr noundef %1797, ptr noundef %1800) #13
  %1802 = icmp eq i32 %1801, -1
  br i1 %1802, label %1803, label %1826

1803:                                             ; preds = %1794
  %1804 = tail call ptr @__errno_location() #14
  %1805 = load i32, ptr %1804, align 4, !tbaa !5
  %1806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1807 = call i32 @s2n_print_stacktrace(ptr noundef %1806) #13
  %1808 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1809 = trunc nuw i8 %1808 to i1
  br i1 %1809, label %1810, label %1814

1810:                                             ; preds = %1803
  %1811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1812 = call i32 @fileno(ptr noundef %1811) #13
  %1813 = call i32 @isatty(i32 noundef %1812) #13
  %.not287 = icmp eq i32 %1813, 0
  br i1 %.not287, label %1814, label %1815

1814:                                             ; preds = %1810, %1803
  br label %1815

1815:                                             ; preds = %1810, %1814
  %.str.5.sink939 = phi ptr [ @.str.5, %1814 ], [ @.str.2, %1810 ]
  store i32 %1805, ptr %1804, align 4, !tbaa !5
  %1816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1817 = load i32, ptr @test_count, align 4, !tbaa !5
  %1818 = load i32, ptr %124, align 4, !tbaa !5
  %1819 = call ptr @s2n_strerror(i32 noundef %1818, ptr noundef nonnull @.str.4) #13
  %1820 = load i32, ptr %124, align 4, !tbaa !5
  %1821 = call ptr @s2n_strerror_debug(i32 noundef %1820, ptr noundef nonnull @.str.4) #13
  %1822 = load i32, ptr %1804, align 4, !tbaa !5
  %1823 = call ptr @strerror(i32 noundef %1822) #13
  %1824 = load i32, ptr %1804, align 4, !tbaa !5
  %1825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1816, ptr noundef nonnull %.str.5.sink939, i32 noundef %1817, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 338, ptr noundef %1819, ptr noundef %1821, ptr noundef %1823, i32 noundef %1824) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1826:                                             ; preds = %1794
  %1827 = load i32, ptr @test_count, align 4, !tbaa !5
  %1828 = add nsw i32 %1827, 1
  store i32 %1828, ptr @test_count, align 4, !tbaa !5
  %1829 = load ptr, ptr %28, align 8, !tbaa !9
  %1830 = call i32 @s2n_connection_set_blinding(ptr noundef %1829, i32 noundef 1) #13
  %1831 = icmp eq i32 %1830, -1
  br i1 %1831, label %1832, label %1855

1832:                                             ; preds = %1826
  %1833 = tail call ptr @__errno_location() #14
  %1834 = load i32, ptr %1833, align 4, !tbaa !5
  %1835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1836 = call i32 @s2n_print_stacktrace(ptr noundef %1835) #13
  %1837 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1838 = trunc nuw i8 %1837 to i1
  br i1 %1838, label %1839, label %1843

1839:                                             ; preds = %1832
  %1840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1841 = call i32 @fileno(ptr noundef %1840) #13
  %1842 = call i32 @isatty(i32 noundef %1841) #13
  %.not286 = icmp eq i32 %1842, 0
  br i1 %.not286, label %1843, label %1844

1843:                                             ; preds = %1839, %1832
  br label %1844

1844:                                             ; preds = %1839, %1843
  %.str.5.sink948 = phi ptr [ @.str.5, %1843 ], [ @.str.2, %1839 ]
  store i32 %1834, ptr %1833, align 4, !tbaa !5
  %1845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1846 = load i32, ptr @test_count, align 4, !tbaa !5
  %1847 = load i32, ptr %124, align 4, !tbaa !5
  %1848 = call ptr @s2n_strerror(i32 noundef %1847, ptr noundef nonnull @.str.4) #13
  %1849 = load i32, ptr %124, align 4, !tbaa !5
  %1850 = call ptr @s2n_strerror_debug(i32 noundef %1849, ptr noundef nonnull @.str.4) #13
  %1851 = load i32, ptr %1833, align 4, !tbaa !5
  %1852 = call ptr @strerror(i32 noundef %1851) #13
  %1853 = load i32, ptr %1833, align 4, !tbaa !5
  %1854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1845, ptr noundef nonnull %.str.5.sink948, i32 noundef %1846, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 339, ptr noundef %1848, ptr noundef %1850, ptr noundef %1852, i32 noundef %1853) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1855:                                             ; preds = %1826
  %1856 = load i32, ptr @test_count, align 4, !tbaa !5
  %1857 = add nsw i32 %1856, 1
  store i32 %1857, ptr @test_count, align 4, !tbaa !5
  %1858 = load ptr, ptr %28, align 8, !tbaa !9
  %1859 = load i32, ptr %127, align 8, !tbaa !51
  %1860 = call i32 @s2n_append_test_psk_with_early_data(ptr noundef %1858, i32 noundef %1859, ptr noundef nonnull @s2n_tls13_aes_256_gcm_sha384) #13
  %1861 = call zeroext i1 @s2n_result_is_ok(i32 %1860)
  br i1 %1861, label %1885, label %1862

1862:                                             ; preds = %1855
  %1863 = tail call ptr @__errno_location() #14
  %1864 = load i32, ptr %1863, align 4, !tbaa !5
  %1865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1866 = call i32 @s2n_print_stacktrace(ptr noundef %1865) #13
  %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 = %1862
  %1870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1871 = call i32 @fileno(ptr noundef %1870) #13
  %1872 = call i32 @isatty(i32 noundef %1871) #13
  %.not264 = icmp eq i32 %1872, 0
  br i1 %.not264, label %1873, label %1874

1873:                                             ; preds = %1869, %1862
  br label %1874

1874:                                             ; preds = %1869, %1873
  %.str.5.sink957 = phi ptr [ @.str.5, %1873 ], [ @.str.2, %1869 ]
  store i32 %1864, ptr %1863, 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 %124, align 4, !tbaa !5
  %1878 = call ptr @s2n_strerror(i32 noundef %1877, ptr noundef nonnull @.str.4) #13
  %1879 = load i32, ptr %124, align 4, !tbaa !5
  %1880 = call ptr @s2n_strerror_debug(i32 noundef %1879, ptr noundef nonnull @.str.4) #13
  %1881 = load i32, ptr %1863, align 4, !tbaa !5
  %1882 = call ptr @strerror(i32 noundef %1881) #13
  %1883 = load i32, ptr %1863, align 4, !tbaa !5
  %1884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1875, ptr noundef nonnull %.str.5.sink957, i32 noundef %1876, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 340, ptr noundef %1878, ptr noundef %1880, ptr noundef %1882, i32 noundef %1883) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1885:                                             ; preds = %1855
  %1886 = load ptr, ptr %28, align 8, !tbaa !9
  %1887 = getelementptr inbounds i8, ptr %1886, i64 2208
  store i16 %654, ptr %1887, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %29) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %29, i8 0, i64 80, i1 false)
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %30) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %30, i8 0, i64 80, i1 false)
  %1888 = load i32, ptr @test_count, align 4, !tbaa !5
  %1889 = add nsw i32 %1888, 1
  store i32 %1889, ptr @test_count, align 4, !tbaa !5
  %1890 = load ptr, ptr %27, align 8, !tbaa !9
  %1891 = call i32 @s2n_connections_set_blocking_io_pair(ptr noundef nonnull %29, ptr noundef %1886, ptr noundef %1890, ptr noundef nonnull %30)
  %1892 = call zeroext i1 @s2n_result_is_ok(i32 %1891)
  br i1 %1892, label %1916, label %1893

1893:                                             ; preds = %1885
  %1894 = tail call ptr @__errno_location() #14
  %1895 = load i32, ptr %1894, align 4, !tbaa !5
  %1896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1897 = call i32 @s2n_print_stacktrace(ptr noundef %1896) #13
  %1898 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1899 = trunc nuw i8 %1898 to i1
  br i1 %1899, label %1900, label %1904

1900:                                             ; preds = %1893
  %1901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1902 = call i32 @fileno(ptr noundef %1901) #13
  %1903 = call i32 @isatty(i32 noundef %1902) #13
  %.not265 = icmp eq i32 %1903, 0
  br i1 %.not265, label %1904, label %1905

1904:                                             ; preds = %1900, %1893
  br label %1905

1905:                                             ; preds = %1900, %1904
  %.str.5.sink966 = phi ptr [ @.str.5, %1904 ], [ @.str.2, %1900 ]
  store i32 %1895, ptr %1894, align 4, !tbaa !5
  %1906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1907 = load i32, ptr @test_count, align 4, !tbaa !5
  %1908 = load i32, ptr %124, align 4, !tbaa !5
  %1909 = call ptr @s2n_strerror(i32 noundef %1908, ptr noundef nonnull @.str.4) #13
  %1910 = load i32, ptr %124, align 4, !tbaa !5
  %1911 = call ptr @s2n_strerror_debug(i32 noundef %1910, ptr noundef nonnull @.str.4) #13
  %1912 = load i32, ptr %1894, align 4, !tbaa !5
  %1913 = call ptr @strerror(i32 noundef %1912) #13
  %1914 = load i32, ptr %1894, align 4, !tbaa !5
  %1915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1906, ptr noundef nonnull %.str.5.sink966, i32 noundef %1907, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 345, ptr noundef %1909, ptr noundef %1911, ptr noundef %1913, i32 noundef %1914) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1916:                                             ; preds = %1885
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %31) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(12) %31, i8 0, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %32) #13
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %32, i8 0, i64 24, i1 false)
  %1917 = load i32, ptr @test_count, align 4, !tbaa !5
  %1918 = add nsw i32 %1917, 1
  store i32 %1918, ptr @test_count, align 4, !tbaa !5
  %1919 = call i32 @s2n_blob_init(ptr noundef nonnull %32, ptr noundef nonnull %31, i32 noundef 12) #13
  %1920 = icmp eq i32 %1919, -1
  br i1 %1920, label %1921, label %1944

1921:                                             ; preds = %1916
  %1922 = tail call ptr @__errno_location() #14
  %1923 = load i32, ptr %1922, align 4, !tbaa !5
  %1924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1925 = call i32 @s2n_print_stacktrace(ptr noundef %1924) #13
  %1926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1927 = trunc nuw i8 %1926 to i1
  br i1 %1927, label %1928, label %1932

1928:                                             ; preds = %1921
  %1929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1930 = call i32 @fileno(ptr noundef %1929) #13
  %1931 = call i32 @isatty(i32 noundef %1930) #13
  %.not285 = icmp eq i32 %1931, 0
  br i1 %.not285, label %1932, label %1933

1932:                                             ; preds = %1928, %1921
  br label %1933

1933:                                             ; preds = %1928, %1932
  %.str.5.sink975 = phi ptr [ @.str.5, %1932 ], [ @.str.2, %1928 ]
  store i32 %1923, ptr %1922, align 4, !tbaa !5
  %1934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1935 = load i32, ptr @test_count, align 4, !tbaa !5
  %1936 = load i32, ptr %124, align 4, !tbaa !5
  %1937 = call ptr @s2n_strerror(i32 noundef %1936, ptr noundef nonnull @.str.4) #13
  %1938 = load i32, ptr %124, align 4, !tbaa !5
  %1939 = call ptr @s2n_strerror_debug(i32 noundef %1938, ptr noundef nonnull @.str.4) #13
  %1940 = load i32, ptr %1922, align 4, !tbaa !5
  %1941 = call ptr @strerror(i32 noundef %1940) #13
  %1942 = load i32, ptr %1922, align 4, !tbaa !5
  %1943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1934, ptr noundef nonnull %.str.5.sink975, i32 noundef %1935, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 349, ptr noundef %1937, ptr noundef %1939, ptr noundef %1941, i32 noundef %1942) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1944:                                             ; preds = %1916
  %1945 = load i32, ptr @test_count, align 4, !tbaa !5
  %1946 = add nsw i32 %1945, 1
  store i32 %1946, ptr @test_count, align 4, !tbaa !5
  %1947 = load ptr, ptr %27, align 8, !tbaa !9
  %1948 = load ptr, ptr %28, align 8, !tbaa !9
  %1949 = call i32 @s2n_negotiate_test_server_and_client_with_early_data(ptr noundef %1947, ptr noundef %1948, ptr noundef nonnull %25, ptr noundef nonnull %32) #13
  %1950 = call zeroext i1 @s2n_result_is_error(i32 %1949)
  br i1 %1950, label %1974, label %1951

1951:                                             ; preds = %1944
  %1952 = tail call ptr @__errno_location() #14
  %1953 = load i32, ptr %1952, align 4, !tbaa !5
  %1954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1955 = call i32 @s2n_print_stacktrace(ptr noundef %1954) #13
  %1956 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1957 = trunc nuw i8 %1956 to i1
  br i1 %1957, label %1958, label %1962

1958:                                             ; preds = %1951
  %1959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1960 = call i32 @fileno(ptr noundef %1959) #13
  %1961 = call i32 @isatty(i32 noundef %1960) #13
  %.not266 = icmp eq i32 %1961, 0
  br i1 %.not266, label %1962, label %1963

1962:                                             ; preds = %1958, %1951
  br label %1963

1963:                                             ; preds = %1958, %1962
  %.str.5.sink984 = phi ptr [ @.str.5, %1962 ], [ @.str.2, %1958 ]
  store i32 %1953, ptr %1952, align 4, !tbaa !5
  %1964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1965 = load i32, ptr @test_count, align 4, !tbaa !5
  %1966 = load i32, ptr %124, align 4, !tbaa !5
  %1967 = call ptr @s2n_strerror(i32 noundef %1966, ptr noundef nonnull @.str.4) #13
  %1968 = load i32, ptr %124, align 4, !tbaa !5
  %1969 = call ptr @s2n_strerror_debug(i32 noundef %1968, ptr noundef nonnull @.str.4) #13
  %1970 = load i32, ptr %1952, align 4, !tbaa !5
  %1971 = call ptr @strerror(i32 noundef %1970) #13
  %1972 = load i32, ptr %1952, align 4, !tbaa !5
  %1973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1964, ptr noundef nonnull %.str.5.sink984, i32 noundef %1965, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 353, ptr noundef %1967, ptr noundef %1969, ptr noundef %1971, i32 noundef %1972) #15
  call void @exit(i32 noundef 1) #16
  unreachable

1974:                                             ; preds = %1944
  %1975 = load i32, ptr @test_count, align 4, !tbaa !5
  %1976 = add nsw i32 %1975, 1
  store i32 %1976, ptr @test_count, align 4, !tbaa !5
  %1977 = load i32, ptr %124, align 4, !tbaa !5
  %1978 = icmp eq i32 %1977, 201326592
  br i1 %1978, label %2002, label %1979

1979:                                             ; preds = %1974
  %1980 = tail call ptr @__errno_location() #14
  %1981 = load i32, ptr %1980, align 4, !tbaa !5
  %1982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1983 = call i32 @s2n_print_stacktrace(ptr noundef %1982) #13
  %1984 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1985 = trunc nuw i8 %1984 to i1
  br i1 %1985, label %1986, label %1990

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

1990:                                             ; preds = %1986, %1979
  br label %1991

1991:                                             ; preds = %1986, %1990
  %.str.5.sink993 = phi ptr [ @.str.5, %1990 ], [ @.str.2, %1986 ]
  store i32 %1981, ptr %1980, align 4, !tbaa !5
  %1992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1993 = load i32, ptr @test_count, align 4, !tbaa !5
  %1994 = load i32, ptr %124, align 4, !tbaa !5
  %1995 = call ptr @s2n_strerror(i32 noundef %1994, ptr noundef nonnull @.str.4) #13
  %1996 = load i32, ptr %124, align 4, !tbaa !5
  %1997 = call ptr @s2n_strerror_debug(i32 noundef %1996, ptr noundef nonnull @.str.4) #13
  %1998 = load i32, ptr %1980, align 4, !tbaa !5
  %1999 = call ptr @strerror(i32 noundef %1998) #13
  %2000 = load i32, ptr %1980, align 4, !tbaa !5
  %2001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1992, ptr noundef nonnull %.str.5.sink993, i32 noundef %1993, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 353, ptr noundef %1995, ptr noundef %1997, ptr noundef %1999, i32 noundef %2000) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2002:                                             ; preds = %1974
  %2003 = add nsw i32 %1975, 2
  store i32 %2003, ptr @test_count, align 4, !tbaa !5
  %2004 = call ptr @s2n_strerror_debug(i32 noundef 201326592, ptr noundef nonnull @.str.4) #13
  %2005 = icmp eq ptr %2004, null
  br i1 %2005, label %2006, label %2029

2006:                                             ; preds = %2002
  %2007 = tail call ptr @__errno_location() #14
  %2008 = load i32, ptr %2007, align 4, !tbaa !5
  %2009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2010 = call i32 @s2n_print_stacktrace(ptr noundef %2009) #13
  %2011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2012 = trunc nuw i8 %2011 to i1
  br i1 %2012, label %2013, label %2017

2013:                                             ; preds = %2006
  %2014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2015 = call i32 @fileno(ptr noundef %2014) #13
  %2016 = call i32 @isatty(i32 noundef %2015) #13
  %.not284 = icmp eq i32 %2016, 0
  br i1 %.not284, label %2017, label %2018

2017:                                             ; preds = %2013, %2006
  br label %2018

2018:                                             ; preds = %2013, %2017
  %.str.5.sink1002 = phi ptr [ @.str.5, %2017 ], [ @.str.2, %2013 ]
  store i32 %2008, ptr %2007, align 4, !tbaa !5
  %2019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2020 = load i32, ptr @test_count, align 4, !tbaa !5
  %2021 = load i32, ptr %124, align 4, !tbaa !5
  %2022 = call ptr @s2n_strerror(i32 noundef %2021, ptr noundef nonnull @.str.4) #13
  %2023 = load i32, ptr %124, align 4, !tbaa !5
  %2024 = call ptr @s2n_strerror_debug(i32 noundef %2023, ptr noundef nonnull @.str.4) #13
  %2025 = load i32, ptr %2007, align 4, !tbaa !5
  %2026 = call ptr @strerror(i32 noundef %2025) #13
  %2027 = load i32, ptr %2007, align 4, !tbaa !5
  %2028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2019, ptr noundef nonnull %.str.5.sink1002, i32 noundef %2020, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 353, ptr noundef %2022, ptr noundef %2024, ptr noundef %2026, i32 noundef %2027) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2029:                                             ; preds = %2002
  store i32 0, ptr %124, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #13
  %2030 = tail call ptr @__errno_location() #14
  store i32 0, ptr %2030, align 4, !tbaa !5
  %2031 = load i32, ptr @test_count, align 4, !tbaa !5
  %2032 = add nsw i32 %2031, 1
  store i32 %2032, ptr @test_count, align 4, !tbaa !5
  %2033 = load ptr, ptr %27, align 8, !tbaa !9
  %2034 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %2033, i32 noundef 64) #13
  br i1 %2034, label %2057, label %2035

2035:                                             ; preds = %2029
  %2036 = load i32, ptr %2030, align 4, !tbaa !5
  %2037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2038 = call i32 @s2n_print_stacktrace(ptr noundef %2037) #13
  %2039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2040 = trunc nuw i8 %2039 to i1
  br i1 %2040, label %2041, label %2045

2041:                                             ; preds = %2035
  %2042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2043 = call i32 @fileno(ptr noundef %2042) #13
  %2044 = call i32 @isatty(i32 noundef %2043) #13
  %.not268 = icmp eq i32 %2044, 0
  br i1 %.not268, label %2045, label %2046

2045:                                             ; preds = %2041, %2035
  br label %2046

2046:                                             ; preds = %2041, %2045
  %.str.5.sink1011 = phi ptr [ @.str.5, %2045 ], [ @.str.2, %2041 ]
  store i32 %2036, ptr %2030, align 4, !tbaa !5
  %2047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2048 = load i32, ptr @test_count, align 4, !tbaa !5
  %2049 = load i32, ptr %124, align 4, !tbaa !5
  %2050 = call ptr @s2n_strerror(i32 noundef %2049, ptr noundef nonnull @.str.4) #13
  %2051 = load i32, ptr %124, align 4, !tbaa !5
  %2052 = call ptr @s2n_strerror_debug(i32 noundef %2051, ptr noundef nonnull @.str.4) #13
  %2053 = load i32, ptr %2030, align 4, !tbaa !5
  %2054 = call ptr @strerror(i32 noundef %2053) #13
  %2055 = load i32, ptr %2030, align 4, !tbaa !5
  %2056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2047, ptr noundef nonnull %.str.5.sink1011, i32 noundef %2048, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 356, ptr noundef %2050, ptr noundef %2052, ptr noundef %2054, i32 noundef %2055) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2057:                                             ; preds = %2029
  %2058 = load i32, ptr @test_count, align 4, !tbaa !5
  %2059 = add nsw i32 %2058, 1
  store i32 %2059, ptr @test_count, align 4, !tbaa !5
  %2060 = load ptr, ptr %28, align 8, !tbaa !9
  %2061 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %2060, i32 noundef 64) #13
  br i1 %2061, label %2084, label %2062

2062:                                             ; preds = %2057
  %2063 = load i32, ptr %2030, align 4, !tbaa !5
  %2064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2065 = call i32 @s2n_print_stacktrace(ptr noundef %2064) #13
  %2066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2067 = trunc nuw i8 %2066 to i1
  br i1 %2067, label %2068, label %2072

2068:                                             ; preds = %2062
  %2069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2070 = call i32 @fileno(ptr noundef %2069) #13
  %2071 = call i32 @isatty(i32 noundef %2070) #13
  %.not269 = icmp eq i32 %2071, 0
  br i1 %.not269, label %2072, label %2073

2072:                                             ; preds = %2068, %2062
  br label %2073

2073:                                             ; preds = %2068, %2072
  %.str.5.sink1020 = phi ptr [ @.str.5, %2072 ], [ @.str.2, %2068 ]
  store i32 %2063, ptr %2030, align 4, !tbaa !5
  %2074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2075 = load i32, ptr @test_count, align 4, !tbaa !5
  %2076 = load i32, ptr %124, align 4, !tbaa !5
  %2077 = call ptr @s2n_strerror(i32 noundef %2076, ptr noundef nonnull @.str.4) #13
  %2078 = load i32, ptr %124, align 4, !tbaa !5
  %2079 = call ptr @s2n_strerror_debug(i32 noundef %2078, ptr noundef nonnull @.str.4) #13
  %2080 = load i32, ptr %2030, align 4, !tbaa !5
  %2081 = call ptr @strerror(i32 noundef %2080) #13
  %2082 = load i32, ptr %2030, align 4, !tbaa !5
  %2083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2074, ptr noundef nonnull %.str.5.sink1020, i32 noundef %2075, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 357, ptr noundef %2077, ptr noundef %2079, ptr noundef %2081, i32 noundef %2082) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2084:                                             ; preds = %2057
  %2085 = load i32, ptr @test_count, align 4, !tbaa !5
  %2086 = add nsw i32 %2085, 1
  store i32 %2086, ptr @test_count, align 4, !tbaa !5
  %2087 = load i32, ptr %127, align 8, !tbaa !51
  %2088 = load i32, ptr %128, align 8, !tbaa !51
  %2089 = icmp eq i32 %2087, %2088
  br i1 %2089, label %2112, label %2090

2090:                                             ; preds = %2084
  %2091 = load i32, ptr %2030, align 4, !tbaa !5
  %2092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2093 = call i32 @s2n_print_stacktrace(ptr noundef %2092) #13
  %2094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2095 = trunc nuw i8 %2094 to i1
  br i1 %2095, label %2096, label %2100

2096:                                             ; preds = %2090
  %2097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2098 = call i32 @fileno(ptr noundef %2097) #13
  %2099 = call i32 @isatty(i32 noundef %2098) #13
  %.not270 = icmp eq i32 %2099, 0
  br i1 %.not270, label %2100, label %2101

2100:                                             ; preds = %2096, %2090
  br label %2101

2101:                                             ; preds = %2096, %2100
  %.str.5.sink1029 = phi ptr [ @.str.5, %2100 ], [ @.str.2, %2096 ]
  store i32 %2091, ptr %2030, align 4, !tbaa !5
  %2102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2103 = load i32, ptr @test_count, align 4, !tbaa !5
  %2104 = load i32, ptr %124, align 4, !tbaa !5
  %2105 = call ptr @s2n_strerror(i32 noundef %2104, ptr noundef nonnull @.str.4) #13
  %2106 = load i32, ptr %124, align 4, !tbaa !5
  %2107 = call ptr @s2n_strerror_debug(i32 noundef %2106, ptr noundef nonnull @.str.4) #13
  %2108 = load i32, ptr %2030, align 4, !tbaa !5
  %2109 = call ptr @strerror(i32 noundef %2108) #13
  %2110 = load i32, ptr %2030, align 4, !tbaa !5
  %2111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2102, ptr noundef nonnull %.str.5.sink1029, i32 noundef %2103, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 358, ptr noundef %2105, ptr noundef %2107, ptr noundef %2109, i32 noundef %2110) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2112:                                             ; preds = %2084
  %.not271 = icmp eq i32 %2087, 0
  br i1 %.not271, label %.preheader1114, label %2113

.preheader1114:                                   ; preds = %2113, %2112
  br label %2141

2113:                                             ; preds = %2112
  %2114 = add nsw i32 %2085, 2
  store i32 %2114, ptr @test_count, align 4, !tbaa !5
  %2115 = load ptr, ptr %25, align 8, !tbaa !52
  %2116 = load ptr, ptr %32, align 8, !tbaa !52
  %2117 = zext i32 %2087 to i64
  %bcmp = call i32 @bcmp(ptr %2115, ptr %2116, i64 %2117)
  %2118 = icmp eq i32 %bcmp, 0
  br i1 %2118, label %.preheader1114, label %2119

2119:                                             ; preds = %2113
  %2120 = load i32, ptr %2030, align 4, !tbaa !5
  %2121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2122 = call i32 @s2n_print_stacktrace(ptr noundef %2121) #13
  %2123 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2124 = trunc nuw i8 %2123 to i1
  br i1 %2124, label %2125, label %2129

2125:                                             ; preds = %2119
  %2126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2127 = call i32 @fileno(ptr noundef %2126) #13
  %2128 = call i32 @isatty(i32 noundef %2127) #13
  %.not272 = icmp eq i32 %2128, 0
  br i1 %.not272, label %2129, label %2130

2129:                                             ; preds = %2125, %2119
  br label %2130

2130:                                             ; preds = %2125, %2129
  %.str.5.sink1038 = phi ptr [ @.str.5, %2129 ], [ @.str.2, %2125 ]
  store i32 %2120, ptr %2030, align 4, !tbaa !5
  %2131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2132 = load i32, ptr @test_count, align 4, !tbaa !5
  %2133 = load i32, ptr %124, align 4, !tbaa !5
  %2134 = call ptr @s2n_strerror(i32 noundef %2133, ptr noundef nonnull @.str.4) #13
  %2135 = load i32, ptr %124, align 4, !tbaa !5
  %2136 = call ptr @s2n_strerror_debug(i32 noundef %2135, ptr noundef nonnull @.str.4) #13
  %2137 = load i32, ptr %2030, align 4, !tbaa !5
  %2138 = call ptr @strerror(i32 noundef %2137) #13
  %2139 = load i32, ptr %2030, align 4, !tbaa !5
  %2140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2131, ptr noundef nonnull %.str.5.sink1038, i32 noundef %2132, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 358, ptr noundef %2134, ptr noundef %2136, ptr noundef %2138, i32 noundef %2139) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2141:                                             ; preds = %.preheader1114, %2146
  %2142 = load ptr, ptr %27, align 8, !tbaa !9
  %2143 = load ptr, ptr %28, align 8, !tbaa !9
  %2144 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %2142, ptr noundef %2143) #13
  %2145 = icmp sgt i32 %2144, -1
  br i1 %2145, label %2153, label %2146

2146:                                             ; preds = %2141
  %2147 = load i32, ptr %124, align 4, !tbaa !5
  %.not277 = icmp eq i32 %2147, 0
  br i1 %.not277, label %2148, label %2141, !llvm.loop !53

2148:                                             ; preds = %2146
  store ptr @.str.48, ptr %125, align 8, !tbaa !44
  %2149 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) getelementptr inbounds (i8, ptr @.str.48, i64 21), i32 noundef 47) #17
  %.not278 = icmp eq ptr %2149, null
  %2150 = getelementptr inbounds i8, ptr %2149, i64 1
  %2151 = select i1 %.not278, ptr getelementptr inbounds (i8, ptr @.str.48, i64 21), ptr %2150
  store ptr %2151, ptr %126, align 8, !tbaa !46
  store i32 201326592, ptr %124, align 4, !tbaa !5
  %2152 = call i32 @s2n_calculate_stacktrace() #13
  br label %2263

2153:                                             ; preds = %2141
  %2154 = load i32, ptr @test_count, align 4, !tbaa !5
  %2155 = add nsw i32 %2154, 1
  store i32 %2155, ptr @test_count, align 4, !tbaa !5
  %2156 = load ptr, ptr %27, align 8, !tbaa !9
  %2157 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %2156, i32 noundef 1) #13
  br i1 %2157, label %2180, label %2158

2158:                                             ; preds = %2153
  %2159 = load i32, ptr %2030, align 4, !tbaa !5
  %2160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2161 = call i32 @s2n_print_stacktrace(ptr noundef %2160) #13
  %2162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2163 = trunc nuw i8 %2162 to i1
  br i1 %2163, label %2164, label %2168

2164:                                             ; preds = %2158
  %2165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2166 = call i32 @fileno(ptr noundef %2165) #13
  %2167 = call i32 @isatty(i32 noundef %2166) #13
  %.not273 = icmp eq i32 %2167, 0
  br i1 %.not273, label %2168, label %2169

2168:                                             ; preds = %2164, %2158
  br label %2169

2169:                                             ; preds = %2164, %2168
  %.str.5.sink1047 = phi ptr [ @.str.5, %2168 ], [ @.str.2, %2164 ]
  store i32 %2159, ptr %2030, align 4, !tbaa !5
  %2170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2171 = load i32, ptr @test_count, align 4, !tbaa !5
  %2172 = load i32, ptr %124, align 4, !tbaa !5
  %2173 = call ptr @s2n_strerror(i32 noundef %2172, ptr noundef nonnull @.str.4) #13
  %2174 = load i32, ptr %124, align 4, !tbaa !5
  %2175 = call ptr @s2n_strerror_debug(i32 noundef %2174, ptr noundef nonnull @.str.4) #13
  %2176 = load i32, ptr %2030, align 4, !tbaa !5
  %2177 = call ptr @strerror(i32 noundef %2176) #13
  %2178 = load i32, ptr %2030, align 4, !tbaa !5
  %2179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2170, ptr noundef nonnull %.str.5.sink1047, i32 noundef %2171, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 365, ptr noundef %2173, ptr noundef %2175, ptr noundef %2177, i32 noundef %2178) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2180:                                             ; preds = %2153
  %2181 = load i32, ptr @test_count, align 4, !tbaa !5
  %2182 = add nsw i32 %2181, 1
  store i32 %2182, ptr @test_count, align 4, !tbaa !5
  %2183 = load ptr, ptr %28, align 8, !tbaa !9
  %2184 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %2183, i32 noundef 1) #13
  br i1 %2184, label %2207, label %2185

2185:                                             ; preds = %2180
  %2186 = load i32, ptr %2030, align 4, !tbaa !5
  %2187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2188 = call i32 @s2n_print_stacktrace(ptr noundef %2187) #13
  %2189 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2190 = trunc nuw i8 %2189 to i1
  br i1 %2190, label %2191, label %2195

2191:                                             ; preds = %2185
  %2192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2193 = call i32 @fileno(ptr noundef %2192) #13
  %2194 = call i32 @isatty(i32 noundef %2193) #13
  %.not274 = icmp eq i32 %2194, 0
  br i1 %.not274, label %2195, label %2196

2195:                                             ; preds = %2191, %2185
  br label %2196

2196:                                             ; preds = %2191, %2195
  %.str.5.sink1056 = phi ptr [ @.str.5, %2195 ], [ @.str.2, %2191 ]
  store i32 %2186, ptr %2030, align 4, !tbaa !5
  %2197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2198 = load i32, ptr @test_count, align 4, !tbaa !5
  %2199 = load i32, ptr %124, align 4, !tbaa !5
  %2200 = call ptr @s2n_strerror(i32 noundef %2199, ptr noundef nonnull @.str.4) #13
  %2201 = load i32, ptr %124, align 4, !tbaa !5
  %2202 = call ptr @s2n_strerror_debug(i32 noundef %2201, ptr noundef nonnull @.str.4) #13
  %2203 = load i32, ptr %2030, align 4, !tbaa !5
  %2204 = call ptr @strerror(i32 noundef %2203) #13
  %2205 = load i32, ptr %2030, align 4, !tbaa !5
  %2206 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2197, ptr noundef nonnull %.str.5.sink1056, i32 noundef %2198, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 366, ptr noundef %2200, ptr noundef %2202, ptr noundef %2204, i32 noundef %2205) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2207:                                             ; preds = %2180
  %2208 = load i32, ptr @test_count, align 4, !tbaa !5
  %2209 = add nsw i32 %2208, 1
  store i32 %2209, ptr @test_count, align 4, !tbaa !5
  %2210 = load ptr, ptr %27, align 8, !tbaa !9
  %2211 = call i32 @s2n_conn_get_current_message_type(ptr noundef %2210) #13
  %2212 = icmp eq i32 %2211, 20
  br i1 %2212, label %2235, label %2213

2213:                                             ; preds = %2207
  %2214 = load i32, ptr %2030, align 4, !tbaa !5
  %2215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2216 = call i32 @s2n_print_stacktrace(ptr noundef %2215) #13
  %2217 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2218 = trunc nuw i8 %2217 to i1
  br i1 %2218, label %2219, label %2223

2219:                                             ; preds = %2213
  %2220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2221 = call i32 @fileno(ptr noundef %2220) #13
  %2222 = call i32 @isatty(i32 noundef %2221) #13
  %.not275 = icmp eq i32 %2222, 0
  br i1 %.not275, label %2223, label %2224

2223:                                             ; preds = %2219, %2213
  br label %2224

2224:                                             ; preds = %2219, %2223
  %.str.5.sink1065 = phi ptr [ @.str.5, %2223 ], [ @.str.2, %2219 ]
  store i32 %2214, ptr %2030, align 4, !tbaa !5
  %2225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2226 = load i32, ptr @test_count, align 4, !tbaa !5
  %2227 = load i32, ptr %124, align 4, !tbaa !5
  %2228 = call ptr @s2n_strerror(i32 noundef %2227, ptr noundef nonnull @.str.4) #13
  %2229 = load i32, ptr %124, align 4, !tbaa !5
  %2230 = call ptr @s2n_strerror_debug(i32 noundef %2229, ptr noundef nonnull @.str.4) #13
  %2231 = load i32, ptr %2030, align 4, !tbaa !5
  %2232 = call ptr @strerror(i32 noundef %2231) #13
  %2233 = load i32, ptr %2030, align 4, !tbaa !5
  %2234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2225, ptr noundef nonnull %.str.5.sink1065, i32 noundef %2226, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 367, ptr noundef %2228, ptr noundef %2230, ptr noundef %2232, i32 noundef %2233) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2235:                                             ; preds = %2207
  %2236 = load i32, ptr @test_count, align 4, !tbaa !5
  %2237 = add nsw i32 %2236, 1
  store i32 %2237, ptr @test_count, align 4, !tbaa !5
  %2238 = load ptr, ptr %28, align 8, !tbaa !9
  %2239 = call i32 @s2n_conn_get_current_message_type(ptr noundef %2238) #13
  %2240 = icmp eq i32 %2239, 20
  br i1 %2240, label %2263, label %2241

2241:                                             ; preds = %2235
  %2242 = load i32, ptr %2030, align 4, !tbaa !5
  %2243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2244 = call i32 @s2n_print_stacktrace(ptr noundef %2243) #13
  %2245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2246 = trunc nuw i8 %2245 to i1
  br i1 %2246, label %2247, label %2251

2247:                                             ; preds = %2241
  %2248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2249 = call i32 @fileno(ptr noundef %2248) #13
  %2250 = call i32 @isatty(i32 noundef %2249) #13
  %.not276 = icmp eq i32 %2250, 0
  br i1 %.not276, label %2251, label %2252

2251:                                             ; preds = %2247, %2241
  br label %2252

2252:                                             ; preds = %2247, %2251
  %.str.5.sink1074 = phi ptr [ @.str.5, %2251 ], [ @.str.2, %2247 ]
  store i32 %2242, ptr %2030, align 4, !tbaa !5
  %2253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2254 = load i32, ptr @test_count, align 4, !tbaa !5
  %2255 = load i32, ptr %124, align 4, !tbaa !5
  %2256 = call ptr @s2n_strerror(i32 noundef %2255, ptr noundef nonnull @.str.4) #13
  %2257 = load i32, ptr %124, align 4, !tbaa !5
  %2258 = call ptr @s2n_strerror_debug(i32 noundef %2257, ptr noundef nonnull @.str.4) #13
  %2259 = load i32, ptr %2030, align 4, !tbaa !5
  %2260 = call ptr @strerror(i32 noundef %2259) #13
  %2261 = load i32, ptr %2030, align 4, !tbaa !5
  %2262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2253, ptr noundef nonnull %.str.5.sink1074, i32 noundef %2254, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 368, ptr noundef %2256, ptr noundef %2258, ptr noundef %2260, i32 noundef %2261) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2263:                                             ; preds = %2148, %2235
  %.6 = phi i32 [ -1, %2148 ], [ %.5, %2235 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #13
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %31) #13
  %2264 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %30) #13
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %30) #13
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %29) #13
  %2265 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %28) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #13
  %2266 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %27) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #13
  %2267 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %26) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #13
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #13
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %24) #13
  br i1 %2145, label %.thread320, label %.thread

.thread320:                                       ; preds = %1673, %2263
  %.8323 = phi i32 [ %.6, %2263 ], [ %.5, %1673 ]
  %2268 = add nuw nsw i64 %.0208379, 1
  %exitcond = icmp eq i64 %2268, 6
  br i1 %exitcond, label %.thread324, label %153, !llvm.loop !54

.thread324:                                       ; preds = %.thread320
  %2269 = call i32 @s2n_cleanup() #13
  %2270 = icmp eq i32 %2269, -1
  br i1 %2270, label %2271, label %2294

2271:                                             ; preds = %.thread324
  %2272 = tail call ptr @__errno_location() #14
  %2273 = load i32, ptr %2272, align 4, !tbaa !5
  %2274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2275 = call i32 @s2n_print_stacktrace(ptr noundef %2274) #13
  %2276 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2277 = trunc nuw i8 %2276 to i1
  br i1 %2277, label %2278, label %2282

2278:                                             ; preds = %2271
  %2279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2280 = call i32 @fileno(ptr noundef %2279) #13
  %2281 = call i32 @isatty(i32 noundef %2280) #13
  %.not283 = icmp eq i32 %2281, 0
  br i1 %.not283, label %2282, label %2283

2282:                                             ; preds = %2278, %2271
  br label %2283

2283:                                             ; preds = %2278, %2282
  %.str.5.sink1083 = phi ptr [ @.str.5, %2282 ], [ @.str.2, %2278 ]
  store i32 %2273, ptr %2272, align 4, !tbaa !5
  %2284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2285 = load i32, ptr @test_count, align 4, !tbaa !5
  %2286 = load i32, ptr %124, align 4, !tbaa !5
  %2287 = call ptr @s2n_strerror(i32 noundef %2286, ptr noundef nonnull @.str.4) #13
  %2288 = load i32, ptr %124, align 4, !tbaa !5
  %2289 = call ptr @s2n_strerror_debug(i32 noundef %2288, ptr noundef nonnull @.str.4) #13
  %2290 = load i32, ptr %2272, align 4, !tbaa !5
  %2291 = call ptr @strerror(i32 noundef %2290) #13
  %2292 = load i32, ptr %2272, align 4, !tbaa !5
  %2293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2284, ptr noundef nonnull %.str.5.sink1083, i32 noundef %2285, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 372, ptr noundef %2287, ptr noundef %2289, ptr noundef %2291, i32 noundef %2292) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2294:                                             ; preds = %.thread324
  %2295 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #13
  %2296 = icmp eq i32 %2295, -1
  br i1 %2296, label %2297, label %2320

2297:                                             ; preds = %2294
  %2298 = tail call ptr @__errno_location() #14
  %2299 = load i32, ptr %2298, align 4, !tbaa !5
  %2300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2301 = call i32 @s2n_print_stacktrace(ptr noundef %2300) #13
  %2302 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2303 = trunc nuw i8 %2302 to i1
  br i1 %2303, label %2304, label %2308

2304:                                             ; preds = %2297
  %2305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2306 = call i32 @fileno(ptr noundef %2305) #13
  %2307 = call i32 @isatty(i32 noundef %2306) #13
  %.not282 = icmp eq i32 %2307, 0
  br i1 %.not282, label %2308, label %2309

2308:                                             ; preds = %2304, %2297
  br label %2309

2309:                                             ; preds = %2304, %2308
  %.str.5.sink1092 = phi ptr [ @.str.5, %2308 ], [ @.str.2, %2304 ]
  store i32 %2299, ptr %2298, align 4, !tbaa !5
  %2310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2311 = load i32, ptr @test_count, align 4, !tbaa !5
  %2312 = load i32, ptr %124, align 4, !tbaa !5
  %2313 = call ptr @s2n_strerror(i32 noundef %2312, ptr noundef nonnull @.str.4) #13
  %2314 = load i32, ptr %124, align 4, !tbaa !5
  %2315 = call ptr @s2n_strerror_debug(i32 noundef %2314, ptr noundef nonnull @.str.4) #13
  %2316 = load i32, ptr %2298, align 4, !tbaa !5
  %2317 = call ptr @strerror(i32 noundef %2316) #13
  %2318 = load i32, ptr %2298, align 4, !tbaa !5
  %2319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2310, ptr noundef nonnull %.str.5.sink1092, i32 noundef %2311, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 372, ptr noundef %2313, ptr noundef %2315, ptr noundef %2317, i32 noundef %2318) #15
  call void @exit(i32 noundef 1) #16
  unreachable

2320:                                             ; preds = %2294
  %2321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2322 = trunc nuw i8 %2321 to i1
  br i1 %2322, label %2323, label %2334

2323:                                             ; preds = %2320
  %2324 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2325 = call i32 @fileno(ptr noundef %2324) #13
  %2326 = call i32 @isatty(i32 noundef %2325) #13
  %.not279 = icmp eq i32 %2326, 0
  br i1 %.not279, label %2334, label %2327

2327:                                             ; preds = %2323
  %2328 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not281 = icmp eq i32 %2328, 0
  %2329 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not281, label %2332, label %2330

2330:                                             ; preds = %2327
  %2331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2329, ptr noundef nonnull @.str.51, i32 noundef %2328) #13
  br label %.thread

2332:                                             ; preds = %2327
  %2333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2329, ptr noundef nonnull @.str.52) #13
  br label %.thread

2334:                                             ; preds = %2323, %2320
  %2335 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not280 = icmp eq i32 %2335, 0
  %2336 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not280, label %2339, label %2337

2337:                                             ; preds = %2334
  %2338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2336, ptr noundef nonnull @.str.53, i32 noundef %2335) #13
  br label %.thread

2339:                                             ; preds = %2334
  %2340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2336, ptr noundef nonnull @.str.54) #13
  br label %.thread

.thread:                                          ; preds = %2263, %1667, %1267, %869, %497, %2332, %2330, %2339, %2337
  %.10 = phi i32 [ 0, %2337 ], [ 0, %2339 ], [ 0, %2330 ], [ 0, %2332 ], [ %.6, %2263 ], [ %.1, %497 ], [ %.3, %869 ], [ %.4, %1267 ], [ %.5, %1667 ]
  %2341 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %3) #13
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #13
  ret i32 %.10
}

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

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare nonnull ptr @llvm.threadlocal.address.p0(ptr nonnull) #6

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #2

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

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

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 zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden ptr @s2n_test_config_new(ptr noundef) local_unnamed_addr #0

declare i32 @s2n_config_ptr_free(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_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

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

declare i32 @s2n_io_stuffer_pair_free(ptr noundef) local_unnamed_addr #2

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

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

declare i32 @s2n_negotiate_test_server_and_client(ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare ptr @strrchr(ptr noundef, i32 noundef) local_unnamed_addr #11

declare i32 @s2n_calculate_stacktrace() local_unnamed_addr #2

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

declare i32 @s2n_conn_get_current_message_type(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_set_client_hello_cb(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_config_set_client_hello_cb_mode(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_client_hello_cb_done(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_async_pkey_callback(ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_async_pkey_op_apply(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_async_pkey_op_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_blob_init(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_append_test_psk_with_early_data(ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_negotiate_test_server_and_client_with_early_data(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #12

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { mustprogress nofree nounwind willreturn memory(argmem: read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #12 = { nofree nounwind willreturn memory(argmem: read) }
attributes #13 = { nounwind }
attributes #14 = { nounwind willreturn memory(none) }
attributes #15 = { cold nounwind }
attributes #16 = { noreturn nounwind }
attributes #17 = { nounwind willreturn memory(read) }

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

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


; Effective O3 passes: AggressiveInstCombinePass,ConstraintEliminationPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass