; LLVM IR from aws/s2n-tls :: tests/unit (s2n_handshake_type_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_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_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [82 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [25 x i8], align 1

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

113:                                              ; preds = %2
  br label %114

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

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

122:                                              ; preds = %119
  br label %123

123:                                              ; preds = %122
  br label %124

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

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

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

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

170:                                              ; preds = %153, %136
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #8
  br label %171

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

172:                                              ; No predecessors!
  br label %173

173:                                              ; preds = %172, %119
  br label %174

174:                                              ; preds = %173
  br label %175

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

180:                                              ; preds = %175
  br label %181

181:                                              ; preds = %180
  br label %182

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

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

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

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

228:                                              ; preds = %211, %194
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  br label %229

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

230:                                              ; No predecessors!
  br label %231

231:                                              ; preds = %230, %175
  br label %232

232:                                              ; preds = %231
  br label %233

233:                                              ; preds = %232
  br label %234

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

237:                                              ; preds = %234
  br label %238

238:                                              ; preds = %237
  br label %239

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

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

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

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

285:                                              ; preds = %268, %251
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  br label %286

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

287:                                              ; No predecessors!
  br label %288

288:                                              ; preds = %287, %234
  br label %289

289:                                              ; preds = %288
  br label %290

290:                                              ; preds = %289
  br label %291

291:                                              ; preds = %290
  %292 = load i32, ptr @test_count, align 4, !tbaa !5
  %293 = add nsw i32 %292, 1
  store i32 %293, ptr @test_count, align 4, !tbaa !5
  br label %294

294:                                              ; preds = %291
  br label %295

295:                                              ; preds = %294
  %296 = load i32, ptr @test_count, align 4, !tbaa !5
  %297 = add nsw i32 %296, 1
  store i32 %297, ptr @test_count, align 4, !tbaa !5
  br label %298

298:                                              ; preds = %295
  br label %299

299:                                              ; preds = %298
  %300 = load i32, ptr @test_count, align 4, !tbaa !5
  %301 = add nsw i32 %300, 1
  store i32 %301, ptr @test_count, align 4, !tbaa !5
  br label %302

302:                                              ; preds = %299
  br label %303

303:                                              ; preds = %302
  %304 = load i32, ptr @test_count, align 4, !tbaa !5
  %305 = add nsw i32 %304, 1
  store i32 %305, ptr @test_count, align 4, !tbaa !5
  br label %306

306:                                              ; preds = %303
  br label %307

307:                                              ; preds = %306
  %308 = load i32, ptr @test_count, align 4, !tbaa !5
  %309 = add nsw i32 %308, 1
  store i32 %309, ptr @test_count, align 4, !tbaa !5
  br label %310

310:                                              ; preds = %307
  br label %311

311:                                              ; preds = %310
  %312 = load i32, ptr @test_count, align 4, !tbaa !5
  %313 = add nsw i32 %312, 1
  store i32 %313, ptr @test_count, align 4, !tbaa !5
  br label %314

314:                                              ; preds = %311
  br label %315

315:                                              ; preds = %314
  %316 = load i32, ptr @test_count, align 4, !tbaa !5
  %317 = add nsw i32 %316, 1
  store i32 %317, ptr @test_count, align 4, !tbaa !5
  br label %318

318:                                              ; preds = %315
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #8
  %319 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %319, ptr %9, align 8, !tbaa !9
  br label %320

320:                                              ; preds = %318
  %321 = load i32, ptr @test_count, align 4, !tbaa !5
  %322 = add nsw i32 %321, 1
  store i32 %322, ptr @test_count, align 4, !tbaa !5
  %323 = load ptr, ptr %9, align 8, !tbaa !9
  %324 = icmp eq ptr %323, null
  br i1 %324, label %325, label %378

325:                                              ; preds = %320
  br label %326

326:                                              ; preds = %325
  br label %327

327:                                              ; preds = %326
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #8
  %328 = call ptr @__errno_location() #9
  %329 = load i32, ptr %328, align 4, !tbaa !5
  store i32 %329, ptr %10, align 4, !tbaa !5
  %330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %331 = call i32 @s2n_print_stacktrace(ptr noundef %330)
  %332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %333 = trunc i8 %332 to i1
  br i1 %333, label %334, label %356

334:                                              ; preds = %327
  %335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %336 = call i32 @fileno(ptr noundef %335) #8
  %337 = call i32 @isatty(i32 noundef %336) #8
  %338 = icmp ne i32 %337, 0
  br i1 %338, label %339, label %356

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

356:                                              ; preds = %334, %327
  %357 = load i32, ptr %10, align 4, !tbaa !5
  %358 = call ptr @__errno_location() #9
  store i32 %357, ptr %358, align 4, !tbaa !5
  %359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %360 = load i32, ptr @test_count, align 4, !tbaa !5
  %361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %362 = load i32, ptr %361, align 4, !tbaa !5
  %363 = call ptr @s2n_strerror(i32 noundef %362, ptr noundef @.str.4)
  %364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %365 = load i32, ptr %364, align 4, !tbaa !5
  %366 = call ptr @s2n_strerror_debug(i32 noundef %365, ptr noundef @.str.4)
  %367 = call ptr @__errno_location() #9
  %368 = load i32, ptr %367, align 4, !tbaa !5
  %369 = call ptr @strerror(i32 noundef %368) #8
  %370 = call ptr @__errno_location() #9
  %371 = load i32, ptr %370, align 4, !tbaa !5
  %372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %359, ptr noundef @.str.5, i32 noundef %360, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 44, ptr noundef %363, ptr noundef %366, ptr noundef %369, i32 noundef %371) #8
  br label %373

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

374:                                              ; preds = %373
  br label %375

375:                                              ; preds = %374
  call void @exit(i32 noundef 1) #10
  unreachable

376:                                              ; No predecessors!
  br label %377

377:                                              ; preds = %376
  br label %378

378:                                              ; preds = %377, %320
  br label %379

379:                                              ; preds = %378
  br label %380

380:                                              ; preds = %379
  %381 = load ptr, ptr %9, align 8, !tbaa !9
  %382 = getelementptr inbounds %struct.s2n_connection, ptr %381, i32 0, i32 52
  %383 = getelementptr inbounds %struct.s2n_handshake, ptr %382, i32 0, i32 6
  store i32 4779, ptr %383, align 4, !tbaa !15
  br label %384

384:                                              ; preds = %380
  %385 = load i32, ptr @test_count, align 4, !tbaa !5
  %386 = add nsw i32 %385, 1
  store i32 %386, ptr @test_count, align 4, !tbaa !5
  %387 = load ptr, ptr %9, align 8, !tbaa !9
  %388 = call i32 @s2n_handshake_type_reset(ptr noundef %387)
  %389 = getelementptr inbounds %struct.s2n_result, ptr %11, i32 0, i32 0
  store i32 %388, ptr %389, align 4
  %390 = getelementptr inbounds %struct.s2n_result, ptr %11, i32 0, i32 0
  %391 = load i32, ptr %390, align 4
  %392 = call zeroext i1 @s2n_result_is_ok(i32 %391)
  br i1 %392, label %446, label %393

393:                                              ; preds = %384
  br label %394

394:                                              ; preds = %393
  br label %395

395:                                              ; preds = %394
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  %396 = call ptr @__errno_location() #9
  %397 = load i32, ptr %396, align 4, !tbaa !5
  store i32 %397, ptr %12, align 4, !tbaa !5
  %398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %399 = call i32 @s2n_print_stacktrace(ptr noundef %398)
  %400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %401 = trunc i8 %400 to i1
  br i1 %401, label %402, label %424

402:                                              ; preds = %395
  %403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %404 = call i32 @fileno(ptr noundef %403) #8
  %405 = call i32 @isatty(i32 noundef %404) #8
  %406 = icmp ne i32 %405, 0
  br i1 %406, label %407, label %424

407:                                              ; preds = %402
  %408 = load i32, ptr %12, align 4, !tbaa !5
  %409 = call ptr @__errno_location() #9
  store i32 %408, ptr %409, align 4, !tbaa !5
  %410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %411 = load i32, ptr @test_count, align 4, !tbaa !5
  %412 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %413 = load i32, ptr %412, align 4, !tbaa !5
  %414 = call ptr @s2n_strerror(i32 noundef %413, ptr noundef @.str.4)
  %415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %416 = load i32, ptr %415, align 4, !tbaa !5
  %417 = call ptr @s2n_strerror_debug(i32 noundef %416, ptr noundef @.str.4)
  %418 = call ptr @__errno_location() #9
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = call ptr @strerror(i32 noundef %419) #8
  %421 = call ptr @__errno_location() #9
  %422 = load i32, ptr %421, align 4, !tbaa !5
  %423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %410, ptr noundef @.str.2, i32 noundef %411, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 47, ptr noundef %414, ptr noundef %417, ptr noundef %420, i32 noundef %422) #8
  br label %441

424:                                              ; preds = %402, %395
  %425 = load i32, ptr %12, align 4, !tbaa !5
  %426 = call ptr @__errno_location() #9
  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() #9
  %436 = load i32, ptr %435, align 4, !tbaa !5
  %437 = call ptr @strerror(i32 noundef %436) #8
  %438 = call ptr @__errno_location() #9
  %439 = load i32, ptr %438, align 4, !tbaa !5
  %440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %427, ptr noundef @.str.5, i32 noundef %428, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 47, ptr noundef %431, ptr noundef %434, ptr noundef %437, i32 noundef %439) #8
  br label %441

441:                                              ; preds = %424, %407
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  br label %442

442:                                              ; preds = %441
  br label %443

443:                                              ; preds = %442
  call void @exit(i32 noundef 1) #10
  unreachable

444:                                              ; No predecessors!
  br label %445

445:                                              ; preds = %444
  br label %446

446:                                              ; preds = %445, %384
  br label %447

447:                                              ; preds = %446
  br label %448

448:                                              ; preds = %447
  br label %449

449:                                              ; preds = %448
  %450 = load i32, ptr @test_count, align 4, !tbaa !5
  %451 = add nsw i32 %450, 1
  store i32 %451, ptr @test_count, align 4, !tbaa !5
  %452 = load ptr, ptr %9, align 8, !tbaa !9
  %453 = getelementptr inbounds %struct.s2n_connection, ptr %452, i32 0, i32 52
  %454 = getelementptr inbounds %struct.s2n_handshake, ptr %453, i32 0, i32 6
  %455 = load i32, ptr %454, align 4, !tbaa !15
  %456 = icmp eq i32 %455, 0
  br i1 %456, label %510, label %457

457:                                              ; preds = %449
  br label %458

458:                                              ; preds = %457
  br label %459

459:                                              ; preds = %458
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #8
  %460 = call ptr @__errno_location() #9
  %461 = load i32, ptr %460, align 4, !tbaa !5
  store i32 %461, ptr %13, align 4, !tbaa !5
  %462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %463 = call i32 @s2n_print_stacktrace(ptr noundef %462)
  %464 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %465 = trunc i8 %464 to i1
  br i1 %465, label %466, label %488

466:                                              ; preds = %459
  %467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %468 = call i32 @fileno(ptr noundef %467) #8
  %469 = call i32 @isatty(i32 noundef %468) #8
  %470 = icmp ne i32 %469, 0
  br i1 %470, label %471, label %488

471:                                              ; preds = %466
  %472 = load i32, ptr %13, align 4, !tbaa !5
  %473 = call ptr @__errno_location() #9
  store i32 %472, ptr %473, align 4, !tbaa !5
  %474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %475 = load i32, ptr @test_count, align 4, !tbaa !5
  %476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %477 = load i32, ptr %476, align 4, !tbaa !5
  %478 = call ptr @s2n_strerror(i32 noundef %477, ptr noundef @.str.4)
  %479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %480 = load i32, ptr %479, align 4, !tbaa !5
  %481 = call ptr @s2n_strerror_debug(i32 noundef %480, ptr noundef @.str.4)
  %482 = call ptr @__errno_location() #9
  %483 = load i32, ptr %482, align 4, !tbaa !5
  %484 = call ptr @strerror(i32 noundef %483) #8
  %485 = call ptr @__errno_location() #9
  %486 = load i32, ptr %485, align 4, !tbaa !5
  %487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %474, ptr noundef @.str.2, i32 noundef %475, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 48, ptr noundef %478, ptr noundef %481, ptr noundef %484, i32 noundef %486) #8
  br label %505

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

505:                                              ; preds = %488, %471
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  br label %506

506:                                              ; preds = %505
  br label %507

507:                                              ; preds = %506
  call void @exit(i32 noundef 1) #10
  unreachable

508:                                              ; No predecessors!
  br label %509

509:                                              ; preds = %508
  br label %510

510:                                              ; preds = %509, %449
  br label %511

511:                                              ; preds = %510
  br label %512

512:                                              ; preds = %511
  br label %513

513:                                              ; preds = %512
  %514 = load i32, ptr @test_count, align 4, !tbaa !5
  %515 = add nsw i32 %514, 1
  store i32 %515, ptr @test_count, align 4, !tbaa !5
  %516 = load ptr, ptr %9, align 8, !tbaa !9
  %517 = call i32 @s2n_handshake_type_set_flag(ptr noundef %516, i32 noundef 2)
  %518 = getelementptr inbounds %struct.s2n_result, ptr %14, i32 0, i32 0
  store i32 %517, ptr %518, align 4
  %519 = getelementptr inbounds %struct.s2n_result, ptr %14, i32 0, i32 0
  %520 = load i32, ptr %519, align 4
  %521 = call zeroext i1 @s2n_result_is_ok(i32 %520)
  br i1 %521, label %575, label %522

522:                                              ; preds = %513
  br label %523

523:                                              ; preds = %522
  br label %524

524:                                              ; preds = %523
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  %525 = call ptr @__errno_location() #9
  %526 = load i32, ptr %525, align 4, !tbaa !5
  store i32 %526, ptr %15, align 4, !tbaa !5
  %527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %528 = call i32 @s2n_print_stacktrace(ptr noundef %527)
  %529 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %530 = trunc i8 %529 to i1
  br i1 %530, label %531, label %553

531:                                              ; preds = %524
  %532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %533 = call i32 @fileno(ptr noundef %532) #8
  %534 = call i32 @isatty(i32 noundef %533) #8
  %535 = icmp ne i32 %534, 0
  br i1 %535, label %536, label %553

536:                                              ; preds = %531
  %537 = load i32, ptr %15, align 4, !tbaa !5
  %538 = call ptr @__errno_location() #9
  store i32 %537, ptr %538, align 4, !tbaa !5
  %539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %540 = load i32, ptr @test_count, align 4, !tbaa !5
  %541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %542 = load i32, ptr %541, align 4, !tbaa !5
  %543 = call ptr @s2n_strerror(i32 noundef %542, ptr noundef @.str.4)
  %544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %545 = load i32, ptr %544, align 4, !tbaa !5
  %546 = call ptr @s2n_strerror_debug(i32 noundef %545, ptr noundef @.str.4)
  %547 = call ptr @__errno_location() #9
  %548 = load i32, ptr %547, align 4, !tbaa !5
  %549 = call ptr @strerror(i32 noundef %548) #8
  %550 = call ptr @__errno_location() #9
  %551 = load i32, ptr %550, align 4, !tbaa !5
  %552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %539, ptr noundef @.str.2, i32 noundef %540, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 50, ptr noundef %543, ptr noundef %546, ptr noundef %549, i32 noundef %551) #8
  br label %570

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

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

571:                                              ; preds = %570
  br label %572

572:                                              ; preds = %571
  call void @exit(i32 noundef 1) #10
  unreachable

573:                                              ; No predecessors!
  br label %574

574:                                              ; preds = %573
  br label %575

575:                                              ; preds = %574, %513
  br label %576

576:                                              ; preds = %575
  br label %577

577:                                              ; preds = %576
  br label %578

578:                                              ; preds = %577
  %579 = load i32, ptr @test_count, align 4, !tbaa !5
  %580 = add nsw i32 %579, 1
  store i32 %580, ptr @test_count, align 4, !tbaa !5
  %581 = load ptr, ptr %9, align 8, !tbaa !9
  %582 = call i32 @s2n_handshake_type_reset(ptr noundef %581)
  %583 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  store i32 %582, ptr %583, align 4
  %584 = getelementptr inbounds %struct.s2n_result, ptr %16, i32 0, i32 0
  %585 = load i32, ptr %584, align 4
  %586 = call zeroext i1 @s2n_result_is_ok(i32 %585)
  br i1 %586, label %640, label %587

587:                                              ; preds = %578
  br label %588

588:                                              ; preds = %587
  br label %589

589:                                              ; preds = %588
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  %590 = call ptr @__errno_location() #9
  %591 = load i32, ptr %590, align 4, !tbaa !5
  store i32 %591, ptr %17, align 4, !tbaa !5
  %592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %593 = call i32 @s2n_print_stacktrace(ptr noundef %592)
  %594 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %595 = trunc i8 %594 to i1
  br i1 %595, label %596, label %618

596:                                              ; preds = %589
  %597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %598 = call i32 @fileno(ptr noundef %597) #8
  %599 = call i32 @isatty(i32 noundef %598) #8
  %600 = icmp ne i32 %599, 0
  br i1 %600, label %601, label %618

601:                                              ; preds = %596
  %602 = load i32, ptr %17, align 4, !tbaa !5
  %603 = call ptr @__errno_location() #9
  store i32 %602, ptr %603, align 4, !tbaa !5
  %604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %605 = load i32, ptr @test_count, align 4, !tbaa !5
  %606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %607 = load i32, ptr %606, align 4, !tbaa !5
  %608 = call ptr @s2n_strerror(i32 noundef %607, ptr noundef @.str.4)
  %609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %610 = load i32, ptr %609, align 4, !tbaa !5
  %611 = call ptr @s2n_strerror_debug(i32 noundef %610, ptr noundef @.str.4)
  %612 = call ptr @__errno_location() #9
  %613 = load i32, ptr %612, align 4, !tbaa !5
  %614 = call ptr @strerror(i32 noundef %613) #8
  %615 = call ptr @__errno_location() #9
  %616 = load i32, ptr %615, align 4, !tbaa !5
  %617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %604, ptr noundef @.str.2, i32 noundef %605, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 51, ptr noundef %608, ptr noundef %611, ptr noundef %614, i32 noundef %616) #8
  br label %635

618:                                              ; preds = %596, %589
  %619 = load i32, ptr %17, align 4, !tbaa !5
  %620 = call ptr @__errno_location() #9
  store i32 %619, ptr %620, align 4, !tbaa !5
  %621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %622 = load i32, ptr @test_count, align 4, !tbaa !5
  %623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %624 = load i32, ptr %623, align 4, !tbaa !5
  %625 = call ptr @s2n_strerror(i32 noundef %624, ptr noundef @.str.4)
  %626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %627 = load i32, ptr %626, align 4, !tbaa !5
  %628 = call ptr @s2n_strerror_debug(i32 noundef %627, ptr noundef @.str.4)
  %629 = call ptr @__errno_location() #9
  %630 = load i32, ptr %629, align 4, !tbaa !5
  %631 = call ptr @strerror(i32 noundef %630) #8
  %632 = call ptr @__errno_location() #9
  %633 = load i32, ptr %632, align 4, !tbaa !5
  %634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %621, ptr noundef @.str.5, i32 noundef %622, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 51, ptr noundef %625, ptr noundef %628, ptr noundef %631, i32 noundef %633) #8
  br label %635

635:                                              ; preds = %618, %601
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  br label %636

636:                                              ; preds = %635
  br label %637

637:                                              ; preds = %636
  call void @exit(i32 noundef 1) #10
  unreachable

638:                                              ; No predecessors!
  br label %639

639:                                              ; preds = %638
  br label %640

640:                                              ; preds = %639, %578
  br label %641

641:                                              ; preds = %640
  br label %642

642:                                              ; preds = %641
  br label %643

643:                                              ; preds = %642
  %644 = load i32, ptr @test_count, align 4, !tbaa !5
  %645 = add nsw i32 %644, 1
  store i32 %645, ptr @test_count, align 4, !tbaa !5
  %646 = load ptr, ptr %9, align 8, !tbaa !9
  %647 = getelementptr inbounds %struct.s2n_connection, ptr %646, i32 0, i32 52
  %648 = getelementptr inbounds %struct.s2n_handshake, ptr %647, i32 0, i32 6
  %649 = load i32, ptr %648, align 4, !tbaa !15
  %650 = icmp eq i32 %649, 0
  br i1 %650, label %704, label %651

651:                                              ; preds = %643
  br label %652

652:                                              ; preds = %651
  br label %653

653:                                              ; preds = %652
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #8
  %654 = call ptr @__errno_location() #9
  %655 = load i32, ptr %654, align 4, !tbaa !5
  store i32 %655, ptr %18, align 4, !tbaa !5
  %656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %657 = call i32 @s2n_print_stacktrace(ptr noundef %656)
  %658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %659 = trunc i8 %658 to i1
  br i1 %659, label %660, label %682

660:                                              ; preds = %653
  %661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %662 = call i32 @fileno(ptr noundef %661) #8
  %663 = call i32 @isatty(i32 noundef %662) #8
  %664 = icmp ne i32 %663, 0
  br i1 %664, label %665, label %682

665:                                              ; preds = %660
  %666 = load i32, ptr %18, align 4, !tbaa !5
  %667 = call ptr @__errno_location() #9
  store i32 %666, ptr %667, align 4, !tbaa !5
  %668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %669 = load i32, ptr @test_count, align 4, !tbaa !5
  %670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %671 = load i32, ptr %670, align 4, !tbaa !5
  %672 = call ptr @s2n_strerror(i32 noundef %671, ptr noundef @.str.4)
  %673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %674 = load i32, ptr %673, align 4, !tbaa !5
  %675 = call ptr @s2n_strerror_debug(i32 noundef %674, ptr noundef @.str.4)
  %676 = call ptr @__errno_location() #9
  %677 = load i32, ptr %676, align 4, !tbaa !5
  %678 = call ptr @strerror(i32 noundef %677) #8
  %679 = call ptr @__errno_location() #9
  %680 = load i32, ptr %679, align 4, !tbaa !5
  %681 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %668, ptr noundef @.str.2, i32 noundef %669, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 52, ptr noundef %672, ptr noundef %675, ptr noundef %678, i32 noundef %680) #8
  br label %699

682:                                              ; preds = %660, %653
  %683 = load i32, ptr %18, align 4, !tbaa !5
  %684 = call ptr @__errno_location() #9
  store i32 %683, ptr %684, align 4, !tbaa !5
  %685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %686 = load i32, ptr @test_count, align 4, !tbaa !5
  %687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %688 = load i32, ptr %687, align 4, !tbaa !5
  %689 = call ptr @s2n_strerror(i32 noundef %688, ptr noundef @.str.4)
  %690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %691 = load i32, ptr %690, align 4, !tbaa !5
  %692 = call ptr @s2n_strerror_debug(i32 noundef %691, ptr noundef @.str.4)
  %693 = call ptr @__errno_location() #9
  %694 = load i32, ptr %693, align 4, !tbaa !5
  %695 = call ptr @strerror(i32 noundef %694) #8
  %696 = call ptr @__errno_location() #9
  %697 = load i32, ptr %696, align 4, !tbaa !5
  %698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %685, ptr noundef @.str.5, i32 noundef %686, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 52, ptr noundef %689, ptr noundef %692, ptr noundef %695, i32 noundef %697) #8
  br label %699

699:                                              ; preds = %682, %665
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  br label %700

700:                                              ; preds = %699
  br label %701

701:                                              ; preds = %700
  call void @exit(i32 noundef 1) #10
  unreachable

702:                                              ; No predecessors!
  br label %703

703:                                              ; preds = %702
  br label %704

704:                                              ; preds = %703, %643
  br label %705

705:                                              ; preds = %704
  br label %706

706:                                              ; preds = %705
  br label %707

707:                                              ; preds = %706
  %708 = load i32, ptr @test_count, align 4, !tbaa !5
  %709 = add nsw i32 %708, 1
  store i32 %709, ptr @test_count, align 4, !tbaa !5
  %710 = load ptr, ptr %9, align 8, !tbaa !9
  %711 = call i32 @s2n_handshake_type_set_flag(ptr noundef %710, i32 noundef 65535)
  %712 = getelementptr inbounds %struct.s2n_result, ptr %19, i32 0, i32 0
  store i32 %711, ptr %712, align 4
  %713 = getelementptr inbounds %struct.s2n_result, ptr %19, i32 0, i32 0
  %714 = load i32, ptr %713, align 4
  %715 = call zeroext i1 @s2n_result_is_ok(i32 %714)
  br i1 %715, label %769, label %716

716:                                              ; preds = %707
  br label %717

717:                                              ; preds = %716
  br label %718

718:                                              ; preds = %717
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #8
  %719 = call ptr @__errno_location() #9
  %720 = load i32, ptr %719, align 4, !tbaa !5
  store i32 %720, ptr %20, align 4, !tbaa !5
  %721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %722 = call i32 @s2n_print_stacktrace(ptr noundef %721)
  %723 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %724 = trunc i8 %723 to i1
  br i1 %724, label %725, label %747

725:                                              ; preds = %718
  %726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %727 = call i32 @fileno(ptr noundef %726) #8
  %728 = call i32 @isatty(i32 noundef %727) #8
  %729 = icmp ne i32 %728, 0
  br i1 %729, label %730, label %747

730:                                              ; preds = %725
  %731 = load i32, ptr %20, align 4, !tbaa !5
  %732 = call ptr @__errno_location() #9
  store i32 %731, ptr %732, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = load i32, ptr @test_count, align 4, !tbaa !5
  %735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror(i32 noundef %736, ptr noundef @.str.4)
  %738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call ptr @s2n_strerror_debug(i32 noundef %739, ptr noundef @.str.4)
  %741 = call ptr @__errno_location() #9
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call ptr @strerror(i32 noundef %742) #8
  %744 = call ptr @__errno_location() #9
  %745 = load i32, ptr %744, align 4, !tbaa !5
  %746 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %733, ptr noundef @.str.2, i32 noundef %734, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 54, ptr noundef %737, ptr noundef %740, ptr noundef %743, i32 noundef %745) #8
  br label %764

747:                                              ; preds = %725, %718
  %748 = load i32, ptr %20, align 4, !tbaa !5
  %749 = call ptr @__errno_location() #9
  store i32 %748, ptr %749, align 4, !tbaa !5
  %750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %751 = load i32, ptr @test_count, align 4, !tbaa !5
  %752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %753 = load i32, ptr %752, align 4, !tbaa !5
  %754 = call ptr @s2n_strerror(i32 noundef %753, ptr noundef @.str.4)
  %755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %756 = load i32, ptr %755, align 4, !tbaa !5
  %757 = call ptr @s2n_strerror_debug(i32 noundef %756, ptr noundef @.str.4)
  %758 = call ptr @__errno_location() #9
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = call ptr @strerror(i32 noundef %759) #8
  %761 = call ptr @__errno_location() #9
  %762 = load i32, ptr %761, align 4, !tbaa !5
  %763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %750, ptr noundef @.str.5, i32 noundef %751, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 54, ptr noundef %754, ptr noundef %757, ptr noundef %760, i32 noundef %762) #8
  br label %764

764:                                              ; preds = %747, %730
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  br label %765

765:                                              ; preds = %764
  br label %766

766:                                              ; preds = %765
  call void @exit(i32 noundef 1) #10
  unreachable

767:                                              ; No predecessors!
  br label %768

768:                                              ; preds = %767
  br label %769

769:                                              ; preds = %768, %707
  br label %770

770:                                              ; preds = %769
  br label %771

771:                                              ; preds = %770
  br label %772

772:                                              ; preds = %771
  %773 = load i32, ptr @test_count, align 4, !tbaa !5
  %774 = add nsw i32 %773, 1
  store i32 %774, ptr @test_count, align 4, !tbaa !5
  %775 = load ptr, ptr %9, align 8, !tbaa !9
  %776 = call i32 @s2n_handshake_type_reset(ptr noundef %775)
  %777 = getelementptr inbounds %struct.s2n_result, ptr %21, i32 0, i32 0
  store i32 %776, ptr %777, align 4
  %778 = getelementptr inbounds %struct.s2n_result, ptr %21, i32 0, i32 0
  %779 = load i32, ptr %778, align 4
  %780 = call zeroext i1 @s2n_result_is_ok(i32 %779)
  br i1 %780, label %834, label %781

781:                                              ; preds = %772
  br label %782

782:                                              ; preds = %781
  br label %783

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

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

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

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

829:                                              ; preds = %812, %795
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %830

830:                                              ; preds = %829
  br label %831

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

832:                                              ; No predecessors!
  br label %833

833:                                              ; preds = %832
  br label %834

834:                                              ; preds = %833, %772
  br label %835

835:                                              ; preds = %834
  br label %836

836:                                              ; preds = %835
  br label %837

837:                                              ; preds = %836
  %838 = load i32, ptr @test_count, align 4, !tbaa !5
  %839 = add nsw i32 %838, 1
  store i32 %839, ptr @test_count, align 4, !tbaa !5
  %840 = load ptr, ptr %9, align 8, !tbaa !9
  %841 = getelementptr inbounds %struct.s2n_connection, ptr %840, i32 0, i32 52
  %842 = getelementptr inbounds %struct.s2n_handshake, ptr %841, i32 0, i32 6
  %843 = load i32, ptr %842, align 4, !tbaa !15
  %844 = icmp eq i32 %843, 0
  br i1 %844, label %898, label %845

845:                                              ; preds = %837
  br label %846

846:                                              ; preds = %845
  br label %847

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

854:                                              ; preds = %847
  %855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %856 = call i32 @fileno(ptr noundef %855) #8
  %857 = call i32 @isatty(i32 noundef %856) #8
  %858 = icmp ne i32 %857, 0
  br i1 %858, label %859, label %876

859:                                              ; preds = %854
  %860 = load i32, ptr %23, align 4, !tbaa !5
  %861 = call ptr @__errno_location() #9
  store i32 %860, ptr %861, align 4, !tbaa !5
  %862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %863 = load i32, ptr @test_count, align 4, !tbaa !5
  %864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %865 = load i32, ptr %864, align 4, !tbaa !5
  %866 = call ptr @s2n_strerror(i32 noundef %865, ptr noundef @.str.4)
  %867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %868 = load i32, ptr %867, align 4, !tbaa !5
  %869 = call ptr @s2n_strerror_debug(i32 noundef %868, ptr noundef @.str.4)
  %870 = call ptr @__errno_location() #9
  %871 = load i32, ptr %870, align 4, !tbaa !5
  %872 = call ptr @strerror(i32 noundef %871) #8
  %873 = call ptr @__errno_location() #9
  %874 = load i32, ptr %873, align 4, !tbaa !5
  %875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %862, ptr noundef @.str.2, i32 noundef %863, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 56, ptr noundef %866, ptr noundef %869, ptr noundef %872, i32 noundef %874) #8
  br label %893

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

893:                                              ; preds = %876, %859
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %894

894:                                              ; preds = %893
  br label %895

895:                                              ; preds = %894
  call void @exit(i32 noundef 1) #10
  unreachable

896:                                              ; No predecessors!
  br label %897

897:                                              ; preds = %896
  br label %898

898:                                              ; preds = %897, %837
  br label %899

899:                                              ; preds = %898
  br label %900

900:                                              ; preds = %899
  br label %901

901:                                              ; preds = %900
  %902 = load i32, ptr @test_count, align 4, !tbaa !5
  %903 = add nsw i32 %902, 1
  store i32 %903, ptr @test_count, align 4, !tbaa !5
  %904 = load ptr, ptr %9, align 8, !tbaa !9
  %905 = call i32 @s2n_handshake_type_set_flag(ptr noundef %904, i32 noundef 0)
  %906 = getelementptr inbounds %struct.s2n_result, ptr %24, i32 0, i32 0
  store i32 %905, ptr %906, align 4
  %907 = getelementptr inbounds %struct.s2n_result, ptr %24, i32 0, i32 0
  %908 = load i32, ptr %907, align 4
  %909 = call zeroext i1 @s2n_result_is_ok(i32 %908)
  br i1 %909, label %963, label %910

910:                                              ; preds = %901
  br label %911

911:                                              ; preds = %910
  br label %912

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

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

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

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

958:                                              ; preds = %941, %924
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  br label %959

959:                                              ; preds = %958
  br label %960

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

961:                                              ; No predecessors!
  br label %962

962:                                              ; preds = %961
  br label %963

963:                                              ; preds = %962, %901
  br label %964

964:                                              ; preds = %963
  br label %965

965:                                              ; preds = %964
  br label %966

966:                                              ; preds = %965
  %967 = load i32, ptr @test_count, align 4, !tbaa !5
  %968 = add nsw i32 %967, 1
  store i32 %968, ptr @test_count, align 4, !tbaa !5
  %969 = load ptr, ptr %9, align 8, !tbaa !9
  %970 = call i32 @s2n_handshake_type_reset(ptr noundef %969)
  %971 = getelementptr inbounds %struct.s2n_result, ptr %26, i32 0, i32 0
  store i32 %970, ptr %971, align 4
  %972 = getelementptr inbounds %struct.s2n_result, ptr %26, i32 0, i32 0
  %973 = load i32, ptr %972, align 4
  %974 = call zeroext i1 @s2n_result_is_ok(i32 %973)
  br i1 %974, label %1028, label %975

975:                                              ; preds = %966
  br label %976

976:                                              ; preds = %975
  br label %977

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

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

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

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

1023:                                             ; preds = %1006, %989
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %1024

1024:                                             ; preds = %1023
  br label %1025

1025:                                             ; preds = %1024
  call void @exit(i32 noundef 1) #10
  unreachable

1026:                                             ; No predecessors!
  br label %1027

1027:                                             ; preds = %1026
  br label %1028

1028:                                             ; preds = %1027, %966
  br label %1029

1029:                                             ; preds = %1028
  br label %1030

1030:                                             ; preds = %1029
  br label %1031

1031:                                             ; preds = %1030
  %1032 = load i32, ptr @test_count, align 4, !tbaa !5
  %1033 = add nsw i32 %1032, 1
  store i32 %1033, ptr @test_count, align 4, !tbaa !5
  %1034 = load ptr, ptr %9, align 8, !tbaa !9
  %1035 = getelementptr inbounds %struct.s2n_connection, ptr %1034, i32 0, i32 52
  %1036 = getelementptr inbounds %struct.s2n_handshake, ptr %1035, i32 0, i32 6
  %1037 = load i32, ptr %1036, align 4, !tbaa !15
  %1038 = icmp eq i32 %1037, 0
  br i1 %1038, label %1092, label %1039

1039:                                             ; preds = %1031
  br label %1040

1040:                                             ; preds = %1039
  br label %1041

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

1048:                                             ; preds = %1041
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = call i32 @fileno(ptr noundef %1049) #8
  %1051 = call i32 @isatty(i32 noundef %1050) #8
  %1052 = icmp ne i32 %1051, 0
  br i1 %1052, label %1053, label %1070

1053:                                             ; preds = %1048
  %1054 = load i32, ptr %28, align 4, !tbaa !5
  %1055 = call ptr @__errno_location() #9
  store i32 %1054, ptr %1055, align 4, !tbaa !5
  %1056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1057 = load i32, ptr @test_count, align 4, !tbaa !5
  %1058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1059 = load i32, ptr %1058, align 4, !tbaa !5
  %1060 = call ptr @s2n_strerror(i32 noundef %1059, ptr noundef @.str.4)
  %1061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1062 = load i32, ptr %1061, align 4, !tbaa !5
  %1063 = call ptr @s2n_strerror_debug(i32 noundef %1062, ptr noundef @.str.4)
  %1064 = call ptr @__errno_location() #9
  %1065 = load i32, ptr %1064, align 4, !tbaa !5
  %1066 = call ptr @strerror(i32 noundef %1065) #8
  %1067 = call ptr @__errno_location() #9
  %1068 = load i32, ptr %1067, align 4, !tbaa !5
  %1069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1056, ptr noundef @.str.2, i32 noundef %1057, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1060, ptr noundef %1063, ptr noundef %1066, i32 noundef %1068) #8
  br label %1087

1070:                                             ; preds = %1048, %1041
  %1071 = load i32, ptr %28, align 4, !tbaa !5
  %1072 = call ptr @__errno_location() #9
  store i32 %1071, ptr %1072, align 4, !tbaa !5
  %1073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1074 = load i32, ptr @test_count, align 4, !tbaa !5
  %1075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1076 = load i32, ptr %1075, align 4, !tbaa !5
  %1077 = call ptr @s2n_strerror(i32 noundef %1076, ptr noundef @.str.4)
  %1078 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1079 = load i32, ptr %1078, align 4, !tbaa !5
  %1080 = call ptr @s2n_strerror_debug(i32 noundef %1079, ptr noundef @.str.4)
  %1081 = call ptr @__errno_location() #9
  %1082 = load i32, ptr %1081, align 4, !tbaa !5
  %1083 = call ptr @strerror(i32 noundef %1082) #8
  %1084 = call ptr @__errno_location() #9
  %1085 = load i32, ptr %1084, align 4, !tbaa !5
  %1086 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1073, ptr noundef @.str.5, i32 noundef %1074, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 60, ptr noundef %1077, ptr noundef %1080, ptr noundef %1083, i32 noundef %1085) #8
  br label %1087

1087:                                             ; preds = %1070, %1053
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %1088

1088:                                             ; preds = %1087
  br label %1089

1089:                                             ; preds = %1088
  call void @exit(i32 noundef 1) #10
  unreachable

1090:                                             ; No predecessors!
  br label %1091

1091:                                             ; preds = %1090
  br label %1092

1092:                                             ; preds = %1091, %1031
  br label %1093

1093:                                             ; preds = %1092
  br label %1094

1094:                                             ; preds = %1093
  br label %1095

1095:                                             ; preds = %1094
  %1096 = load i32, ptr @test_count, align 4, !tbaa !5
  %1097 = add nsw i32 %1096, 1
  store i32 %1097, ptr @test_count, align 4, !tbaa !5
  %1098 = load ptr, ptr %9, align 8, !tbaa !9
  %1099 = call i32 @s2n_connection_free(ptr noundef %1098)
  %1100 = icmp eq i32 %1099, -1
  br i1 %1100, label %1101, label %1154

1101:                                             ; preds = %1095
  br label %1102

1102:                                             ; preds = %1101
  br label %1103

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

1110:                                             ; preds = %1103
  %1111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1112 = call i32 @fileno(ptr noundef %1111) #8
  %1113 = call i32 @isatty(i32 noundef %1112) #8
  %1114 = icmp ne i32 %1113, 0
  br i1 %1114, label %1115, label %1132

1115:                                             ; preds = %1110
  %1116 = load i32, ptr %29, align 4, !tbaa !5
  %1117 = call ptr @__errno_location() #9
  store i32 %1116, ptr %1117, align 4, !tbaa !5
  %1118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1119 = load i32, ptr @test_count, align 4, !tbaa !5
  %1120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1121 = load i32, ptr %1120, align 4, !tbaa !5
  %1122 = call ptr @s2n_strerror(i32 noundef %1121, ptr noundef @.str.4)
  %1123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1124 = load i32, ptr %1123, align 4, !tbaa !5
  %1125 = call ptr @s2n_strerror_debug(i32 noundef %1124, ptr noundef @.str.4)
  %1126 = call ptr @__errno_location() #9
  %1127 = load i32, ptr %1126, align 4, !tbaa !5
  %1128 = call ptr @strerror(i32 noundef %1127) #8
  %1129 = call ptr @__errno_location() #9
  %1130 = load i32, ptr %1129, align 4, !tbaa !5
  %1131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1118, ptr noundef @.str.2, i32 noundef %1119, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 62, ptr noundef %1122, ptr noundef %1125, ptr noundef %1128, i32 noundef %1130) #8
  br label %1149

1132:                                             ; preds = %1110, %1103
  %1133 = load i32, ptr %29, align 4, !tbaa !5
  %1134 = call ptr @__errno_location() #9
  store i32 %1133, ptr %1134, align 4, !tbaa !5
  %1135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1136 = load i32, ptr @test_count, align 4, !tbaa !5
  %1137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1138 = load i32, ptr %1137, align 4, !tbaa !5
  %1139 = call ptr @s2n_strerror(i32 noundef %1138, ptr noundef @.str.4)
  %1140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1141 = load i32, ptr %1140, align 4, !tbaa !5
  %1142 = call ptr @s2n_strerror_debug(i32 noundef %1141, ptr noundef @.str.4)
  %1143 = call ptr @__errno_location() #9
  %1144 = load i32, ptr %1143, align 4, !tbaa !5
  %1145 = call ptr @strerror(i32 noundef %1144) #8
  %1146 = call ptr @__errno_location() #9
  %1147 = load i32, ptr %1146, align 4, !tbaa !5
  %1148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1135, ptr noundef @.str.5, i32 noundef %1136, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 62, ptr noundef %1139, ptr noundef %1142, ptr noundef %1145, i32 noundef %1147) #8
  br label %1149

1149:                                             ; preds = %1132, %1115
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %1150

1150:                                             ; preds = %1149
  br label %1151

1151:                                             ; preds = %1150
  call void @exit(i32 noundef 1) #10
  unreachable

1152:                                             ; No predecessors!
  br label %1153

1153:                                             ; preds = %1152
  br label %1154

1154:                                             ; preds = %1153, %1095
  br label %1155

1155:                                             ; preds = %1154
  br label %1156

1156:                                             ; preds = %1155
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  br label %1157

1157:                                             ; preds = %1156
  br label %1158

1158:                                             ; preds = %1157
  br label %1159

1159:                                             ; preds = %1158
  %1160 = load i32, ptr @test_count, align 4, !tbaa !5
  %1161 = add nsw i32 %1160, 1
  store i32 %1161, ptr @test_count, align 4, !tbaa !5
  %1162 = call i32 @s2n_handshake_type_set_flag(ptr noundef null, i32 noundef 0)
  %1163 = getelementptr inbounds %struct.s2n_result, ptr %30, i32 0, i32 0
  store i32 %1162, ptr %1163, align 4
  %1164 = getelementptr inbounds %struct.s2n_result, ptr %30, i32 0, i32 0
  %1165 = load i32, ptr %1164, align 4
  %1166 = call zeroext i1 @s2n_result_is_error(i32 %1165)
  br i1 %1166, label %1218, label %1167

1167:                                             ; preds = %1159
  br label %1168

1168:                                             ; preds = %1167
  br label %1169

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

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

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

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

1215:                                             ; preds = %1198, %1181
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  br label %1216

1216:                                             ; preds = %1215
  call void @exit(i32 noundef 1) #10
  unreachable

1217:                                             ; No predecessors!
  br label %1218

1218:                                             ; preds = %1217, %1159
  br label %1219

1219:                                             ; preds = %1218
  br label %1220

1220:                                             ; preds = %1219
  %1221 = load i32, ptr @test_count, align 4, !tbaa !5
  %1222 = add nsw i32 %1221, 1
  store i32 %1222, ptr @test_count, align 4, !tbaa !5
  %1223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1224 = load i32, ptr %1223, align 4, !tbaa !5
  %1225 = icmp eq i32 %1224, 402653193
  br i1 %1225, label %1277, label %1226

1226:                                             ; preds = %1220
  br label %1227

1227:                                             ; preds = %1226
  br label %1228

1228:                                             ; preds = %1227
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  %1229 = call ptr @__errno_location() #9
  %1230 = load i32, ptr %1229, align 4, !tbaa !5
  store i32 %1230, ptr %32, align 4, !tbaa !5
  %1231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1232 = call i32 @s2n_print_stacktrace(ptr noundef %1231)
  %1233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1234 = trunc i8 %1233 to i1
  br i1 %1234, label %1235, label %1257

1235:                                             ; preds = %1228
  %1236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1237 = call i32 @fileno(ptr noundef %1236) #8
  %1238 = call i32 @isatty(i32 noundef %1237) #8
  %1239 = icmp ne i32 %1238, 0
  br i1 %1239, label %1240, label %1257

1240:                                             ; preds = %1235
  %1241 = load i32, ptr %32, align 4, !tbaa !5
  %1242 = call ptr @__errno_location() #9
  store i32 %1241, ptr %1242, align 4, !tbaa !5
  %1243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1244 = load i32, ptr @test_count, align 4, !tbaa !5
  %1245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1246 = load i32, ptr %1245, align 4, !tbaa !5
  %1247 = call ptr @s2n_strerror(i32 noundef %1246, ptr noundef @.str.4)
  %1248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1249 = load i32, ptr %1248, align 4, !tbaa !5
  %1250 = call ptr @s2n_strerror_debug(i32 noundef %1249, ptr noundef @.str.4)
  %1251 = call ptr @__errno_location() #9
  %1252 = load i32, ptr %1251, align 4, !tbaa !5
  %1253 = call ptr @strerror(i32 noundef %1252) #8
  %1254 = call ptr @__errno_location() #9
  %1255 = load i32, ptr %1254, align 4, !tbaa !5
  %1256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1243, ptr noundef @.str.2, i32 noundef %1244, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1247, ptr noundef %1250, ptr noundef %1253, i32 noundef %1255) #8
  br label %1274

1257:                                             ; preds = %1235, %1228
  %1258 = load i32, ptr %32, align 4, !tbaa !5
  %1259 = call ptr @__errno_location() #9
  store i32 %1258, ptr %1259, align 4, !tbaa !5
  %1260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1261 = load i32, ptr @test_count, align 4, !tbaa !5
  %1262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1263 = load i32, ptr %1262, align 4, !tbaa !5
  %1264 = call ptr @s2n_strerror(i32 noundef %1263, ptr noundef @.str.4)
  %1265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1266 = load i32, ptr %1265, align 4, !tbaa !5
  %1267 = call ptr @s2n_strerror_debug(i32 noundef %1266, ptr noundef @.str.4)
  %1268 = call ptr @__errno_location() #9
  %1269 = load i32, ptr %1268, align 4, !tbaa !5
  %1270 = call ptr @strerror(i32 noundef %1269) #8
  %1271 = call ptr @__errno_location() #9
  %1272 = load i32, ptr %1271, align 4, !tbaa !5
  %1273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1260, ptr noundef @.str.5, i32 noundef %1261, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1264, ptr noundef %1267, ptr noundef %1270, i32 noundef %1272) #8
  br label %1274

1274:                                             ; preds = %1257, %1240
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %1275

1275:                                             ; preds = %1274
  call void @exit(i32 noundef 1) #10
  unreachable

1276:                                             ; No predecessors!
  br label %1277

1277:                                             ; preds = %1276, %1220
  br label %1278

1278:                                             ; preds = %1277
  br label %1279

1279:                                             ; preds = %1278
  %1280 = load i32, ptr @test_count, align 4, !tbaa !5
  %1281 = add nsw i32 %1280, 1
  store i32 %1281, ptr @test_count, align 4, !tbaa !5
  %1282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1283 = load i32, ptr %1282, align 4, !tbaa !5
  %1284 = call ptr @s2n_strerror_debug(i32 noundef %1283, ptr noundef @.str.4)
  %1285 = icmp eq ptr %1284, null
  br i1 %1285, label %1286, label %1337

1286:                                             ; preds = %1279
  br label %1287

1287:                                             ; preds = %1286
  br label %1288

1288:                                             ; preds = %1287
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  %1289 = call ptr @__errno_location() #9
  %1290 = load i32, ptr %1289, align 4, !tbaa !5
  store i32 %1290, ptr %33, align 4, !tbaa !5
  %1291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1292 = call i32 @s2n_print_stacktrace(ptr noundef %1291)
  %1293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1294 = trunc i8 %1293 to i1
  br i1 %1294, label %1295, label %1317

1295:                                             ; preds = %1288
  %1296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1297 = call i32 @fileno(ptr noundef %1296) #8
  %1298 = call i32 @isatty(i32 noundef %1297) #8
  %1299 = icmp ne i32 %1298, 0
  br i1 %1299, label %1300, label %1317

1300:                                             ; preds = %1295
  %1301 = load i32, ptr %33, align 4, !tbaa !5
  %1302 = call ptr @__errno_location() #9
  store i32 %1301, ptr %1302, align 4, !tbaa !5
  %1303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1304 = load i32, ptr @test_count, align 4, !tbaa !5
  %1305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1306 = load i32, ptr %1305, align 4, !tbaa !5
  %1307 = call ptr @s2n_strerror(i32 noundef %1306, ptr noundef @.str.4)
  %1308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1309 = load i32, ptr %1308, align 4, !tbaa !5
  %1310 = call ptr @s2n_strerror_debug(i32 noundef %1309, ptr noundef @.str.4)
  %1311 = call ptr @__errno_location() #9
  %1312 = load i32, ptr %1311, align 4, !tbaa !5
  %1313 = call ptr @strerror(i32 noundef %1312) #8
  %1314 = call ptr @__errno_location() #9
  %1315 = load i32, ptr %1314, align 4, !tbaa !5
  %1316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1303, ptr noundef @.str.2, i32 noundef %1304, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1307, ptr noundef %1310, ptr noundef %1313, i32 noundef %1315) #8
  br label %1334

1317:                                             ; preds = %1295, %1288
  %1318 = load i32, ptr %33, align 4, !tbaa !5
  %1319 = call ptr @__errno_location() #9
  store i32 %1318, ptr %1319, align 4, !tbaa !5
  %1320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1321 = load i32, ptr @test_count, align 4, !tbaa !5
  %1322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1323 = load i32, ptr %1322, align 4, !tbaa !5
  %1324 = call ptr @s2n_strerror(i32 noundef %1323, ptr noundef @.str.4)
  %1325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1326 = load i32, ptr %1325, align 4, !tbaa !5
  %1327 = call ptr @s2n_strerror_debug(i32 noundef %1326, ptr noundef @.str.4)
  %1328 = call ptr @__errno_location() #9
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  %1330 = call ptr @strerror(i32 noundef %1329) #8
  %1331 = call ptr @__errno_location() #9
  %1332 = load i32, ptr %1331, align 4, !tbaa !5
  %1333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1320, ptr noundef @.str.5, i32 noundef %1321, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 68, ptr noundef %1324, ptr noundef %1327, ptr noundef %1330, i32 noundef %1332) #8
  br label %1334

1334:                                             ; preds = %1317, %1300
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %1335

1335:                                             ; preds = %1334
  call void @exit(i32 noundef 1) #10
  unreachable

1336:                                             ; No predecessors!
  br label %1337

1337:                                             ; preds = %1336, %1279
  br label %1338

1338:                                             ; preds = %1337
  br label %1339

1339:                                             ; preds = %1338
  br label %1340

1340:                                             ; preds = %1339
  %1341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1341, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1342 = call ptr @__errno_location() #9
  store i32 0, ptr %1342, align 4, !tbaa !5
  br label %1343

1343:                                             ; preds = %1340
  br label %1344

1344:                                             ; preds = %1343
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  store i32 1, ptr %34, align 4, !tbaa !5
  br label %1345

1345:                                             ; preds = %1805, %1344
  %1346 = load i32, ptr %34, align 4, !tbaa !5
  %1347 = icmp ule i32 %1346, 8
  br i1 %1347, label %1349, label %1348

1348:                                             ; preds = %1345
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  br label %1808

1349:                                             ; preds = %1345
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  %1350 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1350, ptr %35, align 8, !tbaa !9
  br label %1351

1351:                                             ; preds = %1349
  %1352 = load i32, ptr @test_count, align 4, !tbaa !5
  %1353 = add nsw i32 %1352, 1
  store i32 %1353, ptr @test_count, align 4, !tbaa !5
  %1354 = load ptr, ptr %35, align 8, !tbaa !9
  %1355 = icmp eq ptr %1354, null
  br i1 %1355, label %1356, label %1409

1356:                                             ; preds = %1351
  br label %1357

1357:                                             ; preds = %1356
  br label %1358

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

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

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

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

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

1405:                                             ; preds = %1404
  br label %1406

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

1407:                                             ; No predecessors!
  br label %1408

1408:                                             ; preds = %1407
  br label %1409

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

1410:                                             ; preds = %1409
  br label %1411

1411:                                             ; preds = %1410
  %1412 = load ptr, ptr %35, align 8, !tbaa !9
  %1413 = getelementptr inbounds %struct.s2n_connection, ptr %1412, i32 0, i32 23
  store i8 33, ptr %1413, align 4, !tbaa !42
  br label %1414

1414:                                             ; preds = %1411
  %1415 = load i32, ptr @test_count, align 4, !tbaa !5
  %1416 = add nsw i32 %1415, 1
  store i32 %1416, ptr @test_count, align 4, !tbaa !5
  %1417 = load ptr, ptr %35, align 8, !tbaa !9
  %1418 = load i32, ptr %34, align 4, !tbaa !5
  %1419 = call i32 @s2n_handshake_type_set_flag(ptr noundef %1417, i32 noundef %1418)
  %1420 = getelementptr inbounds %struct.s2n_result, ptr %37, i32 0, i32 0
  store i32 %1419, ptr %1420, align 4
  %1421 = getelementptr inbounds %struct.s2n_result, ptr %37, i32 0, i32 0
  %1422 = load i32, ptr %1421, align 4
  %1423 = call zeroext i1 @s2n_result_is_ok(i32 %1422)
  br i1 %1423, label %1477, label %1424

1424:                                             ; preds = %1414
  br label %1425

1425:                                             ; preds = %1424
  br label %1426

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

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

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

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

1472:                                             ; preds = %1455, %1438
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %1473

1473:                                             ; preds = %1472
  br label %1474

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

1475:                                             ; No predecessors!
  br label %1476

1476:                                             ; preds = %1475
  br label %1477

1477:                                             ; preds = %1476, %1414
  br label %1478

1478:                                             ; preds = %1477
  br label %1479

1479:                                             ; preds = %1478
  br label %1480

1480:                                             ; preds = %1479
  %1481 = load i32, ptr @test_count, align 4, !tbaa !5
  %1482 = add nsw i32 %1481, 1
  store i32 %1482, ptr @test_count, align 4, !tbaa !5
  %1483 = load ptr, ptr %35, align 8, !tbaa !9
  %1484 = getelementptr inbounds %struct.s2n_connection, ptr %1483, i32 0, i32 52
  %1485 = getelementptr inbounds %struct.s2n_handshake, ptr %1484, i32 0, i32 6
  %1486 = load i32, ptr %1485, align 4, !tbaa !15
  %1487 = load i32, ptr %34, align 4, !tbaa !5
  %1488 = icmp eq i32 %1486, %1487
  br i1 %1488, label %1542, label %1489

1489:                                             ; preds = %1480
  br label %1490

1490:                                             ; preds = %1489
  br label %1491

1491:                                             ; preds = %1490
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  %1492 = call ptr @__errno_location() #9
  %1493 = load i32, ptr %1492, align 4, !tbaa !5
  store i32 %1493, ptr %39, align 4, !tbaa !5
  %1494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1495 = call i32 @s2n_print_stacktrace(ptr noundef %1494)
  %1496 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1497 = trunc i8 %1496 to i1
  br i1 %1497, label %1498, label %1520

1498:                                             ; preds = %1491
  %1499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1500 = call i32 @fileno(ptr noundef %1499) #8
  %1501 = call i32 @isatty(i32 noundef %1500) #8
  %1502 = icmp ne i32 %1501, 0
  br i1 %1502, label %1503, label %1520

1503:                                             ; preds = %1498
  %1504 = load i32, ptr %39, align 4, !tbaa !5
  %1505 = call ptr @__errno_location() #9
  store i32 %1504, ptr %1505, align 4, !tbaa !5
  %1506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1507 = load i32, ptr @test_count, align 4, !tbaa !5
  %1508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1509 = load i32, ptr %1508, align 4, !tbaa !5
  %1510 = call ptr @s2n_strerror(i32 noundef %1509, ptr noundef @.str.4)
  %1511 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1512 = load i32, ptr %1511, align 4, !tbaa !5
  %1513 = call ptr @s2n_strerror_debug(i32 noundef %1512, ptr noundef @.str.4)
  %1514 = call ptr @__errno_location() #9
  %1515 = load i32, ptr %1514, align 4, !tbaa !5
  %1516 = call ptr @strerror(i32 noundef %1515) #8
  %1517 = call ptr @__errno_location() #9
  %1518 = load i32, ptr %1517, align 4, !tbaa !5
  %1519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1506, ptr noundef @.str.2, i32 noundef %1507, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1510, ptr noundef %1513, ptr noundef %1516, i32 noundef %1518) #8
  br label %1537

1520:                                             ; preds = %1498, %1491
  %1521 = load i32, ptr %39, align 4, !tbaa !5
  %1522 = call ptr @__errno_location() #9
  store i32 %1521, ptr %1522, align 4, !tbaa !5
  %1523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1524 = load i32, ptr @test_count, align 4, !tbaa !5
  %1525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1526 = load i32, ptr %1525, align 4, !tbaa !5
  %1527 = call ptr @s2n_strerror(i32 noundef %1526, ptr noundef @.str.4)
  %1528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1529 = load i32, ptr %1528, align 4, !tbaa !5
  %1530 = call ptr @s2n_strerror_debug(i32 noundef %1529, ptr noundef @.str.4)
  %1531 = call ptr @__errno_location() #9
  %1532 = load i32, ptr %1531, align 4, !tbaa !5
  %1533 = call ptr @strerror(i32 noundef %1532) #8
  %1534 = call ptr @__errno_location() #9
  %1535 = load i32, ptr %1534, align 4, !tbaa !5
  %1536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1523, ptr noundef @.str.5, i32 noundef %1524, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 77, ptr noundef %1527, ptr noundef %1530, ptr noundef %1533, i32 noundef %1535) #8
  br label %1537

1537:                                             ; preds = %1520, %1503
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  br label %1538

1538:                                             ; preds = %1537
  br label %1539

1539:                                             ; preds = %1538
  call void @exit(i32 noundef 1) #10
  unreachable

1540:                                             ; No predecessors!
  br label %1541

1541:                                             ; preds = %1540
  br label %1542

1542:                                             ; preds = %1541, %1480
  br label %1543

1543:                                             ; preds = %1542
  br label %1544

1544:                                             ; preds = %1543
  br label %1545

1545:                                             ; preds = %1544
  %1546 = load i32, ptr @test_count, align 4, !tbaa !5
  %1547 = add nsw i32 %1546, 1
  store i32 %1547, ptr @test_count, align 4, !tbaa !5
  %1548 = load ptr, ptr %35, align 8, !tbaa !9
  %1549 = call i32 @s2n_handshake_type_reset(ptr noundef %1548)
  %1550 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  store i32 %1549, ptr %1550, align 4
  %1551 = getelementptr inbounds %struct.s2n_result, ptr %40, i32 0, i32 0
  %1552 = load i32, ptr %1551, align 4
  %1553 = call zeroext i1 @s2n_result_is_ok(i32 %1552)
  br i1 %1553, label %1607, label %1554

1554:                                             ; preds = %1545
  br label %1555

1555:                                             ; preds = %1554
  br label %1556

1556:                                             ; preds = %1555
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #8
  %1557 = call ptr @__errno_location() #9
  %1558 = load i32, ptr %1557, align 4, !tbaa !5
  store i32 %1558, ptr %41, align 4, !tbaa !5
  %1559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1560 = call i32 @s2n_print_stacktrace(ptr noundef %1559)
  %1561 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1562 = trunc i8 %1561 to i1
  br i1 %1562, label %1563, label %1585

1563:                                             ; preds = %1556
  %1564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1565 = call i32 @fileno(ptr noundef %1564) #8
  %1566 = call i32 @isatty(i32 noundef %1565) #8
  %1567 = icmp ne i32 %1566, 0
  br i1 %1567, label %1568, label %1585

1568:                                             ; preds = %1563
  %1569 = load i32, ptr %41, align 4, !tbaa !5
  %1570 = call ptr @__errno_location() #9
  store i32 %1569, ptr %1570, align 4, !tbaa !5
  %1571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1572 = load i32, ptr @test_count, align 4, !tbaa !5
  %1573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1574 = load i32, ptr %1573, align 4, !tbaa !5
  %1575 = call ptr @s2n_strerror(i32 noundef %1574, ptr noundef @.str.4)
  %1576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1577 = load i32, ptr %1576, align 4, !tbaa !5
  %1578 = call ptr @s2n_strerror_debug(i32 noundef %1577, ptr noundef @.str.4)
  %1579 = call ptr @__errno_location() #9
  %1580 = load i32, ptr %1579, align 4, !tbaa !5
  %1581 = call ptr @strerror(i32 noundef %1580) #8
  %1582 = call ptr @__errno_location() #9
  %1583 = load i32, ptr %1582, align 4, !tbaa !5
  %1584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1571, ptr noundef @.str.2, i32 noundef %1572, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1575, ptr noundef %1578, ptr noundef %1581, i32 noundef %1583) #8
  br label %1602

1585:                                             ; preds = %1563, %1556
  %1586 = load i32, ptr %41, align 4, !tbaa !5
  %1587 = call ptr @__errno_location() #9
  store i32 %1586, ptr %1587, align 4, !tbaa !5
  %1588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1589 = load i32, ptr @test_count, align 4, !tbaa !5
  %1590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1591 = load i32, ptr %1590, align 4, !tbaa !5
  %1592 = call ptr @s2n_strerror(i32 noundef %1591, ptr noundef @.str.4)
  %1593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1594 = load i32, ptr %1593, align 4, !tbaa !5
  %1595 = call ptr @s2n_strerror_debug(i32 noundef %1594, ptr noundef @.str.4)
  %1596 = call ptr @__errno_location() #9
  %1597 = load i32, ptr %1596, align 4, !tbaa !5
  %1598 = call ptr @strerror(i32 noundef %1597) #8
  %1599 = call ptr @__errno_location() #9
  %1600 = load i32, ptr %1599, align 4, !tbaa !5
  %1601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1588, ptr noundef @.str.5, i32 noundef %1589, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1592, ptr noundef %1595, ptr noundef %1598, i32 noundef %1600) #8
  br label %1602

1602:                                             ; preds = %1585, %1568
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  br label %1603

1603:                                             ; preds = %1602
  br label %1604

1604:                                             ; preds = %1603
  call void @exit(i32 noundef 1) #10
  unreachable

1605:                                             ; No predecessors!
  br label %1606

1606:                                             ; preds = %1605
  br label %1607

1607:                                             ; preds = %1606, %1545
  br label %1608

1608:                                             ; preds = %1607
  br label %1609

1609:                                             ; preds = %1608
  %1610 = load ptr, ptr %35, align 8, !tbaa !9
  %1611 = getelementptr inbounds %struct.s2n_connection, ptr %1610, i32 0, i32 23
  store i8 34, ptr %1611, align 4, !tbaa !42
  br label %1612

1612:                                             ; preds = %1609
  %1613 = load i32, ptr @test_count, align 4, !tbaa !5
  %1614 = add nsw i32 %1613, 1
  store i32 %1614, ptr @test_count, align 4, !tbaa !5
  %1615 = load ptr, ptr %35, align 8, !tbaa !9
  %1616 = load i32, ptr %34, align 4, !tbaa !5
  %1617 = call i32 @s2n_handshake_type_set_flag(ptr noundef %1615, i32 noundef %1616)
  %1618 = getelementptr inbounds %struct.s2n_result, ptr %42, i32 0, i32 0
  store i32 %1617, ptr %1618, align 4
  %1619 = getelementptr inbounds %struct.s2n_result, ptr %42, i32 0, i32 0
  %1620 = load i32, ptr %1619, align 4
  %1621 = call zeroext i1 @s2n_result_is_ok(i32 %1620)
  br i1 %1621, label %1675, label %1622

1622:                                             ; preds = %1612
  br label %1623

1623:                                             ; preds = %1622
  br label %1624

1624:                                             ; preds = %1623
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #8
  %1625 = call ptr @__errno_location() #9
  %1626 = load i32, ptr %1625, align 4, !tbaa !5
  store i32 %1626, ptr %43, align 4, !tbaa !5
  %1627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1628 = call i32 @s2n_print_stacktrace(ptr noundef %1627)
  %1629 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1630 = trunc i8 %1629 to i1
  br i1 %1630, label %1631, label %1653

1631:                                             ; preds = %1624
  %1632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1633 = call i32 @fileno(ptr noundef %1632) #8
  %1634 = call i32 @isatty(i32 noundef %1633) #8
  %1635 = icmp ne i32 %1634, 0
  br i1 %1635, label %1636, label %1653

1636:                                             ; preds = %1631
  %1637 = load i32, ptr %43, align 4, !tbaa !5
  %1638 = call ptr @__errno_location() #9
  store i32 %1637, ptr %1638, align 4, !tbaa !5
  %1639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1640 = load i32, ptr @test_count, align 4, !tbaa !5
  %1641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call ptr @s2n_strerror(i32 noundef %1642, ptr noundef @.str.4)
  %1644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  %1646 = call ptr @s2n_strerror_debug(i32 noundef %1645, ptr noundef @.str.4)
  %1647 = call ptr @__errno_location() #9
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = call ptr @strerror(i32 noundef %1648) #8
  %1650 = call ptr @__errno_location() #9
  %1651 = load i32, ptr %1650, align 4, !tbaa !5
  %1652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1639, ptr noundef @.str.2, i32 noundef %1640, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 82, ptr noundef %1643, ptr noundef %1646, ptr noundef %1649, i32 noundef %1651) #8
  br label %1670

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

1670:                                             ; preds = %1653, %1636
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  br label %1671

1671:                                             ; preds = %1670
  br label %1672

1672:                                             ; preds = %1671
  call void @exit(i32 noundef 1) #10
  unreachable

1673:                                             ; No predecessors!
  br label %1674

1674:                                             ; preds = %1673
  br label %1675

1675:                                             ; preds = %1674, %1612
  br label %1676

1676:                                             ; preds = %1675
  br label %1677

1677:                                             ; preds = %1676
  br label %1678

1678:                                             ; preds = %1677
  %1679 = load i32, ptr @test_count, align 4, !tbaa !5
  %1680 = add nsw i32 %1679, 1
  store i32 %1680, ptr @test_count, align 4, !tbaa !5
  %1681 = load ptr, ptr %35, align 8, !tbaa !9
  %1682 = getelementptr inbounds %struct.s2n_connection, ptr %1681, i32 0, i32 52
  %1683 = getelementptr inbounds %struct.s2n_handshake, ptr %1682, i32 0, i32 6
  %1684 = load i32, ptr %1683, align 4, !tbaa !15
  %1685 = load i32, ptr %34, align 4, !tbaa !5
  %1686 = icmp eq i32 %1684, %1685
  br i1 %1686, label %1740, label %1687

1687:                                             ; preds = %1678
  br label %1688

1688:                                             ; preds = %1687
  br label %1689

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

1696:                                             ; preds = %1689
  %1697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1698 = call i32 @fileno(ptr noundef %1697) #8
  %1699 = call i32 @isatty(i32 noundef %1698) #8
  %1700 = icmp ne i32 %1699, 0
  br i1 %1700, label %1701, label %1718

1701:                                             ; preds = %1696
  %1702 = load i32, ptr %44, align 4, !tbaa !5
  %1703 = call ptr @__errno_location() #9
  store i32 %1702, ptr %1703, align 4, !tbaa !5
  %1704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1705 = load i32, ptr @test_count, align 4, !tbaa !5
  %1706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1707 = load i32, ptr %1706, align 4, !tbaa !5
  %1708 = call ptr @s2n_strerror(i32 noundef %1707, ptr noundef @.str.4)
  %1709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1710 = load i32, ptr %1709, align 4, !tbaa !5
  %1711 = call ptr @s2n_strerror_debug(i32 noundef %1710, ptr noundef @.str.4)
  %1712 = call ptr @__errno_location() #9
  %1713 = load i32, ptr %1712, align 4, !tbaa !5
  %1714 = call ptr @strerror(i32 noundef %1713) #8
  %1715 = call ptr @__errno_location() #9
  %1716 = load i32, ptr %1715, align 4, !tbaa !5
  %1717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1704, ptr noundef @.str.2, i32 noundef %1705, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1708, ptr noundef %1711, ptr noundef %1714, i32 noundef %1716) #8
  br label %1735

1718:                                             ; preds = %1696, %1689
  %1719 = load i32, ptr %44, align 4, !tbaa !5
  %1720 = call ptr @__errno_location() #9
  store i32 %1719, ptr %1720, align 4, !tbaa !5
  %1721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1722 = load i32, ptr @test_count, align 4, !tbaa !5
  %1723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1724 = load i32, ptr %1723, align 4, !tbaa !5
  %1725 = call ptr @s2n_strerror(i32 noundef %1724, ptr noundef @.str.4)
  %1726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1727 = load i32, ptr %1726, align 4, !tbaa !5
  %1728 = call ptr @s2n_strerror_debug(i32 noundef %1727, ptr noundef @.str.4)
  %1729 = call ptr @__errno_location() #9
  %1730 = load i32, ptr %1729, align 4, !tbaa !5
  %1731 = call ptr @strerror(i32 noundef %1730) #8
  %1732 = call ptr @__errno_location() #9
  %1733 = load i32, ptr %1732, align 4, !tbaa !5
  %1734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1721, ptr noundef @.str.5, i32 noundef %1722, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 83, ptr noundef %1725, ptr noundef %1728, ptr noundef %1731, i32 noundef %1733) #8
  br label %1735

1735:                                             ; preds = %1718, %1701
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %1736

1736:                                             ; preds = %1735
  br label %1737

1737:                                             ; preds = %1736
  call void @exit(i32 noundef 1) #10
  unreachable

1738:                                             ; No predecessors!
  br label %1739

1739:                                             ; preds = %1738
  br label %1740

1740:                                             ; preds = %1739, %1678
  br label %1741

1741:                                             ; preds = %1740
  br label %1742

1742:                                             ; preds = %1741
  br label %1743

1743:                                             ; preds = %1742
  %1744 = load i32, ptr @test_count, align 4, !tbaa !5
  %1745 = add nsw i32 %1744, 1
  store i32 %1745, ptr @test_count, align 4, !tbaa !5
  %1746 = load ptr, ptr %35, align 8, !tbaa !9
  %1747 = call i32 @s2n_connection_free(ptr noundef %1746)
  %1748 = icmp eq i32 %1747, -1
  br i1 %1748, label %1749, label %1802

1749:                                             ; preds = %1743
  br label %1750

1750:                                             ; preds = %1749
  br label %1751

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

1758:                                             ; preds = %1751
  %1759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1760 = call i32 @fileno(ptr noundef %1759) #8
  %1761 = call i32 @isatty(i32 noundef %1760) #8
  %1762 = icmp ne i32 %1761, 0
  br i1 %1762, label %1763, label %1780

1763:                                             ; preds = %1758
  %1764 = load i32, ptr %45, align 4, !tbaa !5
  %1765 = call ptr @__errno_location() #9
  store i32 %1764, ptr %1765, align 4, !tbaa !5
  %1766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1767 = load i32, ptr @test_count, align 4, !tbaa !5
  %1768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1769 = load i32, ptr %1768, align 4, !tbaa !5
  %1770 = call ptr @s2n_strerror(i32 noundef %1769, ptr noundef @.str.4)
  %1771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1772 = load i32, ptr %1771, align 4, !tbaa !5
  %1773 = call ptr @s2n_strerror_debug(i32 noundef %1772, ptr noundef @.str.4)
  %1774 = call ptr @__errno_location() #9
  %1775 = load i32, ptr %1774, align 4, !tbaa !5
  %1776 = call ptr @strerror(i32 noundef %1775) #8
  %1777 = call ptr @__errno_location() #9
  %1778 = load i32, ptr %1777, align 4, !tbaa !5
  %1779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1766, ptr noundef @.str.2, i32 noundef %1767, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1770, ptr noundef %1773, ptr noundef %1776, i32 noundef %1778) #8
  br label %1797

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

1797:                                             ; preds = %1780, %1763
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  br label %1798

1798:                                             ; preds = %1797
  br label %1799

1799:                                             ; preds = %1798
  call void @exit(i32 noundef 1) #10
  unreachable

1800:                                             ; No predecessors!
  br label %1801

1801:                                             ; preds = %1800
  br label %1802

1802:                                             ; preds = %1801, %1743
  br label %1803

1803:                                             ; preds = %1802
  br label %1804

1804:                                             ; preds = %1803
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  br label %1805

1805:                                             ; preds = %1804
  %1806 = load i32, ptr %34, align 4, !tbaa !5
  %1807 = add i32 %1806, 1
  store i32 %1807, ptr %34, align 4, !tbaa !5
  br label %1345, !llvm.loop !43

1808:                                             ; preds = %1348
  br label %1809

1809:                                             ; preds = %1808
  %1810 = load i32, ptr @test_count, align 4, !tbaa !5
  %1811 = add nsw i32 %1810, 1
  store i32 %1811, ptr @test_count, align 4, !tbaa !5
  %1812 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef null, i32 noundef 0)
  br i1 %1812, label %1813, label %1864

1813:                                             ; preds = %1809
  br label %1814

1814:                                             ; preds = %1813
  br label %1815

1815:                                             ; preds = %1814
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #8
  %1816 = call ptr @__errno_location() #9
  %1817 = load i32, ptr %1816, align 4, !tbaa !5
  store i32 %1817, ptr %46, align 4, !tbaa !5
  %1818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1819 = call i32 @s2n_print_stacktrace(ptr noundef %1818)
  %1820 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1821 = trunc i8 %1820 to i1
  br i1 %1821, label %1822, label %1844

1822:                                             ; preds = %1815
  %1823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1824 = call i32 @fileno(ptr noundef %1823) #8
  %1825 = call i32 @isatty(i32 noundef %1824) #8
  %1826 = icmp ne i32 %1825, 0
  br i1 %1826, label %1827, label %1844

1827:                                             ; preds = %1822
  %1828 = load i32, ptr %46, align 4, !tbaa !5
  %1829 = call ptr @__errno_location() #9
  store i32 %1828, ptr %1829, align 4, !tbaa !5
  %1830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1831 = load i32, ptr @test_count, align 4, !tbaa !5
  %1832 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1833 = load i32, ptr %1832, align 4, !tbaa !5
  %1834 = call ptr @s2n_strerror(i32 noundef %1833, ptr noundef @.str.4)
  %1835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1836 = load i32, ptr %1835, align 4, !tbaa !5
  %1837 = call ptr @s2n_strerror_debug(i32 noundef %1836, ptr noundef @.str.4)
  %1838 = call ptr @__errno_location() #9
  %1839 = load i32, ptr %1838, align 4, !tbaa !5
  %1840 = call ptr @strerror(i32 noundef %1839) #8
  %1841 = call ptr @__errno_location() #9
  %1842 = load i32, ptr %1841, align 4, !tbaa !5
  %1843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1830, ptr noundef @.str.2, i32 noundef %1831, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 92, ptr noundef %1834, ptr noundef %1837, ptr noundef %1840, i32 noundef %1842) #8
  br label %1861

1844:                                             ; preds = %1822, %1815
  %1845 = load i32, ptr %46, align 4, !tbaa !5
  %1846 = call ptr @__errno_location() #9
  store i32 %1845, ptr %1846, align 4, !tbaa !5
  %1847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1848 = load i32, ptr @test_count, align 4, !tbaa !5
  %1849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1850 = load i32, ptr %1849, align 4, !tbaa !5
  %1851 = call ptr @s2n_strerror(i32 noundef %1850, ptr noundef @.str.4)
  %1852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1853 = load i32, ptr %1852, align 4, !tbaa !5
  %1854 = call ptr @s2n_strerror_debug(i32 noundef %1853, ptr noundef @.str.4)
  %1855 = call ptr @__errno_location() #9
  %1856 = load i32, ptr %1855, align 4, !tbaa !5
  %1857 = call ptr @strerror(i32 noundef %1856) #8
  %1858 = call ptr @__errno_location() #9
  %1859 = load i32, ptr %1858, align 4, !tbaa !5
  %1860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1847, ptr noundef @.str.5, i32 noundef %1848, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 92, ptr noundef %1851, ptr noundef %1854, ptr noundef %1857, i32 noundef %1859) #8
  br label %1861

1861:                                             ; preds = %1844, %1827
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  br label %1862

1862:                                             ; preds = %1861
  call void @exit(i32 noundef 1) #10
  unreachable

1863:                                             ; No predecessors!
  br label %1864

1864:                                             ; preds = %1863, %1809
  br label %1865

1865:                                             ; preds = %1864
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  store i32 1, ptr %47, align 4, !tbaa !5
  br label %1866

1866:                                             ; preds = %2389, %1865
  %1867 = load i32, ptr %47, align 4, !tbaa !5
  %1868 = icmp ule i32 %1867, 8
  br i1 %1868, label %1870, label %1869

1869:                                             ; preds = %1866
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  br label %2392

1870:                                             ; preds = %1866
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #8
  %1871 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1871, ptr %48, align 8, !tbaa !9
  br label %1872

1872:                                             ; preds = %1870
  %1873 = load i32, ptr @test_count, align 4, !tbaa !5
  %1874 = add nsw i32 %1873, 1
  store i32 %1874, ptr @test_count, align 4, !tbaa !5
  %1875 = load ptr, ptr %48, align 8, !tbaa !9
  %1876 = icmp eq ptr %1875, null
  br i1 %1876, label %1877, label %1930

1877:                                             ; preds = %1872
  br label %1878

1878:                                             ; preds = %1877
  br label %1879

1879:                                             ; preds = %1878
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #8
  %1880 = call ptr @__errno_location() #9
  %1881 = load i32, ptr %1880, align 4, !tbaa !5
  store i32 %1881, ptr %49, align 4, !tbaa !5
  %1882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1883 = call i32 @s2n_print_stacktrace(ptr noundef %1882)
  %1884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1885 = trunc i8 %1884 to i1
  br i1 %1885, label %1886, label %1908

1886:                                             ; preds = %1879
  %1887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1888 = call i32 @fileno(ptr noundef %1887) #8
  %1889 = call i32 @isatty(i32 noundef %1888) #8
  %1890 = icmp ne i32 %1889, 0
  br i1 %1890, label %1891, label %1908

1891:                                             ; preds = %1886
  %1892 = load i32, ptr %49, align 4, !tbaa !5
  %1893 = call ptr @__errno_location() #9
  store i32 %1892, ptr %1893, align 4, !tbaa !5
  %1894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1895 = load i32, ptr @test_count, align 4, !tbaa !5
  %1896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1897 = load i32, ptr %1896, align 4, !tbaa !5
  %1898 = call ptr @s2n_strerror(i32 noundef %1897, ptr noundef @.str.4)
  %1899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1900 = load i32, ptr %1899, align 4, !tbaa !5
  %1901 = call ptr @s2n_strerror_debug(i32 noundef %1900, ptr noundef @.str.4)
  %1902 = call ptr @__errno_location() #9
  %1903 = load i32, ptr %1902, align 4, !tbaa !5
  %1904 = call ptr @strerror(i32 noundef %1903) #8
  %1905 = call ptr @__errno_location() #9
  %1906 = load i32, ptr %1905, align 4, !tbaa !5
  %1907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1894, ptr noundef @.str.2, i32 noundef %1895, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 97, ptr noundef %1898, ptr noundef %1901, ptr noundef %1904, i32 noundef %1906) #8
  br label %1925

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

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

1926:                                             ; preds = %1925
  br label %1927

1927:                                             ; preds = %1926
  call void @exit(i32 noundef 1) #10
  unreachable

1928:                                             ; No predecessors!
  br label %1929

1929:                                             ; preds = %1928
  br label %1930

1930:                                             ; preds = %1929, %1872
  br label %1931

1931:                                             ; preds = %1930
  br label %1932

1932:                                             ; preds = %1931
  %1933 = load ptr, ptr %48, align 8, !tbaa !9
  %1934 = getelementptr inbounds %struct.s2n_connection, ptr %1933, i32 0, i32 52
  %1935 = getelementptr inbounds %struct.s2n_handshake, ptr %1934, i32 0, i32 6
  store i32 65535, ptr %1935, align 4, !tbaa !15
  %1936 = load ptr, ptr %48, align 8, !tbaa !9
  %1937 = getelementptr inbounds %struct.s2n_connection, ptr %1936, i32 0, i32 23
  store i8 33, ptr %1937, align 4, !tbaa !42
  br label %1938

1938:                                             ; preds = %1932
  %1939 = load i32, ptr @test_count, align 4, !tbaa !5
  %1940 = add nsw i32 %1939, 1
  store i32 %1940, ptr @test_count, align 4, !tbaa !5
  %1941 = load ptr, ptr %48, align 8, !tbaa !9
  %1942 = load i32, ptr %47, align 4, !tbaa !5
  %1943 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %1941, i32 noundef %1942)
  br i1 %1943, label %1997, label %1944

1944:                                             ; preds = %1938
  br label %1945

1945:                                             ; preds = %1944
  br label %1946

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

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

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

1975:                                             ; preds = %1953, %1946
  %1976 = load i32, ptr %50, align 4, !tbaa !5
  %1977 = call ptr @__errno_location() #9
  store i32 %1976, ptr %1977, align 4, !tbaa !5
  %1978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1979 = load i32, ptr @test_count, align 4, !tbaa !5
  %1980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1981 = load i32, ptr %1980, align 4, !tbaa !5
  %1982 = call ptr @s2n_strerror(i32 noundef %1981, ptr noundef @.str.4)
  %1983 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1984 = load i32, ptr %1983, align 4, !tbaa !5
  %1985 = call ptr @s2n_strerror_debug(i32 noundef %1984, ptr noundef @.str.4)
  %1986 = call ptr @__errno_location() #9
  %1987 = load i32, ptr %1986, align 4, !tbaa !5
  %1988 = call ptr @strerror(i32 noundef %1987) #8
  %1989 = call ptr @__errno_location() #9
  %1990 = load i32, ptr %1989, align 4, !tbaa !5
  %1991 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1978, ptr noundef @.str.5, i32 noundef %1979, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 104, ptr noundef %1982, ptr noundef %1985, ptr noundef %1988, i32 noundef %1990) #8
  br label %1992

1992:                                             ; preds = %1975, %1958
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #8
  br label %1993

1993:                                             ; preds = %1992
  br label %1994

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

1995:                                             ; No predecessors!
  br label %1996

1996:                                             ; preds = %1995
  br label %1997

1997:                                             ; preds = %1996, %1938
  br label %1998

1998:                                             ; preds = %1997
  br label %1999

1999:                                             ; preds = %1998
  %2000 = load ptr, ptr %48, align 8, !tbaa !9
  %2001 = getelementptr inbounds %struct.s2n_connection, ptr %2000, i32 0, i32 23
  store i8 34, ptr %2001, align 4, !tbaa !42
  br label %2002

2002:                                             ; preds = %1999
  %2003 = load i32, ptr @test_count, align 4, !tbaa !5
  %2004 = add nsw i32 %2003, 1
  store i32 %2004, ptr @test_count, align 4, !tbaa !5
  %2005 = load ptr, ptr %48, align 8, !tbaa !9
  %2006 = load i32, ptr %47, align 4, !tbaa !5
  %2007 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %2005, i32 noundef %2006)
  br i1 %2007, label %2061, label %2008

2008:                                             ; preds = %2002
  br label %2009

2009:                                             ; preds = %2008
  br label %2010

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

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

2022:                                             ; preds = %2017
  %2023 = load i32, ptr %51, align 4, !tbaa !5
  %2024 = call ptr @__errno_location() #9
  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() #9
  %2034 = load i32, ptr %2033, align 4, !tbaa !5
  %2035 = call ptr @strerror(i32 noundef %2034) #8
  %2036 = call ptr @__errno_location() #9
  %2037 = load i32, ptr %2036, align 4, !tbaa !5
  %2038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2025, ptr noundef @.str.2, i32 noundef %2026, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 107, ptr noundef %2029, ptr noundef %2032, ptr noundef %2035, i32 noundef %2037) #8
  br label %2056

2039:                                             ; preds = %2017, %2010
  %2040 = load i32, ptr %51, align 4, !tbaa !5
  %2041 = call ptr @__errno_location() #9
  store i32 %2040, ptr %2041, align 4, !tbaa !5
  %2042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2043 = load i32, ptr @test_count, align 4, !tbaa !5
  %2044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2045 = load i32, ptr %2044, align 4, !tbaa !5
  %2046 = call ptr @s2n_strerror(i32 noundef %2045, ptr noundef @.str.4)
  %2047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2048 = load i32, ptr %2047, align 4, !tbaa !5
  %2049 = call ptr @s2n_strerror_debug(i32 noundef %2048, ptr noundef @.str.4)
  %2050 = call ptr @__errno_location() #9
  %2051 = load i32, ptr %2050, align 4, !tbaa !5
  %2052 = call ptr @strerror(i32 noundef %2051) #8
  %2053 = call ptr @__errno_location() #9
  %2054 = load i32, ptr %2053, align 4, !tbaa !5
  %2055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2042, ptr noundef @.str.5, i32 noundef %2043, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 107, ptr noundef %2046, ptr noundef %2049, ptr noundef %2052, i32 noundef %2054) #8
  br label %2056

2056:                                             ; preds = %2039, %2022
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  br label %2057

2057:                                             ; preds = %2056
  br label %2058

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

2059:                                             ; No predecessors!
  br label %2060

2060:                                             ; preds = %2059
  br label %2061

2061:                                             ; preds = %2060, %2002
  br label %2062

2062:                                             ; preds = %2061
  br label %2063

2063:                                             ; preds = %2062
  %2064 = load ptr, ptr %48, align 8, !tbaa !9
  %2065 = getelementptr inbounds %struct.s2n_connection, ptr %2064, i32 0, i32 52
  %2066 = getelementptr inbounds %struct.s2n_handshake, ptr %2065, i32 0, i32 6
  store i32 0, ptr %2066, align 4, !tbaa !15
  %2067 = load ptr, ptr %48, align 8, !tbaa !9
  %2068 = getelementptr inbounds %struct.s2n_connection, ptr %2067, i32 0, i32 23
  store i8 33, ptr %2068, align 4, !tbaa !42
  br label %2069

2069:                                             ; preds = %2063
  %2070 = load i32, ptr @test_count, align 4, !tbaa !5
  %2071 = add nsw i32 %2070, 1
  store i32 %2071, ptr @test_count, align 4, !tbaa !5
  %2072 = load ptr, ptr %48, align 8, !tbaa !9
  %2073 = load i32, ptr %47, align 4, !tbaa !5
  %2074 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %2072, i32 noundef %2073)
  br i1 %2074, label %2075, label %2128

2075:                                             ; preds = %2069
  br label %2076

2076:                                             ; preds = %2075
  br label %2077

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

2084:                                             ; preds = %2077
  %2085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2086 = call i32 @fileno(ptr noundef %2085) #8
  %2087 = call i32 @isatty(i32 noundef %2086) #8
  %2088 = icmp ne i32 %2087, 0
  br i1 %2088, label %2089, label %2106

2089:                                             ; preds = %2084
  %2090 = load i32, ptr %52, align 4, !tbaa !5
  %2091 = call ptr @__errno_location() #9
  store i32 %2090, ptr %2091, align 4, !tbaa !5
  %2092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2093 = load i32, ptr @test_count, align 4, !tbaa !5
  %2094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2095 = load i32, ptr %2094, align 4, !tbaa !5
  %2096 = call ptr @s2n_strerror(i32 noundef %2095, ptr noundef @.str.4)
  %2097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2098 = load i32, ptr %2097, align 4, !tbaa !5
  %2099 = call ptr @s2n_strerror_debug(i32 noundef %2098, ptr noundef @.str.4)
  %2100 = call ptr @__errno_location() #9
  %2101 = load i32, ptr %2100, align 4, !tbaa !5
  %2102 = call ptr @strerror(i32 noundef %2101) #8
  %2103 = call ptr @__errno_location() #9
  %2104 = load i32, ptr %2103, align 4, !tbaa !5
  %2105 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2092, ptr noundef @.str.2, i32 noundef %2093, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2096, ptr noundef %2099, ptr noundef %2102, i32 noundef %2104) #8
  br label %2123

2106:                                             ; preds = %2084, %2077
  %2107 = load i32, ptr %52, align 4, !tbaa !5
  %2108 = call ptr @__errno_location() #9
  store i32 %2107, ptr %2108, align 4, !tbaa !5
  %2109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2110 = load i32, ptr @test_count, align 4, !tbaa !5
  %2111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2112 = load i32, ptr %2111, align 4, !tbaa !5
  %2113 = call ptr @s2n_strerror(i32 noundef %2112, ptr noundef @.str.4)
  %2114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2115 = load i32, ptr %2114, align 4, !tbaa !5
  %2116 = call ptr @s2n_strerror_debug(i32 noundef %2115, ptr noundef @.str.4)
  %2117 = call ptr @__errno_location() #9
  %2118 = load i32, ptr %2117, align 4, !tbaa !5
  %2119 = call ptr @strerror(i32 noundef %2118) #8
  %2120 = call ptr @__errno_location() #9
  %2121 = load i32, ptr %2120, align 4, !tbaa !5
  %2122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2109, ptr noundef @.str.5, i32 noundef %2110, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 115, ptr noundef %2113, ptr noundef %2116, ptr noundef %2119, i32 noundef %2121) #8
  br label %2123

2123:                                             ; preds = %2106, %2089
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #8
  br label %2124

2124:                                             ; preds = %2123
  br label %2125

2125:                                             ; preds = %2124
  call void @exit(i32 noundef 1) #10
  unreachable

2126:                                             ; No predecessors!
  br label %2127

2127:                                             ; preds = %2126
  br label %2128

2128:                                             ; preds = %2127, %2069
  br label %2129

2129:                                             ; preds = %2128
  br label %2130

2130:                                             ; preds = %2129
  %2131 = load ptr, ptr %48, align 8, !tbaa !9
  %2132 = getelementptr inbounds %struct.s2n_connection, ptr %2131, i32 0, i32 23
  store i8 34, ptr %2132, align 4, !tbaa !42
  br label %2133

2133:                                             ; preds = %2130
  %2134 = load i32, ptr @test_count, align 4, !tbaa !5
  %2135 = add nsw i32 %2134, 1
  store i32 %2135, ptr @test_count, align 4, !tbaa !5
  %2136 = load ptr, ptr %48, align 8, !tbaa !9
  %2137 = load i32, ptr %47, align 4, !tbaa !5
  %2138 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %2136, i32 noundef %2137)
  br i1 %2138, label %2139, label %2192

2139:                                             ; preds = %2133
  br label %2140

2140:                                             ; preds = %2139
  br label %2141

2141:                                             ; preds = %2140
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #8
  %2142 = call ptr @__errno_location() #9
  %2143 = load i32, ptr %2142, align 4, !tbaa !5
  store i32 %2143, ptr %53, align 4, !tbaa !5
  %2144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2145 = call i32 @s2n_print_stacktrace(ptr noundef %2144)
  %2146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2147 = trunc i8 %2146 to i1
  br i1 %2147, label %2148, label %2170

2148:                                             ; preds = %2141
  %2149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2150 = call i32 @fileno(ptr noundef %2149) #8
  %2151 = call i32 @isatty(i32 noundef %2150) #8
  %2152 = icmp ne i32 %2151, 0
  br i1 %2152, label %2153, label %2170

2153:                                             ; preds = %2148
  %2154 = load i32, ptr %53, align 4, !tbaa !5
  %2155 = call ptr @__errno_location() #9
  store i32 %2154, ptr %2155, align 4, !tbaa !5
  %2156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2157 = load i32, ptr @test_count, align 4, !tbaa !5
  %2158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2159 = load i32, ptr %2158, align 4, !tbaa !5
  %2160 = call ptr @s2n_strerror(i32 noundef %2159, ptr noundef @.str.4)
  %2161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2162 = load i32, ptr %2161, align 4, !tbaa !5
  %2163 = call ptr @s2n_strerror_debug(i32 noundef %2162, ptr noundef @.str.4)
  %2164 = call ptr @__errno_location() #9
  %2165 = load i32, ptr %2164, align 4, !tbaa !5
  %2166 = call ptr @strerror(i32 noundef %2165) #8
  %2167 = call ptr @__errno_location() #9
  %2168 = load i32, ptr %2167, align 4, !tbaa !5
  %2169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2156, ptr noundef @.str.2, i32 noundef %2157, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2160, ptr noundef %2163, ptr noundef %2166, i32 noundef %2168) #8
  br label %2187

2170:                                             ; preds = %2148, %2141
  %2171 = load i32, ptr %53, align 4, !tbaa !5
  %2172 = call ptr @__errno_location() #9
  store i32 %2171, ptr %2172, align 4, !tbaa !5
  %2173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2174 = load i32, ptr @test_count, align 4, !tbaa !5
  %2175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2176 = load i32, ptr %2175, align 4, !tbaa !5
  %2177 = call ptr @s2n_strerror(i32 noundef %2176, ptr noundef @.str.4)
  %2178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2179 = load i32, ptr %2178, align 4, !tbaa !5
  %2180 = call ptr @s2n_strerror_debug(i32 noundef %2179, ptr noundef @.str.4)
  %2181 = call ptr @__errno_location() #9
  %2182 = load i32, ptr %2181, align 4, !tbaa !5
  %2183 = call ptr @strerror(i32 noundef %2182) #8
  %2184 = call ptr @__errno_location() #9
  %2185 = load i32, ptr %2184, align 4, !tbaa !5
  %2186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2173, ptr noundef @.str.5, i32 noundef %2174, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 118, ptr noundef %2177, ptr noundef %2180, ptr noundef %2183, i32 noundef %2185) #8
  br label %2187

2187:                                             ; preds = %2170, %2153
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #8
  br label %2188

2188:                                             ; preds = %2187
  br label %2189

2189:                                             ; preds = %2188
  call void @exit(i32 noundef 1) #10
  unreachable

2190:                                             ; No predecessors!
  br label %2191

2191:                                             ; preds = %2190
  br label %2192

2192:                                             ; preds = %2191, %2133
  br label %2193

2193:                                             ; preds = %2192
  br label %2194

2194:                                             ; preds = %2193
  %2195 = load i32, ptr %47, align 4, !tbaa !5
  %2196 = load ptr, ptr %48, align 8, !tbaa !9
  %2197 = getelementptr inbounds %struct.s2n_connection, ptr %2196, i32 0, i32 52
  %2198 = getelementptr inbounds %struct.s2n_handshake, ptr %2197, i32 0, i32 6
  store i32 %2195, ptr %2198, align 4, !tbaa !15
  %2199 = load ptr, ptr %48, align 8, !tbaa !9
  %2200 = getelementptr inbounds %struct.s2n_connection, ptr %2199, i32 0, i32 23
  store i8 33, ptr %2200, align 4, !tbaa !42
  br label %2201

2201:                                             ; preds = %2194
  %2202 = load i32, ptr @test_count, align 4, !tbaa !5
  %2203 = add nsw i32 %2202, 1
  store i32 %2203, ptr @test_count, align 4, !tbaa !5
  %2204 = load ptr, ptr %48, align 8, !tbaa !9
  %2205 = load i32, ptr %47, align 4, !tbaa !5
  %2206 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %2204, i32 noundef %2205)
  br i1 %2206, label %2260, label %2207

2207:                                             ; preds = %2201
  br label %2208

2208:                                             ; preds = %2207
  br label %2209

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

2216:                                             ; preds = %2209
  %2217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2218 = call i32 @fileno(ptr noundef %2217) #8
  %2219 = call i32 @isatty(i32 noundef %2218) #8
  %2220 = icmp ne i32 %2219, 0
  br i1 %2220, label %2221, label %2238

2221:                                             ; preds = %2216
  %2222 = load i32, ptr %54, align 4, !tbaa !5
  %2223 = call ptr @__errno_location() #9
  store i32 %2222, ptr %2223, align 4, !tbaa !5
  %2224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2225 = load i32, ptr @test_count, align 4, !tbaa !5
  %2226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2227 = load i32, ptr %2226, align 4, !tbaa !5
  %2228 = call ptr @s2n_strerror(i32 noundef %2227, ptr noundef @.str.4)
  %2229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2230 = load i32, ptr %2229, align 4, !tbaa !5
  %2231 = call ptr @s2n_strerror_debug(i32 noundef %2230, ptr noundef @.str.4)
  %2232 = call ptr @__errno_location() #9
  %2233 = load i32, ptr %2232, align 4, !tbaa !5
  %2234 = call ptr @strerror(i32 noundef %2233) #8
  %2235 = call ptr @__errno_location() #9
  %2236 = load i32, ptr %2235, align 4, !tbaa !5
  %2237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2224, ptr noundef @.str.2, i32 noundef %2225, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2228, ptr noundef %2231, ptr noundef %2234, i32 noundef %2236) #8
  br label %2255

2238:                                             ; preds = %2216, %2209
  %2239 = load i32, ptr %54, align 4, !tbaa !5
  %2240 = call ptr @__errno_location() #9
  store i32 %2239, ptr %2240, align 4, !tbaa !5
  %2241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2242 = load i32, ptr @test_count, align 4, !tbaa !5
  %2243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2244 = load i32, ptr %2243, align 4, !tbaa !5
  %2245 = call ptr @s2n_strerror(i32 noundef %2244, ptr noundef @.str.4)
  %2246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2247 = load i32, ptr %2246, align 4, !tbaa !5
  %2248 = call ptr @s2n_strerror_debug(i32 noundef %2247, ptr noundef @.str.4)
  %2249 = call ptr @__errno_location() #9
  %2250 = load i32, ptr %2249, align 4, !tbaa !5
  %2251 = call ptr @strerror(i32 noundef %2250) #8
  %2252 = call ptr @__errno_location() #9
  %2253 = load i32, ptr %2252, align 4, !tbaa !5
  %2254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2241, ptr noundef @.str.5, i32 noundef %2242, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 126, ptr noundef %2245, ptr noundef %2248, ptr noundef %2251, i32 noundef %2253) #8
  br label %2255

2255:                                             ; preds = %2238, %2221
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  br label %2256

2256:                                             ; preds = %2255
  br label %2257

2257:                                             ; preds = %2256
  call void @exit(i32 noundef 1) #10
  unreachable

2258:                                             ; No predecessors!
  br label %2259

2259:                                             ; preds = %2258
  br label %2260

2260:                                             ; preds = %2259, %2201
  br label %2261

2261:                                             ; preds = %2260
  br label %2262

2262:                                             ; preds = %2261
  %2263 = load ptr, ptr %48, align 8, !tbaa !9
  %2264 = getelementptr inbounds %struct.s2n_connection, ptr %2263, i32 0, i32 23
  store i8 34, ptr %2264, align 4, !tbaa !42
  br label %2265

2265:                                             ; preds = %2262
  %2266 = load i32, ptr @test_count, align 4, !tbaa !5
  %2267 = add nsw i32 %2266, 1
  store i32 %2267, ptr @test_count, align 4, !tbaa !5
  %2268 = load ptr, ptr %48, align 8, !tbaa !9
  %2269 = load i32, ptr %47, align 4, !tbaa !5
  %2270 = call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef %2268, i32 noundef %2269)
  br i1 %2270, label %2324, label %2271

2271:                                             ; preds = %2265
  br label %2272

2272:                                             ; preds = %2271
  br label %2273

2273:                                             ; preds = %2272
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #8
  %2274 = call ptr @__errno_location() #9
  %2275 = load i32, ptr %2274, align 4, !tbaa !5
  store i32 %2275, ptr %55, align 4, !tbaa !5
  %2276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2277 = call i32 @s2n_print_stacktrace(ptr noundef %2276)
  %2278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2279 = trunc i8 %2278 to i1
  br i1 %2279, label %2280, label %2302

2280:                                             ; preds = %2273
  %2281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2282 = call i32 @fileno(ptr noundef %2281) #8
  %2283 = call i32 @isatty(i32 noundef %2282) #8
  %2284 = icmp ne i32 %2283, 0
  br i1 %2284, label %2285, label %2302

2285:                                             ; preds = %2280
  %2286 = load i32, ptr %55, align 4, !tbaa !5
  %2287 = call ptr @__errno_location() #9
  store i32 %2286, ptr %2287, align 4, !tbaa !5
  %2288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2289 = load i32, ptr @test_count, align 4, !tbaa !5
  %2290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2291 = load i32, ptr %2290, align 4, !tbaa !5
  %2292 = call ptr @s2n_strerror(i32 noundef %2291, ptr noundef @.str.4)
  %2293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2294 = load i32, ptr %2293, align 4, !tbaa !5
  %2295 = call ptr @s2n_strerror_debug(i32 noundef %2294, ptr noundef @.str.4)
  %2296 = call ptr @__errno_location() #9
  %2297 = load i32, ptr %2296, align 4, !tbaa !5
  %2298 = call ptr @strerror(i32 noundef %2297) #8
  %2299 = call ptr @__errno_location() #9
  %2300 = load i32, ptr %2299, align 4, !tbaa !5
  %2301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2288, ptr noundef @.str.2, i32 noundef %2289, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 129, ptr noundef %2292, ptr noundef %2295, ptr noundef %2298, i32 noundef %2300) #8
  br label %2319

2302:                                             ; preds = %2280, %2273
  %2303 = load i32, ptr %55, align 4, !tbaa !5
  %2304 = call ptr @__errno_location() #9
  store i32 %2303, ptr %2304, align 4, !tbaa !5
  %2305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2306 = load i32, ptr @test_count, align 4, !tbaa !5
  %2307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2308 = load i32, ptr %2307, align 4, !tbaa !5
  %2309 = call ptr @s2n_strerror(i32 noundef %2308, ptr noundef @.str.4)
  %2310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2311 = load i32, ptr %2310, align 4, !tbaa !5
  %2312 = call ptr @s2n_strerror_debug(i32 noundef %2311, ptr noundef @.str.4)
  %2313 = call ptr @__errno_location() #9
  %2314 = load i32, ptr %2313, align 4, !tbaa !5
  %2315 = call ptr @strerror(i32 noundef %2314) #8
  %2316 = call ptr @__errno_location() #9
  %2317 = load i32, ptr %2316, align 4, !tbaa !5
  %2318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2305, ptr noundef @.str.5, i32 noundef %2306, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 129, ptr noundef %2309, ptr noundef %2312, ptr noundef %2315, i32 noundef %2317) #8
  br label %2319

2319:                                             ; preds = %2302, %2285
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #8
  br label %2320

2320:                                             ; preds = %2319
  br label %2321

2321:                                             ; preds = %2320
  call void @exit(i32 noundef 1) #10
  unreachable

2322:                                             ; No predecessors!
  br label %2323

2323:                                             ; preds = %2322
  br label %2324

2324:                                             ; preds = %2323, %2265
  br label %2325

2325:                                             ; preds = %2324
  br label %2326

2326:                                             ; preds = %2325
  br label %2327

2327:                                             ; preds = %2326
  %2328 = load i32, ptr @test_count, align 4, !tbaa !5
  %2329 = add nsw i32 %2328, 1
  store i32 %2329, ptr @test_count, align 4, !tbaa !5
  %2330 = load ptr, ptr %48, align 8, !tbaa !9
  %2331 = call i32 @s2n_connection_free(ptr noundef %2330)
  %2332 = icmp eq i32 %2331, -1
  br i1 %2332, label %2333, label %2386

2333:                                             ; preds = %2327
  br label %2334

2334:                                             ; preds = %2333
  br label %2335

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

2342:                                             ; preds = %2335
  %2343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2344 = call i32 @fileno(ptr noundef %2343) #8
  %2345 = call i32 @isatty(i32 noundef %2344) #8
  %2346 = icmp ne i32 %2345, 0
  br i1 %2346, label %2347, label %2364

2347:                                             ; preds = %2342
  %2348 = load i32, ptr %56, align 4, !tbaa !5
  %2349 = call ptr @__errno_location() #9
  store i32 %2348, ptr %2349, align 4, !tbaa !5
  %2350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2351 = load i32, ptr @test_count, align 4, !tbaa !5
  %2352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2353 = load i32, ptr %2352, align 4, !tbaa !5
  %2354 = call ptr @s2n_strerror(i32 noundef %2353, ptr noundef @.str.4)
  %2355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2356 = load i32, ptr %2355, align 4, !tbaa !5
  %2357 = call ptr @s2n_strerror_debug(i32 noundef %2356, ptr noundef @.str.4)
  %2358 = call ptr @__errno_location() #9
  %2359 = load i32, ptr %2358, align 4, !tbaa !5
  %2360 = call ptr @strerror(i32 noundef %2359) #8
  %2361 = call ptr @__errno_location() #9
  %2362 = load i32, ptr %2361, align 4, !tbaa !5
  %2363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2350, ptr noundef @.str.2, i32 noundef %2351, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 132, ptr noundef %2354, ptr noundef %2357, ptr noundef %2360, i32 noundef %2362) #8
  br label %2381

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

2381:                                             ; preds = %2364, %2347
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  br label %2382

2382:                                             ; preds = %2381
  br label %2383

2383:                                             ; preds = %2382
  call void @exit(i32 noundef 1) #10
  unreachable

2384:                                             ; No predecessors!
  br label %2385

2385:                                             ; preds = %2384
  br label %2386

2386:                                             ; preds = %2385, %2327
  br label %2387

2387:                                             ; preds = %2386
  br label %2388

2388:                                             ; preds = %2387
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #8
  br label %2389

2389:                                             ; preds = %2388
  %2390 = load i32, ptr %47, align 4, !tbaa !5
  %2391 = add i32 %2390, 1
  store i32 %2391, ptr %47, align 4, !tbaa !5
  br label %1866, !llvm.loop !45

2392:                                             ; preds = %1869
  br label %2393

2393:                                             ; preds = %2392
  br label %2394

2394:                                             ; preds = %2393
  br label %2395

2395:                                             ; preds = %2394
  %2396 = load i32, ptr @test_count, align 4, !tbaa !5
  %2397 = add nsw i32 %2396, 1
  store i32 %2397, ptr @test_count, align 4, !tbaa !5
  %2398 = call i32 @s2n_handshake_type_set_tls12_flag(ptr noundef null, i32 noundef 0)
  %2399 = getelementptr inbounds %struct.s2n_result, ptr %57, i32 0, i32 0
  store i32 %2398, ptr %2399, align 4
  %2400 = getelementptr inbounds %struct.s2n_result, ptr %57, i32 0, i32 0
  %2401 = load i32, ptr %2400, align 4
  %2402 = call zeroext i1 @s2n_result_is_error(i32 %2401)
  br i1 %2402, label %2454, label %2403

2403:                                             ; preds = %2395
  br label %2404

2404:                                             ; preds = %2403
  br label %2405

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

2412:                                             ; preds = %2405
  %2413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2414 = call i32 @fileno(ptr noundef %2413) #8
  %2415 = call i32 @isatty(i32 noundef %2414) #8
  %2416 = icmp ne i32 %2415, 0
  br i1 %2416, label %2417, label %2434

2417:                                             ; preds = %2412
  %2418 = load i32, ptr %58, align 4, !tbaa !5
  %2419 = call ptr @__errno_location() #9
  store i32 %2418, ptr %2419, align 4, !tbaa !5
  %2420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2421 = load i32, ptr @test_count, align 4, !tbaa !5
  %2422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2423 = load i32, ptr %2422, align 4, !tbaa !5
  %2424 = call ptr @s2n_strerror(i32 noundef %2423, ptr noundef @.str.4)
  %2425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2426 = load i32, ptr %2425, align 4, !tbaa !5
  %2427 = call ptr @s2n_strerror_debug(i32 noundef %2426, ptr noundef @.str.4)
  %2428 = call ptr @__errno_location() #9
  %2429 = load i32, ptr %2428, align 4, !tbaa !5
  %2430 = call ptr @strerror(i32 noundef %2429) #8
  %2431 = call ptr @__errno_location() #9
  %2432 = load i32, ptr %2431, align 4, !tbaa !5
  %2433 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2420, ptr noundef @.str.2, i32 noundef %2421, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 139, ptr noundef %2424, ptr noundef %2427, ptr noundef %2430, i32 noundef %2432) #8
  br label %2451

2434:                                             ; preds = %2412, %2405
  %2435 = load i32, ptr %58, align 4, !tbaa !5
  %2436 = call ptr @__errno_location() #9
  store i32 %2435, ptr %2436, align 4, !tbaa !5
  %2437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2438 = load i32, ptr @test_count, align 4, !tbaa !5
  %2439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2440 = load i32, ptr %2439, align 4, !tbaa !5
  %2441 = call ptr @s2n_strerror(i32 noundef %2440, ptr noundef @.str.4)
  %2442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2443 = load i32, ptr %2442, align 4, !tbaa !5
  %2444 = call ptr @s2n_strerror_debug(i32 noundef %2443, ptr noundef @.str.4)
  %2445 = call ptr @__errno_location() #9
  %2446 = load i32, ptr %2445, align 4, !tbaa !5
  %2447 = call ptr @strerror(i32 noundef %2446) #8
  %2448 = call ptr @__errno_location() #9
  %2449 = load i32, ptr %2448, align 4, !tbaa !5
  %2450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2437, ptr noundef @.str.5, i32 noundef %2438, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 139, ptr noundef %2441, ptr noundef %2444, ptr noundef %2447, i32 noundef %2449) #8
  br label %2451

2451:                                             ; preds = %2434, %2417
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #8
  br label %2452

2452:                                             ; preds = %2451
  call void @exit(i32 noundef 1) #10
  unreachable

2453:                                             ; No predecessors!
  br label %2454

2454:                                             ; preds = %2453, %2395
  br label %2455

2455:                                             ; preds = %2454
  br label %2456

2456:                                             ; preds = %2455
  %2457 = load i32, ptr @test_count, align 4, !tbaa !5
  %2458 = add nsw i32 %2457, 1
  store i32 %2458, ptr @test_count, align 4, !tbaa !5
  %2459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2460 = load i32, ptr %2459, align 4, !tbaa !5
  %2461 = icmp eq i32 %2460, 402653193
  br i1 %2461, label %2513, label %2462

2462:                                             ; preds = %2456
  br label %2463

2463:                                             ; preds = %2462
  br label %2464

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

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

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

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

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

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

2512:                                             ; No predecessors!
  br label %2513

2513:                                             ; preds = %2512, %2456
  br label %2514

2514:                                             ; preds = %2513
  br label %2515

2515:                                             ; preds = %2514
  %2516 = load i32, ptr @test_count, align 4, !tbaa !5
  %2517 = add nsw i32 %2516, 1
  store i32 %2517, ptr @test_count, align 4, !tbaa !5
  %2518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2519 = load i32, ptr %2518, align 4, !tbaa !5
  %2520 = call ptr @s2n_strerror_debug(i32 noundef %2519, ptr noundef @.str.4)
  %2521 = icmp eq ptr %2520, null
  br i1 %2521, label %2522, label %2573

2522:                                             ; preds = %2515
  br label %2523

2523:                                             ; preds = %2522
  br label %2524

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

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

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

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

2570:                                             ; preds = %2553, %2536
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #8
  br label %2571

2571:                                             ; preds = %2570
  call void @exit(i32 noundef 1) #10
  unreachable

2572:                                             ; No predecessors!
  br label %2573

2573:                                             ; preds = %2572, %2515
  br label %2574

2574:                                             ; preds = %2573
  br label %2575

2575:                                             ; preds = %2574
  br label %2576

2576:                                             ; preds = %2575
  %2577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2577, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2578 = call ptr @__errno_location() #9
  store i32 0, ptr %2578, align 4, !tbaa !5
  br label %2579

2579:                                             ; preds = %2576
  br label %2580

2580:                                             ; preds = %2579
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #8
  store i32 16, ptr %61, align 4, !tbaa !5
  br label %2581

2581:                                             ; preds = %3112, %2580
  %2582 = load i32, ptr %61, align 4, !tbaa !5
  %2583 = icmp ule i32 %2582, 64
  br i1 %2583, label %2585, label %2584

2584:                                             ; preds = %2581
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #8
  br label %3115

2585:                                             ; preds = %2581
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #8
  %2586 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2586, ptr %62, align 8, !tbaa !9
  br label %2587

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

2592:                                             ; preds = %2587
  br label %2593

2593:                                             ; preds = %2592
  br label %2594

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

2601:                                             ; preds = %2594
  %2602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2603 = call i32 @fileno(ptr noundef %2602) #8
  %2604 = call i32 @isatty(i32 noundef %2603) #8
  %2605 = icmp ne i32 %2604, 0
  br i1 %2605, label %2606, label %2623

2606:                                             ; preds = %2601
  %2607 = load i32, ptr %63, align 4, !tbaa !5
  %2608 = call ptr @__errno_location() #9
  store i32 %2607, ptr %2608, align 4, !tbaa !5
  %2609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2610 = load i32, ptr @test_count, align 4, !tbaa !5
  %2611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2612 = load i32, ptr %2611, align 4, !tbaa !5
  %2613 = call ptr @s2n_strerror(i32 noundef %2612, ptr noundef @.str.4)
  %2614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2615 = load i32, ptr %2614, align 4, !tbaa !5
  %2616 = call ptr @s2n_strerror_debug(i32 noundef %2615, ptr noundef @.str.4)
  %2617 = call ptr @__errno_location() #9
  %2618 = load i32, ptr %2617, align 4, !tbaa !5
  %2619 = call ptr @strerror(i32 noundef %2618) #8
  %2620 = call ptr @__errno_location() #9
  %2621 = load i32, ptr %2620, align 4, !tbaa !5
  %2622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2609, ptr noundef @.str.2, i32 noundef %2610, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 144, ptr noundef %2613, ptr noundef %2616, ptr noundef %2619, i32 noundef %2621) #8
  br label %2640

2623:                                             ; preds = %2601, %2594
  %2624 = load i32, ptr %63, align 4, !tbaa !5
  %2625 = call ptr @__errno_location() #9
  store i32 %2624, ptr %2625, align 4, !tbaa !5
  %2626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2627 = load i32, ptr @test_count, align 4, !tbaa !5
  %2628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2629 = load i32, ptr %2628, align 4, !tbaa !5
  %2630 = call ptr @s2n_strerror(i32 noundef %2629, ptr noundef @.str.4)
  %2631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2632 = load i32, ptr %2631, align 4, !tbaa !5
  %2633 = call ptr @s2n_strerror_debug(i32 noundef %2632, ptr noundef @.str.4)
  %2634 = call ptr @__errno_location() #9
  %2635 = load i32, ptr %2634, align 4, !tbaa !5
  %2636 = call ptr @strerror(i32 noundef %2635) #8
  %2637 = call ptr @__errno_location() #9
  %2638 = load i32, ptr %2637, align 4, !tbaa !5
  %2639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2626, ptr noundef @.str.5, i32 noundef %2627, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 144, ptr noundef %2630, ptr noundef %2633, ptr noundef %2636, i32 noundef %2638) #8
  br label %2640

2640:                                             ; preds = %2623, %2606
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #8
  br label %2641

2641:                                             ; preds = %2640
  br label %2642

2642:                                             ; preds = %2641
  call void @exit(i32 noundef 1) #10
  unreachable

2643:                                             ; No predecessors!
  br label %2644

2644:                                             ; preds = %2643
  br label %2645

2645:                                             ; preds = %2644, %2587
  br label %2646

2646:                                             ; preds = %2645
  br label %2647

2647:                                             ; preds = %2646
  %2648 = load ptr, ptr %62, align 8, !tbaa !9
  %2649 = getelementptr inbounds %struct.s2n_connection, ptr %2648, i32 0, i32 23
  store i8 33, ptr %2649, align 4, !tbaa !42
  br label %2650

2650:                                             ; preds = %2647
  %2651 = load i32, ptr @test_count, align 4, !tbaa !5
  %2652 = add nsw i32 %2651, 1
  store i32 %2652, ptr @test_count, align 4, !tbaa !5
  %2653 = load ptr, ptr %62, align 8, !tbaa !9
  %2654 = load i32, ptr %61, align 4, !tbaa !5
  %2655 = call i32 @s2n_handshake_type_set_tls12_flag(ptr noundef %2653, i32 noundef %2654)
  %2656 = getelementptr inbounds %struct.s2n_result, ptr %64, i32 0, i32 0
  store i32 %2655, ptr %2656, align 4
  %2657 = getelementptr inbounds %struct.s2n_result, ptr %64, i32 0, i32 0
  %2658 = load i32, ptr %2657, align 4
  %2659 = call zeroext i1 @s2n_result_is_ok(i32 %2658)
  br i1 %2659, label %2713, label %2660

2660:                                             ; preds = %2650
  br label %2661

2661:                                             ; preds = %2660
  br label %2662

2662:                                             ; preds = %2661
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #8
  %2663 = call ptr @__errno_location() #9
  %2664 = load i32, ptr %2663, align 4, !tbaa !5
  store i32 %2664, ptr %65, align 4, !tbaa !5
  %2665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2666 = call i32 @s2n_print_stacktrace(ptr noundef %2665)
  %2667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2668 = trunc i8 %2667 to i1
  br i1 %2668, label %2669, label %2691

2669:                                             ; preds = %2662
  %2670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2671 = call i32 @fileno(ptr noundef %2670) #8
  %2672 = call i32 @isatty(i32 noundef %2671) #8
  %2673 = icmp ne i32 %2672, 0
  br i1 %2673, label %2674, label %2691

2674:                                             ; preds = %2669
  %2675 = load i32, ptr %65, align 4, !tbaa !5
  %2676 = call ptr @__errno_location() #9
  store i32 %2675, ptr %2676, align 4, !tbaa !5
  %2677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2678 = load i32, ptr @test_count, align 4, !tbaa !5
  %2679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2680 = load i32, ptr %2679, align 4, !tbaa !5
  %2681 = call ptr @s2n_strerror(i32 noundef %2680, ptr noundef @.str.4)
  %2682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2683 = load i32, ptr %2682, align 4, !tbaa !5
  %2684 = call ptr @s2n_strerror_debug(i32 noundef %2683, ptr noundef @.str.4)
  %2685 = call ptr @__errno_location() #9
  %2686 = load i32, ptr %2685, align 4, !tbaa !5
  %2687 = call ptr @strerror(i32 noundef %2686) #8
  %2688 = call ptr @__errno_location() #9
  %2689 = load i32, ptr %2688, align 4, !tbaa !5
  %2690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2677, ptr noundef @.str.2, i32 noundef %2678, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 147, ptr noundef %2681, ptr noundef %2684, ptr noundef %2687, i32 noundef %2689) #8
  br label %2708

2691:                                             ; preds = %2669, %2662
  %2692 = load i32, ptr %65, align 4, !tbaa !5
  %2693 = call ptr @__errno_location() #9
  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() #9
  %2703 = load i32, ptr %2702, align 4, !tbaa !5
  %2704 = call ptr @strerror(i32 noundef %2703) #8
  %2705 = call ptr @__errno_location() #9
  %2706 = load i32, ptr %2705, align 4, !tbaa !5
  %2707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2694, ptr noundef @.str.5, i32 noundef %2695, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 147, ptr noundef %2698, ptr noundef %2701, ptr noundef %2704, i32 noundef %2706) #8
  br label %2708

2708:                                             ; preds = %2691, %2674
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #8
  br label %2709

2709:                                             ; preds = %2708
  br label %2710

2710:                                             ; preds = %2709
  call void @exit(i32 noundef 1) #10
  unreachable

2711:                                             ; No predecessors!
  br label %2712

2712:                                             ; preds = %2711
  br label %2713

2713:                                             ; preds = %2712, %2650
  br label %2714

2714:                                             ; preds = %2713
  br label %2715

2715:                                             ; preds = %2714
  br label %2716

2716:                                             ; preds = %2715
  %2717 = load i32, ptr @test_count, align 4, !tbaa !5
  %2718 = add nsw i32 %2717, 1
  store i32 %2718, ptr @test_count, align 4, !tbaa !5
  %2719 = load ptr, ptr %62, align 8, !tbaa !9
  %2720 = getelementptr inbounds %struct.s2n_connection, ptr %2719, i32 0, i32 52
  %2721 = getelementptr inbounds %struct.s2n_handshake, ptr %2720, i32 0, i32 6
  %2722 = load i32, ptr %2721, align 4, !tbaa !15
  %2723 = load i32, ptr %61, align 4, !tbaa !5
  %2724 = icmp eq i32 %2722, %2723
  br i1 %2724, label %2778, label %2725

2725:                                             ; preds = %2716
  br label %2726

2726:                                             ; preds = %2725
  br label %2727

2727:                                             ; preds = %2726
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #8
  %2728 = call ptr @__errno_location() #9
  %2729 = load i32, ptr %2728, align 4, !tbaa !5
  store i32 %2729, ptr %66, align 4, !tbaa !5
  %2730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2731 = call i32 @s2n_print_stacktrace(ptr noundef %2730)
  %2732 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2733 = trunc i8 %2732 to i1
  br i1 %2733, label %2734, label %2756

2734:                                             ; preds = %2727
  %2735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2736 = call i32 @fileno(ptr noundef %2735) #8
  %2737 = call i32 @isatty(i32 noundef %2736) #8
  %2738 = icmp ne i32 %2737, 0
  br i1 %2738, label %2739, label %2756

2739:                                             ; preds = %2734
  %2740 = load i32, ptr %66, align 4, !tbaa !5
  %2741 = call ptr @__errno_location() #9
  store i32 %2740, ptr %2741, align 4, !tbaa !5
  %2742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2743 = load i32, ptr @test_count, align 4, !tbaa !5
  %2744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2745 = load i32, ptr %2744, align 4, !tbaa !5
  %2746 = call ptr @s2n_strerror(i32 noundef %2745, ptr noundef @.str.4)
  %2747 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2748 = load i32, ptr %2747, align 4, !tbaa !5
  %2749 = call ptr @s2n_strerror_debug(i32 noundef %2748, ptr noundef @.str.4)
  %2750 = call ptr @__errno_location() #9
  %2751 = load i32, ptr %2750, align 4, !tbaa !5
  %2752 = call ptr @strerror(i32 noundef %2751) #8
  %2753 = call ptr @__errno_location() #9
  %2754 = load i32, ptr %2753, align 4, !tbaa !5
  %2755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2742, ptr noundef @.str.2, i32 noundef %2743, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 148, ptr noundef %2746, ptr noundef %2749, ptr noundef %2752, i32 noundef %2754) #8
  br label %2773

2756:                                             ; preds = %2734, %2727
  %2757 = load i32, ptr %66, align 4, !tbaa !5
  %2758 = call ptr @__errno_location() #9
  store i32 %2757, ptr %2758, align 4, !tbaa !5
  %2759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2760 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2762, ptr noundef @.str.4)
  %2764 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2765 = load i32, ptr %2764, align 4, !tbaa !5
  %2766 = call ptr @s2n_strerror_debug(i32 noundef %2765, ptr noundef @.str.4)
  %2767 = call ptr @__errno_location() #9
  %2768 = load i32, ptr %2767, align 4, !tbaa !5
  %2769 = call ptr @strerror(i32 noundef %2768) #8
  %2770 = call ptr @__errno_location() #9
  %2771 = load i32, ptr %2770, align 4, !tbaa !5
  %2772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2759, ptr noundef @.str.5, i32 noundef %2760, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 148, ptr noundef %2763, ptr noundef %2766, ptr noundef %2769, i32 noundef %2771) #8
  br label %2773

2773:                                             ; preds = %2756, %2739
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #8
  br label %2774

2774:                                             ; preds = %2773
  br label %2775

2775:                                             ; preds = %2774
  call void @exit(i32 noundef 1) #10
  unreachable

2776:                                             ; No predecessors!
  br label %2777

2777:                                             ; preds = %2776
  br label %2778

2778:                                             ; preds = %2777, %2716
  br label %2779

2779:                                             ; preds = %2778
  br label %2780

2780:                                             ; preds = %2779
  br label %2781

2781:                                             ; preds = %2780
  %2782 = load i32, ptr @test_count, align 4, !tbaa !5
  %2783 = add nsw i32 %2782, 1
  store i32 %2783, ptr @test_count, align 4, !tbaa !5
  %2784 = load ptr, ptr %62, align 8, !tbaa !9
  %2785 = call i32 @s2n_handshake_type_reset(ptr noundef %2784)
  %2786 = getelementptr inbounds %struct.s2n_result, ptr %67, i32 0, i32 0
  store i32 %2785, ptr %2786, align 4
  %2787 = getelementptr inbounds %struct.s2n_result, ptr %67, i32 0, i32 0
  %2788 = load i32, ptr %2787, align 4
  %2789 = call zeroext i1 @s2n_result_is_ok(i32 %2788)
  br i1 %2789, label %2843, label %2790

2790:                                             ; preds = %2781
  br label %2791

2791:                                             ; preds = %2790
  br label %2792

2792:                                             ; preds = %2791
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #8
  %2793 = call ptr @__errno_location() #9
  %2794 = load i32, ptr %2793, align 4, !tbaa !5
  store i32 %2794, ptr %68, align 4, !tbaa !5
  %2795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2796 = call i32 @s2n_print_stacktrace(ptr noundef %2795)
  %2797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2798 = trunc i8 %2797 to i1
  br i1 %2798, label %2799, label %2821

2799:                                             ; preds = %2792
  %2800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2801 = call i32 @fileno(ptr noundef %2800) #8
  %2802 = call i32 @isatty(i32 noundef %2801) #8
  %2803 = icmp ne i32 %2802, 0
  br i1 %2803, label %2804, label %2821

2804:                                             ; preds = %2799
  %2805 = load i32, ptr %68, align 4, !tbaa !5
  %2806 = call ptr @__errno_location() #9
  store i32 %2805, ptr %2806, align 4, !tbaa !5
  %2807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2808 = load i32, ptr @test_count, align 4, !tbaa !5
  %2809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2810 = load i32, ptr %2809, align 4, !tbaa !5
  %2811 = call ptr @s2n_strerror(i32 noundef %2810, ptr noundef @.str.4)
  %2812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2813 = load i32, ptr %2812, align 4, !tbaa !5
  %2814 = call ptr @s2n_strerror_debug(i32 noundef %2813, ptr noundef @.str.4)
  %2815 = call ptr @__errno_location() #9
  %2816 = load i32, ptr %2815, align 4, !tbaa !5
  %2817 = call ptr @strerror(i32 noundef %2816) #8
  %2818 = call ptr @__errno_location() #9
  %2819 = load i32, ptr %2818, align 4, !tbaa !5
  %2820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2807, ptr noundef @.str.2, i32 noundef %2808, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 150, ptr noundef %2811, ptr noundef %2814, ptr noundef %2817, i32 noundef %2819) #8
  br label %2838

2821:                                             ; preds = %2799, %2792
  %2822 = load i32, ptr %68, align 4, !tbaa !5
  %2823 = call ptr @__errno_location() #9
  store i32 %2822, ptr %2823, align 4, !tbaa !5
  %2824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2825 = load i32, ptr @test_count, align 4, !tbaa !5
  %2826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2827 = load i32, ptr %2826, align 4, !tbaa !5
  %2828 = call ptr @s2n_strerror(i32 noundef %2827, ptr noundef @.str.4)
  %2829 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2830 = load i32, ptr %2829, align 4, !tbaa !5
  %2831 = call ptr @s2n_strerror_debug(i32 noundef %2830, ptr noundef @.str.4)
  %2832 = call ptr @__errno_location() #9
  %2833 = load i32, ptr %2832, align 4, !tbaa !5
  %2834 = call ptr @strerror(i32 noundef %2833) #8
  %2835 = call ptr @__errno_location() #9
  %2836 = load i32, ptr %2835, align 4, !tbaa !5
  %2837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2824, ptr noundef @.str.5, i32 noundef %2825, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 150, ptr noundef %2828, ptr noundef %2831, ptr noundef %2834, i32 noundef %2836) #8
  br label %2838

2838:                                             ; preds = %2821, %2804
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #8
  br label %2839

2839:                                             ; preds = %2838
  br label %2840

2840:                                             ; preds = %2839
  call void @exit(i32 noundef 1) #10
  unreachable

2841:                                             ; No predecessors!
  br label %2842

2842:                                             ; preds = %2841
  br label %2843

2843:                                             ; preds = %2842, %2781
  br label %2844

2844:                                             ; preds = %2843
  br label %2845

2845:                                             ; preds = %2844
  %2846 = load ptr, ptr %62, align 8, !tbaa !9
  %2847 = getelementptr inbounds %struct.s2n_connection, ptr %2846, i32 0, i32 23
  store i8 34, ptr %2847, align 4, !tbaa !42
  br label %2848

2848:                                             ; preds = %2845
  br label %2849

2849:                                             ; preds = %2848
  br label %2850

2850:                                             ; preds = %2849
  %2851 = load i32, ptr @test_count, align 4, !tbaa !5
  %2852 = add nsw i32 %2851, 1
  store i32 %2852, ptr @test_count, align 4, !tbaa !5
  %2853 = load ptr, ptr %62, align 8, !tbaa !9
  %2854 = load i32, ptr %61, align 4, !tbaa !5
  %2855 = call i32 @s2n_handshake_type_set_tls12_flag(ptr noundef %2853, i32 noundef %2854)
  %2856 = getelementptr inbounds %struct.s2n_result, ptr %69, i32 0, i32 0
  store i32 %2855, ptr %2856, align 4
  %2857 = getelementptr inbounds %struct.s2n_result, ptr %69, i32 0, i32 0
  %2858 = load i32, ptr %2857, align 4
  %2859 = call zeroext i1 @s2n_result_is_error(i32 %2858)
  br i1 %2859, label %2913, label %2860

2860:                                             ; preds = %2850
  br label %2861

2861:                                             ; preds = %2860
  br label %2862

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

2869:                                             ; preds = %2862
  %2870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2871 = call i32 @fileno(ptr noundef %2870) #8
  %2872 = call i32 @isatty(i32 noundef %2871) #8
  %2873 = icmp ne i32 %2872, 0
  br i1 %2873, label %2874, label %2891

2874:                                             ; preds = %2869
  %2875 = load i32, ptr %70, align 4, !tbaa !5
  %2876 = call ptr @__errno_location() #9
  store i32 %2875, ptr %2876, align 4, !tbaa !5
  %2877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2878 = load i32, ptr @test_count, align 4, !tbaa !5
  %2879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2880 = load i32, ptr %2879, align 4, !tbaa !5
  %2881 = call ptr @s2n_strerror(i32 noundef %2880, ptr noundef @.str.4)
  %2882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2883 = load i32, ptr %2882, align 4, !tbaa !5
  %2884 = call ptr @s2n_strerror_debug(i32 noundef %2883, ptr noundef @.str.4)
  %2885 = call ptr @__errno_location() #9
  %2886 = load i32, ptr %2885, align 4, !tbaa !5
  %2887 = call ptr @strerror(i32 noundef %2886) #8
  %2888 = call ptr @__errno_location() #9
  %2889 = load i32, ptr %2888, align 4, !tbaa !5
  %2890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2877, ptr noundef @.str.2, i32 noundef %2878, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 153, ptr noundef %2881, ptr noundef %2884, ptr noundef %2887, i32 noundef %2889) #8
  br label %2908

2891:                                             ; preds = %2869, %2862
  %2892 = load i32, ptr %70, align 4, !tbaa !5
  %2893 = call ptr @__errno_location() #9
  store i32 %2892, ptr %2893, align 4, !tbaa !5
  %2894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2895 = load i32, ptr @test_count, align 4, !tbaa !5
  %2896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2897 = load i32, ptr %2896, align 4, !tbaa !5
  %2898 = call ptr @s2n_strerror(i32 noundef %2897, ptr noundef @.str.4)
  %2899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2900 = load i32, ptr %2899, align 4, !tbaa !5
  %2901 = call ptr @s2n_strerror_debug(i32 noundef %2900, ptr noundef @.str.4)
  %2902 = call ptr @__errno_location() #9
  %2903 = load i32, ptr %2902, align 4, !tbaa !5
  %2904 = call ptr @strerror(i32 noundef %2903) #8
  %2905 = call ptr @__errno_location() #9
  %2906 = load i32, ptr %2905, align 4, !tbaa !5
  %2907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2894, ptr noundef @.str.5, i32 noundef %2895, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 153, ptr noundef %2898, ptr noundef %2901, ptr noundef %2904, i32 noundef %2906) #8
  br label %2908

2908:                                             ; preds = %2891, %2874
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #8
  br label %2909

2909:                                             ; preds = %2908
  br label %2910

2910:                                             ; preds = %2909
  call void @exit(i32 noundef 1) #10
  unreachable

2911:                                             ; No predecessors!
  br label %2912

2912:                                             ; preds = %2911
  br label %2913

2913:                                             ; preds = %2912, %2850
  br label %2914

2914:                                             ; preds = %2913
  br label %2915

2915:                                             ; preds = %2914
  br label %2916

2916:                                             ; preds = %2915
  %2917 = load i32, ptr @test_count, align 4, !tbaa !5
  %2918 = add nsw i32 %2917, 1
  store i32 %2918, ptr @test_count, align 4, !tbaa !5
  %2919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2920 = load i32, ptr %2919, align 4, !tbaa !5
  %2921 = icmp eq i32 %2920, 402653218
  br i1 %2921, label %2975, label %2922

2922:                                             ; preds = %2916
  br label %2923

2923:                                             ; preds = %2922
  br label %2924

2924:                                             ; preds = %2923
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #8
  %2925 = call ptr @__errno_location() #9
  %2926 = load i32, ptr %2925, align 4, !tbaa !5
  store i32 %2926, ptr %71, align 4, !tbaa !5
  %2927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2928 = call i32 @s2n_print_stacktrace(ptr noundef %2927)
  %2929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2930 = trunc i8 %2929 to i1
  br i1 %2930, label %2931, label %2953

2931:                                             ; preds = %2924
  %2932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2933 = call i32 @fileno(ptr noundef %2932) #8
  %2934 = call i32 @isatty(i32 noundef %2933) #8
  %2935 = icmp ne i32 %2934, 0
  br i1 %2935, label %2936, label %2953

2936:                                             ; preds = %2931
  %2937 = load i32, ptr %71, align 4, !tbaa !5
  %2938 = call ptr @__errno_location() #9
  store i32 %2937, ptr %2938, align 4, !tbaa !5
  %2939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2940 = load i32, ptr @test_count, align 4, !tbaa !5
  %2941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2942 = load i32, ptr %2941, align 4, !tbaa !5
  %2943 = call ptr @s2n_strerror(i32 noundef %2942, ptr noundef @.str.4)
  %2944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2945 = load i32, ptr %2944, align 4, !tbaa !5
  %2946 = call ptr @s2n_strerror_debug(i32 noundef %2945, ptr noundef @.str.4)
  %2947 = call ptr @__errno_location() #9
  %2948 = load i32, ptr %2947, align 4, !tbaa !5
  %2949 = call ptr @strerror(i32 noundef %2948) #8
  %2950 = call ptr @__errno_location() #9
  %2951 = load i32, ptr %2950, align 4, !tbaa !5
  %2952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2939, ptr noundef @.str.2, i32 noundef %2940, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 153, ptr noundef %2943, ptr noundef %2946, ptr noundef %2949, i32 noundef %2951) #8
  br label %2970

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

2970:                                             ; preds = %2953, %2936
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #8
  br label %2971

2971:                                             ; preds = %2970
  br label %2972

2972:                                             ; preds = %2971
  call void @exit(i32 noundef 1) #10
  unreachable

2973:                                             ; No predecessors!
  br label %2974

2974:                                             ; preds = %2973
  br label %2975

2975:                                             ; preds = %2974, %2916
  br label %2976

2976:                                             ; preds = %2975
  br label %2977

2977:                                             ; preds = %2976
  br label %2978

2978:                                             ; preds = %2977
  %2979 = load i32, ptr @test_count, align 4, !tbaa !5
  %2980 = add nsw i32 %2979, 1
  store i32 %2980, ptr @test_count, align 4, !tbaa !5
  %2981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2982 = load i32, ptr %2981, align 4, !tbaa !5
  %2983 = call ptr @s2n_strerror_debug(i32 noundef %2982, ptr noundef @.str.4)
  %2984 = icmp eq ptr %2983, null
  br i1 %2984, label %2985, label %3038

2985:                                             ; preds = %2978
  br label %2986

2986:                                             ; preds = %2985
  br label %2987

2987:                                             ; preds = %2986
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #8
  %2988 = call ptr @__errno_location() #9
  %2989 = load i32, ptr %2988, align 4, !tbaa !5
  store i32 %2989, ptr %72, align 4, !tbaa !5
  %2990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2991 = call i32 @s2n_print_stacktrace(ptr noundef %2990)
  %2992 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2993 = trunc i8 %2992 to i1
  br i1 %2993, label %2994, label %3016

2994:                                             ; preds = %2987
  %2995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2996 = call i32 @fileno(ptr noundef %2995) #8
  %2997 = call i32 @isatty(i32 noundef %2996) #8
  %2998 = icmp ne i32 %2997, 0
  br i1 %2998, label %2999, label %3016

2999:                                             ; preds = %2994
  %3000 = load i32, ptr %72, align 4, !tbaa !5
  %3001 = call ptr @__errno_location() #9
  store i32 %3000, ptr %3001, align 4, !tbaa !5
  %3002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3003 = load i32, ptr @test_count, align 4, !tbaa !5
  %3004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3005 = load i32, ptr %3004, align 4, !tbaa !5
  %3006 = call ptr @s2n_strerror(i32 noundef %3005, ptr noundef @.str.4)
  %3007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3008 = load i32, ptr %3007, align 4, !tbaa !5
  %3009 = call ptr @s2n_strerror_debug(i32 noundef %3008, ptr noundef @.str.4)
  %3010 = call ptr @__errno_location() #9
  %3011 = load i32, ptr %3010, align 4, !tbaa !5
  %3012 = call ptr @strerror(i32 noundef %3011) #8
  %3013 = call ptr @__errno_location() #9
  %3014 = load i32, ptr %3013, align 4, !tbaa !5
  %3015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3002, ptr noundef @.str.2, i32 noundef %3003, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 153, ptr noundef %3006, ptr noundef %3009, ptr noundef %3012, i32 noundef %3014) #8
  br label %3033

3016:                                             ; preds = %2994, %2987
  %3017 = load i32, ptr %72, align 4, !tbaa !5
  %3018 = call ptr @__errno_location() #9
  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() #9
  %3028 = load i32, ptr %3027, align 4, !tbaa !5
  %3029 = call ptr @strerror(i32 noundef %3028) #8
  %3030 = call ptr @__errno_location() #9
  %3031 = load i32, ptr %3030, align 4, !tbaa !5
  %3032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3019, ptr noundef @.str.5, i32 noundef %3020, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 153, ptr noundef %3023, ptr noundef %3026, ptr noundef %3029, i32 noundef %3031) #8
  br label %3033

3033:                                             ; preds = %3016, %2999
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #8
  br label %3034

3034:                                             ; preds = %3033
  br label %3035

3035:                                             ; preds = %3034
  call void @exit(i32 noundef 1) #10
  unreachable

3036:                                             ; No predecessors!
  br label %3037

3037:                                             ; preds = %3036
  br label %3038

3038:                                             ; preds = %3037, %2978
  br label %3039

3039:                                             ; preds = %3038
  br label %3040

3040:                                             ; preds = %3039
  br label %3041

3041:                                             ; preds = %3040
  br label %3042

3042:                                             ; preds = %3041
  br label %3043

3043:                                             ; preds = %3042
  %3044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3044, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3045 = call ptr @__errno_location() #9
  store i32 0, ptr %3045, align 4, !tbaa !5
  br label %3046

3046:                                             ; preds = %3043
  br label %3047

3047:                                             ; preds = %3046
  br label %3048

3048:                                             ; preds = %3047
  br label %3049

3049:                                             ; preds = %3048
  br label %3050

3050:                                             ; preds = %3049
  %3051 = load i32, ptr @test_count, align 4, !tbaa !5
  %3052 = add nsw i32 %3051, 1
  store i32 %3052, ptr @test_count, align 4, !tbaa !5
  %3053 = load ptr, ptr %62, align 8, !tbaa !9
  %3054 = call i32 @s2n_connection_free(ptr noundef %3053)
  %3055 = icmp eq i32 %3054, -1
  br i1 %3055, label %3056, label %3109

3056:                                             ; preds = %3050
  br label %3057

3057:                                             ; preds = %3056
  br label %3058

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

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

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

3087:                                             ; preds = %3065, %3058
  %3088 = load i32, ptr %73, align 4, !tbaa !5
  %3089 = call ptr @__errno_location() #9
  store i32 %3088, ptr %3089, align 4, !tbaa !5
  %3090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3091 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %3093, ptr noundef @.str.4)
  %3095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3096 = load i32, ptr %3095, align 4, !tbaa !5
  %3097 = call ptr @s2n_strerror_debug(i32 noundef %3096, ptr noundef @.str.4)
  %3098 = call ptr @__errno_location() #9
  %3099 = load i32, ptr %3098, align 4, !tbaa !5
  %3100 = call ptr @strerror(i32 noundef %3099) #8
  %3101 = call ptr @__errno_location() #9
  %3102 = load i32, ptr %3101, align 4, !tbaa !5
  %3103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3090, ptr noundef @.str.5, i32 noundef %3091, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 155, ptr noundef %3094, ptr noundef %3097, ptr noundef %3100, i32 noundef %3102) #8
  br label %3104

3104:                                             ; preds = %3087, %3070
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #8
  br label %3105

3105:                                             ; preds = %3104
  br label %3106

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

3107:                                             ; No predecessors!
  br label %3108

3108:                                             ; preds = %3107
  br label %3109

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

3110:                                             ; preds = %3109
  br label %3111

3111:                                             ; preds = %3110
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #8
  br label %3112

3112:                                             ; preds = %3111
  %3113 = load i32, ptr %61, align 4, !tbaa !5
  %3114 = add i32 %3113, 1
  store i32 %3114, ptr %61, align 4, !tbaa !5
  br label %2581, !llvm.loop !46

3115:                                             ; preds = %2584
  br label %3116

3116:                                             ; preds = %3115
  %3117 = load i32, ptr @test_count, align 4, !tbaa !5
  %3118 = add nsw i32 %3117, 1
  store i32 %3118, ptr @test_count, align 4, !tbaa !5
  %3119 = call zeroext i1 @s2n_handshake_type_check_tls12_flag(ptr noundef null, i32 noundef 0)
  br i1 %3119, label %3120, label %3171

3120:                                             ; preds = %3116
  br label %3121

3121:                                             ; preds = %3120
  br label %3122

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

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

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

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

3168:                                             ; preds = %3151, %3134
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #8
  br label %3169

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

3170:                                             ; No predecessors!
  br label %3171

3171:                                             ; preds = %3170, %3116
  br label %3172

3172:                                             ; preds = %3171
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #8
  store i32 16, ptr %75, align 4, !tbaa !5
  br label %3173

3173:                                             ; preds = %3696, %3172
  %3174 = load i32, ptr %75, align 4, !tbaa !5
  %3175 = icmp ule i32 %3174, 64
  br i1 %3175, label %3177, label %3176

3176:                                             ; preds = %3173
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #8
  br label %3699

3177:                                             ; preds = %3173
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #8
  %3178 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3178, ptr %76, align 8, !tbaa !9
  br label %3179

3179:                                             ; preds = %3177
  %3180 = load i32, ptr @test_count, align 4, !tbaa !5
  %3181 = add nsw i32 %3180, 1
  store i32 %3181, ptr @test_count, align 4, !tbaa !5
  %3182 = load ptr, ptr %76, align 8, !tbaa !9
  %3183 = icmp eq ptr %3182, null
  br i1 %3183, label %3184, label %3237

3184:                                             ; preds = %3179
  br label %3185

3185:                                             ; preds = %3184
  br label %3186

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

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

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

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

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

3233:                                             ; preds = %3232
  br label %3234

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

3235:                                             ; No predecessors!
  br label %3236

3236:                                             ; preds = %3235
  br label %3237

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

3238:                                             ; preds = %3237
  br label %3239

3239:                                             ; preds = %3238
  %3240 = load ptr, ptr %76, align 8, !tbaa !9
  %3241 = getelementptr inbounds %struct.s2n_connection, ptr %3240, i32 0, i32 52
  %3242 = getelementptr inbounds %struct.s2n_handshake, ptr %3241, i32 0, i32 6
  store i32 65535, ptr %3242, align 4, !tbaa !15
  %3243 = load ptr, ptr %76, align 8, !tbaa !9
  %3244 = getelementptr inbounds %struct.s2n_connection, ptr %3243, i32 0, i32 23
  store i8 33, ptr %3244, align 4, !tbaa !42
  br label %3245

3245:                                             ; preds = %3239
  %3246 = load i32, ptr @test_count, align 4, !tbaa !5
  %3247 = add nsw i32 %3246, 1
  store i32 %3247, ptr @test_count, align 4, !tbaa !5
  %3248 = load ptr, ptr %76, align 8, !tbaa !9
  %3249 = load i32, ptr %75, align 4, !tbaa !5
  %3250 = call zeroext i1 @s2n_handshake_type_check_tls12_flag(ptr noundef %3248, i32 noundef %3249)
  br i1 %3250, label %3304, label %3251

3251:                                             ; preds = %3245
  br label %3252

3252:                                             ; preds = %3251
  br label %3253

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

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

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

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

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

3300:                                             ; preds = %3299
  br label %3301

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

3302:                                             ; No predecessors!
  br label %3303

3303:                                             ; preds = %3302
  br label %3304

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

3305:                                             ; preds = %3304
  br label %3306

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

3309:                                             ; preds = %3306
  %3310 = load i32, ptr @test_count, align 4, !tbaa !5
  %3311 = add nsw i32 %3310, 1
  store i32 %3311, ptr @test_count, align 4, !tbaa !5
  %3312 = load ptr, ptr %76, align 8, !tbaa !9
  %3313 = load i32, ptr %75, align 4, !tbaa !5
  %3314 = call zeroext i1 @s2n_handshake_type_check_tls12_flag(ptr noundef %3312, i32 noundef %3313)
  br i1 %3314, label %3315, label %3368

3315:                                             ; preds = %3309
  br label %3316

3316:                                             ; preds = %3315
  br label %3317

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

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

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

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

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

3364:                                             ; preds = %3363
  br label %3365

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

3366:                                             ; No predecessors!
  br label %3367

3367:                                             ; preds = %3366
  br label %3368

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

3369:                                             ; preds = %3368
  br label %3370

3370:                                             ; preds = %3369
  %3371 = load ptr, ptr %76, align 8, !tbaa !9
  %3372 = getelementptr inbounds %struct.s2n_connection, ptr %3371, i32 0, i32 52
  %3373 = getelementptr inbounds %struct.s2n_handshake, ptr %3372, i32 0, i32 6
  store i32 0, ptr %3373, align 4, !tbaa !15
  %3374 = load ptr, ptr %76, align 8, !tbaa !9
  %3375 = getelementptr inbounds %struct.s2n_connection, ptr %3374, i32 0, i32 23
  store i8 33, ptr %3375, align 4, !tbaa !42
  br label %3376

3376:                                             ; preds = %3370
  %3377 = load i32, ptr @test_count, align 4, !tbaa !5
  %3378 = add nsw i32 %3377, 1
  store i32 %3378, ptr @test_count, align 4, !tbaa !5
  %3379 = load ptr, ptr %76, align 8, !tbaa !9
  %3380 = load i32, ptr %75, align 4, !tbaa !5
  %3381 = call zeroext i1 @s2n_handshake_type_check_tls12_flag(ptr noundef %3379, i32 noundef %3380)
  br i1 %3381, label %3382, label %3435

3382:                                             ; preds = %3376
  br label %3383

3383:                                             ; preds = %3382
  br label %3384

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

3391:                                             ; preds = %3384
  %3392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3393 = call i32 @fileno(ptr noundef %3392) #8
  %3394 = call i32 @isatty(i32 noundef %3393) #8
  %3395 = icmp ne i32 %3394, 0
  br i1 %3395, label %3396, label %3413

3396:                                             ; preds = %3391
  %3397 = load i32, ptr %80, align 4, !tbaa !5
  %3398 = call ptr @__errno_location() #9
  store i32 %3397, ptr %3398, align 4, !tbaa !5
  %3399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3400 = load i32, ptr @test_count, align 4, !tbaa !5
  %3401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3402 = load i32, ptr %3401, align 4, !tbaa !5
  %3403 = call ptr @s2n_strerror(i32 noundef %3402, ptr noundef @.str.4)
  %3404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3405 = load i32, ptr %3404, align 4, !tbaa !5
  %3406 = call ptr @s2n_strerror_debug(i32 noundef %3405, ptr noundef @.str.4)
  %3407 = call ptr @__errno_location() #9
  %3408 = load i32, ptr %3407, align 4, !tbaa !5
  %3409 = call ptr @strerror(i32 noundef %3408) #8
  %3410 = call ptr @__errno_location() #9
  %3411 = load i32, ptr %3410, align 4, !tbaa !5
  %3412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3399, ptr noundef @.str.2, i32 noundef %3400, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 185, ptr noundef %3403, ptr noundef %3406, ptr noundef %3409, i32 noundef %3411) #8
  br label %3430

3413:                                             ; preds = %3391, %3384
  %3414 = load i32, ptr %80, align 4, !tbaa !5
  %3415 = call ptr @__errno_location() #9
  store i32 %3414, ptr %3415, align 4, !tbaa !5
  %3416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3417 = load i32, ptr @test_count, align 4, !tbaa !5
  %3418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3419 = load i32, ptr %3418, align 4, !tbaa !5
  %3420 = call ptr @s2n_strerror(i32 noundef %3419, ptr noundef @.str.4)
  %3421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3422 = load i32, ptr %3421, align 4, !tbaa !5
  %3423 = call ptr @s2n_strerror_debug(i32 noundef %3422, ptr noundef @.str.4)
  %3424 = call ptr @__errno_location() #9
  %3425 = load i32, ptr %3424, align 4, !tbaa !5
  %3426 = call ptr @strerror(i32 noundef %3425) #8
  %3427 = call ptr @__errno_location() #9
  %3428 = load i32, ptr %3427, align 4, !tbaa !5
  %3429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3416, ptr noundef @.str.5, i32 noundef %3417, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 185, ptr noundef %3420, ptr noundef %3423, ptr noundef %3426, i32 noundef %3428) #8
  br label %3430

3430:                                             ; preds = %3413, %3396
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #8
  br label %3431

3431:                                             ; preds = %3430
  br label %3432

3432:                                             ; preds = %3431
  call void @exit(i32 noundef 1) #10
  unreachable

3433:                                             ; No predecessors!
  br label %3434

3434:                                             ; preds = %3433
  br label %3435

3435:                                             ; preds = %3434, %3376
  br label %3436

3436:                                             ; preds = %3435
  br label %3437

3437:                                             ; preds = %3436
  %3438 = load ptr, ptr %76, align 8, !tbaa !9
  %3439 = getelementptr inbounds %struct.s2n_connection, ptr %3438, i32 0, i32 23
  store i8 34, ptr %3439, align 4, !tbaa !42
  br label %3440

3440:                                             ; preds = %3437
  %3441 = load i32, ptr @test_count, align 4, !tbaa !5
  %3442 = add nsw i32 %3441, 1
  store i32 %3442, ptr @test_count, align 4, !tbaa !5
  %3443 = load ptr, ptr %76, align 8, !tbaa !9
  %3444 = load i32, ptr %75, align 4, !tbaa !5
  %3445 = call zeroext i1 @s2n_handshake_type_check_tls12_flag(ptr noundef %3443, i32 noundef %3444)
  br i1 %3445, label %3446, label %3499

3446:                                             ; preds = %3440
  br label %3447

3447:                                             ; preds = %3446
  br label %3448

3448:                                             ; preds = %3447
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #8
  %3449 = call ptr @__errno_location() #9
  %3450 = load i32, ptr %3449, align 4, !tbaa !5
  store i32 %3450, ptr %81, align 4, !tbaa !5
  %3451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3452 = call i32 @s2n_print_stacktrace(ptr noundef %3451)
  %3453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3454 = trunc i8 %3453 to i1
  br i1 %3454, label %3455, label %3477

3455:                                             ; preds = %3448
  %3456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3457 = call i32 @fileno(ptr noundef %3456) #8
  %3458 = call i32 @isatty(i32 noundef %3457) #8
  %3459 = icmp ne i32 %3458, 0
  br i1 %3459, label %3460, label %3477

3460:                                             ; preds = %3455
  %3461 = load i32, ptr %81, align 4, !tbaa !5
  %3462 = call ptr @__errno_location() #9
  store i32 %3461, ptr %3462, align 4, !tbaa !5
  %3463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3464 = load i32, ptr @test_count, align 4, !tbaa !5
  %3465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3466 = load i32, ptr %3465, align 4, !tbaa !5
  %3467 = call ptr @s2n_strerror(i32 noundef %3466, ptr noundef @.str.4)
  %3468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3469 = load i32, ptr %3468, align 4, !tbaa !5
  %3470 = call ptr @s2n_strerror_debug(i32 noundef %3469, ptr noundef @.str.4)
  %3471 = call ptr @__errno_location() #9
  %3472 = load i32, ptr %3471, align 4, !tbaa !5
  %3473 = call ptr @strerror(i32 noundef %3472) #8
  %3474 = call ptr @__errno_location() #9
  %3475 = load i32, ptr %3474, align 4, !tbaa !5
  %3476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3463, ptr noundef @.str.2, i32 noundef %3464, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 188, ptr noundef %3467, ptr noundef %3470, ptr noundef %3473, i32 noundef %3475) #8
  br label %3494

3477:                                             ; preds = %3455, %3448
  %3478 = load i32, ptr %81, align 4, !tbaa !5
  %3479 = call ptr @__errno_location() #9
  store i32 %3478, ptr %3479, align 4, !tbaa !5
  %3480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3481 = load i32, ptr @test_count, align 4, !tbaa !5
  %3482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3483 = load i32, ptr %3482, align 4, !tbaa !5
  %3484 = call ptr @s2n_strerror(i32 noundef %3483, ptr noundef @.str.4)
  %3485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3486 = load i32, ptr %3485, align 4, !tbaa !5
  %3487 = call ptr @s2n_strerror_debug(i32 noundef %3486, ptr noundef @.str.4)
  %3488 = call ptr @__errno_location() #9
  %3489 = load i32, ptr %3488, align 4, !tbaa !5
  %3490 = call ptr @strerror(i32 noundef %3489) #8
  %3491 = call ptr @__errno_location() #9
  %3492 = load i32, ptr %3491, align 4, !tbaa !5
  %3493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3480, ptr noundef @.str.5, i32 noundef %3481, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 188, ptr noundef %3484, ptr noundef %3487, ptr noundef %3490, i32 noundef %3492) #8
  br label %3494

3494:                                             ; preds = %3477, %3460
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #8
  br label %3495

3495:                                             ; preds = %3494
  br label %3496

3496:                                             ; preds = %3495
  call void @exit(i32 noundef 1) #10
  unreachable

3497:                                             ; No predecessors!
  br label %3498

3498:                                             ; preds = %3497
  br label %3499

3499:                                             ; preds = %3498, %3440
  br label %3500

3500:                                             ; preds = %3499
  br label %3501

3501:                                             ; preds = %3500
  %3502 = load i32, ptr %75, align 4, !tbaa !5
  %3503 = load ptr, ptr %76, align 8, !tbaa !9
  %3504 = getelementptr inbounds %struct.s2n_connection, ptr %3503, i32 0, i32 52
  %3505 = getelementptr inbounds %struct.s2n_handshake, ptr %3504, i32 0, i32 6
  store i32 %3502, ptr %3505, align 4, !tbaa !15
  %3506 = load ptr, ptr %76, align 8, !tbaa !9
  %3507 = getelementptr inbounds %struct.s2n_connection, ptr %3506, i32 0, i32 23
  store i8 33, ptr %3507, align 4, !tbaa !42
  br label %3508

3508:                                             ; preds = %3501
  %3509 = load i32, ptr @test_count, align 4, !tbaa !5
  %3510 = add nsw i32 %3509, 1
  store i32 %3510, ptr @test_count, align 4, !tbaa !5
  %3511 = load ptr, ptr %76, align 8, !tbaa !9
  %3512 = load i32, ptr %75, align 4, !tbaa !5
  %3513 = call zeroext i1 @s2n_handshake_type_check_tls12_flag(ptr noundef %3511, i32 noundef %3512)
  br i1 %3513, label %3567, label %3514

3514:                                             ; preds = %3508
  br label %3515

3515:                                             ; preds = %3514
  br label %3516

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

3523:                                             ; preds = %3516
  %3524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3525 = call i32 @fileno(ptr noundef %3524) #8
  %3526 = call i32 @isatty(i32 noundef %3525) #8
  %3527 = icmp ne i32 %3526, 0
  br i1 %3527, label %3528, label %3545

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

3545:                                             ; preds = %3523, %3516
  %3546 = load i32, ptr %82, align 4, !tbaa !5
  %3547 = call ptr @__errno_location() #9
  store i32 %3546, ptr %3547, align 4, !tbaa !5
  %3548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3549 = load i32, ptr @test_count, align 4, !tbaa !5
  %3550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3551 = load i32, ptr %3550, align 4, !tbaa !5
  %3552 = call ptr @s2n_strerror(i32 noundef %3551, ptr noundef @.str.4)
  %3553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3554 = load i32, ptr %3553, align 4, !tbaa !5
  %3555 = call ptr @s2n_strerror_debug(i32 noundef %3554, ptr noundef @.str.4)
  %3556 = call ptr @__errno_location() #9
  %3557 = load i32, ptr %3556, align 4, !tbaa !5
  %3558 = call ptr @strerror(i32 noundef %3557) #8
  %3559 = call ptr @__errno_location() #9
  %3560 = load i32, ptr %3559, align 4, !tbaa !5
  %3561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3548, ptr noundef @.str.5, i32 noundef %3549, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 196, ptr noundef %3552, ptr noundef %3555, ptr noundef %3558, i32 noundef %3560) #8
  br label %3562

3562:                                             ; preds = %3545, %3528
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #8
  br label %3563

3563:                                             ; preds = %3562
  br label %3564

3564:                                             ; preds = %3563
  call void @exit(i32 noundef 1) #10
  unreachable

3565:                                             ; No predecessors!
  br label %3566

3566:                                             ; preds = %3565
  br label %3567

3567:                                             ; preds = %3566, %3508
  br label %3568

3568:                                             ; preds = %3567
  br label %3569

3569:                                             ; preds = %3568
  %3570 = load ptr, ptr %76, align 8, !tbaa !9
  %3571 = getelementptr inbounds %struct.s2n_connection, ptr %3570, i32 0, i32 23
  store i8 34, ptr %3571, align 4, !tbaa !42
  br label %3572

3572:                                             ; preds = %3569
  %3573 = load i32, ptr @test_count, align 4, !tbaa !5
  %3574 = add nsw i32 %3573, 1
  store i32 %3574, ptr @test_count, align 4, !tbaa !5
  %3575 = load ptr, ptr %76, align 8, !tbaa !9
  %3576 = load i32, ptr %75, align 4, !tbaa !5
  %3577 = call zeroext i1 @s2n_handshake_type_check_tls12_flag(ptr noundef %3575, i32 noundef %3576)
  br i1 %3577, label %3578, label %3631

3578:                                             ; preds = %3572
  br label %3579

3579:                                             ; preds = %3578
  br label %3580

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

3587:                                             ; preds = %3580
  %3588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3589 = call i32 @fileno(ptr noundef %3588) #8
  %3590 = call i32 @isatty(i32 noundef %3589) #8
  %3591 = icmp ne i32 %3590, 0
  br i1 %3591, label %3592, label %3609

3592:                                             ; preds = %3587
  %3593 = load i32, ptr %83, align 4, !tbaa !5
  %3594 = call ptr @__errno_location() #9
  store i32 %3593, ptr %3594, align 4, !tbaa !5
  %3595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3596 = load i32, ptr @test_count, align 4, !tbaa !5
  %3597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3598 = load i32, ptr %3597, align 4, !tbaa !5
  %3599 = call ptr @s2n_strerror(i32 noundef %3598, ptr noundef @.str.4)
  %3600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3601 = load i32, ptr %3600, align 4, !tbaa !5
  %3602 = call ptr @s2n_strerror_debug(i32 noundef %3601, ptr noundef @.str.4)
  %3603 = call ptr @__errno_location() #9
  %3604 = load i32, ptr %3603, align 4, !tbaa !5
  %3605 = call ptr @strerror(i32 noundef %3604) #8
  %3606 = call ptr @__errno_location() #9
  %3607 = load i32, ptr %3606, align 4, !tbaa !5
  %3608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3595, ptr noundef @.str.2, i32 noundef %3596, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 199, ptr noundef %3599, ptr noundef %3602, ptr noundef %3605, i32 noundef %3607) #8
  br label %3626

3609:                                             ; preds = %3587, %3580
  %3610 = load i32, ptr %83, align 4, !tbaa !5
  %3611 = call ptr @__errno_location() #9
  store i32 %3610, ptr %3611, align 4, !tbaa !5
  %3612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3613 = load i32, ptr @test_count, align 4, !tbaa !5
  %3614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3615 = load i32, ptr %3614, align 4, !tbaa !5
  %3616 = call ptr @s2n_strerror(i32 noundef %3615, ptr noundef @.str.4)
  %3617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3618 = load i32, ptr %3617, align 4, !tbaa !5
  %3619 = call ptr @s2n_strerror_debug(i32 noundef %3618, ptr noundef @.str.4)
  %3620 = call ptr @__errno_location() #9
  %3621 = load i32, ptr %3620, align 4, !tbaa !5
  %3622 = call ptr @strerror(i32 noundef %3621) #8
  %3623 = call ptr @__errno_location() #9
  %3624 = load i32, ptr %3623, align 4, !tbaa !5
  %3625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3612, ptr noundef @.str.5, i32 noundef %3613, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 199, ptr noundef %3616, ptr noundef %3619, ptr noundef %3622, i32 noundef %3624) #8
  br label %3626

3626:                                             ; preds = %3609, %3592
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #8
  br label %3627

3627:                                             ; preds = %3626
  br label %3628

3628:                                             ; preds = %3627
  call void @exit(i32 noundef 1) #10
  unreachable

3629:                                             ; No predecessors!
  br label %3630

3630:                                             ; preds = %3629
  br label %3631

3631:                                             ; preds = %3630, %3572
  br label %3632

3632:                                             ; preds = %3631
  br label %3633

3633:                                             ; preds = %3632
  br label %3634

3634:                                             ; preds = %3633
  %3635 = load i32, ptr @test_count, align 4, !tbaa !5
  %3636 = add nsw i32 %3635, 1
  store i32 %3636, ptr @test_count, align 4, !tbaa !5
  %3637 = load ptr, ptr %76, align 8, !tbaa !9
  %3638 = call i32 @s2n_connection_free(ptr noundef %3637)
  %3639 = icmp eq i32 %3638, -1
  br i1 %3639, label %3640, label %3693

3640:                                             ; preds = %3634
  br label %3641

3641:                                             ; preds = %3640
  br label %3642

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

3649:                                             ; preds = %3642
  %3650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3651 = call i32 @fileno(ptr noundef %3650) #8
  %3652 = call i32 @isatty(i32 noundef %3651) #8
  %3653 = icmp ne i32 %3652, 0
  br i1 %3653, label %3654, label %3671

3654:                                             ; preds = %3649
  %3655 = load i32, ptr %84, align 4, !tbaa !5
  %3656 = call ptr @__errno_location() #9
  store i32 %3655, ptr %3656, align 4, !tbaa !5
  %3657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3658 = load i32, ptr @test_count, align 4, !tbaa !5
  %3659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3660 = load i32, ptr %3659, align 4, !tbaa !5
  %3661 = call ptr @s2n_strerror(i32 noundef %3660, ptr noundef @.str.4)
  %3662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3663 = load i32, ptr %3662, align 4, !tbaa !5
  %3664 = call ptr @s2n_strerror_debug(i32 noundef %3663, ptr noundef @.str.4)
  %3665 = call ptr @__errno_location() #9
  %3666 = load i32, ptr %3665, align 4, !tbaa !5
  %3667 = call ptr @strerror(i32 noundef %3666) #8
  %3668 = call ptr @__errno_location() #9
  %3669 = load i32, ptr %3668, align 4, !tbaa !5
  %3670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3657, ptr noundef @.str.2, i32 noundef %3658, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 202, ptr noundef %3661, ptr noundef %3664, ptr noundef %3667, i32 noundef %3669) #8
  br label %3688

3671:                                             ; preds = %3649, %3642
  %3672 = load i32, ptr %84, align 4, !tbaa !5
  %3673 = call ptr @__errno_location() #9
  store i32 %3672, ptr %3673, align 4, !tbaa !5
  %3674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3675 = load i32, ptr @test_count, align 4, !tbaa !5
  %3676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3677 = load i32, ptr %3676, align 4, !tbaa !5
  %3678 = call ptr @s2n_strerror(i32 noundef %3677, ptr noundef @.str.4)
  %3679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3680 = load i32, ptr %3679, align 4, !tbaa !5
  %3681 = call ptr @s2n_strerror_debug(i32 noundef %3680, ptr noundef @.str.4)
  %3682 = call ptr @__errno_location() #9
  %3683 = load i32, ptr %3682, align 4, !tbaa !5
  %3684 = call ptr @strerror(i32 noundef %3683) #8
  %3685 = call ptr @__errno_location() #9
  %3686 = load i32, ptr %3685, align 4, !tbaa !5
  %3687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3674, ptr noundef @.str.5, i32 noundef %3675, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 202, ptr noundef %3678, ptr noundef %3681, ptr noundef %3684, i32 noundef %3686) #8
  br label %3688

3688:                                             ; preds = %3671, %3654
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #8
  br label %3689

3689:                                             ; preds = %3688
  br label %3690

3690:                                             ; preds = %3689
  call void @exit(i32 noundef 1) #10
  unreachable

3691:                                             ; No predecessors!
  br label %3692

3692:                                             ; preds = %3691
  br label %3693

3693:                                             ; preds = %3692, %3634
  br label %3694

3694:                                             ; preds = %3693
  br label %3695

3695:                                             ; preds = %3694
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #8
  br label %3696

3696:                                             ; preds = %3695
  %3697 = load i32, ptr %75, align 4, !tbaa !5
  %3698 = add i32 %3697, 1
  store i32 %3698, ptr %75, align 4, !tbaa !5
  br label %3173, !llvm.loop !47

3699:                                             ; preds = %3176
  br label %3700

3700:                                             ; preds = %3699
  br label %3701

3701:                                             ; preds = %3700
  br label %3702

3702:                                             ; preds = %3701
  %3703 = load i32, ptr @test_count, align 4, !tbaa !5
  %3704 = add nsw i32 %3703, 1
  store i32 %3704, ptr @test_count, align 4, !tbaa !5
  %3705 = call i32 @s2n_handshake_type_set_tls13_flag(ptr noundef null, i32 noundef 0)
  %3706 = getelementptr inbounds %struct.s2n_result, ptr %85, i32 0, i32 0
  store i32 %3705, ptr %3706, align 4
  %3707 = getelementptr inbounds %struct.s2n_result, ptr %85, i32 0, i32 0
  %3708 = load i32, ptr %3707, align 4
  %3709 = call zeroext i1 @s2n_result_is_error(i32 %3708)
  br i1 %3709, label %3761, label %3710

3710:                                             ; preds = %3702
  br label %3711

3711:                                             ; preds = %3710
  br label %3712

3712:                                             ; preds = %3711
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #8
  %3713 = call ptr @__errno_location() #9
  %3714 = load i32, ptr %3713, align 4, !tbaa !5
  store i32 %3714, ptr %86, align 4, !tbaa !5
  %3715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3716 = call i32 @s2n_print_stacktrace(ptr noundef %3715)
  %3717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3718 = trunc i8 %3717 to i1
  br i1 %3718, label %3719, label %3741

3719:                                             ; preds = %3712
  %3720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3721 = call i32 @fileno(ptr noundef %3720) #8
  %3722 = call i32 @isatty(i32 noundef %3721) #8
  %3723 = icmp ne i32 %3722, 0
  br i1 %3723, label %3724, label %3741

3724:                                             ; preds = %3719
  %3725 = load i32, ptr %86, align 4, !tbaa !5
  %3726 = call ptr @__errno_location() #9
  store i32 %3725, ptr %3726, align 4, !tbaa !5
  %3727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3728 = load i32, ptr @test_count, align 4, !tbaa !5
  %3729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3730 = load i32, ptr %3729, align 4, !tbaa !5
  %3731 = call ptr @s2n_strerror(i32 noundef %3730, ptr noundef @.str.4)
  %3732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3733 = load i32, ptr %3732, align 4, !tbaa !5
  %3734 = call ptr @s2n_strerror_debug(i32 noundef %3733, ptr noundef @.str.4)
  %3735 = call ptr @__errno_location() #9
  %3736 = load i32, ptr %3735, align 4, !tbaa !5
  %3737 = call ptr @strerror(i32 noundef %3736) #8
  %3738 = call ptr @__errno_location() #9
  %3739 = load i32, ptr %3738, align 4, !tbaa !5
  %3740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3727, ptr noundef @.str.2, i32 noundef %3728, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 209, ptr noundef %3731, ptr noundef %3734, ptr noundef %3737, i32 noundef %3739) #8
  br label %3758

3741:                                             ; preds = %3719, %3712
  %3742 = load i32, ptr %86, align 4, !tbaa !5
  %3743 = call ptr @__errno_location() #9
  store i32 %3742, ptr %3743, align 4, !tbaa !5
  %3744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3745 = load i32, ptr @test_count, align 4, !tbaa !5
  %3746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3747 = load i32, ptr %3746, align 4, !tbaa !5
  %3748 = call ptr @s2n_strerror(i32 noundef %3747, ptr noundef @.str.4)
  %3749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3750 = load i32, ptr %3749, align 4, !tbaa !5
  %3751 = call ptr @s2n_strerror_debug(i32 noundef %3750, ptr noundef @.str.4)
  %3752 = call ptr @__errno_location() #9
  %3753 = load i32, ptr %3752, align 4, !tbaa !5
  %3754 = call ptr @strerror(i32 noundef %3753) #8
  %3755 = call ptr @__errno_location() #9
  %3756 = load i32, ptr %3755, align 4, !tbaa !5
  %3757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3744, ptr noundef @.str.5, i32 noundef %3745, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 209, ptr noundef %3748, ptr noundef %3751, ptr noundef %3754, i32 noundef %3756) #8
  br label %3758

3758:                                             ; preds = %3741, %3724
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #8
  br label %3759

3759:                                             ; preds = %3758
  call void @exit(i32 noundef 1) #10
  unreachable

3760:                                             ; No predecessors!
  br label %3761

3761:                                             ; preds = %3760, %3702
  br label %3762

3762:                                             ; preds = %3761
  br label %3763

3763:                                             ; preds = %3762
  %3764 = load i32, ptr @test_count, align 4, !tbaa !5
  %3765 = add nsw i32 %3764, 1
  store i32 %3765, ptr @test_count, align 4, !tbaa !5
  %3766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3767 = load i32, ptr %3766, align 4, !tbaa !5
  %3768 = icmp eq i32 %3767, 402653193
  br i1 %3768, label %3820, label %3769

3769:                                             ; preds = %3763
  br label %3770

3770:                                             ; preds = %3769
  br label %3771

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

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

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

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

3817:                                             ; preds = %3800, %3783
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #8
  br label %3818

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

3819:                                             ; No predecessors!
  br label %3820

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

3821:                                             ; preds = %3820
  br label %3822

3822:                                             ; preds = %3821
  %3823 = load i32, ptr @test_count, align 4, !tbaa !5
  %3824 = add nsw i32 %3823, 1
  store i32 %3824, ptr @test_count, align 4, !tbaa !5
  %3825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3826 = load i32, ptr %3825, align 4, !tbaa !5
  %3827 = call ptr @s2n_strerror_debug(i32 noundef %3826, ptr noundef @.str.4)
  %3828 = icmp eq ptr %3827, null
  br i1 %3828, label %3829, label %3880

3829:                                             ; preds = %3822
  br label %3830

3830:                                             ; preds = %3829
  br label %3831

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

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

3843:                                             ; preds = %3838
  %3844 = load i32, ptr %88, align 4, !tbaa !5
  %3845 = call ptr @__errno_location() #9
  store i32 %3844, ptr %3845, align 4, !tbaa !5
  %3846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3847 = load i32, ptr @test_count, align 4, !tbaa !5
  %3848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3849 = load i32, ptr %3848, align 4, !tbaa !5
  %3850 = call ptr @s2n_strerror(i32 noundef %3849, ptr noundef @.str.4)
  %3851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3852 = load i32, ptr %3851, align 4, !tbaa !5
  %3853 = call ptr @s2n_strerror_debug(i32 noundef %3852, ptr noundef @.str.4)
  %3854 = call ptr @__errno_location() #9
  %3855 = load i32, ptr %3854, align 4, !tbaa !5
  %3856 = call ptr @strerror(i32 noundef %3855) #8
  %3857 = call ptr @__errno_location() #9
  %3858 = load i32, ptr %3857, align 4, !tbaa !5
  %3859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3846, ptr noundef @.str.2, i32 noundef %3847, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 209, ptr noundef %3850, ptr noundef %3853, ptr noundef %3856, i32 noundef %3858) #8
  br label %3877

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

3877:                                             ; preds = %3860, %3843
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #8
  br label %3878

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

3879:                                             ; No predecessors!
  br label %3880

3880:                                             ; preds = %3879, %3822
  br label %3881

3881:                                             ; preds = %3880
  br label %3882

3882:                                             ; preds = %3881
  br label %3883

3883:                                             ; preds = %3882
  %3884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3884, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3885 = call ptr @__errno_location() #9
  store i32 0, ptr %3885, align 4, !tbaa !5
  br label %3886

3886:                                             ; preds = %3883
  br label %3887

3887:                                             ; preds = %3886
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #8
  store i32 16, ptr %89, align 4, !tbaa !5
  br label %3888

3888:                                             ; preds = %4354, %3887
  %3889 = load i32, ptr %89, align 4, !tbaa !5
  %3890 = icmp ule i32 %3889, 128
  br i1 %3890, label %3892, label %3891

3891:                                             ; preds = %3888
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #8
  br label %4357

3892:                                             ; preds = %3888
  call void @llvm.lifetime.start.p0(i64 8, ptr %90) #8
  %3893 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %3893, ptr %90, align 8, !tbaa !9
  br label %3894

3894:                                             ; preds = %3892
  %3895 = load i32, ptr @test_count, align 4, !tbaa !5
  %3896 = add nsw i32 %3895, 1
  store i32 %3896, ptr @test_count, align 4, !tbaa !5
  %3897 = load ptr, ptr %90, align 8, !tbaa !9
  %3898 = icmp eq ptr %3897, null
  br i1 %3898, label %3899, label %3952

3899:                                             ; preds = %3894
  br label %3900

3900:                                             ; preds = %3899
  br label %3901

3901:                                             ; preds = %3900
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #8
  %3902 = call ptr @__errno_location() #9
  %3903 = load i32, ptr %3902, align 4, !tbaa !5
  store i32 %3903, ptr %91, align 4, !tbaa !5
  %3904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3905 = call i32 @s2n_print_stacktrace(ptr noundef %3904)
  %3906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3907 = trunc i8 %3906 to i1
  br i1 %3907, label %3908, label %3930

3908:                                             ; preds = %3901
  %3909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3910 = call i32 @fileno(ptr noundef %3909) #8
  %3911 = call i32 @isatty(i32 noundef %3910) #8
  %3912 = icmp ne i32 %3911, 0
  br i1 %3912, label %3913, label %3930

3913:                                             ; preds = %3908
  %3914 = load i32, ptr %91, align 4, !tbaa !5
  %3915 = call ptr @__errno_location() #9
  store i32 %3914, ptr %3915, align 4, !tbaa !5
  %3916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3917 = load i32, ptr @test_count, align 4, !tbaa !5
  %3918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3919 = load i32, ptr %3918, align 4, !tbaa !5
  %3920 = call ptr @s2n_strerror(i32 noundef %3919, ptr noundef @.str.4)
  %3921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3922 = load i32, ptr %3921, align 4, !tbaa !5
  %3923 = call ptr @s2n_strerror_debug(i32 noundef %3922, ptr noundef @.str.4)
  %3924 = call ptr @__errno_location() #9
  %3925 = load i32, ptr %3924, align 4, !tbaa !5
  %3926 = call ptr @strerror(i32 noundef %3925) #8
  %3927 = call ptr @__errno_location() #9
  %3928 = load i32, ptr %3927, align 4, !tbaa !5
  %3929 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3916, ptr noundef @.str.2, i32 noundef %3917, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 214, ptr noundef %3920, ptr noundef %3923, ptr noundef %3926, i32 noundef %3928) #8
  br label %3947

3930:                                             ; preds = %3908, %3901
  %3931 = load i32, ptr %91, align 4, !tbaa !5
  %3932 = call ptr @__errno_location() #9
  store i32 %3931, ptr %3932, align 4, !tbaa !5
  %3933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3934 = load i32, ptr @test_count, align 4, !tbaa !5
  %3935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3936 = load i32, ptr %3935, align 4, !tbaa !5
  %3937 = call ptr @s2n_strerror(i32 noundef %3936, ptr noundef @.str.4)
  %3938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3939 = load i32, ptr %3938, align 4, !tbaa !5
  %3940 = call ptr @s2n_strerror_debug(i32 noundef %3939, ptr noundef @.str.4)
  %3941 = call ptr @__errno_location() #9
  %3942 = load i32, ptr %3941, align 4, !tbaa !5
  %3943 = call ptr @strerror(i32 noundef %3942) #8
  %3944 = call ptr @__errno_location() #9
  %3945 = load i32, ptr %3944, align 4, !tbaa !5
  %3946 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3933, ptr noundef @.str.5, i32 noundef %3934, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 214, ptr noundef %3937, ptr noundef %3940, ptr noundef %3943, i32 noundef %3945) #8
  br label %3947

3947:                                             ; preds = %3930, %3913
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #8
  br label %3948

3948:                                             ; preds = %3947
  br label %3949

3949:                                             ; preds = %3948
  call void @exit(i32 noundef 1) #10
  unreachable

3950:                                             ; No predecessors!
  br label %3951

3951:                                             ; preds = %3950
  br label %3952

3952:                                             ; preds = %3951, %3894
  br label %3953

3953:                                             ; preds = %3952
  br label %3954

3954:                                             ; preds = %3953
  %3955 = load ptr, ptr %90, align 8, !tbaa !9
  %3956 = getelementptr inbounds %struct.s2n_connection, ptr %3955, i32 0, i32 23
  store i8 34, ptr %3956, align 4, !tbaa !42
  br label %3957

3957:                                             ; preds = %3954
  %3958 = load i32, ptr @test_count, align 4, !tbaa !5
  %3959 = add nsw i32 %3958, 1
  store i32 %3959, ptr @test_count, align 4, !tbaa !5
  %3960 = load ptr, ptr %90, align 8, !tbaa !9
  %3961 = load i32, ptr %89, align 4, !tbaa !5
  %3962 = call i32 @s2n_handshake_type_set_tls13_flag(ptr noundef %3960, i32 noundef %3961)
  %3963 = getelementptr inbounds %struct.s2n_result, ptr %92, i32 0, i32 0
  store i32 %3962, ptr %3963, align 4
  %3964 = getelementptr inbounds %struct.s2n_result, ptr %92, i32 0, i32 0
  %3965 = load i32, ptr %3964, align 4
  %3966 = call zeroext i1 @s2n_result_is_ok(i32 %3965)
  br i1 %3966, label %4020, label %3967

3967:                                             ; preds = %3957
  br label %3968

3968:                                             ; preds = %3967
  br label %3969

3969:                                             ; preds = %3968
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #8
  %3970 = call ptr @__errno_location() #9
  %3971 = load i32, ptr %3970, align 4, !tbaa !5
  store i32 %3971, ptr %93, align 4, !tbaa !5
  %3972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3973 = call i32 @s2n_print_stacktrace(ptr noundef %3972)
  %3974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3975 = trunc i8 %3974 to i1
  br i1 %3975, label %3976, label %3998

3976:                                             ; preds = %3969
  %3977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3978 = call i32 @fileno(ptr noundef %3977) #8
  %3979 = call i32 @isatty(i32 noundef %3978) #8
  %3980 = icmp ne i32 %3979, 0
  br i1 %3980, label %3981, label %3998

3981:                                             ; preds = %3976
  %3982 = load i32, ptr %93, align 4, !tbaa !5
  %3983 = call ptr @__errno_location() #9
  store i32 %3982, ptr %3983, align 4, !tbaa !5
  %3984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3985 = load i32, ptr @test_count, align 4, !tbaa !5
  %3986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3987 = load i32, ptr %3986, align 4, !tbaa !5
  %3988 = call ptr @s2n_strerror(i32 noundef %3987, ptr noundef @.str.4)
  %3989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3990 = load i32, ptr %3989, align 4, !tbaa !5
  %3991 = call ptr @s2n_strerror_debug(i32 noundef %3990, ptr noundef @.str.4)
  %3992 = call ptr @__errno_location() #9
  %3993 = load i32, ptr %3992, align 4, !tbaa !5
  %3994 = call ptr @strerror(i32 noundef %3993) #8
  %3995 = call ptr @__errno_location() #9
  %3996 = load i32, ptr %3995, align 4, !tbaa !5
  %3997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3984, ptr noundef @.str.2, i32 noundef %3985, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 217, ptr noundef %3988, ptr noundef %3991, ptr noundef %3994, i32 noundef %3996) #8
  br label %4015

3998:                                             ; preds = %3976, %3969
  %3999 = load i32, ptr %93, align 4, !tbaa !5
  %4000 = call ptr @__errno_location() #9
  store i32 %3999, ptr %4000, align 4, !tbaa !5
  %4001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4002 = load i32, ptr @test_count, align 4, !tbaa !5
  %4003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4004 = load i32, ptr %4003, align 4, !tbaa !5
  %4005 = call ptr @s2n_strerror(i32 noundef %4004, ptr noundef @.str.4)
  %4006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4007 = load i32, ptr %4006, align 4, !tbaa !5
  %4008 = call ptr @s2n_strerror_debug(i32 noundef %4007, ptr noundef @.str.4)
  %4009 = call ptr @__errno_location() #9
  %4010 = load i32, ptr %4009, align 4, !tbaa !5
  %4011 = call ptr @strerror(i32 noundef %4010) #8
  %4012 = call ptr @__errno_location() #9
  %4013 = load i32, ptr %4012, align 4, !tbaa !5
  %4014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4001, ptr noundef @.str.5, i32 noundef %4002, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 217, ptr noundef %4005, ptr noundef %4008, ptr noundef %4011, i32 noundef %4013) #8
  br label %4015

4015:                                             ; preds = %3998, %3981
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #8
  br label %4016

4016:                                             ; preds = %4015
  br label %4017

4017:                                             ; preds = %4016
  call void @exit(i32 noundef 1) #10
  unreachable

4018:                                             ; No predecessors!
  br label %4019

4019:                                             ; preds = %4018
  br label %4020

4020:                                             ; preds = %4019, %3957
  br label %4021

4021:                                             ; preds = %4020
  br label %4022

4022:                                             ; preds = %4021
  br label %4023

4023:                                             ; preds = %4022
  %4024 = load i32, ptr @test_count, align 4, !tbaa !5
  %4025 = add nsw i32 %4024, 1
  store i32 %4025, ptr @test_count, align 4, !tbaa !5
  %4026 = load ptr, ptr %90, align 8, !tbaa !9
  %4027 = getelementptr inbounds %struct.s2n_connection, ptr %4026, i32 0, i32 52
  %4028 = getelementptr inbounds %struct.s2n_handshake, ptr %4027, i32 0, i32 6
  %4029 = load i32, ptr %4028, align 4, !tbaa !15
  %4030 = load i32, ptr %89, align 4, !tbaa !5
  %4031 = icmp eq i32 %4029, %4030
  br i1 %4031, label %4085, label %4032

4032:                                             ; preds = %4023
  br label %4033

4033:                                             ; preds = %4032
  br label %4034

4034:                                             ; preds = %4033
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #8
  %4035 = call ptr @__errno_location() #9
  %4036 = load i32, ptr %4035, align 4, !tbaa !5
  store i32 %4036, ptr %94, align 4, !tbaa !5
  %4037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4038 = call i32 @s2n_print_stacktrace(ptr noundef %4037)
  %4039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4040 = trunc i8 %4039 to i1
  br i1 %4040, label %4041, label %4063

4041:                                             ; preds = %4034
  %4042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4043 = call i32 @fileno(ptr noundef %4042) #8
  %4044 = call i32 @isatty(i32 noundef %4043) #8
  %4045 = icmp ne i32 %4044, 0
  br i1 %4045, label %4046, label %4063

4046:                                             ; preds = %4041
  %4047 = load i32, ptr %94, align 4, !tbaa !5
  %4048 = call ptr @__errno_location() #9
  store i32 %4047, ptr %4048, align 4, !tbaa !5
  %4049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4050 = load i32, ptr @test_count, align 4, !tbaa !5
  %4051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4052 = load i32, ptr %4051, align 4, !tbaa !5
  %4053 = call ptr @s2n_strerror(i32 noundef %4052, ptr noundef @.str.4)
  %4054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4055 = load i32, ptr %4054, align 4, !tbaa !5
  %4056 = call ptr @s2n_strerror_debug(i32 noundef %4055, ptr noundef @.str.4)
  %4057 = call ptr @__errno_location() #9
  %4058 = load i32, ptr %4057, align 4, !tbaa !5
  %4059 = call ptr @strerror(i32 noundef %4058) #8
  %4060 = call ptr @__errno_location() #9
  %4061 = load i32, ptr %4060, align 4, !tbaa !5
  %4062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4049, ptr noundef @.str.2, i32 noundef %4050, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 218, ptr noundef %4053, ptr noundef %4056, ptr noundef %4059, i32 noundef %4061) #8
  br label %4080

4063:                                             ; preds = %4041, %4034
  %4064 = load i32, ptr %94, align 4, !tbaa !5
  %4065 = call ptr @__errno_location() #9
  store i32 %4064, ptr %4065, align 4, !tbaa !5
  %4066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4067 = load i32, ptr @test_count, align 4, !tbaa !5
  %4068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4069 = load i32, ptr %4068, align 4, !tbaa !5
  %4070 = call ptr @s2n_strerror(i32 noundef %4069, ptr noundef @.str.4)
  %4071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4072 = load i32, ptr %4071, align 4, !tbaa !5
  %4073 = call ptr @s2n_strerror_debug(i32 noundef %4072, ptr noundef @.str.4)
  %4074 = call ptr @__errno_location() #9
  %4075 = load i32, ptr %4074, align 4, !tbaa !5
  %4076 = call ptr @strerror(i32 noundef %4075) #8
  %4077 = call ptr @__errno_location() #9
  %4078 = load i32, ptr %4077, align 4, !tbaa !5
  %4079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4066, ptr noundef @.str.5, i32 noundef %4067, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 218, ptr noundef %4070, ptr noundef %4073, ptr noundef %4076, i32 noundef %4078) #8
  br label %4080

4080:                                             ; preds = %4063, %4046
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #8
  br label %4081

4081:                                             ; preds = %4080
  br label %4082

4082:                                             ; preds = %4081
  call void @exit(i32 noundef 1) #10
  unreachable

4083:                                             ; No predecessors!
  br label %4084

4084:                                             ; preds = %4083
  br label %4085

4085:                                             ; preds = %4084, %4023
  br label %4086

4086:                                             ; preds = %4085
  br label %4087

4087:                                             ; preds = %4086
  %4088 = load ptr, ptr %90, align 8, !tbaa !9
  %4089 = getelementptr inbounds %struct.s2n_connection, ptr %4088, i32 0, i32 23
  store i8 33, ptr %4089, align 4, !tbaa !42
  br label %4090

4090:                                             ; preds = %4087
  br label %4091

4091:                                             ; preds = %4090
  br label %4092

4092:                                             ; preds = %4091
  %4093 = load i32, ptr @test_count, align 4, !tbaa !5
  %4094 = add nsw i32 %4093, 1
  store i32 %4094, ptr @test_count, align 4, !tbaa !5
  %4095 = load ptr, ptr %90, align 8, !tbaa !9
  %4096 = load i32, ptr %89, align 4, !tbaa !5
  %4097 = call i32 @s2n_handshake_type_set_tls13_flag(ptr noundef %4095, i32 noundef %4096)
  %4098 = getelementptr inbounds %struct.s2n_result, ptr %95, i32 0, i32 0
  store i32 %4097, ptr %4098, align 4
  %4099 = getelementptr inbounds %struct.s2n_result, ptr %95, i32 0, i32 0
  %4100 = load i32, ptr %4099, align 4
  %4101 = call zeroext i1 @s2n_result_is_error(i32 %4100)
  br i1 %4101, label %4155, label %4102

4102:                                             ; preds = %4092
  br label %4103

4103:                                             ; preds = %4102
  br label %4104

4104:                                             ; preds = %4103
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #8
  %4105 = call ptr @__errno_location() #9
  %4106 = load i32, ptr %4105, align 4, !tbaa !5
  store i32 %4106, ptr %96, align 4, !tbaa !5
  %4107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4108 = call i32 @s2n_print_stacktrace(ptr noundef %4107)
  %4109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4110 = trunc i8 %4109 to i1
  br i1 %4110, label %4111, label %4133

4111:                                             ; preds = %4104
  %4112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4113 = call i32 @fileno(ptr noundef %4112) #8
  %4114 = call i32 @isatty(i32 noundef %4113) #8
  %4115 = icmp ne i32 %4114, 0
  br i1 %4115, label %4116, label %4133

4116:                                             ; preds = %4111
  %4117 = load i32, ptr %96, align 4, !tbaa !5
  %4118 = call ptr @__errno_location() #9
  store i32 %4117, ptr %4118, align 4, !tbaa !5
  %4119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4120 = load i32, ptr @test_count, align 4, !tbaa !5
  %4121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4122 = load i32, ptr %4121, align 4, !tbaa !5
  %4123 = call ptr @s2n_strerror(i32 noundef %4122, ptr noundef @.str.4)
  %4124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4125 = load i32, ptr %4124, align 4, !tbaa !5
  %4126 = call ptr @s2n_strerror_debug(i32 noundef %4125, ptr noundef @.str.4)
  %4127 = call ptr @__errno_location() #9
  %4128 = load i32, ptr %4127, align 4, !tbaa !5
  %4129 = call ptr @strerror(i32 noundef %4128) #8
  %4130 = call ptr @__errno_location() #9
  %4131 = load i32, ptr %4130, align 4, !tbaa !5
  %4132 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4119, ptr noundef @.str.2, i32 noundef %4120, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 221, ptr noundef %4123, ptr noundef %4126, ptr noundef %4129, i32 noundef %4131) #8
  br label %4150

4133:                                             ; preds = %4111, %4104
  %4134 = load i32, ptr %96, align 4, !tbaa !5
  %4135 = call ptr @__errno_location() #9
  store i32 %4134, ptr %4135, align 4, !tbaa !5
  %4136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4137 = load i32, ptr @test_count, align 4, !tbaa !5
  %4138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4139 = load i32, ptr %4138, align 4, !tbaa !5
  %4140 = call ptr @s2n_strerror(i32 noundef %4139, ptr noundef @.str.4)
  %4141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4142 = load i32, ptr %4141, align 4, !tbaa !5
  %4143 = call ptr @s2n_strerror_debug(i32 noundef %4142, ptr noundef @.str.4)
  %4144 = call ptr @__errno_location() #9
  %4145 = load i32, ptr %4144, align 4, !tbaa !5
  %4146 = call ptr @strerror(i32 noundef %4145) #8
  %4147 = call ptr @__errno_location() #9
  %4148 = load i32, ptr %4147, align 4, !tbaa !5
  %4149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4136, ptr noundef @.str.5, i32 noundef %4137, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 221, ptr noundef %4140, ptr noundef %4143, ptr noundef %4146, i32 noundef %4148) #8
  br label %4150

4150:                                             ; preds = %4133, %4116
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #8
  br label %4151

4151:                                             ; preds = %4150
  br label %4152

4152:                                             ; preds = %4151
  call void @exit(i32 noundef 1) #10
  unreachable

4153:                                             ; No predecessors!
  br label %4154

4154:                                             ; preds = %4153
  br label %4155

4155:                                             ; preds = %4154, %4092
  br label %4156

4156:                                             ; preds = %4155
  br label %4157

4157:                                             ; preds = %4156
  br label %4158

4158:                                             ; preds = %4157
  %4159 = load i32, ptr @test_count, align 4, !tbaa !5
  %4160 = add nsw i32 %4159, 1
  store i32 %4160, ptr @test_count, align 4, !tbaa !5
  %4161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4162 = load i32, ptr %4161, align 4, !tbaa !5
  %4163 = icmp eq i32 %4162, 402653218
  br i1 %4163, label %4217, label %4164

4164:                                             ; preds = %4158
  br label %4165

4165:                                             ; preds = %4164
  br label %4166

4166:                                             ; preds = %4165
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #8
  %4167 = call ptr @__errno_location() #9
  %4168 = load i32, ptr %4167, align 4, !tbaa !5
  store i32 %4168, ptr %97, align 4, !tbaa !5
  %4169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4170 = call i32 @s2n_print_stacktrace(ptr noundef %4169)
  %4171 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4172 = trunc i8 %4171 to i1
  br i1 %4172, label %4173, label %4195

4173:                                             ; preds = %4166
  %4174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4175 = call i32 @fileno(ptr noundef %4174) #8
  %4176 = call i32 @isatty(i32 noundef %4175) #8
  %4177 = icmp ne i32 %4176, 0
  br i1 %4177, label %4178, label %4195

4178:                                             ; preds = %4173
  %4179 = load i32, ptr %97, align 4, !tbaa !5
  %4180 = call ptr @__errno_location() #9
  store i32 %4179, ptr %4180, align 4, !tbaa !5
  %4181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4182 = load i32, ptr @test_count, align 4, !tbaa !5
  %4183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4184 = load i32, ptr %4183, align 4, !tbaa !5
  %4185 = call ptr @s2n_strerror(i32 noundef %4184, ptr noundef @.str.4)
  %4186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4187 = load i32, ptr %4186, align 4, !tbaa !5
  %4188 = call ptr @s2n_strerror_debug(i32 noundef %4187, ptr noundef @.str.4)
  %4189 = call ptr @__errno_location() #9
  %4190 = load i32, ptr %4189, align 4, !tbaa !5
  %4191 = call ptr @strerror(i32 noundef %4190) #8
  %4192 = call ptr @__errno_location() #9
  %4193 = load i32, ptr %4192, align 4, !tbaa !5
  %4194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4181, ptr noundef @.str.2, i32 noundef %4182, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 221, ptr noundef %4185, ptr noundef %4188, ptr noundef %4191, i32 noundef %4193) #8
  br label %4212

4195:                                             ; preds = %4173, %4166
  %4196 = load i32, ptr %97, align 4, !tbaa !5
  %4197 = call ptr @__errno_location() #9
  store i32 %4196, ptr %4197, align 4, !tbaa !5
  %4198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4199 = load i32, ptr @test_count, align 4, !tbaa !5
  %4200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4201 = load i32, ptr %4200, align 4, !tbaa !5
  %4202 = call ptr @s2n_strerror(i32 noundef %4201, ptr noundef @.str.4)
  %4203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4204 = load i32, ptr %4203, align 4, !tbaa !5
  %4205 = call ptr @s2n_strerror_debug(i32 noundef %4204, ptr noundef @.str.4)
  %4206 = call ptr @__errno_location() #9
  %4207 = load i32, ptr %4206, align 4, !tbaa !5
  %4208 = call ptr @strerror(i32 noundef %4207) #8
  %4209 = call ptr @__errno_location() #9
  %4210 = load i32, ptr %4209, align 4, !tbaa !5
  %4211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4198, ptr noundef @.str.5, i32 noundef %4199, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 221, ptr noundef %4202, ptr noundef %4205, ptr noundef %4208, i32 noundef %4210) #8
  br label %4212

4212:                                             ; preds = %4195, %4178
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #8
  br label %4213

4213:                                             ; preds = %4212
  br label %4214

4214:                                             ; preds = %4213
  call void @exit(i32 noundef 1) #10
  unreachable

4215:                                             ; No predecessors!
  br label %4216

4216:                                             ; preds = %4215
  br label %4217

4217:                                             ; preds = %4216, %4158
  br label %4218

4218:                                             ; preds = %4217
  br label %4219

4219:                                             ; preds = %4218
  br label %4220

4220:                                             ; preds = %4219
  %4221 = load i32, ptr @test_count, align 4, !tbaa !5
  %4222 = add nsw i32 %4221, 1
  store i32 %4222, ptr @test_count, align 4, !tbaa !5
  %4223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4224 = load i32, ptr %4223, align 4, !tbaa !5
  %4225 = call ptr @s2n_strerror_debug(i32 noundef %4224, ptr noundef @.str.4)
  %4226 = icmp eq ptr %4225, null
  br i1 %4226, label %4227, label %4280

4227:                                             ; preds = %4220
  br label %4228

4228:                                             ; preds = %4227
  br label %4229

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

4236:                                             ; preds = %4229
  %4237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4238 = call i32 @fileno(ptr noundef %4237) #8
  %4239 = call i32 @isatty(i32 noundef %4238) #8
  %4240 = icmp ne i32 %4239, 0
  br i1 %4240, label %4241, label %4258

4241:                                             ; preds = %4236
  %4242 = load i32, ptr %98, align 4, !tbaa !5
  %4243 = call ptr @__errno_location() #9
  store i32 %4242, ptr %4243, align 4, !tbaa !5
  %4244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4245 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4247, ptr noundef @.str.4)
  %4249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4250 = load i32, ptr %4249, align 4, !tbaa !5
  %4251 = call ptr @s2n_strerror_debug(i32 noundef %4250, ptr noundef @.str.4)
  %4252 = call ptr @__errno_location() #9
  %4253 = load i32, ptr %4252, align 4, !tbaa !5
  %4254 = call ptr @strerror(i32 noundef %4253) #8
  %4255 = call ptr @__errno_location() #9
  %4256 = load i32, ptr %4255, align 4, !tbaa !5
  %4257 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4244, ptr noundef @.str.2, i32 noundef %4245, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 221, ptr noundef %4248, ptr noundef %4251, ptr noundef %4254, i32 noundef %4256) #8
  br label %4275

4258:                                             ; preds = %4236, %4229
  %4259 = load i32, ptr %98, align 4, !tbaa !5
  %4260 = call ptr @__errno_location() #9
  store i32 %4259, ptr %4260, align 4, !tbaa !5
  %4261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4262 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %4264, ptr noundef @.str.4)
  %4266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4267 = load i32, ptr %4266, align 4, !tbaa !5
  %4268 = call ptr @s2n_strerror_debug(i32 noundef %4267, ptr noundef @.str.4)
  %4269 = call ptr @__errno_location() #9
  %4270 = load i32, ptr %4269, align 4, !tbaa !5
  %4271 = call ptr @strerror(i32 noundef %4270) #8
  %4272 = call ptr @__errno_location() #9
  %4273 = load i32, ptr %4272, align 4, !tbaa !5
  %4274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4261, ptr noundef @.str.5, i32 noundef %4262, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 221, ptr noundef %4265, ptr noundef %4268, ptr noundef %4271, i32 noundef %4273) #8
  br label %4275

4275:                                             ; preds = %4258, %4241
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #8
  br label %4276

4276:                                             ; preds = %4275
  br label %4277

4277:                                             ; preds = %4276
  call void @exit(i32 noundef 1) #10
  unreachable

4278:                                             ; No predecessors!
  br label %4279

4279:                                             ; preds = %4278
  br label %4280

4280:                                             ; preds = %4279, %4220
  br label %4281

4281:                                             ; preds = %4280
  br label %4282

4282:                                             ; preds = %4281
  br label %4283

4283:                                             ; preds = %4282
  br label %4284

4284:                                             ; preds = %4283
  br label %4285

4285:                                             ; preds = %4284
  %4286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4286, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4287 = call ptr @__errno_location() #9
  store i32 0, ptr %4287, align 4, !tbaa !5
  br label %4288

4288:                                             ; preds = %4285
  br label %4289

4289:                                             ; preds = %4288
  br label %4290

4290:                                             ; preds = %4289
  br label %4291

4291:                                             ; preds = %4290
  br label %4292

4292:                                             ; preds = %4291
  %4293 = load i32, ptr @test_count, align 4, !tbaa !5
  %4294 = add nsw i32 %4293, 1
  store i32 %4294, ptr @test_count, align 4, !tbaa !5
  %4295 = load ptr, ptr %90, align 8, !tbaa !9
  %4296 = call i32 @s2n_connection_free(ptr noundef %4295)
  %4297 = icmp eq i32 %4296, -1
  br i1 %4297, label %4298, label %4351

4298:                                             ; preds = %4292
  br label %4299

4299:                                             ; preds = %4298
  br label %4300

4300:                                             ; preds = %4299
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #8
  %4301 = call ptr @__errno_location() #9
  %4302 = load i32, ptr %4301, align 4, !tbaa !5
  store i32 %4302, ptr %99, align 4, !tbaa !5
  %4303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4304 = call i32 @s2n_print_stacktrace(ptr noundef %4303)
  %4305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4306 = trunc i8 %4305 to i1
  br i1 %4306, label %4307, label %4329

4307:                                             ; preds = %4300
  %4308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4309 = call i32 @fileno(ptr noundef %4308) #8
  %4310 = call i32 @isatty(i32 noundef %4309) #8
  %4311 = icmp ne i32 %4310, 0
  br i1 %4311, label %4312, label %4329

4312:                                             ; preds = %4307
  %4313 = load i32, ptr %99, align 4, !tbaa !5
  %4314 = call ptr @__errno_location() #9
  store i32 %4313, ptr %4314, align 4, !tbaa !5
  %4315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4316 = load i32, ptr @test_count, align 4, !tbaa !5
  %4317 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4318 = load i32, ptr %4317, align 4, !tbaa !5
  %4319 = call ptr @s2n_strerror(i32 noundef %4318, ptr noundef @.str.4)
  %4320 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4321 = load i32, ptr %4320, align 4, !tbaa !5
  %4322 = call ptr @s2n_strerror_debug(i32 noundef %4321, ptr noundef @.str.4)
  %4323 = call ptr @__errno_location() #9
  %4324 = load i32, ptr %4323, align 4, !tbaa !5
  %4325 = call ptr @strerror(i32 noundef %4324) #8
  %4326 = call ptr @__errno_location() #9
  %4327 = load i32, ptr %4326, align 4, !tbaa !5
  %4328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4315, ptr noundef @.str.2, i32 noundef %4316, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 223, ptr noundef %4319, ptr noundef %4322, ptr noundef %4325, i32 noundef %4327) #8
  br label %4346

4329:                                             ; preds = %4307, %4300
  %4330 = load i32, ptr %99, align 4, !tbaa !5
  %4331 = call ptr @__errno_location() #9
  store i32 %4330, ptr %4331, align 4, !tbaa !5
  %4332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4333 = load i32, ptr @test_count, align 4, !tbaa !5
  %4334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4335 = load i32, ptr %4334, align 4, !tbaa !5
  %4336 = call ptr @s2n_strerror(i32 noundef %4335, ptr noundef @.str.4)
  %4337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4338 = load i32, ptr %4337, align 4, !tbaa !5
  %4339 = call ptr @s2n_strerror_debug(i32 noundef %4338, ptr noundef @.str.4)
  %4340 = call ptr @__errno_location() #9
  %4341 = load i32, ptr %4340, align 4, !tbaa !5
  %4342 = call ptr @strerror(i32 noundef %4341) #8
  %4343 = call ptr @__errno_location() #9
  %4344 = load i32, ptr %4343, align 4, !tbaa !5
  %4345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4332, ptr noundef @.str.5, i32 noundef %4333, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 223, ptr noundef %4336, ptr noundef %4339, ptr noundef %4342, i32 noundef %4344) #8
  br label %4346

4346:                                             ; preds = %4329, %4312
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #8
  br label %4347

4347:                                             ; preds = %4346
  br label %4348

4348:                                             ; preds = %4347
  call void @exit(i32 noundef 1) #10
  unreachable

4349:                                             ; No predecessors!
  br label %4350

4350:                                             ; preds = %4349
  br label %4351

4351:                                             ; preds = %4350, %4292
  br label %4352

4352:                                             ; preds = %4351
  br label %4353

4353:                                             ; preds = %4352
  call void @llvm.lifetime.end.p0(i64 8, ptr %90) #8
  br label %4354

4354:                                             ; preds = %4353
  %4355 = load i32, ptr %89, align 4, !tbaa !5
  %4356 = add i32 %4355, 1
  store i32 %4356, ptr %89, align 4, !tbaa !5
  br label %3888, !llvm.loop !48

4357:                                             ; preds = %3891
  br label %4358

4358:                                             ; preds = %4357
  %4359 = load i32, ptr @test_count, align 4, !tbaa !5
  %4360 = add nsw i32 %4359, 1
  store i32 %4360, ptr @test_count, align 4, !tbaa !5
  %4361 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef null, i32 noundef 0)
  br i1 %4361, label %4362, label %4413

4362:                                             ; preds = %4358
  br label %4363

4363:                                             ; preds = %4362
  br label %4364

4364:                                             ; preds = %4363
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #8
  %4365 = call ptr @__errno_location() #9
  %4366 = load i32, ptr %4365, align 4, !tbaa !5
  store i32 %4366, ptr %100, align 4, !tbaa !5
  %4367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4368 = call i32 @s2n_print_stacktrace(ptr noundef %4367)
  %4369 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4370 = trunc i8 %4369 to i1
  br i1 %4370, label %4371, label %4393

4371:                                             ; preds = %4364
  %4372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4373 = call i32 @fileno(ptr noundef %4372) #8
  %4374 = call i32 @isatty(i32 noundef %4373) #8
  %4375 = icmp ne i32 %4374, 0
  br i1 %4375, label %4376, label %4393

4376:                                             ; preds = %4371
  %4377 = load i32, ptr %100, align 4, !tbaa !5
  %4378 = call ptr @__errno_location() #9
  store i32 %4377, ptr %4378, align 4, !tbaa !5
  %4379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4380 = load i32, ptr @test_count, align 4, !tbaa !5
  %4381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4382 = load i32, ptr %4381, align 4, !tbaa !5
  %4383 = call ptr @s2n_strerror(i32 noundef %4382, ptr noundef @.str.4)
  %4384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4385 = load i32, ptr %4384, align 4, !tbaa !5
  %4386 = call ptr @s2n_strerror_debug(i32 noundef %4385, ptr noundef @.str.4)
  %4387 = call ptr @__errno_location() #9
  %4388 = load i32, ptr %4387, align 4, !tbaa !5
  %4389 = call ptr @strerror(i32 noundef %4388) #8
  %4390 = call ptr @__errno_location() #9
  %4391 = load i32, ptr %4390, align 4, !tbaa !5
  %4392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4379, ptr noundef @.str.2, i32 noundef %4380, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 230, ptr noundef %4383, ptr noundef %4386, ptr noundef %4389, i32 noundef %4391) #8
  br label %4410

4393:                                             ; preds = %4371, %4364
  %4394 = load i32, ptr %100, align 4, !tbaa !5
  %4395 = call ptr @__errno_location() #9
  store i32 %4394, ptr %4395, align 4, !tbaa !5
  %4396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4397 = load i32, ptr @test_count, align 4, !tbaa !5
  %4398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4399 = load i32, ptr %4398, align 4, !tbaa !5
  %4400 = call ptr @s2n_strerror(i32 noundef %4399, ptr noundef @.str.4)
  %4401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4402 = load i32, ptr %4401, align 4, !tbaa !5
  %4403 = call ptr @s2n_strerror_debug(i32 noundef %4402, ptr noundef @.str.4)
  %4404 = call ptr @__errno_location() #9
  %4405 = load i32, ptr %4404, align 4, !tbaa !5
  %4406 = call ptr @strerror(i32 noundef %4405) #8
  %4407 = call ptr @__errno_location() #9
  %4408 = load i32, ptr %4407, align 4, !tbaa !5
  %4409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4396, ptr noundef @.str.5, i32 noundef %4397, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 230, ptr noundef %4400, ptr noundef %4403, ptr noundef %4406, i32 noundef %4408) #8
  br label %4410

4410:                                             ; preds = %4393, %4376
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #8
  br label %4411

4411:                                             ; preds = %4410
  call void @exit(i32 noundef 1) #10
  unreachable

4412:                                             ; No predecessors!
  br label %4413

4413:                                             ; preds = %4412, %4358
  br label %4414

4414:                                             ; preds = %4413
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #8
  store i32 16, ptr %101, align 4, !tbaa !5
  br label %4415

4415:                                             ; preds = %4938, %4414
  %4416 = load i32, ptr %101, align 4, !tbaa !5
  %4417 = icmp ule i32 %4416, 128
  br i1 %4417, label %4419, label %4418

4418:                                             ; preds = %4415
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #8
  br label %4941

4419:                                             ; preds = %4415
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #8
  %4420 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %4420, ptr %102, align 8, !tbaa !9
  br label %4421

4421:                                             ; preds = %4419
  %4422 = load i32, ptr @test_count, align 4, !tbaa !5
  %4423 = add nsw i32 %4422, 1
  store i32 %4423, ptr @test_count, align 4, !tbaa !5
  %4424 = load ptr, ptr %102, align 8, !tbaa !9
  %4425 = icmp eq ptr %4424, null
  br i1 %4425, label %4426, label %4479

4426:                                             ; preds = %4421
  br label %4427

4427:                                             ; preds = %4426
  br label %4428

4428:                                             ; preds = %4427
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #8
  %4429 = call ptr @__errno_location() #9
  %4430 = load i32, ptr %4429, align 4, !tbaa !5
  store i32 %4430, ptr %103, align 4, !tbaa !5
  %4431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4432 = call i32 @s2n_print_stacktrace(ptr noundef %4431)
  %4433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4434 = trunc i8 %4433 to i1
  br i1 %4434, label %4435, label %4457

4435:                                             ; preds = %4428
  %4436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4437 = call i32 @fileno(ptr noundef %4436) #8
  %4438 = call i32 @isatty(i32 noundef %4437) #8
  %4439 = icmp ne i32 %4438, 0
  br i1 %4439, label %4440, label %4457

4440:                                             ; preds = %4435
  %4441 = load i32, ptr %103, align 4, !tbaa !5
  %4442 = call ptr @__errno_location() #9
  store i32 %4441, ptr %4442, align 4, !tbaa !5
  %4443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4444 = load i32, ptr @test_count, align 4, !tbaa !5
  %4445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4446 = load i32, ptr %4445, align 4, !tbaa !5
  %4447 = call ptr @s2n_strerror(i32 noundef %4446, ptr noundef @.str.4)
  %4448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4449 = load i32, ptr %4448, align 4, !tbaa !5
  %4450 = call ptr @s2n_strerror_debug(i32 noundef %4449, ptr noundef @.str.4)
  %4451 = call ptr @__errno_location() #9
  %4452 = load i32, ptr %4451, align 4, !tbaa !5
  %4453 = call ptr @strerror(i32 noundef %4452) #8
  %4454 = call ptr @__errno_location() #9
  %4455 = load i32, ptr %4454, align 4, !tbaa !5
  %4456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4443, ptr noundef @.str.2, i32 noundef %4444, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 235, ptr noundef %4447, ptr noundef %4450, ptr noundef %4453, i32 noundef %4455) #8
  br label %4474

4457:                                             ; preds = %4435, %4428
  %4458 = load i32, ptr %103, align 4, !tbaa !5
  %4459 = call ptr @__errno_location() #9
  store i32 %4458, ptr %4459, align 4, !tbaa !5
  %4460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4461 = load i32, ptr @test_count, align 4, !tbaa !5
  %4462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4463 = load i32, ptr %4462, align 4, !tbaa !5
  %4464 = call ptr @s2n_strerror(i32 noundef %4463, ptr noundef @.str.4)
  %4465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4466 = load i32, ptr %4465, align 4, !tbaa !5
  %4467 = call ptr @s2n_strerror_debug(i32 noundef %4466, ptr noundef @.str.4)
  %4468 = call ptr @__errno_location() #9
  %4469 = load i32, ptr %4468, align 4, !tbaa !5
  %4470 = call ptr @strerror(i32 noundef %4469) #8
  %4471 = call ptr @__errno_location() #9
  %4472 = load i32, ptr %4471, align 4, !tbaa !5
  %4473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4460, ptr noundef @.str.5, i32 noundef %4461, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 235, ptr noundef %4464, ptr noundef %4467, ptr noundef %4470, i32 noundef %4472) #8
  br label %4474

4474:                                             ; preds = %4457, %4440
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #8
  br label %4475

4475:                                             ; preds = %4474
  br label %4476

4476:                                             ; preds = %4475
  call void @exit(i32 noundef 1) #10
  unreachable

4477:                                             ; No predecessors!
  br label %4478

4478:                                             ; preds = %4477
  br label %4479

4479:                                             ; preds = %4478, %4421
  br label %4480

4480:                                             ; preds = %4479
  br label %4481

4481:                                             ; preds = %4480
  %4482 = load ptr, ptr %102, align 8, !tbaa !9
  %4483 = getelementptr inbounds %struct.s2n_connection, ptr %4482, i32 0, i32 52
  %4484 = getelementptr inbounds %struct.s2n_handshake, ptr %4483, i32 0, i32 6
  store i32 65535, ptr %4484, align 4, !tbaa !15
  %4485 = load ptr, ptr %102, align 8, !tbaa !9
  %4486 = getelementptr inbounds %struct.s2n_connection, ptr %4485, i32 0, i32 23
  store i8 33, ptr %4486, align 4, !tbaa !42
  br label %4487

4487:                                             ; preds = %4481
  %4488 = load i32, ptr @test_count, align 4, !tbaa !5
  %4489 = add nsw i32 %4488, 1
  store i32 %4489, ptr @test_count, align 4, !tbaa !5
  %4490 = load ptr, ptr %102, align 8, !tbaa !9
  %4491 = load i32, ptr %101, align 4, !tbaa !5
  %4492 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %4490, i32 noundef %4491)
  br i1 %4492, label %4493, label %4546

4493:                                             ; preds = %4487
  br label %4494

4494:                                             ; preds = %4493
  br label %4495

4495:                                             ; preds = %4494
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #8
  %4496 = call ptr @__errno_location() #9
  %4497 = load i32, ptr %4496, align 4, !tbaa !5
  store i32 %4497, ptr %104, align 4, !tbaa !5
  %4498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4499 = call i32 @s2n_print_stacktrace(ptr noundef %4498)
  %4500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4501 = trunc i8 %4500 to i1
  br i1 %4501, label %4502, label %4524

4502:                                             ; preds = %4495
  %4503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4504 = call i32 @fileno(ptr noundef %4503) #8
  %4505 = call i32 @isatty(i32 noundef %4504) #8
  %4506 = icmp ne i32 %4505, 0
  br i1 %4506, label %4507, label %4524

4507:                                             ; preds = %4502
  %4508 = load i32, ptr %104, align 4, !tbaa !5
  %4509 = call ptr @__errno_location() #9
  store i32 %4508, ptr %4509, align 4, !tbaa !5
  %4510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4511 = load i32, ptr @test_count, align 4, !tbaa !5
  %4512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4513 = load i32, ptr %4512, align 4, !tbaa !5
  %4514 = call ptr @s2n_strerror(i32 noundef %4513, ptr noundef @.str.4)
  %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_debug(i32 noundef %4516, ptr noundef @.str.4)
  %4518 = call ptr @__errno_location() #9
  %4519 = load i32, ptr %4518, align 4, !tbaa !5
  %4520 = call ptr @strerror(i32 noundef %4519) #8
  %4521 = call ptr @__errno_location() #9
  %4522 = load i32, ptr %4521, align 4, !tbaa !5
  %4523 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4510, ptr noundef @.str.2, i32 noundef %4511, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 242, ptr noundef %4514, ptr noundef %4517, ptr noundef %4520, i32 noundef %4522) #8
  br label %4541

4524:                                             ; preds = %4502, %4495
  %4525 = load i32, ptr %104, align 4, !tbaa !5
  %4526 = call ptr @__errno_location() #9
  store i32 %4525, ptr %4526, align 4, !tbaa !5
  %4527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4528 = load i32, ptr @test_count, align 4, !tbaa !5
  %4529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4530 = load i32, ptr %4529, align 4, !tbaa !5
  %4531 = call ptr @s2n_strerror(i32 noundef %4530, ptr noundef @.str.4)
  %4532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4533 = load i32, ptr %4532, align 4, !tbaa !5
  %4534 = call ptr @s2n_strerror_debug(i32 noundef %4533, ptr noundef @.str.4)
  %4535 = call ptr @__errno_location() #9
  %4536 = load i32, ptr %4535, align 4, !tbaa !5
  %4537 = call ptr @strerror(i32 noundef %4536) #8
  %4538 = call ptr @__errno_location() #9
  %4539 = load i32, ptr %4538, align 4, !tbaa !5
  %4540 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4527, ptr noundef @.str.5, i32 noundef %4528, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 242, ptr noundef %4531, ptr noundef %4534, ptr noundef %4537, i32 noundef %4539) #8
  br label %4541

4541:                                             ; preds = %4524, %4507
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #8
  br label %4542

4542:                                             ; preds = %4541
  br label %4543

4543:                                             ; preds = %4542
  call void @exit(i32 noundef 1) #10
  unreachable

4544:                                             ; No predecessors!
  br label %4545

4545:                                             ; preds = %4544
  br label %4546

4546:                                             ; preds = %4545, %4487
  br label %4547

4547:                                             ; preds = %4546
  br label %4548

4548:                                             ; preds = %4547
  %4549 = load ptr, ptr %102, align 8, !tbaa !9
  %4550 = getelementptr inbounds %struct.s2n_connection, ptr %4549, i32 0, i32 23
  store i8 34, ptr %4550, align 4, !tbaa !42
  br label %4551

4551:                                             ; preds = %4548
  %4552 = load i32, ptr @test_count, align 4, !tbaa !5
  %4553 = add nsw i32 %4552, 1
  store i32 %4553, ptr @test_count, align 4, !tbaa !5
  %4554 = load ptr, ptr %102, align 8, !tbaa !9
  %4555 = load i32, ptr %101, align 4, !tbaa !5
  %4556 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %4554, i32 noundef %4555)
  br i1 %4556, label %4610, label %4557

4557:                                             ; preds = %4551
  br label %4558

4558:                                             ; preds = %4557
  br label %4559

4559:                                             ; preds = %4558
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #8
  %4560 = call ptr @__errno_location() #9
  %4561 = load i32, ptr %4560, align 4, !tbaa !5
  store i32 %4561, ptr %105, align 4, !tbaa !5
  %4562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4563 = call i32 @s2n_print_stacktrace(ptr noundef %4562)
  %4564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4565 = trunc i8 %4564 to i1
  br i1 %4565, label %4566, label %4588

4566:                                             ; preds = %4559
  %4567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4568 = call i32 @fileno(ptr noundef %4567) #8
  %4569 = call i32 @isatty(i32 noundef %4568) #8
  %4570 = icmp ne i32 %4569, 0
  br i1 %4570, label %4571, label %4588

4571:                                             ; preds = %4566
  %4572 = load i32, ptr %105, align 4, !tbaa !5
  %4573 = call ptr @__errno_location() #9
  store i32 %4572, ptr %4573, align 4, !tbaa !5
  %4574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4575 = load i32, ptr @test_count, align 4, !tbaa !5
  %4576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4577 = load i32, ptr %4576, align 4, !tbaa !5
  %4578 = call ptr @s2n_strerror(i32 noundef %4577, ptr noundef @.str.4)
  %4579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4580 = load i32, ptr %4579, align 4, !tbaa !5
  %4581 = call ptr @s2n_strerror_debug(i32 noundef %4580, ptr noundef @.str.4)
  %4582 = call ptr @__errno_location() #9
  %4583 = load i32, ptr %4582, align 4, !tbaa !5
  %4584 = call ptr @strerror(i32 noundef %4583) #8
  %4585 = call ptr @__errno_location() #9
  %4586 = load i32, ptr %4585, align 4, !tbaa !5
  %4587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4574, ptr noundef @.str.2, i32 noundef %4575, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 245, ptr noundef %4578, ptr noundef %4581, ptr noundef %4584, i32 noundef %4586) #8
  br label %4605

4588:                                             ; preds = %4566, %4559
  %4589 = load i32, ptr %105, align 4, !tbaa !5
  %4590 = call ptr @__errno_location() #9
  store i32 %4589, ptr %4590, align 4, !tbaa !5
  %4591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4592 = load i32, ptr @test_count, align 4, !tbaa !5
  %4593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4594 = load i32, ptr %4593, align 4, !tbaa !5
  %4595 = call ptr @s2n_strerror(i32 noundef %4594, ptr noundef @.str.4)
  %4596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4597 = load i32, ptr %4596, align 4, !tbaa !5
  %4598 = call ptr @s2n_strerror_debug(i32 noundef %4597, ptr noundef @.str.4)
  %4599 = call ptr @__errno_location() #9
  %4600 = load i32, ptr %4599, align 4, !tbaa !5
  %4601 = call ptr @strerror(i32 noundef %4600) #8
  %4602 = call ptr @__errno_location() #9
  %4603 = load i32, ptr %4602, align 4, !tbaa !5
  %4604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4591, ptr noundef @.str.5, i32 noundef %4592, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 245, ptr noundef %4595, ptr noundef %4598, ptr noundef %4601, i32 noundef %4603) #8
  br label %4605

4605:                                             ; preds = %4588, %4571
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #8
  br label %4606

4606:                                             ; preds = %4605
  br label %4607

4607:                                             ; preds = %4606
  call void @exit(i32 noundef 1) #10
  unreachable

4608:                                             ; No predecessors!
  br label %4609

4609:                                             ; preds = %4608
  br label %4610

4610:                                             ; preds = %4609, %4551
  br label %4611

4611:                                             ; preds = %4610
  br label %4612

4612:                                             ; preds = %4611
  %4613 = load ptr, ptr %102, align 8, !tbaa !9
  %4614 = getelementptr inbounds %struct.s2n_connection, ptr %4613, i32 0, i32 52
  %4615 = getelementptr inbounds %struct.s2n_handshake, ptr %4614, i32 0, i32 6
  store i32 0, ptr %4615, align 4, !tbaa !15
  %4616 = load ptr, ptr %102, align 8, !tbaa !9
  %4617 = getelementptr inbounds %struct.s2n_connection, ptr %4616, i32 0, i32 23
  store i8 33, ptr %4617, align 4, !tbaa !42
  br label %4618

4618:                                             ; preds = %4612
  %4619 = load i32, ptr @test_count, align 4, !tbaa !5
  %4620 = add nsw i32 %4619, 1
  store i32 %4620, ptr @test_count, align 4, !tbaa !5
  %4621 = load ptr, ptr %102, align 8, !tbaa !9
  %4622 = load i32, ptr %101, align 4, !tbaa !5
  %4623 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %4621, i32 noundef %4622)
  br i1 %4623, label %4624, label %4677

4624:                                             ; preds = %4618
  br label %4625

4625:                                             ; preds = %4624
  br label %4626

4626:                                             ; preds = %4625
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #8
  %4627 = call ptr @__errno_location() #9
  %4628 = load i32, ptr %4627, align 4, !tbaa !5
  store i32 %4628, ptr %106, align 4, !tbaa !5
  %4629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4630 = call i32 @s2n_print_stacktrace(ptr noundef %4629)
  %4631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4632 = trunc i8 %4631 to i1
  br i1 %4632, label %4633, label %4655

4633:                                             ; preds = %4626
  %4634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4635 = call i32 @fileno(ptr noundef %4634) #8
  %4636 = call i32 @isatty(i32 noundef %4635) #8
  %4637 = icmp ne i32 %4636, 0
  br i1 %4637, label %4638, label %4655

4638:                                             ; preds = %4633
  %4639 = load i32, ptr %106, align 4, !tbaa !5
  %4640 = call ptr @__errno_location() #9
  store i32 %4639, ptr %4640, align 4, !tbaa !5
  %4641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4642 = load i32, ptr @test_count, align 4, !tbaa !5
  %4643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4644 = load i32, ptr %4643, align 4, !tbaa !5
  %4645 = call ptr @s2n_strerror(i32 noundef %4644, ptr noundef @.str.4)
  %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_debug(i32 noundef %4647, ptr noundef @.str.4)
  %4649 = call ptr @__errno_location() #9
  %4650 = load i32, ptr %4649, align 4, !tbaa !5
  %4651 = call ptr @strerror(i32 noundef %4650) #8
  %4652 = call ptr @__errno_location() #9
  %4653 = load i32, ptr %4652, align 4, !tbaa !5
  %4654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4641, ptr noundef @.str.2, i32 noundef %4642, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 253, ptr noundef %4645, ptr noundef %4648, ptr noundef %4651, i32 noundef %4653) #8
  br label %4672

4655:                                             ; preds = %4633, %4626
  %4656 = load i32, ptr %106, align 4, !tbaa !5
  %4657 = call ptr @__errno_location() #9
  store i32 %4656, ptr %4657, align 4, !tbaa !5
  %4658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4659 = load i32, ptr @test_count, align 4, !tbaa !5
  %4660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4661 = load i32, ptr %4660, align 4, !tbaa !5
  %4662 = call ptr @s2n_strerror(i32 noundef %4661, ptr noundef @.str.4)
  %4663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4664 = load i32, ptr %4663, align 4, !tbaa !5
  %4665 = call ptr @s2n_strerror_debug(i32 noundef %4664, ptr noundef @.str.4)
  %4666 = call ptr @__errno_location() #9
  %4667 = load i32, ptr %4666, align 4, !tbaa !5
  %4668 = call ptr @strerror(i32 noundef %4667) #8
  %4669 = call ptr @__errno_location() #9
  %4670 = load i32, ptr %4669, align 4, !tbaa !5
  %4671 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4658, ptr noundef @.str.5, i32 noundef %4659, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 253, ptr noundef %4662, ptr noundef %4665, ptr noundef %4668, i32 noundef %4670) #8
  br label %4672

4672:                                             ; preds = %4655, %4638
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #8
  br label %4673

4673:                                             ; preds = %4672
  br label %4674

4674:                                             ; preds = %4673
  call void @exit(i32 noundef 1) #10
  unreachable

4675:                                             ; No predecessors!
  br label %4676

4676:                                             ; preds = %4675
  br label %4677

4677:                                             ; preds = %4676, %4618
  br label %4678

4678:                                             ; preds = %4677
  br label %4679

4679:                                             ; preds = %4678
  %4680 = load ptr, ptr %102, align 8, !tbaa !9
  %4681 = getelementptr inbounds %struct.s2n_connection, ptr %4680, i32 0, i32 23
  store i8 34, ptr %4681, align 4, !tbaa !42
  br label %4682

4682:                                             ; preds = %4679
  %4683 = load i32, ptr @test_count, align 4, !tbaa !5
  %4684 = add nsw i32 %4683, 1
  store i32 %4684, ptr @test_count, align 4, !tbaa !5
  %4685 = load ptr, ptr %102, align 8, !tbaa !9
  %4686 = load i32, ptr %101, align 4, !tbaa !5
  %4687 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %4685, i32 noundef %4686)
  br i1 %4687, label %4688, label %4741

4688:                                             ; preds = %4682
  br label %4689

4689:                                             ; preds = %4688
  br label %4690

4690:                                             ; preds = %4689
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #8
  %4691 = call ptr @__errno_location() #9
  %4692 = load i32, ptr %4691, align 4, !tbaa !5
  store i32 %4692, ptr %107, align 4, !tbaa !5
  %4693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4694 = call i32 @s2n_print_stacktrace(ptr noundef %4693)
  %4695 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4696 = trunc i8 %4695 to i1
  br i1 %4696, label %4697, label %4719

4697:                                             ; preds = %4690
  %4698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4699 = call i32 @fileno(ptr noundef %4698) #8
  %4700 = call i32 @isatty(i32 noundef %4699) #8
  %4701 = icmp ne i32 %4700, 0
  br i1 %4701, label %4702, label %4719

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

4719:                                             ; preds = %4697, %4690
  %4720 = load i32, ptr %107, align 4, !tbaa !5
  %4721 = call ptr @__errno_location() #9
  store i32 %4720, ptr %4721, align 4, !tbaa !5
  %4722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4723 = load i32, ptr @test_count, align 4, !tbaa !5
  %4724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4725 = load i32, ptr %4724, align 4, !tbaa !5
  %4726 = call ptr @s2n_strerror(i32 noundef %4725, ptr noundef @.str.4)
  %4727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4728 = load i32, ptr %4727, align 4, !tbaa !5
  %4729 = call ptr @s2n_strerror_debug(i32 noundef %4728, ptr noundef @.str.4)
  %4730 = call ptr @__errno_location() #9
  %4731 = load i32, ptr %4730, align 4, !tbaa !5
  %4732 = call ptr @strerror(i32 noundef %4731) #8
  %4733 = call ptr @__errno_location() #9
  %4734 = load i32, ptr %4733, align 4, !tbaa !5
  %4735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4722, ptr noundef @.str.5, i32 noundef %4723, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 256, ptr noundef %4726, ptr noundef %4729, ptr noundef %4732, i32 noundef %4734) #8
  br label %4736

4736:                                             ; preds = %4719, %4702
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #8
  br label %4737

4737:                                             ; preds = %4736
  br label %4738

4738:                                             ; preds = %4737
  call void @exit(i32 noundef 1) #10
  unreachable

4739:                                             ; No predecessors!
  br label %4740

4740:                                             ; preds = %4739
  br label %4741

4741:                                             ; preds = %4740, %4682
  br label %4742

4742:                                             ; preds = %4741
  br label %4743

4743:                                             ; preds = %4742
  %4744 = load i32, ptr %101, align 4, !tbaa !5
  %4745 = load ptr, ptr %102, align 8, !tbaa !9
  %4746 = getelementptr inbounds %struct.s2n_connection, ptr %4745, i32 0, i32 52
  %4747 = getelementptr inbounds %struct.s2n_handshake, ptr %4746, i32 0, i32 6
  store i32 %4744, ptr %4747, align 4, !tbaa !15
  %4748 = load ptr, ptr %102, align 8, !tbaa !9
  %4749 = getelementptr inbounds %struct.s2n_connection, ptr %4748, i32 0, i32 23
  store i8 33, ptr %4749, align 4, !tbaa !42
  br label %4750

4750:                                             ; preds = %4743
  %4751 = load i32, ptr @test_count, align 4, !tbaa !5
  %4752 = add nsw i32 %4751, 1
  store i32 %4752, ptr @test_count, align 4, !tbaa !5
  %4753 = load ptr, ptr %102, align 8, !tbaa !9
  %4754 = load i32, ptr %101, align 4, !tbaa !5
  %4755 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %4753, i32 noundef %4754)
  br i1 %4755, label %4756, label %4809

4756:                                             ; preds = %4750
  br label %4757

4757:                                             ; preds = %4756
  br label %4758

4758:                                             ; preds = %4757
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #8
  %4759 = call ptr @__errno_location() #9
  %4760 = load i32, ptr %4759, align 4, !tbaa !5
  store i32 %4760, ptr %108, align 4, !tbaa !5
  %4761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4762 = call i32 @s2n_print_stacktrace(ptr noundef %4761)
  %4763 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4764 = trunc i8 %4763 to i1
  br i1 %4764, label %4765, label %4787

4765:                                             ; preds = %4758
  %4766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4767 = call i32 @fileno(ptr noundef %4766) #8
  %4768 = call i32 @isatty(i32 noundef %4767) #8
  %4769 = icmp ne i32 %4768, 0
  br i1 %4769, label %4770, label %4787

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

4787:                                             ; preds = %4765, %4758
  %4788 = load i32, ptr %108, align 4, !tbaa !5
  %4789 = call ptr @__errno_location() #9
  store i32 %4788, ptr %4789, align 4, !tbaa !5
  %4790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4791 = load i32, ptr @test_count, align 4, !tbaa !5
  %4792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4793 = load i32, ptr %4792, align 4, !tbaa !5
  %4794 = call ptr @s2n_strerror(i32 noundef %4793, ptr noundef @.str.4)
  %4795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4796 = load i32, ptr %4795, align 4, !tbaa !5
  %4797 = call ptr @s2n_strerror_debug(i32 noundef %4796, ptr noundef @.str.4)
  %4798 = call ptr @__errno_location() #9
  %4799 = load i32, ptr %4798, align 4, !tbaa !5
  %4800 = call ptr @strerror(i32 noundef %4799) #8
  %4801 = call ptr @__errno_location() #9
  %4802 = load i32, ptr %4801, align 4, !tbaa !5
  %4803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4790, ptr noundef @.str.5, i32 noundef %4791, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 264, ptr noundef %4794, ptr noundef %4797, ptr noundef %4800, i32 noundef %4802) #8
  br label %4804

4804:                                             ; preds = %4787, %4770
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #8
  br label %4805

4805:                                             ; preds = %4804
  br label %4806

4806:                                             ; preds = %4805
  call void @exit(i32 noundef 1) #10
  unreachable

4807:                                             ; No predecessors!
  br label %4808

4808:                                             ; preds = %4807
  br label %4809

4809:                                             ; preds = %4808, %4750
  br label %4810

4810:                                             ; preds = %4809
  br label %4811

4811:                                             ; preds = %4810
  %4812 = load ptr, ptr %102, align 8, !tbaa !9
  %4813 = getelementptr inbounds %struct.s2n_connection, ptr %4812, i32 0, i32 23
  store i8 34, ptr %4813, align 4, !tbaa !42
  br label %4814

4814:                                             ; preds = %4811
  %4815 = load i32, ptr @test_count, align 4, !tbaa !5
  %4816 = add nsw i32 %4815, 1
  store i32 %4816, ptr @test_count, align 4, !tbaa !5
  %4817 = load ptr, ptr %102, align 8, !tbaa !9
  %4818 = load i32, ptr %101, align 4, !tbaa !5
  %4819 = call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef %4817, i32 noundef %4818)
  br i1 %4819, label %4873, label %4820

4820:                                             ; preds = %4814
  br label %4821

4821:                                             ; preds = %4820
  br label %4822

4822:                                             ; preds = %4821
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #8
  %4823 = call ptr @__errno_location() #9
  %4824 = load i32, ptr %4823, align 4, !tbaa !5
  store i32 %4824, ptr %109, align 4, !tbaa !5
  %4825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4826 = call i32 @s2n_print_stacktrace(ptr noundef %4825)
  %4827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4828 = trunc i8 %4827 to i1
  br i1 %4828, label %4829, label %4851

4829:                                             ; preds = %4822
  %4830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4831 = call i32 @fileno(ptr noundef %4830) #8
  %4832 = call i32 @isatty(i32 noundef %4831) #8
  %4833 = icmp ne i32 %4832, 0
  br i1 %4833, label %4834, label %4851

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

4851:                                             ; preds = %4829, %4822
  %4852 = load i32, ptr %109, align 4, !tbaa !5
  %4853 = call ptr @__errno_location() #9
  store i32 %4852, ptr %4853, align 4, !tbaa !5
  %4854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4855 = load i32, ptr @test_count, align 4, !tbaa !5
  %4856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4857 = load i32, ptr %4856, align 4, !tbaa !5
  %4858 = call ptr @s2n_strerror(i32 noundef %4857, ptr noundef @.str.4)
  %4859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4860 = load i32, ptr %4859, align 4, !tbaa !5
  %4861 = call ptr @s2n_strerror_debug(i32 noundef %4860, ptr noundef @.str.4)
  %4862 = call ptr @__errno_location() #9
  %4863 = load i32, ptr %4862, align 4, !tbaa !5
  %4864 = call ptr @strerror(i32 noundef %4863) #8
  %4865 = call ptr @__errno_location() #9
  %4866 = load i32, ptr %4865, align 4, !tbaa !5
  %4867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4854, ptr noundef @.str.5, i32 noundef %4855, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 267, ptr noundef %4858, ptr noundef %4861, ptr noundef %4864, i32 noundef %4866) #8
  br label %4868

4868:                                             ; preds = %4851, %4834
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #8
  br label %4869

4869:                                             ; preds = %4868
  br label %4870

4870:                                             ; preds = %4869
  call void @exit(i32 noundef 1) #10
  unreachable

4871:                                             ; No predecessors!
  br label %4872

4872:                                             ; preds = %4871
  br label %4873

4873:                                             ; preds = %4872, %4814
  br label %4874

4874:                                             ; preds = %4873
  br label %4875

4875:                                             ; preds = %4874
  br label %4876

4876:                                             ; preds = %4875
  %4877 = load i32, ptr @test_count, align 4, !tbaa !5
  %4878 = add nsw i32 %4877, 1
  store i32 %4878, ptr @test_count, align 4, !tbaa !5
  %4879 = load ptr, ptr %102, align 8, !tbaa !9
  %4880 = call i32 @s2n_connection_free(ptr noundef %4879)
  %4881 = icmp eq i32 %4880, -1
  br i1 %4881, label %4882, label %4935

4882:                                             ; preds = %4876
  br label %4883

4883:                                             ; preds = %4882
  br label %4884

4884:                                             ; preds = %4883
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #8
  %4885 = call ptr @__errno_location() #9
  %4886 = load i32, ptr %4885, align 4, !tbaa !5
  store i32 %4886, ptr %110, align 4, !tbaa !5
  %4887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4888 = call i32 @s2n_print_stacktrace(ptr noundef %4887)
  %4889 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4890 = trunc i8 %4889 to i1
  br i1 %4890, label %4891, label %4913

4891:                                             ; preds = %4884
  %4892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4893 = call i32 @fileno(ptr noundef %4892) #8
  %4894 = call i32 @isatty(i32 noundef %4893) #8
  %4895 = icmp ne i32 %4894, 0
  br i1 %4895, label %4896, label %4913

4896:                                             ; preds = %4891
  %4897 = load i32, ptr %110, align 4, !tbaa !5
  %4898 = call ptr @__errno_location() #9
  store i32 %4897, ptr %4898, align 4, !tbaa !5
  %4899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4900 = load i32, ptr @test_count, align 4, !tbaa !5
  %4901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4902 = load i32, ptr %4901, align 4, !tbaa !5
  %4903 = call ptr @s2n_strerror(i32 noundef %4902, ptr noundef @.str.4)
  %4904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4905 = load i32, ptr %4904, align 4, !tbaa !5
  %4906 = call ptr @s2n_strerror_debug(i32 noundef %4905, ptr noundef @.str.4)
  %4907 = call ptr @__errno_location() #9
  %4908 = load i32, ptr %4907, align 4, !tbaa !5
  %4909 = call ptr @strerror(i32 noundef %4908) #8
  %4910 = call ptr @__errno_location() #9
  %4911 = load i32, ptr %4910, align 4, !tbaa !5
  %4912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4899, ptr noundef @.str.2, i32 noundef %4900, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 270, ptr noundef %4903, ptr noundef %4906, ptr noundef %4909, i32 noundef %4911) #8
  br label %4930

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

4930:                                             ; preds = %4913, %4896
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #8
  br label %4931

4931:                                             ; preds = %4930
  br label %4932

4932:                                             ; preds = %4931
  call void @exit(i32 noundef 1) #10
  unreachable

4933:                                             ; No predecessors!
  br label %4934

4934:                                             ; preds = %4933
  br label %4935

4935:                                             ; preds = %4934, %4876
  br label %4936

4936:                                             ; preds = %4935
  br label %4937

4937:                                             ; preds = %4936
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #8
  br label %4938

4938:                                             ; preds = %4937
  %4939 = load i32, ptr %101, align 4, !tbaa !5
  %4940 = add i32 %4939, 1
  store i32 %4940, ptr %101, align 4, !tbaa !5
  br label %4415, !llvm.loop !49

4941:                                             ; preds = %4418
  br label %4942

4942:                                             ; preds = %4941
  br label %4943

4943:                                             ; preds = %4942
  %4944 = call i32 @s2n_cleanup()
  %4945 = icmp eq i32 %4944, -1
  br i1 %4945, label %4946, label %4997

4946:                                             ; preds = %4943
  br label %4947

4947:                                             ; preds = %4946
  br label %4948

4948:                                             ; preds = %4947
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #8
  %4949 = call ptr @__errno_location() #9
  %4950 = load i32, ptr %4949, align 4, !tbaa !5
  store i32 %4950, ptr %111, align 4, !tbaa !5
  %4951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4952 = call i32 @s2n_print_stacktrace(ptr noundef %4951)
  %4953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4954 = trunc i8 %4953 to i1
  br i1 %4954, label %4955, label %4977

4955:                                             ; preds = %4948
  %4956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4957 = call i32 @fileno(ptr noundef %4956) #8
  %4958 = call i32 @isatty(i32 noundef %4957) #8
  %4959 = icmp ne i32 %4958, 0
  br i1 %4959, label %4960, label %4977

4960:                                             ; preds = %4955
  %4961 = load i32, ptr %111, align 4, !tbaa !5
  %4962 = call ptr @__errno_location() #9
  store i32 %4961, ptr %4962, align 4, !tbaa !5
  %4963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4964 = load i32, ptr @test_count, align 4, !tbaa !5
  %4965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4966 = load i32, ptr %4965, align 4, !tbaa !5
  %4967 = call ptr @s2n_strerror(i32 noundef %4966, ptr noundef @.str.4)
  %4968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4969 = load i32, ptr %4968, align 4, !tbaa !5
  %4970 = call ptr @s2n_strerror_debug(i32 noundef %4969, ptr noundef @.str.4)
  %4971 = call ptr @__errno_location() #9
  %4972 = load i32, ptr %4971, align 4, !tbaa !5
  %4973 = call ptr @strerror(i32 noundef %4972) #8
  %4974 = call ptr @__errno_location() #9
  %4975 = load i32, ptr %4974, align 4, !tbaa !5
  %4976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4963, ptr noundef @.str.2, i32 noundef %4964, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 274, ptr noundef %4967, ptr noundef %4970, ptr noundef %4973, i32 noundef %4975) #8
  br label %4994

4977:                                             ; preds = %4955, %4948
  %4978 = load i32, ptr %111, align 4, !tbaa !5
  %4979 = call ptr @__errno_location() #9
  store i32 %4978, ptr %4979, align 4, !tbaa !5
  %4980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4981 = load i32, ptr @test_count, align 4, !tbaa !5
  %4982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4983 = load i32, ptr %4982, align 4, !tbaa !5
  %4984 = call ptr @s2n_strerror(i32 noundef %4983, ptr noundef @.str.4)
  %4985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4986 = load i32, ptr %4985, align 4, !tbaa !5
  %4987 = call ptr @s2n_strerror_debug(i32 noundef %4986, ptr noundef @.str.4)
  %4988 = call ptr @__errno_location() #9
  %4989 = load i32, ptr %4988, align 4, !tbaa !5
  %4990 = call ptr @strerror(i32 noundef %4989) #8
  %4991 = call ptr @__errno_location() #9
  %4992 = load i32, ptr %4991, align 4, !tbaa !5
  %4993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4980, ptr noundef @.str.5, i32 noundef %4981, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 274, ptr noundef %4984, ptr noundef %4987, ptr noundef %4990, i32 noundef %4992) #8
  br label %4994

4994:                                             ; preds = %4977, %4960
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #8
  br label %4995

4995:                                             ; preds = %4994
  call void @exit(i32 noundef 1) #10
  unreachable

4996:                                             ; No predecessors!
  br label %4997

4997:                                             ; preds = %4996, %4943
  br label %4998

4998:                                             ; preds = %4997
  br label %4999

4999:                                             ; preds = %4998
  br label %5000

5000:                                             ; preds = %4999
  %5001 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %5002 = icmp eq i32 %5001, -1
  br i1 %5002, label %5003, label %5054

5003:                                             ; preds = %5000
  br label %5004

5004:                                             ; preds = %5003
  br label %5005

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

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

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

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

5051:                                             ; preds = %5034, %5017
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #8
  br label %5052

5052:                                             ; preds = %5051
  call void @exit(i32 noundef 1) #10
  unreachable

5053:                                             ; No predecessors!
  br label %5054

5054:                                             ; preds = %5053, %5000
  br label %5055

5055:                                             ; preds = %5054
  %5056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5057 = trunc i8 %5056 to i1
  br i1 %5057, label %5058, label %5074

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

5063:                                             ; preds = %5058
  %5064 = load i32, ptr @test_count, align 4, !tbaa !5
  %5065 = icmp ne i32 %5064, 0
  br i1 %5065, label %5066, label %5070

5066:                                             ; preds = %5063
  %5067 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5068 = load i32, ptr @test_count, align 4, !tbaa !5
  %5069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5067, ptr noundef @.str.38, i32 noundef %5068) #8
  br label %5073

5070:                                             ; preds = %5063
  %5071 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5072 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5071, ptr noundef @.str.39) #8
  br label %5073

5073:                                             ; preds = %5070, %5066
  br label %5085

5074:                                             ; preds = %5058, %5055
  %5075 = load i32, ptr @test_count, align 4, !tbaa !5
  %5076 = icmp ne i32 %5075, 0
  br i1 %5076, label %5077, label %5081

5077:                                             ; preds = %5074
  %5078 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5079 = load i32, ptr @test_count, align 4, !tbaa !5
  %5080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5078, ptr noundef @.str.40, i32 noundef %5079) #8
  br label %5084

5081:                                             ; preds = %5074
  %5082 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5082, ptr noundef @.str.41) #8
  br label %5084

5084:                                             ; preds = %5081, %5077
  br label %5085

5085:                                             ; preds = %5084, %5073
  store i32 0, ptr %3, align 4
  br label %5087

5086:                                             ; No predecessors!
  br label %5087

5087:                                             ; preds = %5086, %5085
  %5088 = load i32, ptr %3, align 4
  ret i32 %5088
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare ptr @s2n_connection_new(i32 noundef) #2

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

declare i32 @s2n_handshake_type_reset(ptr noundef) #2

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

declare i32 @s2n_connection_free(ptr noundef) #2

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

declare void @s2n_debug_info_reset() #2

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

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

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

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

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

declare i32 @s2n_cleanup() #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !6, i64 2172}
!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 = !{!16, !7, i64 220}
!43 = distinct !{!43, !44}
!44 = !{!"llvm.loop.mustprogress"}
!45 = distinct !{!45, !44}
!46 = distinct !{!46, !44}
!47 = distinct !{!47, !44}
!48 = distinct !{!48, !44}
!49 = distinct !{!49, !44}


; 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"

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [82 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %3 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #8
  %5 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6 = tail call i32 @fflush(ptr noundef %5)
  %7 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #8
  %8 = icmp eq i32 %7, -1
  br i1 %8, label %9, label %33

9:                                                ; preds = %2
  %10 = tail call ptr @__errno_location() #9
  %11 = load i32, ptr %10, align 4, !tbaa !5
  %12 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13 = tail call i32 @s2n_print_stacktrace(ptr noundef %12) #8
  %14 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15 = trunc nuw i8 %14 to i1
  br i1 %15, label %16, label %20

16:                                               ; preds = %9
  %17 = load ptr, ptr @stderr, align 8, !tbaa !9
  %18 = tail call i32 @fileno(ptr noundef %17) #8
  %19 = tail call i32 @isatty(i32 noundef %18) #8
  %.not392 = icmp eq i32 %19, 0
  br i1 %.not392, label %20, label %21

20:                                               ; preds = %16, %9
  br label %21

21:                                               ; preds = %16, %20
  %.str.5.sink = phi ptr [ @.str.5, %20 ], [ @.str.2, %16 ]
  store i32 %11, ptr %10, align 4, !tbaa !5
  %22 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23 = load i32, ptr @test_count, align 4, !tbaa !5
  %24 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %25 = load i32, ptr %24, align 4, !tbaa !5
  %26 = tail call ptr @s2n_strerror(i32 noundef %25, ptr noundef nonnull @.str.4) #8
  %27 = load i32, ptr %24, align 4, !tbaa !5
  %28 = tail call ptr @s2n_strerror_debug(i32 noundef %27, ptr noundef nonnull @.str.4) #8
  %29 = load i32, ptr %10, align 4, !tbaa !5
  %30 = tail call ptr @strerror(i32 noundef %29) #8
  %31 = load i32, ptr %10, align 4, !tbaa !5
  %32 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %22, ptr noundef nonnull %.str.5.sink, i32 noundef %23, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 30, ptr noundef %26, ptr noundef %28, ptr noundef %30, i32 noundef %31) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

33:                                               ; preds = %2
  %34 = load i32, ptr @test_count, align 4, !tbaa !5
  %35 = add nsw i32 %34, 1
  store i32 %35, ptr @test_count, align 4, !tbaa !5
  %36 = tail call i32 @s2n_enable_atexit() #8
  %37 = icmp eq i32 %36, -1
  br i1 %37, label %38, label %62

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

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

49:                                               ; preds = %45, %38
  br label %50

50:                                               ; preds = %45, %49
  %.str.5.sink416 = phi ptr [ @.str.5, %49 ], [ @.str.2, %45 ]
  store i32 %40, ptr %39, align 4, !tbaa !5
  %51 = load ptr, ptr @stderr, align 8, !tbaa !9
  %52 = load i32, ptr @test_count, align 4, !tbaa !5
  %53 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %54 = load i32, ptr %53, align 4, !tbaa !5
  %55 = tail call ptr @s2n_strerror(i32 noundef %54, ptr noundef nonnull @.str.4) #8
  %56 = load i32, ptr %53, align 4, !tbaa !5
  %57 = tail call ptr @s2n_strerror_debug(i32 noundef %56, ptr noundef nonnull @.str.4) #8
  %58 = load i32, ptr %39, align 4, !tbaa !5
  %59 = tail call ptr @strerror(i32 noundef %58) #8
  %60 = load i32, ptr %39, align 4, !tbaa !5
  %61 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %51, ptr noundef nonnull %.str.5.sink416, i32 noundef %52, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 30, ptr noundef %55, ptr noundef %57, ptr noundef %59, i32 noundef %60) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

62:                                               ; preds = %33
  %63 = tail call i32 @s2n_init() #8
  %64 = icmp eq i32 %63, -1
  br i1 %64, label %65, label %89

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

72:                                               ; preds = %65
  %73 = load ptr, ptr @stderr, align 8, !tbaa !9
  %74 = tail call i32 @fileno(ptr noundef %73) #8
  %75 = tail call i32 @isatty(i32 noundef %74) #8
  %.not390 = icmp eq i32 %75, 0
  br i1 %.not390, label %76, label %77

76:                                               ; preds = %72, %65
  br label %77

77:                                               ; preds = %72, %76
  %.str.5.sink427 = phi ptr [ @.str.5, %76 ], [ @.str.2, %72 ]
  store i32 %67, ptr %66, align 4, !tbaa !5
  %78 = load ptr, ptr @stderr, align 8, !tbaa !9
  %79 = load i32, ptr @test_count, align 4, !tbaa !5
  %80 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %81 = load i32, ptr %80, align 4, !tbaa !5
  %82 = tail call ptr @s2n_strerror(i32 noundef %81, ptr noundef nonnull @.str.4) #8
  %83 = load i32, ptr %80, align 4, !tbaa !5
  %84 = tail call ptr @s2n_strerror_debug(i32 noundef %83, ptr noundef nonnull @.str.4) #8
  %85 = load i32, ptr %66, align 4, !tbaa !5
  %86 = tail call ptr @strerror(i32 noundef %85) #8
  %87 = load i32, ptr %66, align 4, !tbaa !5
  %88 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %78, ptr noundef nonnull %.str.5.sink427, i32 noundef %79, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 30, ptr noundef %82, ptr noundef %84, ptr noundef %86, i32 noundef %87) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

89:                                               ; preds = %62
  %90 = load i32, ptr @test_count, align 4, !tbaa !5
  %91 = add nsw i32 %90, 7
  store i32 %91, ptr @test_count, align 4, !tbaa !5
  %92 = tail call ptr @s2n_connection_new(i32 noundef 1) #8
  %93 = load i32, ptr @test_count, align 4, !tbaa !5
  %94 = add nsw i32 %93, 1
  store i32 %94, ptr @test_count, align 4, !tbaa !5
  %95 = icmp eq ptr %92, null
  br i1 %95, label %96, label %120

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

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

107:                                              ; preds = %103, %96
  br label %108

108:                                              ; preds = %103, %107
  %.str.5.sink438 = phi ptr [ @.str.5, %107 ], [ @.str.2, %103 ]
  store i32 %98, ptr %97, align 4, !tbaa !5
  %109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %110 = load i32, ptr @test_count, align 4, !tbaa !5
  %111 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %112 = load i32, ptr %111, align 4, !tbaa !5
  %113 = tail call ptr @s2n_strerror(i32 noundef %112, ptr noundef nonnull @.str.4) #8
  %114 = load i32, ptr %111, align 4, !tbaa !5
  %115 = tail call ptr @s2n_strerror_debug(i32 noundef %114, ptr noundef nonnull @.str.4) #8
  %116 = load i32, ptr %97, align 4, !tbaa !5
  %117 = tail call ptr @strerror(i32 noundef %116) #8
  %118 = load i32, ptr %97, align 4, !tbaa !5
  %119 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %109, ptr noundef nonnull %.str.5.sink438, i32 noundef %110, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %113, ptr noundef %115, ptr noundef %117, i32 noundef %118) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

120:                                              ; preds = %89
  %121 = getelementptr inbounds i8, ptr %92, i64 2172
  store i32 4779, ptr %121, align 4, !tbaa !15
  %122 = add nsw i32 %93, 2
  store i32 %122, ptr @test_count, align 4, !tbaa !5
  %123 = tail call i32 @s2n_handshake_type_reset(ptr noundef nonnull %92) #8
  %124 = tail call zeroext i1 @s2n_result_is_ok(i32 %123)
  br i1 %124, label %149, label %125

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

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

136:                                              ; preds = %132, %125
  br label %137

137:                                              ; preds = %132, %136
  %.str.5.sink449 = phi ptr [ @.str.5, %136 ], [ @.str.2, %132 ]
  store i32 %127, ptr %126, align 4, !tbaa !5
  %138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %139 = load i32, ptr @test_count, align 4, !tbaa !5
  %140 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %141 = load i32, ptr %140, align 4, !tbaa !5
  %142 = tail call ptr @s2n_strerror(i32 noundef %141, ptr noundef nonnull @.str.4) #8
  %143 = load i32, ptr %140, align 4, !tbaa !5
  %144 = tail call ptr @s2n_strerror_debug(i32 noundef %143, ptr noundef nonnull @.str.4) #8
  %145 = load i32, ptr %126, align 4, !tbaa !5
  %146 = tail call ptr @strerror(i32 noundef %145) #8
  %147 = load i32, ptr %126, align 4, !tbaa !5
  %148 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %138, ptr noundef nonnull %.str.5.sink449, i32 noundef %139, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 47, ptr noundef %142, ptr noundef %144, ptr noundef %146, i32 noundef %147) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

149:                                              ; preds = %120
  %150 = load i32, ptr @test_count, align 4, !tbaa !5
  %151 = add nsw i32 %150, 1
  store i32 %151, ptr @test_count, align 4, !tbaa !5
  %152 = load i32, ptr %121, align 4, !tbaa !15
  %153 = icmp eq i32 %152, 0
  br i1 %153, label %178, label %154

154:                                              ; preds = %149
  %155 = tail call ptr @__errno_location() #9
  %156 = load i32, ptr %155, align 4, !tbaa !5
  %157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %158 = tail call i32 @s2n_print_stacktrace(ptr noundef %157) #8
  %159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %160 = trunc nuw i8 %159 to i1
  br i1 %160, label %161, label %165

161:                                              ; preds = %154
  %162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %163 = tail call i32 @fileno(ptr noundef %162) #8
  %164 = tail call i32 @isatty(i32 noundef %163) #8
  %.not315 = icmp eq i32 %164, 0
  br i1 %.not315, label %165, label %166

165:                                              ; preds = %161, %154
  br label %166

166:                                              ; preds = %161, %165
  %.str.5.sink460 = phi ptr [ @.str.5, %165 ], [ @.str.2, %161 ]
  store i32 %156, ptr %155, align 4, !tbaa !5
  %167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %168 = load i32, ptr @test_count, align 4, !tbaa !5
  %169 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %170 = load i32, ptr %169, align 4, !tbaa !5
  %171 = tail call ptr @s2n_strerror(i32 noundef %170, ptr noundef nonnull @.str.4) #8
  %172 = load i32, ptr %169, align 4, !tbaa !5
  %173 = tail call ptr @s2n_strerror_debug(i32 noundef %172, ptr noundef nonnull @.str.4) #8
  %174 = load i32, ptr %155, align 4, !tbaa !5
  %175 = tail call ptr @strerror(i32 noundef %174) #8
  %176 = load i32, ptr %155, align 4, !tbaa !5
  %177 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %167, ptr noundef nonnull %.str.5.sink460, i32 noundef %168, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 48, ptr noundef %171, ptr noundef %173, ptr noundef %175, i32 noundef %176) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

178:                                              ; preds = %149
  %179 = add nsw i32 %150, 2
  store i32 %179, ptr @test_count, align 4, !tbaa !5
  %180 = tail call i32 @s2n_handshake_type_set_flag(ptr noundef nonnull %92, i32 noundef 2) #8
  %181 = tail call zeroext i1 @s2n_result_is_ok(i32 %180)
  br i1 %181, label %206, label %182

182:                                              ; preds = %178
  %183 = tail call ptr @__errno_location() #9
  %184 = load i32, ptr %183, align 4, !tbaa !5
  %185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %186 = tail call i32 @s2n_print_stacktrace(ptr noundef %185) #8
  %187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %188 = trunc nuw i8 %187 to i1
  br i1 %188, label %189, label %193

189:                                              ; preds = %182
  %190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %191 = tail call i32 @fileno(ptr noundef %190) #8
  %192 = tail call i32 @isatty(i32 noundef %191) #8
  %.not316 = icmp eq i32 %192, 0
  br i1 %.not316, label %193, label %194

193:                                              ; preds = %189, %182
  br label %194

194:                                              ; preds = %189, %193
  %.str.5.sink471 = phi ptr [ @.str.5, %193 ], [ @.str.2, %189 ]
  store i32 %184, ptr %183, align 4, !tbaa !5
  %195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %196 = load i32, ptr @test_count, align 4, !tbaa !5
  %197 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %198 = load i32, ptr %197, align 4, !tbaa !5
  %199 = tail call ptr @s2n_strerror(i32 noundef %198, ptr noundef nonnull @.str.4) #8
  %200 = load i32, ptr %197, align 4, !tbaa !5
  %201 = tail call ptr @s2n_strerror_debug(i32 noundef %200, ptr noundef nonnull @.str.4) #8
  %202 = load i32, ptr %183, align 4, !tbaa !5
  %203 = tail call ptr @strerror(i32 noundef %202) #8
  %204 = load i32, ptr %183, align 4, !tbaa !5
  %205 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %195, ptr noundef nonnull %.str.5.sink471, i32 noundef %196, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 50, ptr noundef %199, ptr noundef %201, ptr noundef %203, i32 noundef %204) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

206:                                              ; preds = %178
  %207 = load i32, ptr @test_count, align 4, !tbaa !5
  %208 = add nsw i32 %207, 1
  store i32 %208, ptr @test_count, align 4, !tbaa !5
  %209 = tail call i32 @s2n_handshake_type_reset(ptr noundef nonnull %92) #8
  %210 = tail call zeroext i1 @s2n_result_is_ok(i32 %209)
  br i1 %210, label %235, label %211

211:                                              ; preds = %206
  %212 = tail call ptr @__errno_location() #9
  %213 = load i32, ptr %212, align 4, !tbaa !5
  %214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %215 = tail call i32 @s2n_print_stacktrace(ptr noundef %214) #8
  %216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %217 = trunc nuw i8 %216 to i1
  br i1 %217, label %218, label %222

218:                                              ; preds = %211
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = tail call i32 @fileno(ptr noundef %219) #8
  %221 = tail call i32 @isatty(i32 noundef %220) #8
  %.not317 = icmp eq i32 %221, 0
  br i1 %.not317, label %222, label %223

222:                                              ; preds = %218, %211
  br label %223

223:                                              ; preds = %218, %222
  %.str.5.sink482 = phi ptr [ @.str.5, %222 ], [ @.str.2, %218 ]
  store i32 %213, ptr %212, align 4, !tbaa !5
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = load i32, ptr @test_count, align 4, !tbaa !5
  %226 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = tail call ptr @s2n_strerror(i32 noundef %227, ptr noundef nonnull @.str.4) #8
  %229 = load i32, ptr %226, align 4, !tbaa !5
  %230 = tail call ptr @s2n_strerror_debug(i32 noundef %229, ptr noundef nonnull @.str.4) #8
  %231 = load i32, ptr %212, align 4, !tbaa !5
  %232 = tail call ptr @strerror(i32 noundef %231) #8
  %233 = load i32, ptr %212, align 4, !tbaa !5
  %234 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %224, ptr noundef nonnull %.str.5.sink482, i32 noundef %225, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %228, ptr noundef %230, ptr noundef %232, i32 noundef %233) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

235:                                              ; preds = %206
  %236 = load i32, ptr @test_count, align 4, !tbaa !5
  %237 = add nsw i32 %236, 1
  store i32 %237, ptr @test_count, align 4, !tbaa !5
  %238 = load i32, ptr %121, align 4, !tbaa !15
  %239 = icmp eq i32 %238, 0
  br i1 %239, label %264, label %240

240:                                              ; preds = %235
  %241 = tail call ptr @__errno_location() #9
  %242 = load i32, ptr %241, align 4, !tbaa !5
  %243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %244 = tail call i32 @s2n_print_stacktrace(ptr noundef %243) #8
  %245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %246 = trunc nuw i8 %245 to i1
  br i1 %246, label %247, label %251

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

251:                                              ; preds = %247, %240
  br label %252

252:                                              ; preds = %247, %251
  %.str.5.sink493 = phi ptr [ @.str.5, %251 ], [ @.str.2, %247 ]
  store i32 %242, ptr %241, align 4, !tbaa !5
  %253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %254 = load i32, ptr @test_count, align 4, !tbaa !5
  %255 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %256 = load i32, ptr %255, align 4, !tbaa !5
  %257 = tail call ptr @s2n_strerror(i32 noundef %256, ptr noundef nonnull @.str.4) #8
  %258 = load i32, ptr %255, align 4, !tbaa !5
  %259 = tail call ptr @s2n_strerror_debug(i32 noundef %258, ptr noundef nonnull @.str.4) #8
  %260 = load i32, ptr %241, align 4, !tbaa !5
  %261 = tail call ptr @strerror(i32 noundef %260) #8
  %262 = load i32, ptr %241, align 4, !tbaa !5
  %263 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %253, ptr noundef nonnull %.str.5.sink493, i32 noundef %254, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 52, ptr noundef %257, ptr noundef %259, ptr noundef %261, i32 noundef %262) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

264:                                              ; preds = %235
  %265 = add nsw i32 %236, 2
  store i32 %265, ptr @test_count, align 4, !tbaa !5
  %266 = tail call i32 @s2n_handshake_type_set_flag(ptr noundef nonnull %92, i32 noundef 65535) #8
  %267 = tail call zeroext i1 @s2n_result_is_ok(i32 %266)
  br i1 %267, label %292, label %268

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

275:                                              ; preds = %268
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = tail call i32 @fileno(ptr noundef %276) #8
  %278 = tail call i32 @isatty(i32 noundef %277) #8
  %.not319 = icmp eq i32 %278, 0
  br i1 %.not319, label %279, label %280

279:                                              ; preds = %275, %268
  br label %280

280:                                              ; preds = %275, %279
  %.str.5.sink504 = phi ptr [ @.str.5, %279 ], [ @.str.2, %275 ]
  store i32 %270, ptr %269, align 4, !tbaa !5
  %281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %282 = load i32, ptr @test_count, align 4, !tbaa !5
  %283 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %284 = load i32, ptr %283, align 4, !tbaa !5
  %285 = tail call ptr @s2n_strerror(i32 noundef %284, ptr noundef nonnull @.str.4) #8
  %286 = load i32, ptr %283, align 4, !tbaa !5
  %287 = tail call ptr @s2n_strerror_debug(i32 noundef %286, ptr noundef nonnull @.str.4) #8
  %288 = load i32, ptr %269, align 4, !tbaa !5
  %289 = tail call ptr @strerror(i32 noundef %288) #8
  %290 = load i32, ptr %269, align 4, !tbaa !5
  %291 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %281, ptr noundef nonnull %.str.5.sink504, i32 noundef %282, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %285, ptr noundef %287, ptr noundef %289, i32 noundef %290) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

292:                                              ; preds = %264
  %293 = load i32, ptr @test_count, align 4, !tbaa !5
  %294 = add nsw i32 %293, 1
  store i32 %294, ptr @test_count, align 4, !tbaa !5
  %295 = tail call i32 @s2n_handshake_type_reset(ptr noundef nonnull %92) #8
  %296 = tail call zeroext i1 @s2n_result_is_ok(i32 %295)
  br i1 %296, label %321, label %297

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

304:                                              ; preds = %297
  %305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %306 = tail call i32 @fileno(ptr noundef %305) #8
  %307 = tail call i32 @isatty(i32 noundef %306) #8
  %.not320 = icmp eq i32 %307, 0
  br i1 %.not320, label %308, label %309

308:                                              ; preds = %304, %297
  br label %309

309:                                              ; preds = %304, %308
  %.str.5.sink515 = phi ptr [ @.str.5, %308 ], [ @.str.2, %304 ]
  store i32 %299, ptr %298, align 4, !tbaa !5
  %310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %311 = load i32, ptr @test_count, align 4, !tbaa !5
  %312 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %313 = load i32, ptr %312, align 4, !tbaa !5
  %314 = tail call ptr @s2n_strerror(i32 noundef %313, ptr noundef nonnull @.str.4) #8
  %315 = load i32, ptr %312, align 4, !tbaa !5
  %316 = tail call ptr @s2n_strerror_debug(i32 noundef %315, ptr noundef nonnull @.str.4) #8
  %317 = load i32, ptr %298, align 4, !tbaa !5
  %318 = tail call ptr @strerror(i32 noundef %317) #8
  %319 = load i32, ptr %298, align 4, !tbaa !5
  %320 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %310, ptr noundef nonnull %.str.5.sink515, i32 noundef %311, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %314, ptr noundef %316, ptr noundef %318, i32 noundef %319) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

321:                                              ; preds = %292
  %322 = load i32, ptr @test_count, align 4, !tbaa !5
  %323 = add nsw i32 %322, 1
  store i32 %323, ptr @test_count, align 4, !tbaa !5
  %324 = load i32, ptr %121, align 4, !tbaa !15
  %325 = icmp eq i32 %324, 0
  br i1 %325, label %350, label %326

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

333:                                              ; preds = %326
  %334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %335 = tail call i32 @fileno(ptr noundef %334) #8
  %336 = tail call i32 @isatty(i32 noundef %335) #8
  %.not321 = icmp eq i32 %336, 0
  br i1 %.not321, label %337, label %338

337:                                              ; preds = %333, %326
  br label %338

338:                                              ; preds = %333, %337
  %.str.5.sink526 = phi ptr [ @.str.5, %337 ], [ @.str.2, %333 ]
  store i32 %328, ptr %327, align 4, !tbaa !5
  %339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %340 = load i32, ptr @test_count, align 4, !tbaa !5
  %341 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %342 = load i32, ptr %341, align 4, !tbaa !5
  %343 = tail call ptr @s2n_strerror(i32 noundef %342, ptr noundef nonnull @.str.4) #8
  %344 = load i32, ptr %341, align 4, !tbaa !5
  %345 = tail call ptr @s2n_strerror_debug(i32 noundef %344, ptr noundef nonnull @.str.4) #8
  %346 = load i32, ptr %327, align 4, !tbaa !5
  %347 = tail call ptr @strerror(i32 noundef %346) #8
  %348 = load i32, ptr %327, align 4, !tbaa !5
  %349 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %339, ptr noundef nonnull %.str.5.sink526, i32 noundef %340, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 56, ptr noundef %343, ptr noundef %345, ptr noundef %347, i32 noundef %348) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

350:                                              ; preds = %321
  %351 = add nsw i32 %322, 2
  store i32 %351, ptr @test_count, align 4, !tbaa !5
  %352 = tail call i32 @s2n_handshake_type_set_flag(ptr noundef nonnull %92, i32 noundef 0) #8
  %353 = tail call zeroext i1 @s2n_result_is_ok(i32 %352)
  br i1 %353, label %378, label %354

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

361:                                              ; preds = %354
  %362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %363 = tail call i32 @fileno(ptr noundef %362) #8
  %364 = tail call i32 @isatty(i32 noundef %363) #8
  %.not322 = icmp eq i32 %364, 0
  br i1 %.not322, label %365, label %366

365:                                              ; preds = %361, %354
  br label %366

366:                                              ; preds = %361, %365
  %.str.5.sink537 = phi ptr [ @.str.5, %365 ], [ @.str.2, %361 ]
  store i32 %356, ptr %355, align 4, !tbaa !5
  %367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %368 = load i32, ptr @test_count, align 4, !tbaa !5
  %369 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %370 = load i32, ptr %369, align 4, !tbaa !5
  %371 = tail call ptr @s2n_strerror(i32 noundef %370, ptr noundef nonnull @.str.4) #8
  %372 = load i32, ptr %369, align 4, !tbaa !5
  %373 = tail call ptr @s2n_strerror_debug(i32 noundef %372, ptr noundef nonnull @.str.4) #8
  %374 = load i32, ptr %355, align 4, !tbaa !5
  %375 = tail call ptr @strerror(i32 noundef %374) #8
  %376 = load i32, ptr %355, align 4, !tbaa !5
  %377 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %367, ptr noundef nonnull %.str.5.sink537, i32 noundef %368, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 58, ptr noundef %371, ptr noundef %373, ptr noundef %375, i32 noundef %376) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

378:                                              ; preds = %350
  %379 = load i32, ptr @test_count, align 4, !tbaa !5
  %380 = add nsw i32 %379, 1
  store i32 %380, ptr @test_count, align 4, !tbaa !5
  %381 = tail call i32 @s2n_handshake_type_reset(ptr noundef nonnull %92) #8
  %382 = tail call zeroext i1 @s2n_result_is_ok(i32 %381)
  br i1 %382, label %407, label %383

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

390:                                              ; preds = %383
  %391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %392 = tail call i32 @fileno(ptr noundef %391) #8
  %393 = tail call i32 @isatty(i32 noundef %392) #8
  %.not323 = icmp eq i32 %393, 0
  br i1 %.not323, label %394, label %395

394:                                              ; preds = %390, %383
  br label %395

395:                                              ; preds = %390, %394
  %.str.5.sink548 = phi ptr [ @.str.5, %394 ], [ @.str.2, %390 ]
  store i32 %385, ptr %384, align 4, !tbaa !5
  %396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %397 = load i32, ptr @test_count, align 4, !tbaa !5
  %398 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %399 = load i32, ptr %398, align 4, !tbaa !5
  %400 = tail call ptr @s2n_strerror(i32 noundef %399, ptr noundef nonnull @.str.4) #8
  %401 = load i32, ptr %398, align 4, !tbaa !5
  %402 = tail call ptr @s2n_strerror_debug(i32 noundef %401, ptr noundef nonnull @.str.4) #8
  %403 = load i32, ptr %384, align 4, !tbaa !5
  %404 = tail call ptr @strerror(i32 noundef %403) #8
  %405 = load i32, ptr %384, align 4, !tbaa !5
  %406 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %396, ptr noundef nonnull %.str.5.sink548, i32 noundef %397, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %400, ptr noundef %402, ptr noundef %404, i32 noundef %405) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

407:                                              ; preds = %378
  %408 = load i32, ptr @test_count, align 4, !tbaa !5
  %409 = add nsw i32 %408, 1
  store i32 %409, ptr @test_count, align 4, !tbaa !5
  %410 = load i32, ptr %121, align 4, !tbaa !15
  %411 = icmp eq i32 %410, 0
  br i1 %411, label %436, label %412

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

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

423:                                              ; preds = %419, %412
  br label %424

424:                                              ; preds = %419, %423
  %.str.5.sink559 = phi ptr [ @.str.5, %423 ], [ @.str.2, %419 ]
  store i32 %414, ptr %413, align 4, !tbaa !5
  %425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %426 = load i32, ptr @test_count, align 4, !tbaa !5
  %427 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %428 = load i32, ptr %427, align 4, !tbaa !5
  %429 = tail call ptr @s2n_strerror(i32 noundef %428, ptr noundef nonnull @.str.4) #8
  %430 = load i32, ptr %427, align 4, !tbaa !5
  %431 = tail call ptr @s2n_strerror_debug(i32 noundef %430, ptr noundef nonnull @.str.4) #8
  %432 = load i32, ptr %413, align 4, !tbaa !5
  %433 = tail call ptr @strerror(i32 noundef %432) #8
  %434 = load i32, ptr %413, align 4, !tbaa !5
  %435 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %425, ptr noundef nonnull %.str.5.sink559, i32 noundef %426, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %429, ptr noundef %431, ptr noundef %433, i32 noundef %434) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

436:                                              ; preds = %407
  %437 = add nsw i32 %408, 2
  store i32 %437, ptr @test_count, align 4, !tbaa !5
  %438 = tail call i32 @s2n_connection_free(ptr noundef nonnull %92) #8
  %439 = icmp eq i32 %438, -1
  br i1 %439, label %440, label %464

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

447:                                              ; preds = %440
  %448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %449 = tail call i32 @fileno(ptr noundef %448) #8
  %450 = tail call i32 @isatty(i32 noundef %449) #8
  %.not388 = icmp eq i32 %450, 0
  br i1 %.not388, label %451, label %452

451:                                              ; preds = %447, %440
  br label %452

452:                                              ; preds = %447, %451
  %.str.5.sink570 = phi ptr [ @.str.5, %451 ], [ @.str.2, %447 ]
  store i32 %442, ptr %441, align 4, !tbaa !5
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = load i32, ptr @test_count, align 4, !tbaa !5
  %455 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %456 = load i32, ptr %455, align 4, !tbaa !5
  %457 = tail call ptr @s2n_strerror(i32 noundef %456, ptr noundef nonnull @.str.4) #8
  %458 = load i32, ptr %455, align 4, !tbaa !5
  %459 = tail call ptr @s2n_strerror_debug(i32 noundef %458, ptr noundef nonnull @.str.4) #8
  %460 = load i32, ptr %441, align 4, !tbaa !5
  %461 = tail call ptr @strerror(i32 noundef %460) #8
  %462 = load i32, ptr %441, align 4, !tbaa !5
  %463 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %453, ptr noundef nonnull %.str.5.sink570, i32 noundef %454, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 62, ptr noundef %457, ptr noundef %459, ptr noundef %461, i32 noundef %462) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

464:                                              ; preds = %436
  %465 = load i32, ptr @test_count, align 4, !tbaa !5
  %466 = add nsw i32 %465, 1
  store i32 %466, ptr @test_count, align 4, !tbaa !5
  %467 = tail call i32 @s2n_handshake_type_set_flag(ptr noundef null, i32 noundef 0) #8
  %468 = tail call zeroext i1 @s2n_result_is_error(i32 %467)
  br i1 %468, label %493, label %469

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

476:                                              ; preds = %469
  %477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %478 = tail call i32 @fileno(ptr noundef %477) #8
  %479 = tail call i32 @isatty(i32 noundef %478) #8
  %.not325 = icmp eq i32 %479, 0
  br i1 %.not325, label %480, label %481

480:                                              ; preds = %476, %469
  br label %481

481:                                              ; preds = %476, %480
  %.str.5.sink581 = phi ptr [ @.str.5, %480 ], [ @.str.2, %476 ]
  store i32 %471, ptr %470, align 4, !tbaa !5
  %482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %483 = load i32, ptr @test_count, align 4, !tbaa !5
  %484 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %485 = load i32, ptr %484, align 4, !tbaa !5
  %486 = tail call ptr @s2n_strerror(i32 noundef %485, ptr noundef nonnull @.str.4) #8
  %487 = load i32, ptr %484, align 4, !tbaa !5
  %488 = tail call ptr @s2n_strerror_debug(i32 noundef %487, ptr noundef nonnull @.str.4) #8
  %489 = load i32, ptr %470, align 4, !tbaa !5
  %490 = tail call ptr @strerror(i32 noundef %489) #8
  %491 = load i32, ptr %470, align 4, !tbaa !5
  %492 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %482, ptr noundef nonnull %.str.5.sink581, i32 noundef %483, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %486, ptr noundef %488, ptr noundef %490, i32 noundef %491) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

493:                                              ; preds = %464
  %494 = load i32, ptr @test_count, align 4, !tbaa !5
  %495 = add nsw i32 %494, 1
  store i32 %495, ptr @test_count, align 4, !tbaa !5
  %496 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %497 = load i32, ptr %496, align 4, !tbaa !5
  %498 = icmp eq i32 %497, 402653193
  br i1 %498, label %522, label %499

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

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

510:                                              ; preds = %506, %499
  br label %511

511:                                              ; preds = %506, %510
  %.str.5.sink592 = phi ptr [ @.str.5, %510 ], [ @.str.2, %506 ]
  store i32 %501, ptr %500, align 4, !tbaa !5
  %512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %513 = load i32, ptr @test_count, align 4, !tbaa !5
  %514 = load i32, ptr %496, align 4, !tbaa !5
  %515 = tail call ptr @s2n_strerror(i32 noundef %514, ptr noundef nonnull @.str.4) #8
  %516 = load i32, ptr %496, align 4, !tbaa !5
  %517 = tail call ptr @s2n_strerror_debug(i32 noundef %516, ptr noundef nonnull @.str.4) #8
  %518 = load i32, ptr %500, align 4, !tbaa !5
  %519 = tail call ptr @strerror(i32 noundef %518) #8
  %520 = load i32, ptr %500, align 4, !tbaa !5
  %521 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %512, ptr noundef nonnull %.str.5.sink592, i32 noundef %513, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %515, ptr noundef %517, ptr noundef %519, i32 noundef %520) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

522:                                              ; preds = %493
  %523 = add nsw i32 %494, 2
  store i32 %523, ptr @test_count, align 4, !tbaa !5
  %524 = tail call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #8
  %525 = icmp eq ptr %524, null
  br i1 %525, label %526, label %549

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

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

537:                                              ; preds = %533, %526
  br label %538

538:                                              ; preds = %533, %537
  %.str.5.sink601 = phi ptr [ @.str.5, %537 ], [ @.str.2, %533 ]
  store i32 %528, ptr %527, align 4, !tbaa !5
  %539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %540 = load i32, ptr @test_count, align 4, !tbaa !5
  %541 = load i32, ptr %496, align 4, !tbaa !5
  %542 = tail call ptr @s2n_strerror(i32 noundef %541, ptr noundef nonnull @.str.4) #8
  %543 = load i32, ptr %496, align 4, !tbaa !5
  %544 = tail call ptr @s2n_strerror_debug(i32 noundef %543, ptr noundef nonnull @.str.4) #8
  %545 = load i32, ptr %527, align 4, !tbaa !5
  %546 = tail call ptr @strerror(i32 noundef %545) #8
  %547 = load i32, ptr %527, align 4, !tbaa !5
  %548 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %539, ptr noundef nonnull %.str.5.sink601, i32 noundef %540, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 68, ptr noundef %542, ptr noundef %544, ptr noundef %546, i32 noundef %547) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

549:                                              ; preds = %522
  store i32 0, ptr %496, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #8
  %550 = tail call ptr @__errno_location() #9
  store i32 0, ptr %550, align 4, !tbaa !5
  br label %557

551:                                              ; preds = %719
  %552 = add nuw nsw i32 %.0395, 1
  %exitcond.not = icmp eq i32 %552, 9
  br i1 %exitcond.not, label %553, label %557, !llvm.loop !42

553:                                              ; preds = %551
  %554 = load i32, ptr @test_count, align 4, !tbaa !5
  %555 = add nsw i32 %554, 1
  store i32 %555, ptr @test_count, align 4, !tbaa !5
  %556 = tail call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef null, i32 noundef 0) #8
  br i1 %556, label %745, label %.preheader394

557:                                              ; preds = %549, %551
  %.0395 = phi i32 [ 1, %549 ], [ %552, %551 ]
  %558 = tail call ptr @s2n_connection_new(i32 noundef 1) #8
  %559 = load i32, ptr @test_count, align 4, !tbaa !5
  %560 = add nsw i32 %559, 1
  store i32 %560, ptr @test_count, align 4, !tbaa !5
  %561 = icmp eq ptr %558, null
  br i1 %561, label %562, label %584

562:                                              ; preds = %557
  %563 = load i32, ptr %550, align 4, !tbaa !5
  %564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %565 = tail call i32 @s2n_print_stacktrace(ptr noundef %564) #8
  %566 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %567 = trunc nuw i8 %566 to i1
  br i1 %567, label %568, label %572

568:                                              ; preds = %562
  %569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %570 = tail call i32 @fileno(ptr noundef %569) #8
  %571 = tail call i32 @isatty(i32 noundef %570) #8
  %.not386 = icmp eq i32 %571, 0
  br i1 %.not386, label %572, label %573

572:                                              ; preds = %568, %562
  br label %573

573:                                              ; preds = %568, %572
  %.str.5.sink610 = phi ptr [ @.str.5, %572 ], [ @.str.2, %568 ]
  store i32 %563, ptr %550, align 4, !tbaa !5
  %574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %575 = load i32, ptr @test_count, align 4, !tbaa !5
  %576 = load i32, ptr %496, align 4, !tbaa !5
  %577 = tail call ptr @s2n_strerror(i32 noundef %576, ptr noundef nonnull @.str.4) #8
  %578 = load i32, ptr %496, align 4, !tbaa !5
  %579 = tail call ptr @s2n_strerror_debug(i32 noundef %578, ptr noundef nonnull @.str.4) #8
  %580 = load i32, ptr %550, align 4, !tbaa !5
  %581 = tail call ptr @strerror(i32 noundef %580) #8
  %582 = load i32, ptr %550, align 4, !tbaa !5
  %583 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %574, ptr noundef nonnull %.str.5.sink610, i32 noundef %575, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %577, ptr noundef %579, ptr noundef %581, i32 noundef %582) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

584:                                              ; preds = %557
  %585 = getelementptr inbounds i8, ptr %558, i64 220
  store i8 33, ptr %585, align 4, !tbaa !44
  %586 = add nsw i32 %559, 2
  store i32 %586, ptr @test_count, align 4, !tbaa !5
  %587 = tail call i32 @s2n_handshake_type_set_flag(ptr noundef nonnull %558, i32 noundef %.0395) #8
  %588 = tail call zeroext i1 @s2n_result_is_ok(i32 %587)
  br i1 %588, label %611, label %589

589:                                              ; preds = %584
  %590 = load i32, ptr %550, align 4, !tbaa !5
  %591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %592 = tail call i32 @s2n_print_stacktrace(ptr noundef %591) #8
  %593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %594 = trunc nuw i8 %593 to i1
  br i1 %594, label %595, label %599

595:                                              ; preds = %589
  %596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %597 = tail call i32 @fileno(ptr noundef %596) #8
  %598 = tail call i32 @isatty(i32 noundef %597) #8
  %.not380 = icmp eq i32 %598, 0
  br i1 %.not380, label %599, label %600

599:                                              ; preds = %595, %589
  br label %600

600:                                              ; preds = %595, %599
  %.str.5.sink619 = phi ptr [ @.str.5, %599 ], [ @.str.2, %595 ]
  store i32 %590, ptr %550, align 4, !tbaa !5
  %601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %602 = load i32, ptr @test_count, align 4, !tbaa !5
  %603 = load i32, ptr %496, align 4, !tbaa !5
  %604 = tail call ptr @s2n_strerror(i32 noundef %603, ptr noundef nonnull @.str.4) #8
  %605 = load i32, ptr %496, align 4, !tbaa !5
  %606 = tail call ptr @s2n_strerror_debug(i32 noundef %605, ptr noundef nonnull @.str.4) #8
  %607 = load i32, ptr %550, align 4, !tbaa !5
  %608 = tail call ptr @strerror(i32 noundef %607) #8
  %609 = load i32, ptr %550, align 4, !tbaa !5
  %610 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %601, ptr noundef nonnull %.str.5.sink619, i32 noundef %602, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %604, ptr noundef %606, ptr noundef %608, i32 noundef %609) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

611:                                              ; preds = %584
  %612 = load i32, ptr @test_count, align 4, !tbaa !5
  %613 = add nsw i32 %612, 1
  store i32 %613, ptr @test_count, align 4, !tbaa !5
  %614 = getelementptr inbounds i8, ptr %558, i64 2172
  %615 = load i32, ptr %614, align 4, !tbaa !15
  %616 = icmp eq i32 %615, %.0395
  br i1 %616, label %639, label %617

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

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

627:                                              ; preds = %623, %617
  br label %628

628:                                              ; preds = %623, %627
  %.str.5.sink628 = phi ptr [ @.str.5, %627 ], [ @.str.2, %623 ]
  store i32 %618, ptr %550, align 4, !tbaa !5
  %629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %630 = load i32, ptr @test_count, align 4, !tbaa !5
  %631 = load i32, ptr %496, align 4, !tbaa !5
  %632 = tail call ptr @s2n_strerror(i32 noundef %631, ptr noundef nonnull @.str.4) #8
  %633 = load i32, ptr %496, align 4, !tbaa !5
  %634 = tail call ptr @s2n_strerror_debug(i32 noundef %633, ptr noundef nonnull @.str.4) #8
  %635 = load i32, ptr %550, align 4, !tbaa !5
  %636 = tail call ptr @strerror(i32 noundef %635) #8
  %637 = load i32, ptr %550, align 4, !tbaa !5
  %638 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %629, ptr noundef nonnull %.str.5.sink628, i32 noundef %630, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %632, ptr noundef %634, ptr noundef %636, i32 noundef %637) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

639:                                              ; preds = %611
  %640 = add nsw i32 %612, 2
  store i32 %640, ptr @test_count, align 4, !tbaa !5
  %641 = tail call i32 @s2n_handshake_type_reset(ptr noundef nonnull %558) #8
  %642 = tail call zeroext i1 @s2n_result_is_ok(i32 %641)
  br i1 %642, label %665, label %643

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

649:                                              ; preds = %643
  %650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %651 = tail call i32 @fileno(ptr noundef %650) #8
  %652 = tail call i32 @isatty(i32 noundef %651) #8
  %.not382 = icmp eq i32 %652, 0
  br i1 %.not382, label %653, label %654

653:                                              ; preds = %649, %643
  br label %654

654:                                              ; preds = %649, %653
  %.str.5.sink637 = phi ptr [ @.str.5, %653 ], [ @.str.2, %649 ]
  store i32 %644, ptr %550, align 4, !tbaa !5
  %655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %656 = load i32, ptr @test_count, align 4, !tbaa !5
  %657 = load i32, ptr %496, align 4, !tbaa !5
  %658 = tail call ptr @s2n_strerror(i32 noundef %657, ptr noundef nonnull @.str.4) #8
  %659 = load i32, ptr %496, align 4, !tbaa !5
  %660 = tail call ptr @s2n_strerror_debug(i32 noundef %659, ptr noundef nonnull @.str.4) #8
  %661 = load i32, ptr %550, align 4, !tbaa !5
  %662 = tail call ptr @strerror(i32 noundef %661) #8
  %663 = load i32, ptr %550, align 4, !tbaa !5
  %664 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %655, ptr noundef nonnull %.str.5.sink637, i32 noundef %656, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef %658, ptr noundef %660, ptr noundef %662, i32 noundef %663) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

665:                                              ; preds = %639
  store i8 34, ptr %585, align 4, !tbaa !44
  %666 = load i32, ptr @test_count, align 4, !tbaa !5
  %667 = add nsw i32 %666, 1
  store i32 %667, ptr @test_count, align 4, !tbaa !5
  %668 = tail call i32 @s2n_handshake_type_set_flag(ptr noundef nonnull %558, i32 noundef %.0395) #8
  %669 = tail call zeroext i1 @s2n_result_is_ok(i32 %668)
  br i1 %669, label %692, label %670

670:                                              ; preds = %665
  %671 = load i32, ptr %550, align 4, !tbaa !5
  %672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %673 = tail call i32 @s2n_print_stacktrace(ptr noundef %672) #8
  %674 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %675 = trunc nuw i8 %674 to i1
  br i1 %675, label %676, label %680

676:                                              ; preds = %670
  %677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %678 = tail call i32 @fileno(ptr noundef %677) #8
  %679 = tail call i32 @isatty(i32 noundef %678) #8
  %.not383 = icmp eq i32 %679, 0
  br i1 %.not383, label %680, label %681

680:                                              ; preds = %676, %670
  br label %681

681:                                              ; preds = %676, %680
  %.str.5.sink646 = phi ptr [ @.str.5, %680 ], [ @.str.2, %676 ]
  store i32 %671, ptr %550, align 4, !tbaa !5
  %682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %683 = load i32, ptr @test_count, align 4, !tbaa !5
  %684 = load i32, ptr %496, align 4, !tbaa !5
  %685 = tail call ptr @s2n_strerror(i32 noundef %684, ptr noundef nonnull @.str.4) #8
  %686 = load i32, ptr %496, align 4, !tbaa !5
  %687 = tail call ptr @s2n_strerror_debug(i32 noundef %686, ptr noundef nonnull @.str.4) #8
  %688 = load i32, ptr %550, align 4, !tbaa !5
  %689 = tail call ptr @strerror(i32 noundef %688) #8
  %690 = load i32, ptr %550, align 4, !tbaa !5
  %691 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %682, ptr noundef nonnull %.str.5.sink646, i32 noundef %683, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 82, ptr noundef %685, ptr noundef %687, ptr noundef %689, i32 noundef %690) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

692:                                              ; preds = %665
  %693 = load i32, ptr @test_count, align 4, !tbaa !5
  %694 = add nsw i32 %693, 1
  store i32 %694, ptr @test_count, align 4, !tbaa !5
  %695 = load i32, ptr %614, align 4, !tbaa !15
  %696 = icmp eq i32 %695, %.0395
  br i1 %696, label %719, label %697

697:                                              ; preds = %692
  %698 = load i32, ptr %550, align 4, !tbaa !5
  %699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %700 = tail call i32 @s2n_print_stacktrace(ptr noundef %699) #8
  %701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %702 = trunc nuw i8 %701 to i1
  br i1 %702, label %703, label %707

703:                                              ; preds = %697
  %704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %705 = tail call i32 @fileno(ptr noundef %704) #8
  %706 = tail call i32 @isatty(i32 noundef %705) #8
  %.not384 = icmp eq i32 %706, 0
  br i1 %.not384, label %707, label %708

707:                                              ; preds = %703, %697
  br label %708

708:                                              ; preds = %703, %707
  %.str.5.sink655 = phi ptr [ @.str.5, %707 ], [ @.str.2, %703 ]
  store i32 %698, ptr %550, align 4, !tbaa !5
  %709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %710 = load i32, ptr @test_count, align 4, !tbaa !5
  %711 = load i32, ptr %496, align 4, !tbaa !5
  %712 = tail call ptr @s2n_strerror(i32 noundef %711, ptr noundef nonnull @.str.4) #8
  %713 = load i32, ptr %496, align 4, !tbaa !5
  %714 = tail call ptr @s2n_strerror_debug(i32 noundef %713, ptr noundef nonnull @.str.4) #8
  %715 = load i32, ptr %550, align 4, !tbaa !5
  %716 = tail call ptr @strerror(i32 noundef %715) #8
  %717 = load i32, ptr %550, align 4, !tbaa !5
  %718 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %709, ptr noundef nonnull %.str.5.sink655, i32 noundef %710, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %712, ptr noundef %714, ptr noundef %716, i32 noundef %717) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

719:                                              ; preds = %692
  %720 = add nsw i32 %693, 2
  store i32 %720, ptr @test_count, align 4, !tbaa !5
  %721 = tail call i32 @s2n_connection_free(ptr noundef nonnull %558) #8
  %722 = icmp eq i32 %721, -1
  br i1 %722, label %723, label %551

723:                                              ; preds = %719
  %724 = load i32, ptr %550, align 4, !tbaa !5
  %725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %726 = tail call i32 @s2n_print_stacktrace(ptr noundef %725) #8
  %727 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %728 = trunc nuw i8 %727 to i1
  br i1 %728, label %729, label %733

729:                                              ; preds = %723
  %730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %731 = tail call i32 @fileno(ptr noundef %730) #8
  %732 = tail call i32 @isatty(i32 noundef %731) #8
  %.not385 = icmp eq i32 %732, 0
  br i1 %.not385, label %733, label %734

733:                                              ; preds = %729, %723
  br label %734

734:                                              ; preds = %729, %733
  %.str.5.sink664 = phi ptr [ @.str.5, %733 ], [ @.str.2, %729 ]
  store i32 %724, ptr %550, align 4, !tbaa !5
  %735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %736 = load i32, ptr @test_count, align 4, !tbaa !5
  %737 = load i32, ptr %496, align 4, !tbaa !5
  %738 = tail call ptr @s2n_strerror(i32 noundef %737, ptr noundef nonnull @.str.4) #8
  %739 = load i32, ptr %496, align 4, !tbaa !5
  %740 = tail call ptr @s2n_strerror_debug(i32 noundef %739, ptr noundef nonnull @.str.4) #8
  %741 = load i32, ptr %550, align 4, !tbaa !5
  %742 = tail call ptr @strerror(i32 noundef %741) #8
  %743 = load i32, ptr %550, align 4, !tbaa !5
  %744 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %735, ptr noundef nonnull %.str.5.sink664, i32 noundef %736, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %738, ptr noundef %740, ptr noundef %742, i32 noundef %743) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

745:                                              ; preds = %553
  %746 = load i32, ptr %550, align 4, !tbaa !5
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = tail call i32 @s2n_print_stacktrace(ptr noundef %747) #8
  %749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %750 = trunc nuw i8 %749 to i1
  br i1 %750, label %751, label %755

751:                                              ; preds = %745
  %752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %753 = tail call i32 @fileno(ptr noundef %752) #8
  %754 = tail call i32 @isatty(i32 noundef %753) #8
  %.not379 = icmp eq i32 %754, 0
  br i1 %.not379, label %755, label %756

755:                                              ; preds = %751, %745
  br label %756

756:                                              ; preds = %751, %755
  %.str.5.sink673 = phi ptr [ @.str.5, %755 ], [ @.str.2, %751 ]
  store i32 %746, ptr %550, align 4, !tbaa !5
  %757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %758 = load i32, ptr @test_count, align 4, !tbaa !5
  %759 = load i32, ptr %496, align 4, !tbaa !5
  %760 = tail call ptr @s2n_strerror(i32 noundef %759, ptr noundef nonnull @.str.4) #8
  %761 = load i32, ptr %496, align 4, !tbaa !5
  %762 = tail call ptr @s2n_strerror_debug(i32 noundef %761, ptr noundef nonnull @.str.4) #8
  %763 = load i32, ptr %550, align 4, !tbaa !5
  %764 = tail call ptr @strerror(i32 noundef %763) #8
  %765 = load i32, ptr %550, align 4, !tbaa !5
  %766 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %757, ptr noundef nonnull %.str.5.sink673, i32 noundef %758, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef %760, ptr noundef %762, ptr noundef %764, i32 noundef %765) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

767:                                              ; preds = %957
  %768 = add nuw nsw i32 %.0301396, 1
  %exitcond401.not = icmp eq i32 %768, 9
  br i1 %exitcond401.not, label %769, label %.preheader394, !llvm.loop !45

769:                                              ; preds = %767
  %770 = load i32, ptr @test_count, align 4, !tbaa !5
  %771 = add nsw i32 %770, 1
  store i32 %771, ptr @test_count, align 4, !tbaa !5
  %772 = tail call i32 @s2n_handshake_type_set_tls12_flag(ptr noundef null, i32 noundef 0) #8
  %773 = tail call zeroext i1 @s2n_result_is_error(i32 %772)
  br i1 %773, label %1006, label %984

.preheader394:                                    ; preds = %553, %767
  %.0301396 = phi i32 [ %768, %767 ], [ 1, %553 ]
  %774 = tail call ptr @s2n_connection_new(i32 noundef 1) #8
  %775 = load i32, ptr @test_count, align 4, !tbaa !5
  %776 = add nsw i32 %775, 1
  store i32 %776, ptr @test_count, align 4, !tbaa !5
  %777 = icmp eq ptr %774, null
  br i1 %777, label %778, label %800

778:                                              ; preds = %.preheader394
  %779 = load i32, ptr %550, align 4, !tbaa !5
  %780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %781 = tail call i32 @s2n_print_stacktrace(ptr noundef %780) #8
  %782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %783 = trunc nuw i8 %782 to i1
  br i1 %783, label %784, label %788

784:                                              ; preds = %778
  %785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %786 = tail call i32 @fileno(ptr noundef %785) #8
  %787 = tail call i32 @isatty(i32 noundef %786) #8
  %.not378 = icmp eq i32 %787, 0
  br i1 %.not378, label %788, label %789

788:                                              ; preds = %784, %778
  br label %789

789:                                              ; preds = %784, %788
  %.str.5.sink682 = phi ptr [ @.str.5, %788 ], [ @.str.2, %784 ]
  store i32 %779, ptr %550, align 4, !tbaa !5
  %790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %791 = load i32, ptr @test_count, align 4, !tbaa !5
  %792 = load i32, ptr %496, align 4, !tbaa !5
  %793 = tail call ptr @s2n_strerror(i32 noundef %792, ptr noundef nonnull @.str.4) #8
  %794 = load i32, ptr %496, align 4, !tbaa !5
  %795 = tail call ptr @s2n_strerror_debug(i32 noundef %794, ptr noundef nonnull @.str.4) #8
  %796 = load i32, ptr %550, align 4, !tbaa !5
  %797 = tail call ptr @strerror(i32 noundef %796) #8
  %798 = load i32, ptr %550, align 4, !tbaa !5
  %799 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %790, ptr noundef nonnull %.str.5.sink682, i32 noundef %791, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %793, ptr noundef %795, ptr noundef %797, i32 noundef %798) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

800:                                              ; preds = %.preheader394
  %801 = getelementptr inbounds i8, ptr %774, i64 2172
  store i32 65535, ptr %801, align 4, !tbaa !15
  %802 = getelementptr inbounds i8, ptr %774, i64 220
  store i8 33, ptr %802, align 4, !tbaa !44
  %803 = add nsw i32 %775, 2
  store i32 %803, ptr @test_count, align 4, !tbaa !5
  %804 = tail call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %774, i32 noundef %.0301396) #8
  br i1 %804, label %827, label %805

805:                                              ; preds = %800
  %806 = load i32, ptr %550, align 4, !tbaa !5
  %807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %808 = tail call i32 @s2n_print_stacktrace(ptr noundef %807) #8
  %809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %810 = trunc nuw i8 %809 to i1
  br i1 %810, label %811, label %815

811:                                              ; preds = %805
  %812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %813 = tail call i32 @fileno(ptr noundef %812) #8
  %814 = tail call i32 @isatty(i32 noundef %813) #8
  %.not371 = icmp eq i32 %814, 0
  br i1 %.not371, label %815, label %816

815:                                              ; preds = %811, %805
  br label %816

816:                                              ; preds = %811, %815
  %.str.5.sink691 = phi ptr [ @.str.5, %815 ], [ @.str.2, %811 ]
  store i32 %806, ptr %550, align 4, !tbaa !5
  %817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %818 = load i32, ptr @test_count, align 4, !tbaa !5
  %819 = load i32, ptr %496, align 4, !tbaa !5
  %820 = tail call ptr @s2n_strerror(i32 noundef %819, ptr noundef nonnull @.str.4) #8
  %821 = load i32, ptr %496, align 4, !tbaa !5
  %822 = tail call ptr @s2n_strerror_debug(i32 noundef %821, ptr noundef nonnull @.str.4) #8
  %823 = load i32, ptr %550, align 4, !tbaa !5
  %824 = tail call ptr @strerror(i32 noundef %823) #8
  %825 = load i32, ptr %550, align 4, !tbaa !5
  %826 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %817, ptr noundef nonnull %.str.5.sink691, i32 noundef %818, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %820, ptr noundef %822, ptr noundef %824, i32 noundef %825) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

827:                                              ; preds = %800
  store i8 34, ptr %802, align 4, !tbaa !44
  %828 = load i32, ptr @test_count, align 4, !tbaa !5
  %829 = add nsw i32 %828, 1
  store i32 %829, ptr @test_count, align 4, !tbaa !5
  %830 = tail call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %774, i32 noundef %.0301396) #8
  br i1 %830, label %853, label %831

831:                                              ; preds = %827
  %832 = load i32, ptr %550, align 4, !tbaa !5
  %833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %834 = tail call i32 @s2n_print_stacktrace(ptr noundef %833) #8
  %835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %836 = trunc nuw i8 %835 to i1
  br i1 %836, label %837, label %841

837:                                              ; preds = %831
  %838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %839 = tail call i32 @fileno(ptr noundef %838) #8
  %840 = tail call i32 @isatty(i32 noundef %839) #8
  %.not372 = icmp eq i32 %840, 0
  br i1 %.not372, label %841, label %842

841:                                              ; preds = %837, %831
  br label %842

842:                                              ; preds = %837, %841
  %.str.5.sink700 = phi ptr [ @.str.5, %841 ], [ @.str.2, %837 ]
  store i32 %832, ptr %550, align 4, !tbaa !5
  %843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %844 = load i32, ptr @test_count, align 4, !tbaa !5
  %845 = load i32, ptr %496, align 4, !tbaa !5
  %846 = tail call ptr @s2n_strerror(i32 noundef %845, ptr noundef nonnull @.str.4) #8
  %847 = load i32, ptr %496, align 4, !tbaa !5
  %848 = tail call ptr @s2n_strerror_debug(i32 noundef %847, ptr noundef nonnull @.str.4) #8
  %849 = load i32, ptr %550, align 4, !tbaa !5
  %850 = tail call ptr @strerror(i32 noundef %849) #8
  %851 = load i32, ptr %550, align 4, !tbaa !5
  %852 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %843, ptr noundef nonnull %.str.5.sink700, i32 noundef %844, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %846, ptr noundef %848, ptr noundef %850, i32 noundef %851) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

853:                                              ; preds = %827
  store i32 0, ptr %801, align 4, !tbaa !15
  store i8 33, ptr %802, align 4, !tbaa !44
  %854 = load i32, ptr @test_count, align 4, !tbaa !5
  %855 = add nsw i32 %854, 1
  store i32 %855, ptr @test_count, align 4, !tbaa !5
  %856 = tail call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %774, i32 noundef %.0301396) #8
  br i1 %856, label %857, label %879

857:                                              ; preds = %853
  %858 = load i32, ptr %550, align 4, !tbaa !5
  %859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %860 = tail call i32 @s2n_print_stacktrace(ptr noundef %859) #8
  %861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %862 = trunc nuw i8 %861 to i1
  br i1 %862, label %863, label %867

863:                                              ; preds = %857
  %864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %865 = tail call i32 @fileno(ptr noundef %864) #8
  %866 = tail call i32 @isatty(i32 noundef %865) #8
  %.not377 = icmp eq i32 %866, 0
  br i1 %.not377, label %867, label %868

867:                                              ; preds = %863, %857
  br label %868

868:                                              ; preds = %863, %867
  %.str.5.sink709 = phi ptr [ @.str.5, %867 ], [ @.str.2, %863 ]
  store i32 %858, ptr %550, align 4, !tbaa !5
  %869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %870 = load i32, ptr @test_count, align 4, !tbaa !5
  %871 = load i32, ptr %496, align 4, !tbaa !5
  %872 = tail call ptr @s2n_strerror(i32 noundef %871, ptr noundef nonnull @.str.4) #8
  %873 = load i32, ptr %496, align 4, !tbaa !5
  %874 = tail call ptr @s2n_strerror_debug(i32 noundef %873, ptr noundef nonnull @.str.4) #8
  %875 = load i32, ptr %550, align 4, !tbaa !5
  %876 = tail call ptr @strerror(i32 noundef %875) #8
  %877 = load i32, ptr %550, align 4, !tbaa !5
  %878 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %869, ptr noundef nonnull %.str.5.sink709, i32 noundef %870, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 115, ptr noundef %872, ptr noundef %874, ptr noundef %876, i32 noundef %877) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

879:                                              ; preds = %853
  store i8 34, ptr %802, align 4, !tbaa !44
  %880 = load i32, ptr @test_count, align 4, !tbaa !5
  %881 = add nsw i32 %880, 1
  store i32 %881, ptr @test_count, align 4, !tbaa !5
  %882 = tail call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %774, i32 noundef %.0301396) #8
  br i1 %882, label %883, label %905

883:                                              ; preds = %879
  %884 = load i32, ptr %550, align 4, !tbaa !5
  %885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %886 = tail call i32 @s2n_print_stacktrace(ptr noundef %885) #8
  %887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %888 = trunc nuw i8 %887 to i1
  br i1 %888, label %889, label %893

889:                                              ; preds = %883
  %890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %891 = tail call i32 @fileno(ptr noundef %890) #8
  %892 = tail call i32 @isatty(i32 noundef %891) #8
  %.not376 = icmp eq i32 %892, 0
  br i1 %.not376, label %893, label %894

893:                                              ; preds = %889, %883
  br label %894

894:                                              ; preds = %889, %893
  %.str.5.sink718 = phi ptr [ @.str.5, %893 ], [ @.str.2, %889 ]
  store i32 %884, ptr %550, align 4, !tbaa !5
  %895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %896 = load i32, ptr @test_count, align 4, !tbaa !5
  %897 = load i32, ptr %496, align 4, !tbaa !5
  %898 = tail call ptr @s2n_strerror(i32 noundef %897, ptr noundef nonnull @.str.4) #8
  %899 = load i32, ptr %496, align 4, !tbaa !5
  %900 = tail call ptr @s2n_strerror_debug(i32 noundef %899, ptr noundef nonnull @.str.4) #8
  %901 = load i32, ptr %550, align 4, !tbaa !5
  %902 = tail call ptr @strerror(i32 noundef %901) #8
  %903 = load i32, ptr %550, align 4, !tbaa !5
  %904 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %895, ptr noundef nonnull %.str.5.sink718, i32 noundef %896, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %898, ptr noundef %900, ptr noundef %902, i32 noundef %903) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

905:                                              ; preds = %879
  store i32 %.0301396, ptr %801, align 4, !tbaa !15
  store i8 33, ptr %802, align 4, !tbaa !44
  %906 = load i32, ptr @test_count, align 4, !tbaa !5
  %907 = add nsw i32 %906, 1
  store i32 %907, ptr @test_count, align 4, !tbaa !5
  %908 = tail call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %774, i32 noundef %.0301396) #8
  br i1 %908, label %931, label %909

909:                                              ; preds = %905
  %910 = load i32, ptr %550, align 4, !tbaa !5
  %911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %912 = tail call i32 @s2n_print_stacktrace(ptr noundef %911) #8
  %913 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %914 = trunc nuw i8 %913 to i1
  br i1 %914, label %915, label %919

915:                                              ; preds = %909
  %916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %917 = tail call i32 @fileno(ptr noundef %916) #8
  %918 = tail call i32 @isatty(i32 noundef %917) #8
  %.not373 = icmp eq i32 %918, 0
  br i1 %.not373, label %919, label %920

919:                                              ; preds = %915, %909
  br label %920

920:                                              ; preds = %915, %919
  %.str.5.sink727 = phi ptr [ @.str.5, %919 ], [ @.str.2, %915 ]
  store i32 %910, ptr %550, align 4, !tbaa !5
  %921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %922 = load i32, ptr @test_count, align 4, !tbaa !5
  %923 = load i32, ptr %496, align 4, !tbaa !5
  %924 = tail call ptr @s2n_strerror(i32 noundef %923, ptr noundef nonnull @.str.4) #8
  %925 = load i32, ptr %496, align 4, !tbaa !5
  %926 = tail call ptr @s2n_strerror_debug(i32 noundef %925, ptr noundef nonnull @.str.4) #8
  %927 = load i32, ptr %550, align 4, !tbaa !5
  %928 = tail call ptr @strerror(i32 noundef %927) #8
  %929 = load i32, ptr %550, align 4, !tbaa !5
  %930 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %921, ptr noundef nonnull %.str.5.sink727, i32 noundef %922, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %924, ptr noundef %926, ptr noundef %928, i32 noundef %929) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

931:                                              ; preds = %905
  store i8 34, ptr %802, align 4, !tbaa !44
  %932 = load i32, ptr @test_count, align 4, !tbaa !5
  %933 = add nsw i32 %932, 1
  store i32 %933, ptr @test_count, align 4, !tbaa !5
  %934 = tail call zeroext i1 @s2n_handshake_type_check_flag(ptr noundef nonnull %774, i32 noundef %.0301396) #8
  br i1 %934, label %957, label %935

935:                                              ; preds = %931
  %936 = load i32, ptr %550, align 4, !tbaa !5
  %937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %938 = tail call i32 @s2n_print_stacktrace(ptr noundef %937) #8
  %939 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %940 = trunc nuw i8 %939 to i1
  br i1 %940, label %941, label %945

941:                                              ; preds = %935
  %942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %943 = tail call i32 @fileno(ptr noundef %942) #8
  %944 = tail call i32 @isatty(i32 noundef %943) #8
  %.not374 = icmp eq i32 %944, 0
  br i1 %.not374, label %945, label %946

945:                                              ; preds = %941, %935
  br label %946

946:                                              ; preds = %941, %945
  %.str.5.sink736 = phi ptr [ @.str.5, %945 ], [ @.str.2, %941 ]
  store i32 %936, ptr %550, align 4, !tbaa !5
  %947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %948 = load i32, ptr @test_count, align 4, !tbaa !5
  %949 = load i32, ptr %496, align 4, !tbaa !5
  %950 = tail call ptr @s2n_strerror(i32 noundef %949, ptr noundef nonnull @.str.4) #8
  %951 = load i32, ptr %496, align 4, !tbaa !5
  %952 = tail call ptr @s2n_strerror_debug(i32 noundef %951, ptr noundef nonnull @.str.4) #8
  %953 = load i32, ptr %550, align 4, !tbaa !5
  %954 = tail call ptr @strerror(i32 noundef %953) #8
  %955 = load i32, ptr %550, align 4, !tbaa !5
  %956 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %947, ptr noundef nonnull %.str.5.sink736, i32 noundef %948, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %950, ptr noundef %952, ptr noundef %954, i32 noundef %955) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

957:                                              ; preds = %931
  %958 = load i32, ptr @test_count, align 4, !tbaa !5
  %959 = add nsw i32 %958, 1
  store i32 %959, ptr @test_count, align 4, !tbaa !5
  %960 = tail call i32 @s2n_connection_free(ptr noundef nonnull %774) #8
  %961 = icmp eq i32 %960, -1
  br i1 %961, label %962, label %767

962:                                              ; preds = %957
  %963 = load i32, ptr %550, align 4, !tbaa !5
  %964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %965 = tail call i32 @s2n_print_stacktrace(ptr noundef %964) #8
  %966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %967 = trunc nuw i8 %966 to i1
  br i1 %967, label %968, label %972

968:                                              ; preds = %962
  %969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %970 = tail call i32 @fileno(ptr noundef %969) #8
  %971 = tail call i32 @isatty(i32 noundef %970) #8
  %.not375 = icmp eq i32 %971, 0
  br i1 %.not375, label %972, label %973

972:                                              ; preds = %968, %962
  br label %973

973:                                              ; preds = %968, %972
  %.str.5.sink745 = phi ptr [ @.str.5, %972 ], [ @.str.2, %968 ]
  store i32 %963, ptr %550, align 4, !tbaa !5
  %974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %975 = load i32, ptr @test_count, align 4, !tbaa !5
  %976 = load i32, ptr %496, align 4, !tbaa !5
  %977 = tail call ptr @s2n_strerror(i32 noundef %976, ptr noundef nonnull @.str.4) #8
  %978 = load i32, ptr %496, align 4, !tbaa !5
  %979 = tail call ptr @s2n_strerror_debug(i32 noundef %978, ptr noundef nonnull @.str.4) #8
  %980 = load i32, ptr %550, align 4, !tbaa !5
  %981 = tail call ptr @strerror(i32 noundef %980) #8
  %982 = load i32, ptr %550, align 4, !tbaa !5
  %983 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %974, ptr noundef nonnull %.str.5.sink745, i32 noundef %975, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %977, ptr noundef %979, ptr noundef %981, i32 noundef %982) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

984:                                              ; preds = %769
  %985 = load i32, ptr %550, align 4, !tbaa !5
  %986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %987 = tail call i32 @s2n_print_stacktrace(ptr noundef %986) #8
  %988 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %989 = trunc nuw i8 %988 to i1
  br i1 %989, label %990, label %994

990:                                              ; preds = %984
  %991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %992 = tail call i32 @fileno(ptr noundef %991) #8
  %993 = tail call i32 @isatty(i32 noundef %992) #8
  %.not327 = icmp eq i32 %993, 0
  br i1 %.not327, label %994, label %995

994:                                              ; preds = %990, %984
  br label %995

995:                                              ; preds = %990, %994
  %.str.5.sink754 = phi ptr [ @.str.5, %994 ], [ @.str.2, %990 ]
  store i32 %985, ptr %550, align 4, !tbaa !5
  %996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %997 = load i32, ptr @test_count, align 4, !tbaa !5
  %998 = load i32, ptr %496, align 4, !tbaa !5
  %999 = tail call ptr @s2n_strerror(i32 noundef %998, ptr noundef nonnull @.str.4) #8
  %1000 = load i32, ptr %496, align 4, !tbaa !5
  %1001 = tail call ptr @s2n_strerror_debug(i32 noundef %1000, ptr noundef nonnull @.str.4) #8
  %1002 = load i32, ptr %550, align 4, !tbaa !5
  %1003 = tail call ptr @strerror(i32 noundef %1002) #8
  %1004 = load i32, ptr %550, align 4, !tbaa !5
  %1005 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %996, ptr noundef nonnull %.str.5.sink754, i32 noundef %997, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %999, ptr noundef %1001, ptr noundef %1003, i32 noundef %1004) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1006:                                             ; preds = %769
  %1007 = load i32, ptr @test_count, align 4, !tbaa !5
  %1008 = add nsw i32 %1007, 1
  store i32 %1008, ptr @test_count, align 4, !tbaa !5
  %1009 = load i32, ptr %496, align 4, !tbaa !5
  %1010 = icmp eq i32 %1009, 402653193
  br i1 %1010, label %1033, label %1011

1011:                                             ; preds = %1006
  %1012 = load i32, ptr %550, align 4, !tbaa !5
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = tail call i32 @s2n_print_stacktrace(ptr noundef %1013) #8
  %1015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1016 = trunc nuw i8 %1015 to i1
  br i1 %1016, label %1017, label %1021

1017:                                             ; preds = %1011
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = tail call i32 @fileno(ptr noundef %1018) #8
  %1020 = tail call i32 @isatty(i32 noundef %1019) #8
  %.not328 = icmp eq i32 %1020, 0
  br i1 %.not328, label %1021, label %1022

1021:                                             ; preds = %1017, %1011
  br label %1022

1022:                                             ; preds = %1017, %1021
  %.str.5.sink763 = phi ptr [ @.str.5, %1021 ], [ @.str.2, %1017 ]
  store i32 %1012, ptr %550, align 4, !tbaa !5
  %1023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1024 = load i32, ptr @test_count, align 4, !tbaa !5
  %1025 = load i32, ptr %496, align 4, !tbaa !5
  %1026 = tail call ptr @s2n_strerror(i32 noundef %1025, ptr noundef nonnull @.str.4) #8
  %1027 = load i32, ptr %496, align 4, !tbaa !5
  %1028 = tail call ptr @s2n_strerror_debug(i32 noundef %1027, ptr noundef nonnull @.str.4) #8
  %1029 = load i32, ptr %550, align 4, !tbaa !5
  %1030 = tail call ptr @strerror(i32 noundef %1029) #8
  %1031 = load i32, ptr %550, align 4, !tbaa !5
  %1032 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1023, ptr noundef nonnull %.str.5.sink763, i32 noundef %1024, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %1026, ptr noundef %1028, ptr noundef %1030, i32 noundef %1031) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1033:                                             ; preds = %1006
  %1034 = add nsw i32 %1007, 2
  store i32 %1034, ptr @test_count, align 4, !tbaa !5
  %1035 = tail call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #8
  %1036 = icmp eq ptr %1035, null
  br i1 %1036, label %1037, label %1059

1037:                                             ; preds = %1033
  %1038 = load i32, ptr %550, align 4, !tbaa !5
  %1039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1040 = tail call i32 @s2n_print_stacktrace(ptr noundef %1039) #8
  %1041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1042 = trunc nuw i8 %1041 to i1
  br i1 %1042, label %1043, label %1047

1043:                                             ; preds = %1037
  %1044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1045 = tail call i32 @fileno(ptr noundef %1044) #8
  %1046 = tail call i32 @isatty(i32 noundef %1045) #8
  %.not370 = icmp eq i32 %1046, 0
  br i1 %.not370, label %1047, label %1048

1047:                                             ; preds = %1043, %1037
  br label %1048

1048:                                             ; preds = %1043, %1047
  %.str.5.sink772 = phi ptr [ @.str.5, %1047 ], [ @.str.2, %1043 ]
  store i32 %1038, ptr %550, align 4, !tbaa !5
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = load i32, ptr @test_count, align 4, !tbaa !5
  %1051 = load i32, ptr %496, align 4, !tbaa !5
  %1052 = tail call ptr @s2n_strerror(i32 noundef %1051, ptr noundef nonnull @.str.4) #8
  %1053 = load i32, ptr %496, align 4, !tbaa !5
  %1054 = tail call ptr @s2n_strerror_debug(i32 noundef %1053, ptr noundef nonnull @.str.4) #8
  %1055 = load i32, ptr %550, align 4, !tbaa !5
  %1056 = tail call ptr @strerror(i32 noundef %1055) #8
  %1057 = load i32, ptr %550, align 4, !tbaa !5
  %1058 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1049, ptr noundef nonnull %.str.5.sink772, i32 noundef %1050, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %1052, ptr noundef %1054, ptr noundef %1056, i32 noundef %1057) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1059:                                             ; preds = %1033
  store i32 0, ptr %496, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #8
  store i32 0, ptr %550, align 4, !tbaa !5
  br label %1066

1060:                                             ; preds = %1254
  %1061 = add nuw nsw i32 %.0302397, 1
  %exitcond402.not = icmp eq i32 %1061, 65
  br i1 %exitcond402.not, label %1062, label %1066, !llvm.loop !46

1062:                                             ; preds = %1060
  %1063 = load i32, ptr @test_count, align 4, !tbaa !5
  %1064 = add nsw i32 %1063, 1
  store i32 %1064, ptr @test_count, align 4, !tbaa !5
  %1065 = tail call zeroext i1 @s2n_handshake_type_check_tls12_flag(ptr noundef null, i32 noundef 0) #8
  br i1 %1065, label %1281, label %.preheader393

1066:                                             ; preds = %1059, %1060
  %.0302397 = phi i32 [ 16, %1059 ], [ %1061, %1060 ]
  %1067 = tail call ptr @s2n_connection_new(i32 noundef 1) #8
  %1068 = load i32, ptr @test_count, align 4, !tbaa !5
  %1069 = add nsw i32 %1068, 1
  store i32 %1069, ptr @test_count, align 4, !tbaa !5
  %1070 = icmp eq ptr %1067, null
  br i1 %1070, label %1071, label %1093

1071:                                             ; preds = %1066
  %1072 = load i32, ptr %550, align 4, !tbaa !5
  %1073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1074 = tail call i32 @s2n_print_stacktrace(ptr noundef %1073) #8
  %1075 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1076 = trunc nuw i8 %1075 to i1
  br i1 %1076, label %1077, label %1081

1077:                                             ; preds = %1071
  %1078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1079 = tail call i32 @fileno(ptr noundef %1078) #8
  %1080 = tail call i32 @isatty(i32 noundef %1079) #8
  %.not369 = icmp eq i32 %1080, 0
  br i1 %.not369, label %1081, label %1082

1081:                                             ; preds = %1077, %1071
  br label %1082

1082:                                             ; preds = %1077, %1081
  %.str.5.sink781 = phi ptr [ @.str.5, %1081 ], [ @.str.2, %1077 ]
  store i32 %1072, ptr %550, align 4, !tbaa !5
  %1083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1084 = load i32, ptr @test_count, align 4, !tbaa !5
  %1085 = load i32, ptr %496, align 4, !tbaa !5
  %1086 = tail call ptr @s2n_strerror(i32 noundef %1085, ptr noundef nonnull @.str.4) #8
  %1087 = load i32, ptr %496, align 4, !tbaa !5
  %1088 = tail call ptr @s2n_strerror_debug(i32 noundef %1087, ptr noundef nonnull @.str.4) #8
  %1089 = load i32, ptr %550, align 4, !tbaa !5
  %1090 = tail call ptr @strerror(i32 noundef %1089) #8
  %1091 = load i32, ptr %550, align 4, !tbaa !5
  %1092 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1083, ptr noundef nonnull %.str.5.sink781, i32 noundef %1084, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 144, ptr noundef %1086, ptr noundef %1088, ptr noundef %1090, i32 noundef %1091) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1093:                                             ; preds = %1066
  %1094 = getelementptr inbounds i8, ptr %1067, i64 220
  store i8 33, ptr %1094, align 4, !tbaa !44
  %1095 = add nsw i32 %1068, 2
  store i32 %1095, ptr @test_count, align 4, !tbaa !5
  %1096 = tail call i32 @s2n_handshake_type_set_tls12_flag(ptr noundef nonnull %1067, i32 noundef %.0302397) #8
  %1097 = tail call zeroext i1 @s2n_result_is_ok(i32 %1096)
  br i1 %1097, label %1120, label %1098

1098:                                             ; preds = %1093
  %1099 = load i32, ptr %550, align 4, !tbaa !5
  %1100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1101 = tail call i32 @s2n_print_stacktrace(ptr noundef %1100) #8
  %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 = %1098
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1106 = tail call i32 @fileno(ptr noundef %1105) #8
  %1107 = tail call i32 @isatty(i32 noundef %1106) #8
  %.not362 = icmp eq i32 %1107, 0
  br i1 %.not362, label %1108, label %1109

1108:                                             ; preds = %1104, %1098
  br label %1109

1109:                                             ; preds = %1104, %1108
  %.str.5.sink790 = phi ptr [ @.str.5, %1108 ], [ @.str.2, %1104 ]
  store i32 %1099, ptr %550, 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 %496, align 4, !tbaa !5
  %1113 = tail call ptr @s2n_strerror(i32 noundef %1112, ptr noundef nonnull @.str.4) #8
  %1114 = load i32, ptr %496, align 4, !tbaa !5
  %1115 = tail call ptr @s2n_strerror_debug(i32 noundef %1114, ptr noundef nonnull @.str.4) #8
  %1116 = load i32, ptr %550, align 4, !tbaa !5
  %1117 = tail call ptr @strerror(i32 noundef %1116) #8
  %1118 = load i32, ptr %550, align 4, !tbaa !5
  %1119 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1110, ptr noundef nonnull %.str.5.sink790, i32 noundef %1111, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %1113, ptr noundef %1115, ptr noundef %1117, i32 noundef %1118) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1120:                                             ; preds = %1093
  %1121 = load i32, ptr @test_count, align 4, !tbaa !5
  %1122 = add nsw i32 %1121, 1
  store i32 %1122, ptr @test_count, align 4, !tbaa !5
  %1123 = getelementptr inbounds i8, ptr %1067, i64 2172
  %1124 = load i32, ptr %1123, align 4, !tbaa !15
  %1125 = icmp eq i32 %1124, %.0302397
  br i1 %1125, label %1148, label %1126

1126:                                             ; preds = %1120
  %1127 = load i32, ptr %550, align 4, !tbaa !5
  %1128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1129 = tail call i32 @s2n_print_stacktrace(ptr noundef %1128) #8
  %1130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1131 = trunc nuw i8 %1130 to i1
  br i1 %1131, label %1132, label %1136

1132:                                             ; preds = %1126
  %1133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1134 = tail call i32 @fileno(ptr noundef %1133) #8
  %1135 = tail call i32 @isatty(i32 noundef %1134) #8
  %.not363 = icmp eq i32 %1135, 0
  br i1 %.not363, label %1136, label %1137

1136:                                             ; preds = %1132, %1126
  br label %1137

1137:                                             ; preds = %1132, %1136
  %.str.5.sink799 = phi ptr [ @.str.5, %1136 ], [ @.str.2, %1132 ]
  store i32 %1127, ptr %550, align 4, !tbaa !5
  %1138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1139 = load i32, ptr @test_count, align 4, !tbaa !5
  %1140 = load i32, ptr %496, align 4, !tbaa !5
  %1141 = tail call ptr @s2n_strerror(i32 noundef %1140, ptr noundef nonnull @.str.4) #8
  %1142 = load i32, ptr %496, align 4, !tbaa !5
  %1143 = tail call ptr @s2n_strerror_debug(i32 noundef %1142, ptr noundef nonnull @.str.4) #8
  %1144 = load i32, ptr %550, align 4, !tbaa !5
  %1145 = tail call ptr @strerror(i32 noundef %1144) #8
  %1146 = load i32, ptr %550, align 4, !tbaa !5
  %1147 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1138, ptr noundef nonnull %.str.5.sink799, i32 noundef %1139, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %1141, ptr noundef %1143, ptr noundef %1145, i32 noundef %1146) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1148:                                             ; preds = %1120
  %1149 = add nsw i32 %1121, 2
  store i32 %1149, ptr @test_count, align 4, !tbaa !5
  %1150 = tail call i32 @s2n_handshake_type_reset(ptr noundef nonnull %1067) #8
  %1151 = tail call zeroext i1 @s2n_result_is_ok(i32 %1150)
  br i1 %1151, label %1174, label %1152

1152:                                             ; preds = %1148
  %1153 = load i32, ptr %550, align 4, !tbaa !5
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = tail call i32 @s2n_print_stacktrace(ptr noundef %1154) #8
  %1156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1157 = trunc nuw i8 %1156 to i1
  br i1 %1157, label %1158, label %1162

1158:                                             ; preds = %1152
  %1159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1160 = tail call i32 @fileno(ptr noundef %1159) #8
  %1161 = tail call i32 @isatty(i32 noundef %1160) #8
  %.not364 = icmp eq i32 %1161, 0
  br i1 %.not364, label %1162, label %1163

1162:                                             ; preds = %1158, %1152
  br label %1163

1163:                                             ; preds = %1158, %1162
  %.str.5.sink808 = phi ptr [ @.str.5, %1162 ], [ @.str.2, %1158 ]
  store i32 %1153, ptr %550, align 4, !tbaa !5
  %1164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1165 = load i32, ptr @test_count, align 4, !tbaa !5
  %1166 = load i32, ptr %496, align 4, !tbaa !5
  %1167 = tail call ptr @s2n_strerror(i32 noundef %1166, ptr noundef nonnull @.str.4) #8
  %1168 = load i32, ptr %496, align 4, !tbaa !5
  %1169 = tail call ptr @s2n_strerror_debug(i32 noundef %1168, ptr noundef nonnull @.str.4) #8
  %1170 = load i32, ptr %550, align 4, !tbaa !5
  %1171 = tail call ptr @strerror(i32 noundef %1170) #8
  %1172 = load i32, ptr %550, align 4, !tbaa !5
  %1173 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1164, ptr noundef nonnull %.str.5.sink808, i32 noundef %1165, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %1167, ptr noundef %1169, ptr noundef %1171, i32 noundef %1172) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1174:                                             ; preds = %1148
  store i8 34, ptr %1094, align 4, !tbaa !44
  %1175 = load i32, ptr @test_count, align 4, !tbaa !5
  %1176 = add nsw i32 %1175, 1
  store i32 %1176, ptr @test_count, align 4, !tbaa !5
  %1177 = tail call i32 @s2n_handshake_type_set_tls12_flag(ptr noundef nonnull %1067, i32 noundef %.0302397) #8
  %1178 = tail call zeroext i1 @s2n_result_is_error(i32 %1177)
  br i1 %1178, label %1201, label %1179

1179:                                             ; preds = %1174
  %1180 = load i32, ptr %550, align 4, !tbaa !5
  %1181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1182 = tail call i32 @s2n_print_stacktrace(ptr noundef %1181) #8
  %1183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1184 = trunc nuw i8 %1183 to i1
  br i1 %1184, label %1185, label %1189

1185:                                             ; preds = %1179
  %1186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1187 = tail call i32 @fileno(ptr noundef %1186) #8
  %1188 = tail call i32 @isatty(i32 noundef %1187) #8
  %.not365 = icmp eq i32 %1188, 0
  br i1 %.not365, label %1189, label %1190

1189:                                             ; preds = %1185, %1179
  br label %1190

1190:                                             ; preds = %1185, %1189
  %.str.5.sink817 = phi ptr [ @.str.5, %1189 ], [ @.str.2, %1185 ]
  store i32 %1180, ptr %550, align 4, !tbaa !5
  %1191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1192 = load i32, ptr @test_count, align 4, !tbaa !5
  %1193 = load i32, ptr %496, align 4, !tbaa !5
  %1194 = tail call ptr @s2n_strerror(i32 noundef %1193, ptr noundef nonnull @.str.4) #8
  %1195 = load i32, ptr %496, align 4, !tbaa !5
  %1196 = tail call ptr @s2n_strerror_debug(i32 noundef %1195, ptr noundef nonnull @.str.4) #8
  %1197 = load i32, ptr %550, align 4, !tbaa !5
  %1198 = tail call ptr @strerror(i32 noundef %1197) #8
  %1199 = load i32, ptr %550, align 4, !tbaa !5
  %1200 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1191, ptr noundef nonnull %.str.5.sink817, i32 noundef %1192, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %1194, ptr noundef %1196, ptr noundef %1198, i32 noundef %1199) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1201:                                             ; preds = %1174
  %1202 = load i32, ptr @test_count, align 4, !tbaa !5
  %1203 = add nsw i32 %1202, 1
  store i32 %1203, ptr @test_count, align 4, !tbaa !5
  %1204 = load i32, ptr %496, align 4, !tbaa !5
  %1205 = icmp eq i32 %1204, 402653218
  br i1 %1205, label %1228, label %1206

1206:                                             ; preds = %1201
  %1207 = load i32, ptr %550, align 4, !tbaa !5
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1209 = tail call i32 @s2n_print_stacktrace(ptr noundef %1208) #8
  %1210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1211 = trunc nuw i8 %1210 to i1
  br i1 %1211, label %1212, label %1216

1212:                                             ; preds = %1206
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = tail call i32 @fileno(ptr noundef %1213) #8
  %1215 = tail call i32 @isatty(i32 noundef %1214) #8
  %.not366 = icmp eq i32 %1215, 0
  br i1 %.not366, label %1216, label %1217

1216:                                             ; preds = %1212, %1206
  br label %1217

1217:                                             ; preds = %1212, %1216
  %.str.5.sink826 = phi ptr [ @.str.5, %1216 ], [ @.str.2, %1212 ]
  store i32 %1207, ptr %550, align 4, !tbaa !5
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = load i32, ptr @test_count, align 4, !tbaa !5
  %1220 = load i32, ptr %496, align 4, !tbaa !5
  %1221 = tail call ptr @s2n_strerror(i32 noundef %1220, ptr noundef nonnull @.str.4) #8
  %1222 = load i32, ptr %496, align 4, !tbaa !5
  %1223 = tail call ptr @s2n_strerror_debug(i32 noundef %1222, ptr noundef nonnull @.str.4) #8
  %1224 = load i32, ptr %550, align 4, !tbaa !5
  %1225 = tail call ptr @strerror(i32 noundef %1224) #8
  %1226 = load i32, ptr %550, align 4, !tbaa !5
  %1227 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1218, ptr noundef nonnull %.str.5.sink826, i32 noundef %1219, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %1221, ptr noundef %1223, ptr noundef %1225, i32 noundef %1226) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1228:                                             ; preds = %1201
  %1229 = add nsw i32 %1202, 2
  store i32 %1229, ptr @test_count, align 4, !tbaa !5
  %1230 = tail call ptr @s2n_strerror_debug(i32 noundef 402653218, ptr noundef nonnull @.str.4) #8
  %1231 = icmp eq ptr %1230, null
  br i1 %1231, label %1232, label %1254

1232:                                             ; preds = %1228
  %1233 = load i32, ptr %550, align 4, !tbaa !5
  %1234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1235 = tail call i32 @s2n_print_stacktrace(ptr noundef %1234) #8
  %1236 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1237 = trunc nuw i8 %1236 to i1
  br i1 %1237, label %1238, label %1242

1238:                                             ; preds = %1232
  %1239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1240 = tail call i32 @fileno(ptr noundef %1239) #8
  %1241 = tail call i32 @isatty(i32 noundef %1240) #8
  %.not368 = icmp eq i32 %1241, 0
  br i1 %.not368, label %1242, label %1243

1242:                                             ; preds = %1238, %1232
  br label %1243

1243:                                             ; preds = %1238, %1242
  %.str.5.sink835 = phi ptr [ @.str.5, %1242 ], [ @.str.2, %1238 ]
  store i32 %1233, ptr %550, align 4, !tbaa !5
  %1244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1245 = load i32, ptr @test_count, align 4, !tbaa !5
  %1246 = load i32, ptr %496, align 4, !tbaa !5
  %1247 = tail call ptr @s2n_strerror(i32 noundef %1246, ptr noundef nonnull @.str.4) #8
  %1248 = load i32, ptr %496, align 4, !tbaa !5
  %1249 = tail call ptr @s2n_strerror_debug(i32 noundef %1248, ptr noundef nonnull @.str.4) #8
  %1250 = load i32, ptr %550, align 4, !tbaa !5
  %1251 = tail call ptr @strerror(i32 noundef %1250) #8
  %1252 = load i32, ptr %550, align 4, !tbaa !5
  %1253 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1244, ptr noundef nonnull %.str.5.sink835, i32 noundef %1245, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %1247, ptr noundef %1249, ptr noundef %1251, i32 noundef %1252) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1254:                                             ; preds = %1228
  store i32 0, ptr %496, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #8
  store i32 0, ptr %550, align 4, !tbaa !5
  %1255 = load i32, ptr @test_count, align 4, !tbaa !5
  %1256 = add nsw i32 %1255, 1
  store i32 %1256, ptr @test_count, align 4, !tbaa !5
  %1257 = tail call i32 @s2n_connection_free(ptr noundef nonnull %1067) #8
  %1258 = icmp eq i32 %1257, -1
  br i1 %1258, label %1259, label %1060

1259:                                             ; preds = %1254
  %1260 = load i32, ptr %550, align 4, !tbaa !5
  %1261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1262 = tail call i32 @s2n_print_stacktrace(ptr noundef %1261) #8
  %1263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1264 = trunc nuw i8 %1263 to i1
  br i1 %1264, label %1265, label %1269

1265:                                             ; preds = %1259
  %1266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1267 = tail call i32 @fileno(ptr noundef %1266) #8
  %1268 = tail call i32 @isatty(i32 noundef %1267) #8
  %.not367 = icmp eq i32 %1268, 0
  br i1 %.not367, label %1269, label %1270

1269:                                             ; preds = %1265, %1259
  br label %1270

1270:                                             ; preds = %1265, %1269
  %.str.5.sink844 = phi ptr [ @.str.5, %1269 ], [ @.str.2, %1265 ]
  store i32 %1260, ptr %550, align 4, !tbaa !5
  %1271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1272 = load i32, ptr @test_count, align 4, !tbaa !5
  %1273 = load i32, ptr %496, align 4, !tbaa !5
  %1274 = tail call ptr @s2n_strerror(i32 noundef %1273, ptr noundef nonnull @.str.4) #8
  %1275 = load i32, ptr %496, align 4, !tbaa !5
  %1276 = tail call ptr @s2n_strerror_debug(i32 noundef %1275, ptr noundef nonnull @.str.4) #8
  %1277 = load i32, ptr %550, align 4, !tbaa !5
  %1278 = tail call ptr @strerror(i32 noundef %1277) #8
  %1279 = load i32, ptr %550, align 4, !tbaa !5
  %1280 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1271, ptr noundef nonnull %.str.5.sink844, i32 noundef %1272, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 155, ptr noundef %1274, ptr noundef %1276, ptr noundef %1278, i32 noundef %1279) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1281:                                             ; preds = %1062
  %1282 = load i32, ptr %550, align 4, !tbaa !5
  %1283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1284 = tail call i32 @s2n_print_stacktrace(ptr noundef %1283) #8
  %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 = %1281
  %1288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1289 = tail call i32 @fileno(ptr noundef %1288) #8
  %1290 = tail call i32 @isatty(i32 noundef %1289) #8
  %.not361 = icmp eq i32 %1290, 0
  br i1 %.not361, label %1291, label %1292

1291:                                             ; preds = %1287, %1281
  br label %1292

1292:                                             ; preds = %1287, %1291
  %.str.5.sink853 = phi ptr [ @.str.5, %1291 ], [ @.str.2, %1287 ]
  store i32 %1282, ptr %550, 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 %496, align 4, !tbaa !5
  %1296 = tail call ptr @s2n_strerror(i32 noundef %1295, ptr noundef nonnull @.str.4) #8
  %1297 = load i32, ptr %496, align 4, !tbaa !5
  %1298 = tail call ptr @s2n_strerror_debug(i32 noundef %1297, ptr noundef nonnull @.str.4) #8
  %1299 = load i32, ptr %550, align 4, !tbaa !5
  %1300 = tail call ptr @strerror(i32 noundef %1299) #8
  %1301 = load i32, ptr %550, align 4, !tbaa !5
  %1302 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1293, ptr noundef nonnull %.str.5.sink853, i32 noundef %1294, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %1296, ptr noundef %1298, ptr noundef %1300, i32 noundef %1301) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1303:                                             ; preds = %1493
  %1304 = add nuw nsw i32 %.0303398, 1
  %exitcond403.not = icmp eq i32 %1304, 65
  br i1 %exitcond403.not, label %1305, label %.preheader393, !llvm.loop !47

1305:                                             ; preds = %1303
  %1306 = load i32, ptr @test_count, align 4, !tbaa !5
  %1307 = add nsw i32 %1306, 1
  store i32 %1307, ptr @test_count, align 4, !tbaa !5
  %1308 = tail call i32 @s2n_handshake_type_set_tls13_flag(ptr noundef null, i32 noundef 0) #8
  %1309 = tail call zeroext i1 @s2n_result_is_error(i32 %1308)
  br i1 %1309, label %1542, label %1520

.preheader393:                                    ; preds = %1062, %1303
  %.0303398 = phi i32 [ %1304, %1303 ], [ 16, %1062 ]
  %1310 = tail call ptr @s2n_connection_new(i32 noundef 1) #8
  %1311 = load i32, ptr @test_count, align 4, !tbaa !5
  %1312 = add nsw i32 %1311, 1
  store i32 %1312, ptr @test_count, align 4, !tbaa !5
  %1313 = icmp eq ptr %1310, null
  br i1 %1313, label %1314, label %1336

1314:                                             ; preds = %.preheader393
  %1315 = load i32, ptr %550, align 4, !tbaa !5
  %1316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1317 = tail call i32 @s2n_print_stacktrace(ptr noundef %1316) #8
  %1318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1319 = trunc nuw i8 %1318 to i1
  br i1 %1319, label %1320, label %1324

1320:                                             ; preds = %1314
  %1321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1322 = tail call i32 @fileno(ptr noundef %1321) #8
  %1323 = tail call i32 @isatty(i32 noundef %1322) #8
  %.not360 = icmp eq i32 %1323, 0
  br i1 %.not360, label %1324, label %1325

1324:                                             ; preds = %1320, %1314
  br label %1325

1325:                                             ; preds = %1320, %1324
  %.str.5.sink862 = phi ptr [ @.str.5, %1324 ], [ @.str.2, %1320 ]
  store i32 %1315, ptr %550, align 4, !tbaa !5
  %1326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1327 = load i32, ptr @test_count, align 4, !tbaa !5
  %1328 = load i32, ptr %496, align 4, !tbaa !5
  %1329 = tail call ptr @s2n_strerror(i32 noundef %1328, ptr noundef nonnull @.str.4) #8
  %1330 = load i32, ptr %496, align 4, !tbaa !5
  %1331 = tail call ptr @s2n_strerror_debug(i32 noundef %1330, ptr noundef nonnull @.str.4) #8
  %1332 = load i32, ptr %550, align 4, !tbaa !5
  %1333 = tail call ptr @strerror(i32 noundef %1332) #8
  %1334 = load i32, ptr %550, align 4, !tbaa !5
  %1335 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1326, ptr noundef nonnull %.str.5.sink862, i32 noundef %1327, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %1329, ptr noundef %1331, ptr noundef %1333, i32 noundef %1334) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1336:                                             ; preds = %.preheader393
  %1337 = getelementptr inbounds i8, ptr %1310, i64 2172
  store i32 65535, ptr %1337, align 4, !tbaa !15
  %1338 = getelementptr inbounds i8, ptr %1310, i64 220
  store i8 33, ptr %1338, align 4, !tbaa !44
  %1339 = add nsw i32 %1311, 2
  store i32 %1339, ptr @test_count, align 4, !tbaa !5
  %1340 = tail call zeroext i1 @s2n_handshake_type_check_tls12_flag(ptr noundef nonnull %1310, i32 noundef %.0303398) #8
  br i1 %1340, label %1363, label %1341

1341:                                             ; preds = %1336
  %1342 = load i32, ptr %550, align 4, !tbaa !5
  %1343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1344 = tail call i32 @s2n_print_stacktrace(ptr noundef %1343) #8
  %1345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1346 = trunc nuw i8 %1345 to i1
  br i1 %1346, label %1347, label %1351

1347:                                             ; preds = %1341
  %1348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1349 = tail call i32 @fileno(ptr noundef %1348) #8
  %1350 = tail call i32 @isatty(i32 noundef %1349) #8
  %.not353 = icmp eq i32 %1350, 0
  br i1 %.not353, label %1351, label %1352

1351:                                             ; preds = %1347, %1341
  br label %1352

1352:                                             ; preds = %1347, %1351
  %.str.5.sink871 = phi ptr [ @.str.5, %1351 ], [ @.str.2, %1347 ]
  store i32 %1342, ptr %550, align 4, !tbaa !5
  %1353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1354 = load i32, ptr @test_count, align 4, !tbaa !5
  %1355 = load i32, ptr %496, align 4, !tbaa !5
  %1356 = tail call ptr @s2n_strerror(i32 noundef %1355, ptr noundef nonnull @.str.4) #8
  %1357 = load i32, ptr %496, align 4, !tbaa !5
  %1358 = tail call ptr @s2n_strerror_debug(i32 noundef %1357, ptr noundef nonnull @.str.4) #8
  %1359 = load i32, ptr %550, align 4, !tbaa !5
  %1360 = tail call ptr @strerror(i32 noundef %1359) #8
  %1361 = load i32, ptr %550, align 4, !tbaa !5
  %1362 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1353, ptr noundef nonnull %.str.5.sink871, i32 noundef %1354, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %1356, ptr noundef %1358, ptr noundef %1360, i32 noundef %1361) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1363:                                             ; preds = %1336
  store i8 34, ptr %1338, align 4, !tbaa !44
  %1364 = load i32, ptr @test_count, align 4, !tbaa !5
  %1365 = add nsw i32 %1364, 1
  store i32 %1365, ptr @test_count, align 4, !tbaa !5
  %1366 = tail call zeroext i1 @s2n_handshake_type_check_tls12_flag(ptr noundef nonnull %1310, i32 noundef %.0303398) #8
  br i1 %1366, label %1367, label %1389

1367:                                             ; preds = %1363
  %1368 = load i32, ptr %550, align 4, !tbaa !5
  %1369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1370 = tail call i32 @s2n_print_stacktrace(ptr noundef %1369) #8
  %1371 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1372 = trunc nuw i8 %1371 to i1
  br i1 %1372, label %1373, label %1377

1373:                                             ; preds = %1367
  %1374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1375 = tail call i32 @fileno(ptr noundef %1374) #8
  %1376 = tail call i32 @isatty(i32 noundef %1375) #8
  %.not359 = icmp eq i32 %1376, 0
  br i1 %.not359, label %1377, label %1378

1377:                                             ; preds = %1373, %1367
  br label %1378

1378:                                             ; preds = %1373, %1377
  %.str.5.sink880 = phi ptr [ @.str.5, %1377 ], [ @.str.2, %1373 ]
  store i32 %1368, ptr %550, align 4, !tbaa !5
  %1379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1380 = load i32, ptr @test_count, align 4, !tbaa !5
  %1381 = load i32, ptr %496, align 4, !tbaa !5
  %1382 = tail call ptr @s2n_strerror(i32 noundef %1381, ptr noundef nonnull @.str.4) #8
  %1383 = load i32, ptr %496, align 4, !tbaa !5
  %1384 = tail call ptr @s2n_strerror_debug(i32 noundef %1383, ptr noundef nonnull @.str.4) #8
  %1385 = load i32, ptr %550, align 4, !tbaa !5
  %1386 = tail call ptr @strerror(i32 noundef %1385) #8
  %1387 = load i32, ptr %550, align 4, !tbaa !5
  %1388 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1379, ptr noundef nonnull %.str.5.sink880, i32 noundef %1380, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %1382, ptr noundef %1384, ptr noundef %1386, i32 noundef %1387) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1389:                                             ; preds = %1363
  store i32 0, ptr %1337, align 4, !tbaa !15
  store i8 33, ptr %1338, align 4, !tbaa !44
  %1390 = load i32, ptr @test_count, align 4, !tbaa !5
  %1391 = add nsw i32 %1390, 1
  store i32 %1391, ptr @test_count, align 4, !tbaa !5
  %1392 = tail call zeroext i1 @s2n_handshake_type_check_tls12_flag(ptr noundef nonnull %1310, i32 noundef %.0303398) #8
  br i1 %1392, label %1393, label %1415

1393:                                             ; preds = %1389
  %1394 = load i32, ptr %550, align 4, !tbaa !5
  %1395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1396 = tail call i32 @s2n_print_stacktrace(ptr noundef %1395) #8
  %1397 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1398 = trunc nuw i8 %1397 to i1
  br i1 %1398, label %1399, label %1403

1399:                                             ; preds = %1393
  %1400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1401 = tail call i32 @fileno(ptr noundef %1400) #8
  %1402 = tail call i32 @isatty(i32 noundef %1401) #8
  %.not358 = icmp eq i32 %1402, 0
  br i1 %.not358, label %1403, label %1404

1403:                                             ; preds = %1399, %1393
  br label %1404

1404:                                             ; preds = %1399, %1403
  %.str.5.sink889 = phi ptr [ @.str.5, %1403 ], [ @.str.2, %1399 ]
  store i32 %1394, ptr %550, align 4, !tbaa !5
  %1405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1406 = load i32, ptr @test_count, align 4, !tbaa !5
  %1407 = load i32, ptr %496, align 4, !tbaa !5
  %1408 = tail call ptr @s2n_strerror(i32 noundef %1407, ptr noundef nonnull @.str.4) #8
  %1409 = load i32, ptr %496, align 4, !tbaa !5
  %1410 = tail call ptr @s2n_strerror_debug(i32 noundef %1409, ptr noundef nonnull @.str.4) #8
  %1411 = load i32, ptr %550, align 4, !tbaa !5
  %1412 = tail call ptr @strerror(i32 noundef %1411) #8
  %1413 = load i32, ptr %550, align 4, !tbaa !5
  %1414 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1405, ptr noundef nonnull %.str.5.sink889, i32 noundef %1406, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %1408, ptr noundef %1410, ptr noundef %1412, i32 noundef %1413) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1415:                                             ; preds = %1389
  store i8 34, ptr %1338, align 4, !tbaa !44
  %1416 = load i32, ptr @test_count, align 4, !tbaa !5
  %1417 = add nsw i32 %1416, 1
  store i32 %1417, ptr @test_count, align 4, !tbaa !5
  %1418 = tail call zeroext i1 @s2n_handshake_type_check_tls12_flag(ptr noundef nonnull %1310, i32 noundef %.0303398) #8
  br i1 %1418, label %1419, label %1441

1419:                                             ; preds = %1415
  %1420 = load i32, ptr %550, align 4, !tbaa !5
  %1421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1422 = tail call i32 @s2n_print_stacktrace(ptr noundef %1421) #8
  %1423 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1424 = trunc nuw i8 %1423 to i1
  br i1 %1424, label %1425, label %1429

1425:                                             ; preds = %1419
  %1426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1427 = tail call i32 @fileno(ptr noundef %1426) #8
  %1428 = tail call i32 @isatty(i32 noundef %1427) #8
  %.not357 = icmp eq i32 %1428, 0
  br i1 %.not357, label %1429, label %1430

1429:                                             ; preds = %1425, %1419
  br label %1430

1430:                                             ; preds = %1425, %1429
  %.str.5.sink898 = phi ptr [ @.str.5, %1429 ], [ @.str.2, %1425 ]
  store i32 %1420, ptr %550, align 4, !tbaa !5
  %1431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1432 = load i32, ptr @test_count, align 4, !tbaa !5
  %1433 = load i32, ptr %496, align 4, !tbaa !5
  %1434 = tail call ptr @s2n_strerror(i32 noundef %1433, ptr noundef nonnull @.str.4) #8
  %1435 = load i32, ptr %496, align 4, !tbaa !5
  %1436 = tail call ptr @s2n_strerror_debug(i32 noundef %1435, ptr noundef nonnull @.str.4) #8
  %1437 = load i32, ptr %550, align 4, !tbaa !5
  %1438 = tail call ptr @strerror(i32 noundef %1437) #8
  %1439 = load i32, ptr %550, align 4, !tbaa !5
  %1440 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1431, ptr noundef nonnull %.str.5.sink898, i32 noundef %1432, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %1434, ptr noundef %1436, ptr noundef %1438, i32 noundef %1439) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1441:                                             ; preds = %1415
  store i32 %.0303398, ptr %1337, align 4, !tbaa !15
  store i8 33, ptr %1338, align 4, !tbaa !44
  %1442 = load i32, ptr @test_count, align 4, !tbaa !5
  %1443 = add nsw i32 %1442, 1
  store i32 %1443, ptr @test_count, align 4, !tbaa !5
  %1444 = tail call zeroext i1 @s2n_handshake_type_check_tls12_flag(ptr noundef nonnull %1310, i32 noundef %.0303398) #8
  br i1 %1444, label %1467, label %1445

1445:                                             ; preds = %1441
  %1446 = load i32, ptr %550, align 4, !tbaa !5
  %1447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1448 = tail call i32 @s2n_print_stacktrace(ptr noundef %1447) #8
  %1449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1450 = trunc nuw i8 %1449 to i1
  br i1 %1450, label %1451, label %1455

1451:                                             ; preds = %1445
  %1452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1453 = tail call i32 @fileno(ptr noundef %1452) #8
  %1454 = tail call i32 @isatty(i32 noundef %1453) #8
  %.not354 = icmp eq i32 %1454, 0
  br i1 %.not354, label %1455, label %1456

1455:                                             ; preds = %1451, %1445
  br label %1456

1456:                                             ; preds = %1451, %1455
  %.str.5.sink907 = phi ptr [ @.str.5, %1455 ], [ @.str.2, %1451 ]
  store i32 %1446, ptr %550, align 4, !tbaa !5
  %1457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1458 = load i32, ptr @test_count, align 4, !tbaa !5
  %1459 = load i32, ptr %496, align 4, !tbaa !5
  %1460 = tail call ptr @s2n_strerror(i32 noundef %1459, ptr noundef nonnull @.str.4) #8
  %1461 = load i32, ptr %496, align 4, !tbaa !5
  %1462 = tail call ptr @s2n_strerror_debug(i32 noundef %1461, ptr noundef nonnull @.str.4) #8
  %1463 = load i32, ptr %550, align 4, !tbaa !5
  %1464 = tail call ptr @strerror(i32 noundef %1463) #8
  %1465 = load i32, ptr %550, align 4, !tbaa !5
  %1466 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1457, ptr noundef nonnull %.str.5.sink907, i32 noundef %1458, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 196, ptr noundef %1460, ptr noundef %1462, ptr noundef %1464, i32 noundef %1465) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1467:                                             ; preds = %1441
  store i8 34, ptr %1338, align 4, !tbaa !44
  %1468 = load i32, ptr @test_count, align 4, !tbaa !5
  %1469 = add nsw i32 %1468, 1
  store i32 %1469, ptr @test_count, align 4, !tbaa !5
  %1470 = tail call zeroext i1 @s2n_handshake_type_check_tls12_flag(ptr noundef nonnull %1310, i32 noundef %.0303398) #8
  br i1 %1470, label %1471, label %1493

1471:                                             ; preds = %1467
  %1472 = load i32, ptr %550, align 4, !tbaa !5
  %1473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1474 = tail call i32 @s2n_print_stacktrace(ptr noundef %1473) #8
  %1475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1476 = trunc nuw i8 %1475 to i1
  br i1 %1476, label %1477, label %1481

1477:                                             ; preds = %1471
  %1478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1479 = tail call i32 @fileno(ptr noundef %1478) #8
  %1480 = tail call i32 @isatty(i32 noundef %1479) #8
  %.not356 = icmp eq i32 %1480, 0
  br i1 %.not356, label %1481, label %1482

1481:                                             ; preds = %1477, %1471
  br label %1482

1482:                                             ; preds = %1477, %1481
  %.str.5.sink916 = phi ptr [ @.str.5, %1481 ], [ @.str.2, %1477 ]
  store i32 %1472, ptr %550, align 4, !tbaa !5
  %1483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1484 = load i32, ptr @test_count, align 4, !tbaa !5
  %1485 = load i32, ptr %496, align 4, !tbaa !5
  %1486 = tail call ptr @s2n_strerror(i32 noundef %1485, ptr noundef nonnull @.str.4) #8
  %1487 = load i32, ptr %496, align 4, !tbaa !5
  %1488 = tail call ptr @s2n_strerror_debug(i32 noundef %1487, ptr noundef nonnull @.str.4) #8
  %1489 = load i32, ptr %550, align 4, !tbaa !5
  %1490 = tail call ptr @strerror(i32 noundef %1489) #8
  %1491 = load i32, ptr %550, align 4, !tbaa !5
  %1492 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1483, ptr noundef nonnull %.str.5.sink916, i32 noundef %1484, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 199, ptr noundef %1486, ptr noundef %1488, ptr noundef %1490, i32 noundef %1491) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1493:                                             ; preds = %1467
  %1494 = load i32, ptr @test_count, align 4, !tbaa !5
  %1495 = add nsw i32 %1494, 1
  store i32 %1495, ptr @test_count, align 4, !tbaa !5
  %1496 = tail call i32 @s2n_connection_free(ptr noundef nonnull %1310) #8
  %1497 = icmp eq i32 %1496, -1
  br i1 %1497, label %1498, label %1303

1498:                                             ; preds = %1493
  %1499 = load i32, ptr %550, align 4, !tbaa !5
  %1500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1501 = tail call i32 @s2n_print_stacktrace(ptr noundef %1500) #8
  %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 = %1498
  %1505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1506 = tail call i32 @fileno(ptr noundef %1505) #8
  %1507 = tail call i32 @isatty(i32 noundef %1506) #8
  %.not355 = icmp eq i32 %1507, 0
  br i1 %.not355, label %1508, label %1509

1508:                                             ; preds = %1504, %1498
  br label %1509

1509:                                             ; preds = %1504, %1508
  %.str.5.sink925 = phi ptr [ @.str.5, %1508 ], [ @.str.2, %1504 ]
  store i32 %1499, ptr %550, 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 %496, align 4, !tbaa !5
  %1513 = tail call ptr @s2n_strerror(i32 noundef %1512, ptr noundef nonnull @.str.4) #8
  %1514 = load i32, ptr %496, align 4, !tbaa !5
  %1515 = tail call ptr @s2n_strerror_debug(i32 noundef %1514, ptr noundef nonnull @.str.4) #8
  %1516 = load i32, ptr %550, align 4, !tbaa !5
  %1517 = tail call ptr @strerror(i32 noundef %1516) #8
  %1518 = load i32, ptr %550, align 4, !tbaa !5
  %1519 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1510, ptr noundef nonnull %.str.5.sink925, i32 noundef %1511, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 202, ptr noundef %1513, ptr noundef %1515, ptr noundef %1517, i32 noundef %1518) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1520:                                             ; preds = %1305
  %1521 = load i32, ptr %550, align 4, !tbaa !5
  %1522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1523 = tail call i32 @s2n_print_stacktrace(ptr noundef %1522) #8
  %1524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1525 = trunc nuw i8 %1524 to i1
  br i1 %1525, label %1526, label %1530

1526:                                             ; preds = %1520
  %1527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1528 = tail call i32 @fileno(ptr noundef %1527) #8
  %1529 = tail call i32 @isatty(i32 noundef %1528) #8
  %.not329 = icmp eq i32 %1529, 0
  br i1 %.not329, label %1530, label %1531

1530:                                             ; preds = %1526, %1520
  br label %1531

1531:                                             ; preds = %1526, %1530
  %.str.5.sink934 = phi ptr [ @.str.5, %1530 ], [ @.str.2, %1526 ]
  store i32 %1521, ptr %550, align 4, !tbaa !5
  %1532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1533 = load i32, ptr @test_count, align 4, !tbaa !5
  %1534 = load i32, ptr %496, align 4, !tbaa !5
  %1535 = tail call ptr @s2n_strerror(i32 noundef %1534, ptr noundef nonnull @.str.4) #8
  %1536 = load i32, ptr %496, align 4, !tbaa !5
  %1537 = tail call ptr @s2n_strerror_debug(i32 noundef %1536, ptr noundef nonnull @.str.4) #8
  %1538 = load i32, ptr %550, align 4, !tbaa !5
  %1539 = tail call ptr @strerror(i32 noundef %1538) #8
  %1540 = load i32, ptr %550, align 4, !tbaa !5
  %1541 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1532, ptr noundef nonnull %.str.5.sink934, i32 noundef %1533, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %1535, ptr noundef %1537, ptr noundef %1539, i32 noundef %1540) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1542:                                             ; preds = %1305
  %1543 = load i32, ptr @test_count, align 4, !tbaa !5
  %1544 = add nsw i32 %1543, 1
  store i32 %1544, ptr @test_count, align 4, !tbaa !5
  %1545 = load i32, ptr %496, align 4, !tbaa !5
  %1546 = icmp eq i32 %1545, 402653193
  br i1 %1546, label %1569, label %1547

1547:                                             ; preds = %1542
  %1548 = load i32, ptr %550, align 4, !tbaa !5
  %1549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1550 = tail call i32 @s2n_print_stacktrace(ptr noundef %1549) #8
  %1551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1552 = trunc nuw i8 %1551 to i1
  br i1 %1552, label %1553, label %1557

1553:                                             ; preds = %1547
  %1554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1555 = tail call i32 @fileno(ptr noundef %1554) #8
  %1556 = tail call i32 @isatty(i32 noundef %1555) #8
  %.not330 = icmp eq i32 %1556, 0
  br i1 %.not330, label %1557, label %1558

1557:                                             ; preds = %1553, %1547
  br label %1558

1558:                                             ; preds = %1553, %1557
  %.str.5.sink943 = phi ptr [ @.str.5, %1557 ], [ @.str.2, %1553 ]
  store i32 %1548, ptr %550, align 4, !tbaa !5
  %1559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1560 = load i32, ptr @test_count, align 4, !tbaa !5
  %1561 = load i32, ptr %496, align 4, !tbaa !5
  %1562 = tail call ptr @s2n_strerror(i32 noundef %1561, ptr noundef nonnull @.str.4) #8
  %1563 = load i32, ptr %496, align 4, !tbaa !5
  %1564 = tail call ptr @s2n_strerror_debug(i32 noundef %1563, ptr noundef nonnull @.str.4) #8
  %1565 = load i32, ptr %550, align 4, !tbaa !5
  %1566 = tail call ptr @strerror(i32 noundef %1565) #8
  %1567 = load i32, ptr %550, align 4, !tbaa !5
  %1568 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1559, ptr noundef nonnull %.str.5.sink943, i32 noundef %1560, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %1562, ptr noundef %1564, ptr noundef %1566, i32 noundef %1567) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1569:                                             ; preds = %1542
  %1570 = add nsw i32 %1543, 2
  store i32 %1570, ptr @test_count, align 4, !tbaa !5
  %1571 = tail call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #8
  %1572 = icmp eq ptr %1571, null
  br i1 %1572, label %1573, label %1595

1573:                                             ; preds = %1569
  %1574 = load i32, ptr %550, align 4, !tbaa !5
  %1575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1576 = tail call i32 @s2n_print_stacktrace(ptr noundef %1575) #8
  %1577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1578 = trunc nuw i8 %1577 to i1
  br i1 %1578, label %1579, label %1583

1579:                                             ; preds = %1573
  %1580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1581 = tail call i32 @fileno(ptr noundef %1580) #8
  %1582 = tail call i32 @isatty(i32 noundef %1581) #8
  %.not352 = icmp eq i32 %1582, 0
  br i1 %.not352, label %1583, label %1584

1583:                                             ; preds = %1579, %1573
  br label %1584

1584:                                             ; preds = %1579, %1583
  %.str.5.sink952 = phi ptr [ @.str.5, %1583 ], [ @.str.2, %1579 ]
  store i32 %1574, ptr %550, align 4, !tbaa !5
  %1585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1586 = load i32, ptr @test_count, align 4, !tbaa !5
  %1587 = load i32, ptr %496, align 4, !tbaa !5
  %1588 = tail call ptr @s2n_strerror(i32 noundef %1587, ptr noundef nonnull @.str.4) #8
  %1589 = load i32, ptr %496, align 4, !tbaa !5
  %1590 = tail call ptr @s2n_strerror_debug(i32 noundef %1589, ptr noundef nonnull @.str.4) #8
  %1591 = load i32, ptr %550, align 4, !tbaa !5
  %1592 = tail call ptr @strerror(i32 noundef %1591) #8
  %1593 = load i32, ptr %550, align 4, !tbaa !5
  %1594 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1585, ptr noundef nonnull %.str.5.sink952, i32 noundef %1586, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %1588, ptr noundef %1590, ptr noundef %1592, i32 noundef %1593) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1595:                                             ; preds = %1569
  store i32 0, ptr %496, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #8
  store i32 0, ptr %550, align 4, !tbaa !5
  br label %1602

1596:                                             ; preds = %1763
  %1597 = add nuw nsw i32 %.0304399, 1
  %exitcond404.not = icmp eq i32 %1597, 129
  br i1 %exitcond404.not, label %1598, label %1602, !llvm.loop !48

1598:                                             ; preds = %1596
  %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 = tail call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef null, i32 noundef 0) #8
  br i1 %1601, label %1790, label %.preheader

1602:                                             ; preds = %1595, %1596
  %.0304399 = phi i32 [ 16, %1595 ], [ %1597, %1596 ]
  %1603 = tail call ptr @s2n_connection_new(i32 noundef 1) #8
  %1604 = load i32, ptr @test_count, align 4, !tbaa !5
  %1605 = add nsw i32 %1604, 1
  store i32 %1605, ptr @test_count, align 4, !tbaa !5
  %1606 = icmp eq ptr %1603, null
  br i1 %1606, label %1607, label %1629

1607:                                             ; preds = %1602
  %1608 = load i32, ptr %550, align 4, !tbaa !5
  %1609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1610 = tail call i32 @s2n_print_stacktrace(ptr noundef %1609) #8
  %1611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1612 = trunc nuw i8 %1611 to i1
  br i1 %1612, label %1613, label %1617

1613:                                             ; preds = %1607
  %1614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1615 = tail call i32 @fileno(ptr noundef %1614) #8
  %1616 = tail call i32 @isatty(i32 noundef %1615) #8
  %.not351 = icmp eq i32 %1616, 0
  br i1 %.not351, label %1617, label %1618

1617:                                             ; preds = %1613, %1607
  br label %1618

1618:                                             ; preds = %1613, %1617
  %.str.5.sink961 = phi ptr [ @.str.5, %1617 ], [ @.str.2, %1613 ]
  store i32 %1608, ptr %550, align 4, !tbaa !5
  %1619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1620 = load i32, ptr @test_count, align 4, !tbaa !5
  %1621 = load i32, ptr %496, align 4, !tbaa !5
  %1622 = tail call ptr @s2n_strerror(i32 noundef %1621, ptr noundef nonnull @.str.4) #8
  %1623 = load i32, ptr %496, align 4, !tbaa !5
  %1624 = tail call ptr @s2n_strerror_debug(i32 noundef %1623, ptr noundef nonnull @.str.4) #8
  %1625 = load i32, ptr %550, align 4, !tbaa !5
  %1626 = tail call ptr @strerror(i32 noundef %1625) #8
  %1627 = load i32, ptr %550, align 4, !tbaa !5
  %1628 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1619, ptr noundef nonnull %.str.5.sink961, i32 noundef %1620, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 214, ptr noundef %1622, ptr noundef %1624, ptr noundef %1626, i32 noundef %1627) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1629:                                             ; preds = %1602
  %1630 = getelementptr inbounds i8, ptr %1603, i64 220
  store i8 34, ptr %1630, align 4, !tbaa !44
  %1631 = add nsw i32 %1604, 2
  store i32 %1631, ptr @test_count, align 4, !tbaa !5
  %1632 = tail call i32 @s2n_handshake_type_set_tls13_flag(ptr noundef nonnull %1603, i32 noundef %.0304399) #8
  %1633 = tail call zeroext i1 @s2n_result_is_ok(i32 %1632)
  br i1 %1633, label %1656, label %1634

1634:                                             ; preds = %1629
  %1635 = load i32, ptr %550, align 4, !tbaa !5
  %1636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1637 = tail call i32 @s2n_print_stacktrace(ptr noundef %1636) #8
  %1638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1639 = trunc nuw i8 %1638 to i1
  br i1 %1639, label %1640, label %1644

1640:                                             ; preds = %1634
  %1641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1642 = tail call i32 @fileno(ptr noundef %1641) #8
  %1643 = tail call i32 @isatty(i32 noundef %1642) #8
  %.not345 = icmp eq i32 %1643, 0
  br i1 %.not345, label %1644, label %1645

1644:                                             ; preds = %1640, %1634
  br label %1645

1645:                                             ; preds = %1640, %1644
  %.str.5.sink970 = phi ptr [ @.str.5, %1644 ], [ @.str.2, %1640 ]
  store i32 %1635, ptr %550, align 4, !tbaa !5
  %1646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1647 = load i32, ptr @test_count, align 4, !tbaa !5
  %1648 = load i32, ptr %496, align 4, !tbaa !5
  %1649 = tail call ptr @s2n_strerror(i32 noundef %1648, ptr noundef nonnull @.str.4) #8
  %1650 = load i32, ptr %496, align 4, !tbaa !5
  %1651 = tail call ptr @s2n_strerror_debug(i32 noundef %1650, ptr noundef nonnull @.str.4) #8
  %1652 = load i32, ptr %550, align 4, !tbaa !5
  %1653 = tail call ptr @strerror(i32 noundef %1652) #8
  %1654 = load i32, ptr %550, align 4, !tbaa !5
  %1655 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1646, ptr noundef nonnull %.str.5.sink970, i32 noundef %1647, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %1649, ptr noundef %1651, ptr noundef %1653, i32 noundef %1654) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1656:                                             ; preds = %1629
  %1657 = load i32, ptr @test_count, align 4, !tbaa !5
  %1658 = add nsw i32 %1657, 1
  store i32 %1658, ptr @test_count, align 4, !tbaa !5
  %1659 = getelementptr inbounds i8, ptr %1603, i64 2172
  %1660 = load i32, ptr %1659, align 4, !tbaa !15
  %1661 = icmp eq i32 %1660, %.0304399
  br i1 %1661, label %1684, label %1662

1662:                                             ; preds = %1656
  %1663 = load i32, ptr %550, align 4, !tbaa !5
  %1664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1665 = tail call i32 @s2n_print_stacktrace(ptr noundef %1664) #8
  %1666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1667 = trunc nuw i8 %1666 to i1
  br i1 %1667, label %1668, label %1672

1668:                                             ; preds = %1662
  %1669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1670 = tail call i32 @fileno(ptr noundef %1669) #8
  %1671 = tail call i32 @isatty(i32 noundef %1670) #8
  %.not346 = icmp eq i32 %1671, 0
  br i1 %.not346, label %1672, label %1673

1672:                                             ; preds = %1668, %1662
  br label %1673

1673:                                             ; preds = %1668, %1672
  %.str.5.sink979 = phi ptr [ @.str.5, %1672 ], [ @.str.2, %1668 ]
  store i32 %1663, ptr %550, align 4, !tbaa !5
  %1674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1675 = load i32, ptr @test_count, align 4, !tbaa !5
  %1676 = load i32, ptr %496, align 4, !tbaa !5
  %1677 = tail call ptr @s2n_strerror(i32 noundef %1676, ptr noundef nonnull @.str.4) #8
  %1678 = load i32, ptr %496, align 4, !tbaa !5
  %1679 = tail call ptr @s2n_strerror_debug(i32 noundef %1678, ptr noundef nonnull @.str.4) #8
  %1680 = load i32, ptr %550, align 4, !tbaa !5
  %1681 = tail call ptr @strerror(i32 noundef %1680) #8
  %1682 = load i32, ptr %550, align 4, !tbaa !5
  %1683 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1674, ptr noundef nonnull %.str.5.sink979, i32 noundef %1675, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 218, ptr noundef %1677, ptr noundef %1679, ptr noundef %1681, i32 noundef %1682) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1684:                                             ; preds = %1656
  store i8 33, ptr %1630, align 4, !tbaa !44
  %1685 = add nsw i32 %1657, 2
  store i32 %1685, ptr @test_count, align 4, !tbaa !5
  %1686 = tail call i32 @s2n_handshake_type_set_tls13_flag(ptr noundef nonnull %1603, i32 noundef %.0304399) #8
  %1687 = tail call zeroext i1 @s2n_result_is_error(i32 %1686)
  br i1 %1687, label %1710, label %1688

1688:                                             ; preds = %1684
  %1689 = load i32, ptr %550, align 4, !tbaa !5
  %1690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1691 = tail call i32 @s2n_print_stacktrace(ptr noundef %1690) #8
  %1692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1693 = trunc nuw i8 %1692 to i1
  br i1 %1693, label %1694, label %1698

1694:                                             ; preds = %1688
  %1695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1696 = tail call i32 @fileno(ptr noundef %1695) #8
  %1697 = tail call i32 @isatty(i32 noundef %1696) #8
  %.not347 = icmp eq i32 %1697, 0
  br i1 %.not347, label %1698, label %1699

1698:                                             ; preds = %1694, %1688
  br label %1699

1699:                                             ; preds = %1694, %1698
  %.str.5.sink988 = phi ptr [ @.str.5, %1698 ], [ @.str.2, %1694 ]
  store i32 %1689, ptr %550, align 4, !tbaa !5
  %1700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1701 = load i32, ptr @test_count, align 4, !tbaa !5
  %1702 = load i32, ptr %496, align 4, !tbaa !5
  %1703 = tail call ptr @s2n_strerror(i32 noundef %1702, ptr noundef nonnull @.str.4) #8
  %1704 = load i32, ptr %496, align 4, !tbaa !5
  %1705 = tail call ptr @s2n_strerror_debug(i32 noundef %1704, ptr noundef nonnull @.str.4) #8
  %1706 = load i32, ptr %550, align 4, !tbaa !5
  %1707 = tail call ptr @strerror(i32 noundef %1706) #8
  %1708 = load i32, ptr %550, align 4, !tbaa !5
  %1709 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1700, ptr noundef nonnull %.str.5.sink988, i32 noundef %1701, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 221, ptr noundef %1703, ptr noundef %1705, ptr noundef %1707, i32 noundef %1708) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1710:                                             ; preds = %1684
  %1711 = load i32, ptr @test_count, align 4, !tbaa !5
  %1712 = add nsw i32 %1711, 1
  store i32 %1712, ptr @test_count, align 4, !tbaa !5
  %1713 = load i32, ptr %496, align 4, !tbaa !5
  %1714 = icmp eq i32 %1713, 402653218
  br i1 %1714, label %1737, label %1715

1715:                                             ; preds = %1710
  %1716 = load i32, ptr %550, align 4, !tbaa !5
  %1717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1718 = tail call i32 @s2n_print_stacktrace(ptr noundef %1717) #8
  %1719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1720 = trunc nuw i8 %1719 to i1
  br i1 %1720, label %1721, label %1725

1721:                                             ; preds = %1715
  %1722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1723 = tail call i32 @fileno(ptr noundef %1722) #8
  %1724 = tail call i32 @isatty(i32 noundef %1723) #8
  %.not348 = icmp eq i32 %1724, 0
  br i1 %.not348, label %1725, label %1726

1725:                                             ; preds = %1721, %1715
  br label %1726

1726:                                             ; preds = %1721, %1725
  %.str.5.sink997 = phi ptr [ @.str.5, %1725 ], [ @.str.2, %1721 ]
  store i32 %1716, ptr %550, align 4, !tbaa !5
  %1727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1728 = load i32, ptr @test_count, align 4, !tbaa !5
  %1729 = load i32, ptr %496, align 4, !tbaa !5
  %1730 = tail call ptr @s2n_strerror(i32 noundef %1729, ptr noundef nonnull @.str.4) #8
  %1731 = load i32, ptr %496, align 4, !tbaa !5
  %1732 = tail call ptr @s2n_strerror_debug(i32 noundef %1731, ptr noundef nonnull @.str.4) #8
  %1733 = load i32, ptr %550, align 4, !tbaa !5
  %1734 = tail call ptr @strerror(i32 noundef %1733) #8
  %1735 = load i32, ptr %550, align 4, !tbaa !5
  %1736 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1727, ptr noundef nonnull %.str.5.sink997, i32 noundef %1728, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 221, ptr noundef %1730, ptr noundef %1732, ptr noundef %1734, i32 noundef %1735) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1737:                                             ; preds = %1710
  %1738 = add nsw i32 %1711, 2
  store i32 %1738, ptr @test_count, align 4, !tbaa !5
  %1739 = tail call ptr @s2n_strerror_debug(i32 noundef 402653218, ptr noundef nonnull @.str.4) #8
  %1740 = icmp eq ptr %1739, null
  br i1 %1740, label %1741, label %1763

1741:                                             ; preds = %1737
  %1742 = load i32, ptr %550, align 4, !tbaa !5
  %1743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1744 = tail call i32 @s2n_print_stacktrace(ptr noundef %1743) #8
  %1745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1746 = trunc nuw i8 %1745 to i1
  br i1 %1746, label %1747, label %1751

1747:                                             ; preds = %1741
  %1748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1749 = tail call i32 @fileno(ptr noundef %1748) #8
  %1750 = tail call i32 @isatty(i32 noundef %1749) #8
  %.not350 = icmp eq i32 %1750, 0
  br i1 %.not350, label %1751, label %1752

1751:                                             ; preds = %1747, %1741
  br label %1752

1752:                                             ; preds = %1747, %1751
  %.str.5.sink1006 = phi ptr [ @.str.5, %1751 ], [ @.str.2, %1747 ]
  store i32 %1742, ptr %550, align 4, !tbaa !5
  %1753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1754 = load i32, ptr @test_count, align 4, !tbaa !5
  %1755 = load i32, ptr %496, align 4, !tbaa !5
  %1756 = tail call ptr @s2n_strerror(i32 noundef %1755, ptr noundef nonnull @.str.4) #8
  %1757 = load i32, ptr %496, align 4, !tbaa !5
  %1758 = tail call ptr @s2n_strerror_debug(i32 noundef %1757, ptr noundef nonnull @.str.4) #8
  %1759 = load i32, ptr %550, align 4, !tbaa !5
  %1760 = tail call ptr @strerror(i32 noundef %1759) #8
  %1761 = load i32, ptr %550, align 4, !tbaa !5
  %1762 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1753, ptr noundef nonnull %.str.5.sink1006, i32 noundef %1754, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 221, ptr noundef %1756, ptr noundef %1758, ptr noundef %1760, i32 noundef %1761) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1763:                                             ; preds = %1737
  store i32 0, ptr %496, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #8
  store i32 0, ptr %550, align 4, !tbaa !5
  %1764 = load i32, ptr @test_count, align 4, !tbaa !5
  %1765 = add nsw i32 %1764, 1
  store i32 %1765, ptr @test_count, align 4, !tbaa !5
  %1766 = tail call i32 @s2n_connection_free(ptr noundef nonnull %1603) #8
  %1767 = icmp eq i32 %1766, -1
  br i1 %1767, label %1768, label %1596

1768:                                             ; preds = %1763
  %1769 = load i32, ptr %550, align 4, !tbaa !5
  %1770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1771 = tail call i32 @s2n_print_stacktrace(ptr noundef %1770) #8
  %1772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1773 = trunc nuw i8 %1772 to i1
  br i1 %1773, label %1774, label %1778

1774:                                             ; preds = %1768
  %1775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1776 = tail call i32 @fileno(ptr noundef %1775) #8
  %1777 = tail call i32 @isatty(i32 noundef %1776) #8
  %.not349 = icmp eq i32 %1777, 0
  br i1 %.not349, label %1778, label %1779

1778:                                             ; preds = %1774, %1768
  br label %1779

1779:                                             ; preds = %1774, %1778
  %.str.5.sink1015 = phi ptr [ @.str.5, %1778 ], [ @.str.2, %1774 ]
  store i32 %1769, ptr %550, align 4, !tbaa !5
  %1780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1781 = load i32, ptr @test_count, align 4, !tbaa !5
  %1782 = load i32, ptr %496, align 4, !tbaa !5
  %1783 = tail call ptr @s2n_strerror(i32 noundef %1782, ptr noundef nonnull @.str.4) #8
  %1784 = load i32, ptr %496, align 4, !tbaa !5
  %1785 = tail call ptr @s2n_strerror_debug(i32 noundef %1784, ptr noundef nonnull @.str.4) #8
  %1786 = load i32, ptr %550, align 4, !tbaa !5
  %1787 = tail call ptr @strerror(i32 noundef %1786) #8
  %1788 = load i32, ptr %550, align 4, !tbaa !5
  %1789 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1780, ptr noundef nonnull %.str.5.sink1015, i32 noundef %1781, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 223, ptr noundef %1783, ptr noundef %1785, ptr noundef %1787, i32 noundef %1788) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1790:                                             ; preds = %1598
  %1791 = load i32, ptr %550, align 4, !tbaa !5
  %1792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1793 = tail call i32 @s2n_print_stacktrace(ptr noundef %1792) #8
  %1794 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1795 = trunc nuw i8 %1794 to i1
  br i1 %1795, label %1796, label %1800

1796:                                             ; preds = %1790
  %1797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1798 = tail call i32 @fileno(ptr noundef %1797) #8
  %1799 = tail call i32 @isatty(i32 noundef %1798) #8
  %.not344 = icmp eq i32 %1799, 0
  br i1 %.not344, label %1800, label %1801

1800:                                             ; preds = %1796, %1790
  br label %1801

1801:                                             ; preds = %1796, %1800
  %.str.5.sink1024 = phi ptr [ @.str.5, %1800 ], [ @.str.2, %1796 ]
  store i32 %1791, ptr %550, align 4, !tbaa !5
  %1802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1803 = load i32, ptr @test_count, align 4, !tbaa !5
  %1804 = load i32, ptr %496, align 4, !tbaa !5
  %1805 = tail call ptr @s2n_strerror(i32 noundef %1804, ptr noundef nonnull @.str.4) #8
  %1806 = load i32, ptr %496, align 4, !tbaa !5
  %1807 = tail call ptr @s2n_strerror_debug(i32 noundef %1806, ptr noundef nonnull @.str.4) #8
  %1808 = load i32, ptr %550, align 4, !tbaa !5
  %1809 = tail call ptr @strerror(i32 noundef %1808) #8
  %1810 = load i32, ptr %550, align 4, !tbaa !5
  %1811 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1802, ptr noundef nonnull %.str.5.sink1024, i32 noundef %1803, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 230, ptr noundef %1805, ptr noundef %1807, ptr noundef %1809, i32 noundef %1810) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1812:                                             ; preds = %2000
  %1813 = add nuw nsw i32 %.0305400, 1
  %exitcond405.not = icmp eq i32 %1813, 129
  br i1 %exitcond405.not, label %1814, label %.preheader, !llvm.loop !49

1814:                                             ; preds = %1812
  %1815 = tail call i32 @s2n_cleanup() #8
  %1816 = icmp eq i32 %1815, -1
  br i1 %1816, label %2027, label %2049

.preheader:                                       ; preds = %1598, %1812
  %.0305400 = phi i32 [ %1813, %1812 ], [ 16, %1598 ]
  %1817 = tail call ptr @s2n_connection_new(i32 noundef 1) #8
  %1818 = load i32, ptr @test_count, align 4, !tbaa !5
  %1819 = add nsw i32 %1818, 1
  store i32 %1819, ptr @test_count, align 4, !tbaa !5
  %1820 = icmp eq ptr %1817, null
  br i1 %1820, label %1821, label %1843

1821:                                             ; preds = %.preheader
  %1822 = load i32, ptr %550, align 4, !tbaa !5
  %1823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1824 = tail call i32 @s2n_print_stacktrace(ptr noundef %1823) #8
  %1825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1826 = trunc nuw i8 %1825 to i1
  br i1 %1826, label %1827, label %1831

1827:                                             ; preds = %1821
  %1828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1829 = tail call i32 @fileno(ptr noundef %1828) #8
  %1830 = tail call i32 @isatty(i32 noundef %1829) #8
  %.not343 = icmp eq i32 %1830, 0
  br i1 %.not343, label %1831, label %1832

1831:                                             ; preds = %1827, %1821
  br label %1832

1832:                                             ; preds = %1827, %1831
  %.str.5.sink1033 = phi ptr [ @.str.5, %1831 ], [ @.str.2, %1827 ]
  store i32 %1822, ptr %550, align 4, !tbaa !5
  %1833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1834 = load i32, ptr @test_count, align 4, !tbaa !5
  %1835 = load i32, ptr %496, align 4, !tbaa !5
  %1836 = tail call ptr @s2n_strerror(i32 noundef %1835, ptr noundef nonnull @.str.4) #8
  %1837 = load i32, ptr %496, align 4, !tbaa !5
  %1838 = tail call ptr @s2n_strerror_debug(i32 noundef %1837, ptr noundef nonnull @.str.4) #8
  %1839 = load i32, ptr %550, align 4, !tbaa !5
  %1840 = tail call ptr @strerror(i32 noundef %1839) #8
  %1841 = load i32, ptr %550, align 4, !tbaa !5
  %1842 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1833, ptr noundef nonnull %.str.5.sink1033, i32 noundef %1834, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 235, ptr noundef %1836, ptr noundef %1838, ptr noundef %1840, i32 noundef %1841) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1843:                                             ; preds = %.preheader
  %1844 = getelementptr inbounds i8, ptr %1817, i64 2172
  store i32 65535, ptr %1844, align 4, !tbaa !15
  %1845 = getelementptr inbounds i8, ptr %1817, i64 220
  store i8 33, ptr %1845, align 4, !tbaa !44
  %1846 = add nsw i32 %1818, 2
  store i32 %1846, ptr @test_count, align 4, !tbaa !5
  %1847 = tail call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef nonnull %1817, i32 noundef %.0305400) #8
  br i1 %1847, label %1848, label %1870

1848:                                             ; preds = %1843
  %1849 = load i32, ptr %550, align 4, !tbaa !5
  %1850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1851 = tail call i32 @s2n_print_stacktrace(ptr noundef %1850) #8
  %1852 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1853 = trunc nuw i8 %1852 to i1
  br i1 %1853, label %1854, label %1858

1854:                                             ; preds = %1848
  %1855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1856 = tail call i32 @fileno(ptr noundef %1855) #8
  %1857 = tail call i32 @isatty(i32 noundef %1856) #8
  %.not342 = icmp eq i32 %1857, 0
  br i1 %.not342, label %1858, label %1859

1858:                                             ; preds = %1854, %1848
  br label %1859

1859:                                             ; preds = %1854, %1858
  %.str.5.sink1042 = phi ptr [ @.str.5, %1858 ], [ @.str.2, %1854 ]
  store i32 %1849, ptr %550, align 4, !tbaa !5
  %1860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1861 = load i32, ptr @test_count, align 4, !tbaa !5
  %1862 = load i32, ptr %496, align 4, !tbaa !5
  %1863 = tail call ptr @s2n_strerror(i32 noundef %1862, ptr noundef nonnull @.str.4) #8
  %1864 = load i32, ptr %496, align 4, !tbaa !5
  %1865 = tail call ptr @s2n_strerror_debug(i32 noundef %1864, ptr noundef nonnull @.str.4) #8
  %1866 = load i32, ptr %550, align 4, !tbaa !5
  %1867 = tail call ptr @strerror(i32 noundef %1866) #8
  %1868 = load i32, ptr %550, align 4, !tbaa !5
  %1869 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1860, ptr noundef nonnull %.str.5.sink1042, i32 noundef %1861, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 242, ptr noundef %1863, ptr noundef %1865, ptr noundef %1867, i32 noundef %1868) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1870:                                             ; preds = %1843
  store i8 34, ptr %1845, align 4, !tbaa !44
  %1871 = load i32, ptr @test_count, align 4, !tbaa !5
  %1872 = add nsw i32 %1871, 1
  store i32 %1872, ptr @test_count, align 4, !tbaa !5
  %1873 = tail call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef nonnull %1817, i32 noundef %.0305400) #8
  br i1 %1873, label %1896, label %1874

1874:                                             ; preds = %1870
  %1875 = load i32, ptr %550, align 4, !tbaa !5
  %1876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1877 = tail call i32 @s2n_print_stacktrace(ptr noundef %1876) #8
  %1878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1879 = trunc nuw i8 %1878 to i1
  br i1 %1879, label %1880, label %1884

1880:                                             ; preds = %1874
  %1881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1882 = tail call i32 @fileno(ptr noundef %1881) #8
  %1883 = tail call i32 @isatty(i32 noundef %1882) #8
  %.not336 = icmp eq i32 %1883, 0
  br i1 %.not336, label %1884, label %1885

1884:                                             ; preds = %1880, %1874
  br label %1885

1885:                                             ; preds = %1880, %1884
  %.str.5.sink1051 = phi ptr [ @.str.5, %1884 ], [ @.str.2, %1880 ]
  store i32 %1875, ptr %550, align 4, !tbaa !5
  %1886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1887 = load i32, ptr @test_count, align 4, !tbaa !5
  %1888 = load i32, ptr %496, align 4, !tbaa !5
  %1889 = tail call ptr @s2n_strerror(i32 noundef %1888, ptr noundef nonnull @.str.4) #8
  %1890 = load i32, ptr %496, align 4, !tbaa !5
  %1891 = tail call ptr @s2n_strerror_debug(i32 noundef %1890, ptr noundef nonnull @.str.4) #8
  %1892 = load i32, ptr %550, align 4, !tbaa !5
  %1893 = tail call ptr @strerror(i32 noundef %1892) #8
  %1894 = load i32, ptr %550, align 4, !tbaa !5
  %1895 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1886, ptr noundef nonnull %.str.5.sink1051, i32 noundef %1887, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 245, ptr noundef %1889, ptr noundef %1891, ptr noundef %1893, i32 noundef %1894) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1896:                                             ; preds = %1870
  store i32 0, ptr %1844, align 4, !tbaa !15
  store i8 33, ptr %1845, align 4, !tbaa !44
  %1897 = load i32, ptr @test_count, align 4, !tbaa !5
  %1898 = add nsw i32 %1897, 1
  store i32 %1898, ptr @test_count, align 4, !tbaa !5
  %1899 = tail call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef nonnull %1817, i32 noundef %.0305400) #8
  br i1 %1899, label %1900, label %1922

1900:                                             ; preds = %1896
  %1901 = load i32, ptr %550, align 4, !tbaa !5
  %1902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1903 = tail call i32 @s2n_print_stacktrace(ptr noundef %1902) #8
  %1904 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1905 = trunc nuw i8 %1904 to i1
  br i1 %1905, label %1906, label %1910

1906:                                             ; preds = %1900
  %1907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1908 = tail call i32 @fileno(ptr noundef %1907) #8
  %1909 = tail call i32 @isatty(i32 noundef %1908) #8
  %.not341 = icmp eq i32 %1909, 0
  br i1 %.not341, label %1910, label %1911

1910:                                             ; preds = %1906, %1900
  br label %1911

1911:                                             ; preds = %1906, %1910
  %.str.5.sink1060 = phi ptr [ @.str.5, %1910 ], [ @.str.2, %1906 ]
  store i32 %1901, ptr %550, align 4, !tbaa !5
  %1912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1913 = load i32, ptr @test_count, align 4, !tbaa !5
  %1914 = load i32, ptr %496, align 4, !tbaa !5
  %1915 = tail call ptr @s2n_strerror(i32 noundef %1914, ptr noundef nonnull @.str.4) #8
  %1916 = load i32, ptr %496, align 4, !tbaa !5
  %1917 = tail call ptr @s2n_strerror_debug(i32 noundef %1916, ptr noundef nonnull @.str.4) #8
  %1918 = load i32, ptr %550, align 4, !tbaa !5
  %1919 = tail call ptr @strerror(i32 noundef %1918) #8
  %1920 = load i32, ptr %550, align 4, !tbaa !5
  %1921 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1912, ptr noundef nonnull %.str.5.sink1060, i32 noundef %1913, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 253, ptr noundef %1915, ptr noundef %1917, ptr noundef %1919, i32 noundef %1920) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1922:                                             ; preds = %1896
  store i8 34, ptr %1845, align 4, !tbaa !44
  %1923 = load i32, ptr @test_count, align 4, !tbaa !5
  %1924 = add nsw i32 %1923, 1
  store i32 %1924, ptr @test_count, align 4, !tbaa !5
  %1925 = tail call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef nonnull %1817, i32 noundef %.0305400) #8
  br i1 %1925, label %1926, label %1948

1926:                                             ; preds = %1922
  %1927 = load i32, ptr %550, align 4, !tbaa !5
  %1928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1929 = tail call i32 @s2n_print_stacktrace(ptr noundef %1928) #8
  %1930 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1931 = trunc nuw i8 %1930 to i1
  br i1 %1931, label %1932, label %1936

1932:                                             ; preds = %1926
  %1933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1934 = tail call i32 @fileno(ptr noundef %1933) #8
  %1935 = tail call i32 @isatty(i32 noundef %1934) #8
  %.not340 = icmp eq i32 %1935, 0
  br i1 %.not340, label %1936, label %1937

1936:                                             ; preds = %1932, %1926
  br label %1937

1937:                                             ; preds = %1932, %1936
  %.str.5.sink1069 = phi ptr [ @.str.5, %1936 ], [ @.str.2, %1932 ]
  store i32 %1927, ptr %550, align 4, !tbaa !5
  %1938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1939 = load i32, ptr @test_count, align 4, !tbaa !5
  %1940 = load i32, ptr %496, align 4, !tbaa !5
  %1941 = tail call ptr @s2n_strerror(i32 noundef %1940, ptr noundef nonnull @.str.4) #8
  %1942 = load i32, ptr %496, align 4, !tbaa !5
  %1943 = tail call ptr @s2n_strerror_debug(i32 noundef %1942, ptr noundef nonnull @.str.4) #8
  %1944 = load i32, ptr %550, align 4, !tbaa !5
  %1945 = tail call ptr @strerror(i32 noundef %1944) #8
  %1946 = load i32, ptr %550, align 4, !tbaa !5
  %1947 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1938, ptr noundef nonnull %.str.5.sink1069, i32 noundef %1939, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 256, ptr noundef %1941, ptr noundef %1943, ptr noundef %1945, i32 noundef %1946) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1948:                                             ; preds = %1922
  store i32 %.0305400, ptr %1844, align 4, !tbaa !15
  store i8 33, ptr %1845, align 4, !tbaa !44
  %1949 = load i32, ptr @test_count, align 4, !tbaa !5
  %1950 = add nsw i32 %1949, 1
  store i32 %1950, ptr @test_count, align 4, !tbaa !5
  %1951 = tail call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef nonnull %1817, i32 noundef %.0305400) #8
  br i1 %1951, label %1952, label %1974

1952:                                             ; preds = %1948
  %1953 = load i32, ptr %550, align 4, !tbaa !5
  %1954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1955 = tail call i32 @s2n_print_stacktrace(ptr noundef %1954) #8
  %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 = %1952
  %1959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1960 = tail call i32 @fileno(ptr noundef %1959) #8
  %1961 = tail call i32 @isatty(i32 noundef %1960) #8
  %.not339 = icmp eq i32 %1961, 0
  br i1 %.not339, label %1962, label %1963

1962:                                             ; preds = %1958, %1952
  br label %1963

1963:                                             ; preds = %1958, %1962
  %.str.5.sink1078 = phi ptr [ @.str.5, %1962 ], [ @.str.2, %1958 ]
  store i32 %1953, ptr %550, 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 %496, align 4, !tbaa !5
  %1967 = tail call ptr @s2n_strerror(i32 noundef %1966, ptr noundef nonnull @.str.4) #8
  %1968 = load i32, ptr %496, align 4, !tbaa !5
  %1969 = tail call ptr @s2n_strerror_debug(i32 noundef %1968, ptr noundef nonnull @.str.4) #8
  %1970 = load i32, ptr %550, align 4, !tbaa !5
  %1971 = tail call ptr @strerror(i32 noundef %1970) #8
  %1972 = load i32, ptr %550, align 4, !tbaa !5
  %1973 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1964, ptr noundef nonnull %.str.5.sink1078, i32 noundef %1965, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 264, ptr noundef %1967, ptr noundef %1969, ptr noundef %1971, i32 noundef %1972) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

1974:                                             ; preds = %1948
  store i8 34, ptr %1845, align 4, !tbaa !44
  %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 = tail call zeroext i1 @s2n_handshake_type_check_tls13_flag(ptr noundef nonnull %1817, i32 noundef %.0305400) #8
  br i1 %1977, label %2000, label %1978

1978:                                             ; preds = %1974
  %1979 = load i32, ptr %550, align 4, !tbaa !5
  %1980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1981 = tail call i32 @s2n_print_stacktrace(ptr noundef %1980) #8
  %1982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1983 = trunc nuw i8 %1982 to i1
  br i1 %1983, label %1984, label %1988

1984:                                             ; preds = %1978
  %1985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1986 = tail call i32 @fileno(ptr noundef %1985) #8
  %1987 = tail call i32 @isatty(i32 noundef %1986) #8
  %.not337 = icmp eq i32 %1987, 0
  br i1 %.not337, label %1988, label %1989

1988:                                             ; preds = %1984, %1978
  br label %1989

1989:                                             ; preds = %1984, %1988
  %.str.5.sink1087 = phi ptr [ @.str.5, %1988 ], [ @.str.2, %1984 ]
  store i32 %1979, ptr %550, align 4, !tbaa !5
  %1990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1991 = load i32, ptr @test_count, align 4, !tbaa !5
  %1992 = load i32, ptr %496, align 4, !tbaa !5
  %1993 = tail call ptr @s2n_strerror(i32 noundef %1992, ptr noundef nonnull @.str.4) #8
  %1994 = load i32, ptr %496, align 4, !tbaa !5
  %1995 = tail call ptr @s2n_strerror_debug(i32 noundef %1994, ptr noundef nonnull @.str.4) #8
  %1996 = load i32, ptr %550, align 4, !tbaa !5
  %1997 = tail call ptr @strerror(i32 noundef %1996) #8
  %1998 = load i32, ptr %550, align 4, !tbaa !5
  %1999 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1990, ptr noundef nonnull %.str.5.sink1087, i32 noundef %1991, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 267, ptr noundef %1993, ptr noundef %1995, ptr noundef %1997, i32 noundef %1998) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

2000:                                             ; preds = %1974
  %2001 = load i32, ptr @test_count, align 4, !tbaa !5
  %2002 = add nsw i32 %2001, 1
  store i32 %2002, ptr @test_count, align 4, !tbaa !5
  %2003 = tail call i32 @s2n_connection_free(ptr noundef nonnull %1817) #8
  %2004 = icmp eq i32 %2003, -1
  br i1 %2004, label %2005, label %1812

2005:                                             ; preds = %2000
  %2006 = load i32, ptr %550, align 4, !tbaa !5
  %2007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2008 = tail call i32 @s2n_print_stacktrace(ptr noundef %2007) #8
  %2009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2010 = trunc nuw i8 %2009 to i1
  br i1 %2010, label %2011, label %2015

2011:                                             ; preds = %2005
  %2012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2013 = tail call i32 @fileno(ptr noundef %2012) #8
  %2014 = tail call i32 @isatty(i32 noundef %2013) #8
  %.not338 = icmp eq i32 %2014, 0
  br i1 %.not338, label %2015, label %2016

2015:                                             ; preds = %2011, %2005
  br label %2016

2016:                                             ; preds = %2011, %2015
  %.str.5.sink1096 = phi ptr [ @.str.5, %2015 ], [ @.str.2, %2011 ]
  store i32 %2006, ptr %550, align 4, !tbaa !5
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = load i32, ptr @test_count, align 4, !tbaa !5
  %2019 = load i32, ptr %496, align 4, !tbaa !5
  %2020 = tail call ptr @s2n_strerror(i32 noundef %2019, ptr noundef nonnull @.str.4) #8
  %2021 = load i32, ptr %496, align 4, !tbaa !5
  %2022 = tail call ptr @s2n_strerror_debug(i32 noundef %2021, ptr noundef nonnull @.str.4) #8
  %2023 = load i32, ptr %550, align 4, !tbaa !5
  %2024 = tail call ptr @strerror(i32 noundef %2023) #8
  %2025 = load i32, ptr %550, align 4, !tbaa !5
  %2026 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2017, ptr noundef nonnull %.str.5.sink1096, i32 noundef %2018, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 270, ptr noundef %2020, ptr noundef %2022, ptr noundef %2024, i32 noundef %2025) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

2027:                                             ; preds = %1814
  %2028 = load i32, ptr %550, align 4, !tbaa !5
  %2029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2030 = tail call i32 @s2n_print_stacktrace(ptr noundef %2029) #8
  %2031 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2032 = trunc nuw i8 %2031 to i1
  br i1 %2032, label %2033, label %2037

2033:                                             ; preds = %2027
  %2034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2035 = tail call i32 @fileno(ptr noundef %2034) #8
  %2036 = tail call i32 @isatty(i32 noundef %2035) #8
  %.not335 = icmp eq i32 %2036, 0
  br i1 %.not335, label %2037, label %2038

2037:                                             ; preds = %2033, %2027
  br label %2038

2038:                                             ; preds = %2033, %2037
  %.str.5.sink1105 = phi ptr [ @.str.5, %2037 ], [ @.str.2, %2033 ]
  store i32 %2028, ptr %550, align 4, !tbaa !5
  %2039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2040 = load i32, ptr @test_count, align 4, !tbaa !5
  %2041 = load i32, ptr %496, align 4, !tbaa !5
  %2042 = tail call ptr @s2n_strerror(i32 noundef %2041, ptr noundef nonnull @.str.4) #8
  %2043 = load i32, ptr %496, align 4, !tbaa !5
  %2044 = tail call ptr @s2n_strerror_debug(i32 noundef %2043, ptr noundef nonnull @.str.4) #8
  %2045 = load i32, ptr %550, align 4, !tbaa !5
  %2046 = tail call ptr @strerror(i32 noundef %2045) #8
  %2047 = load i32, ptr %550, align 4, !tbaa !5
  %2048 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2039, ptr noundef nonnull %.str.5.sink1105, i32 noundef %2040, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 274, ptr noundef %2042, ptr noundef %2044, ptr noundef %2046, i32 noundef %2047) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

2049:                                             ; preds = %1814
  %2050 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #8
  %2051 = icmp eq i32 %2050, -1
  br i1 %2051, label %2052, label %2074

2052:                                             ; preds = %2049
  %2053 = load i32, ptr %550, align 4, !tbaa !5
  %2054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2055 = tail call i32 @s2n_print_stacktrace(ptr noundef %2054) #8
  %2056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2057 = trunc nuw i8 %2056 to i1
  br i1 %2057, label %2058, label %2062

2058:                                             ; preds = %2052
  %2059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2060 = tail call i32 @fileno(ptr noundef %2059) #8
  %2061 = tail call i32 @isatty(i32 noundef %2060) #8
  %.not334 = icmp eq i32 %2061, 0
  br i1 %.not334, label %2062, label %2063

2062:                                             ; preds = %2058, %2052
  br label %2063

2063:                                             ; preds = %2058, %2062
  %.str.5.sink1114 = phi ptr [ @.str.5, %2062 ], [ @.str.2, %2058 ]
  store i32 %2053, ptr %550, align 4, !tbaa !5
  %2064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2065 = load i32, ptr @test_count, align 4, !tbaa !5
  %2066 = load i32, ptr %496, align 4, !tbaa !5
  %2067 = tail call ptr @s2n_strerror(i32 noundef %2066, ptr noundef nonnull @.str.4) #8
  %2068 = load i32, ptr %496, align 4, !tbaa !5
  %2069 = tail call ptr @s2n_strerror_debug(i32 noundef %2068, ptr noundef nonnull @.str.4) #8
  %2070 = load i32, ptr %550, align 4, !tbaa !5
  %2071 = tail call ptr @strerror(i32 noundef %2070) #8
  %2072 = load i32, ptr %550, align 4, !tbaa !5
  %2073 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2064, ptr noundef nonnull %.str.5.sink1114, i32 noundef %2065, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 274, ptr noundef %2067, ptr noundef %2069, ptr noundef %2071, i32 noundef %2072) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

2074:                                             ; preds = %2049
  %2075 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2076 = trunc nuw i8 %2075 to i1
  br i1 %2076, label %2077, label %2088

2077:                                             ; preds = %2074
  %2078 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2079 = tail call i32 @fileno(ptr noundef %2078) #8
  %2080 = tail call i32 @isatty(i32 noundef %2079) #8
  %.not331 = icmp eq i32 %2080, 0
  br i1 %.not331, label %2088, label %2081

2081:                                             ; preds = %2077
  %2082 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not333 = icmp eq i32 %2082, 0
  %2083 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not333, label %2086, label %2084

2084:                                             ; preds = %2081
  %2085 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2083, ptr noundef nonnull @.str.38, i32 noundef %2082) #8
  br label %2095

2086:                                             ; preds = %2081
  %2087 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2083, ptr noundef nonnull @.str.39) #8
  br label %2095

2088:                                             ; preds = %2077, %2074
  %2089 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not332 = icmp eq i32 %2089, 0
  %2090 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not332, label %2093, label %2091

2091:                                             ; preds = %2088
  %2092 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2090, ptr noundef nonnull @.str.40, i32 noundef %2089) #8
  br label %2095

2093:                                             ; preds = %2088
  %2094 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2090, ptr noundef nonnull @.str.41) #8
  br label %2095

2095:                                             ; preds = %2091, %2093, %2084, %2086
  ret i32 0
}

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

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #3

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

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

declare i32 @s2n_handshake_type_reset(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_handshake_type_set_flag(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

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

declare void @s2n_debug_info_reset() local_unnamed_addr #2

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

declare i32 @s2n_handshake_type_set_tls12_flag(ptr noundef, i32 noundef) local_unnamed_addr #2

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

declare i32 @s2n_handshake_type_set_tls13_flag(ptr noundef, i32 noundef) local_unnamed_addr #2

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

declare i32 @s2n_cleanup() local_unnamed_addr #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress 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 #4 = { 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 #5 = { mustprogress 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 = { 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 #8 = { nounwind }
attributes #9 = { nounwind willreturn memory(none) }
attributes #10 = { cold nounwind }
attributes #11 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !6, i64 2172}
!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 = !{!16, !7, i64 220}
!45 = distinct !{!45, !43}
!46 = distinct !{!46, !43}
!47 = distinct !{!47, !43}
!48 = distinct !{!48, !43}
!49 = distinct !{!49, !43}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass