; LLVM IR from aws/s2n-tls :: tests/unit (s2n_malformed_handshake_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 [87 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 [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [40 x i8], align 1
@server_hello_message = external hidden global [74 x i8], align 16
@good_certificate_list = external hidden global [828 x i8], align 16
@.str.17 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [70 x i8], align 1
@zero_to_thirty_one = external hidden global [32 x i8], align 16
@.str.24 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [29 x i8], align 1
@empty_certificate_list = external hidden global [7 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [72 x i8], align 1
@empty_certificate = external hidden global [10 x i8], align 1
@certificate_list_too_large = external hidden global [10 x i8], align 1
@certificate_too_large = external hidden global [10 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local void @send_messages(i32 noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef) #0

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

declare i32 @close(i32 noundef) #2

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #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 [2 x i32], align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca i32, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca i32, align 4
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i32, align 4
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca i32, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca 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
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i32, align 4
  %117 = alloca i32, align 4
  %118 = alloca %struct.s2n_result, align 4
  %119 = alloca %struct.s2n_result, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #8
  store i32 0, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  store i32 0, ptr %8, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #8
  br label %120

120:                                              ; preds = %2
  br label %121

121:                                              ; preds = %120
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %122 = load ptr, ptr @stdout, align 8, !tbaa !9
  %123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %122, ptr noundef @.str, ptr noundef @.str.1) #8
  %124 = load ptr, ptr @stdout, align 8, !tbaa !9
  %125 = call i32 @fflush(ptr noundef %124)
  br label %126

126:                                              ; preds = %121
  %127 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %128 = icmp eq i32 %127, -1
  br i1 %128, label %129, label %182

129:                                              ; preds = %126
  br label %130

130:                                              ; preds = %129
  br label %131

131:                                              ; preds = %130
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #8
  %132 = call ptr @__errno_location() #9
  %133 = load i32, ptr %132, align 4, !tbaa !5
  store i32 %133, ptr %10, align 4, !tbaa !5
  %134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %135 = call i32 @s2n_print_stacktrace(ptr noundef %134)
  %136 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %137 = trunc i8 %136 to i1
  br i1 %137, label %138, label %160

138:                                              ; preds = %131
  %139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %140 = call i32 @fileno(ptr noundef %139) #8
  %141 = call i32 @isatty(i32 noundef %140) #8
  %142 = icmp ne i32 %141, 0
  br i1 %142, label %143, label %160

143:                                              ; preds = %138
  %144 = load i32, ptr %10, align 4, !tbaa !5
  %145 = call ptr @__errno_location() #9
  store i32 %144, ptr %145, align 4, !tbaa !5
  %146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %147 = load i32, ptr @test_count, align 4, !tbaa !5
  %148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %149 = load i32, ptr %148, align 4, !tbaa !5
  %150 = call ptr @s2n_strerror(i32 noundef %149, ptr noundef @.str.4)
  %151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %152 = load i32, ptr %151, align 4, !tbaa !5
  %153 = call ptr @s2n_strerror_debug(i32 noundef %152, ptr noundef @.str.4)
  %154 = call ptr @__errno_location() #9
  %155 = load i32, ptr %154, align 4, !tbaa !5
  %156 = call ptr @strerror(i32 noundef %155) #8
  %157 = call ptr @__errno_location() #9
  %158 = load i32, ptr %157, align 4, !tbaa !5
  %159 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %146, ptr noundef @.str.2, i32 noundef %147, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 233, ptr noundef %150, ptr noundef %153, ptr noundef %156, i32 noundef %158) #8
  br label %177

160:                                              ; preds = %138, %131
  %161 = load i32, ptr %10, align 4, !tbaa !5
  %162 = call ptr @__errno_location() #9
  store i32 %161, ptr %162, align 4, !tbaa !5
  %163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %164 = load i32, ptr @test_count, align 4, !tbaa !5
  %165 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %166 = load i32, ptr %165, align 4, !tbaa !5
  %167 = call ptr @s2n_strerror(i32 noundef %166, ptr noundef @.str.4)
  %168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %169 = load i32, ptr %168, align 4, !tbaa !5
  %170 = call ptr @s2n_strerror_debug(i32 noundef %169, ptr noundef @.str.4)
  %171 = call ptr @__errno_location() #9
  %172 = load i32, ptr %171, align 4, !tbaa !5
  %173 = call ptr @strerror(i32 noundef %172) #8
  %174 = call ptr @__errno_location() #9
  %175 = load i32, ptr %174, align 4, !tbaa !5
  %176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %163, ptr noundef @.str.5, i32 noundef %164, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 233, ptr noundef %167, ptr noundef %170, ptr noundef %173, i32 noundef %175) #8
  br label %177

177:                                              ; preds = %160, %143
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #8
  br label %178

178:                                              ; preds = %177
  br label %179

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

180:                                              ; No predecessors!
  br label %181

181:                                              ; preds = %180
  br label %182

182:                                              ; preds = %181, %126
  br label %183

183:                                              ; preds = %182
  br label %184

184:                                              ; preds = %183
  br label %185

185:                                              ; preds = %184
  %186 = load i32, ptr @test_count, align 4, !tbaa !5
  %187 = add nsw i32 %186, 1
  store i32 %187, ptr @test_count, align 4, !tbaa !5
  %188 = call i32 @s2n_enable_atexit()
  %189 = icmp eq i32 %188, -1
  br i1 %189, label %190, label %243

190:                                              ; preds = %185
  br label %191

191:                                              ; preds = %190
  br label %192

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

199:                                              ; preds = %192
  %200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %201 = call i32 @fileno(ptr noundef %200) #8
  %202 = call i32 @isatty(i32 noundef %201) #8
  %203 = icmp ne i32 %202, 0
  br i1 %203, label %204, label %221

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

221:                                              ; preds = %199, %192
  %222 = load i32, ptr %11, align 4, !tbaa !5
  %223 = call ptr @__errno_location() #9
  store i32 %222, ptr %223, align 4, !tbaa !5
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = load i32, ptr @test_count, align 4, !tbaa !5
  %226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %227 = load i32, ptr %226, align 4, !tbaa !5
  %228 = call ptr @s2n_strerror(i32 noundef %227, ptr noundef @.str.4)
  %229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %230 = load i32, ptr %229, align 4, !tbaa !5
  %231 = call ptr @s2n_strerror_debug(i32 noundef %230, ptr noundef @.str.4)
  %232 = call ptr @__errno_location() #9
  %233 = load i32, ptr %232, align 4, !tbaa !5
  %234 = call ptr @strerror(i32 noundef %233) #8
  %235 = call ptr @__errno_location() #9
  %236 = load i32, ptr %235, align 4, !tbaa !5
  %237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %224, ptr noundef @.str.5, i32 noundef %225, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 233, ptr noundef %228, ptr noundef %231, ptr noundef %234, i32 noundef %236) #8
  br label %238

238:                                              ; preds = %221, %204
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  br label %239

239:                                              ; preds = %238
  br label %240

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

241:                                              ; No predecessors!
  br label %242

242:                                              ; preds = %241
  br label %243

243:                                              ; preds = %242, %185
  br label %244

244:                                              ; preds = %243
  br label %245

245:                                              ; preds = %244
  br label %246

246:                                              ; preds = %245
  br label %247

247:                                              ; preds = %246
  br label %248

248:                                              ; preds = %247
  %249 = call i32 @s2n_init()
  %250 = icmp eq i32 %249, -1
  br i1 %250, label %251, label %304

251:                                              ; preds = %248
  br label %252

252:                                              ; preds = %251
  br label %253

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

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

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

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

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

300:                                              ; preds = %299
  br label %301

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

302:                                              ; No predecessors!
  br label %303

303:                                              ; preds = %302
  br label %304

304:                                              ; preds = %303, %248
  br label %305

305:                                              ; preds = %304
  br label %306

306:                                              ; preds = %305
  br label %307

307:                                              ; preds = %306
  br label %308

308:                                              ; preds = %307
  br label %309

309:                                              ; preds = %308
  %310 = load i32, ptr @test_count, align 4, !tbaa !5
  %311 = add nsw i32 %310, 1
  store i32 %311, ptr @test_count, align 4, !tbaa !5
  %312 = call i32 (...) @s2n_disable_tls13_in_test()
  %313 = icmp eq i32 %312, -1
  br i1 %313, label %314, label %367

314:                                              ; preds = %309
  br label %315

315:                                              ; preds = %314
  br label %316

316:                                              ; preds = %315
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #8
  %317 = call ptr @__errno_location() #9
  %318 = load i32, ptr %317, align 4, !tbaa !5
  store i32 %318, ptr %13, align 4, !tbaa !5
  %319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %320 = call i32 @s2n_print_stacktrace(ptr noundef %319)
  %321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %322 = trunc i8 %321 to i1
  br i1 %322, label %323, label %345

323:                                              ; preds = %316
  %324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %325 = call i32 @fileno(ptr noundef %324) #8
  %326 = call i32 @isatty(i32 noundef %325) #8
  %327 = icmp ne i32 %326, 0
  br i1 %327, label %328, label %345

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

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

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

363:                                              ; preds = %362
  br label %364

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

365:                                              ; No predecessors!
  br label %366

366:                                              ; preds = %365
  br label %367

367:                                              ; preds = %366, %309
  br label %368

368:                                              ; preds = %367
  br label %369

369:                                              ; preds = %368
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #8
  %370 = call ptr @s2n_config_new()
  store ptr %370, ptr %14, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #8
  %371 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %371, ptr %15, align 8, !tbaa !9
  br label %372

372:                                              ; preds = %369
  %373 = load i32, ptr @test_count, align 4, !tbaa !5
  %374 = add nsw i32 %373, 1
  store i32 %374, ptr @test_count, align 4, !tbaa !5
  %375 = load ptr, ptr %14, align 8, !tbaa !9
  %376 = call i32 @s2n_config_disable_x509_verification(ptr noundef %375)
  %377 = icmp eq i32 %376, -1
  br i1 %377, label %378, label %431

378:                                              ; preds = %372
  br label %379

379:                                              ; preds = %378
  br label %380

380:                                              ; preds = %379
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  %381 = call ptr @__errno_location() #9
  %382 = load i32, ptr %381, align 4, !tbaa !5
  store i32 %382, ptr %16, align 4, !tbaa !5
  %383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %384 = call i32 @s2n_print_stacktrace(ptr noundef %383)
  %385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %386 = trunc i8 %385 to i1
  br i1 %386, label %387, label %409

387:                                              ; preds = %380
  %388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %389 = call i32 @fileno(ptr noundef %388) #8
  %390 = call i32 @isatty(i32 noundef %389) #8
  %391 = icmp ne i32 %390, 0
  br i1 %391, label %392, label %409

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

409:                                              ; preds = %387, %380
  %410 = load i32, ptr %16, align 4, !tbaa !5
  %411 = call ptr @__errno_location() #9
  store i32 %410, ptr %411, align 4, !tbaa !5
  %412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %413 = load i32, ptr @test_count, align 4, !tbaa !5
  %414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %415 = load i32, ptr %414, align 4, !tbaa !5
  %416 = call ptr @s2n_strerror(i32 noundef %415, ptr noundef @.str.4)
  %417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %418 = load i32, ptr %417, align 4, !tbaa !5
  %419 = call ptr @s2n_strerror_debug(i32 noundef %418, ptr noundef @.str.4)
  %420 = call ptr @__errno_location() #9
  %421 = load i32, ptr %420, align 4, !tbaa !5
  %422 = call ptr @strerror(i32 noundef %421) #8
  %423 = call ptr @__errno_location() #9
  %424 = load i32, ptr %423, align 4, !tbaa !5
  %425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %412, ptr noundef @.str.5, i32 noundef %413, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 238, ptr noundef %416, ptr noundef %419, ptr noundef %422, i32 noundef %424) #8
  br label %426

426:                                              ; preds = %409, %392
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  br label %427

427:                                              ; preds = %426
  br label %428

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

429:                                              ; No predecessors!
  br label %430

430:                                              ; preds = %429
  br label %431

431:                                              ; preds = %430, %372
  br label %432

432:                                              ; preds = %431
  br label %433

433:                                              ; preds = %432
  br label %434

434:                                              ; preds = %433
  %435 = load i32, ptr @test_count, align 4, !tbaa !5
  %436 = add nsw i32 %435, 1
  store i32 %436, ptr @test_count, align 4, !tbaa !5
  %437 = load ptr, ptr %14, align 8, !tbaa !9
  %438 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %437, ptr noundef @.str.10)
  %439 = icmp eq i32 %438, -1
  br i1 %439, label %440, label %493

440:                                              ; preds = %434
  br label %441

441:                                              ; preds = %440
  br label %442

442:                                              ; preds = %441
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  %443 = call ptr @__errno_location() #9
  %444 = load i32, ptr %443, align 4, !tbaa !5
  store i32 %444, ptr %17, align 4, !tbaa !5
  %445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %446 = call i32 @s2n_print_stacktrace(ptr noundef %445)
  %447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %448 = trunc i8 %447 to i1
  br i1 %448, label %449, label %471

449:                                              ; preds = %442
  %450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %451 = call i32 @fileno(ptr noundef %450) #8
  %452 = call i32 @isatty(i32 noundef %451) #8
  %453 = icmp ne i32 %452, 0
  br i1 %453, label %454, label %471

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

471:                                              ; preds = %449, %442
  %472 = load i32, ptr %17, 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.5, i32 noundef %475, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 239, ptr noundef %478, ptr noundef %481, ptr noundef %484, i32 noundef %486) #8
  br label %488

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

489:                                              ; preds = %488
  br label %490

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

491:                                              ; No predecessors!
  br label %492

492:                                              ; preds = %491
  br label %493

493:                                              ; preds = %492, %434
  br label %494

494:                                              ; preds = %493
  br label %495

495:                                              ; preds = %494
  br label %496

496:                                              ; preds = %495
  %497 = load i32, ptr @test_count, align 4, !tbaa !5
  %498 = add nsw i32 %497, 1
  store i32 %498, ptr @test_count, align 4, !tbaa !5
  %499 = load ptr, ptr %15, align 8, !tbaa !9
  %500 = load ptr, ptr %14, align 8, !tbaa !9
  %501 = call i32 @s2n_connection_set_config(ptr noundef %499, ptr noundef %500)
  %502 = icmp eq i32 %501, -1
  br i1 %502, label %503, label %556

503:                                              ; preds = %496
  br label %504

504:                                              ; preds = %503
  br label %505

505:                                              ; preds = %504
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #8
  %506 = call ptr @__errno_location() #9
  %507 = load i32, ptr %506, align 4, !tbaa !5
  store i32 %507, ptr %18, align 4, !tbaa !5
  %508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %509 = call i32 @s2n_print_stacktrace(ptr noundef %508)
  %510 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %511 = trunc i8 %510 to i1
  br i1 %511, label %512, label %534

512:                                              ; preds = %505
  %513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %514 = call i32 @fileno(ptr noundef %513) #8
  %515 = call i32 @isatty(i32 noundef %514) #8
  %516 = icmp ne i32 %515, 0
  br i1 %516, label %517, label %534

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

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

551:                                              ; preds = %534, %517
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  br label %552

552:                                              ; preds = %551
  br label %553

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

554:                                              ; No predecessors!
  br label %555

555:                                              ; preds = %554
  br label %556

556:                                              ; preds = %555, %496
  br label %557

557:                                              ; preds = %556
  br label %558

558:                                              ; preds = %557
  br label %559

559:                                              ; preds = %558
  %560 = load i32, ptr @test_count, align 4, !tbaa !5
  %561 = add nsw i32 %560, 1
  store i32 %561, ptr @test_count, align 4, !tbaa !5
  %562 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %563 = call i32 @pipe(ptr noundef %562) #8
  %564 = icmp eq i32 %563, -1
  br i1 %564, label %565, label %618

565:                                              ; preds = %559
  br label %566

566:                                              ; preds = %565
  br label %567

567:                                              ; preds = %566
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  %568 = call ptr @__errno_location() #9
  %569 = load i32, ptr %568, align 4, !tbaa !5
  store i32 %569, ptr %19, align 4, !tbaa !5
  %570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %571 = call i32 @s2n_print_stacktrace(ptr noundef %570)
  %572 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %573 = trunc i8 %572 to i1
  br i1 %573, label %574, label %596

574:                                              ; preds = %567
  %575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %576 = call i32 @fileno(ptr noundef %575) #8
  %577 = call i32 @isatty(i32 noundef %576) #8
  %578 = icmp ne i32 %577, 0
  br i1 %578, label %579, label %596

579:                                              ; preds = %574
  %580 = load i32, ptr %19, align 4, !tbaa !5
  %581 = call ptr @__errno_location() #9
  store i32 %580, ptr %581, align 4, !tbaa !5
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %585 = load i32, ptr %584, align 4, !tbaa !5
  %586 = call ptr @s2n_strerror(i32 noundef %585, ptr noundef @.str.4)
  %587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = call ptr @s2n_strerror_debug(i32 noundef %588, ptr noundef @.str.4)
  %590 = call ptr @__errno_location() #9
  %591 = load i32, ptr %590, align 4, !tbaa !5
  %592 = call ptr @strerror(i32 noundef %591) #8
  %593 = call ptr @__errno_location() #9
  %594 = load i32, ptr %593, align 4, !tbaa !5
  %595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %582, ptr noundef @.str.2, i32 noundef %583, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 245, ptr noundef %586, ptr noundef %589, ptr noundef %592, i32 noundef %594) #8
  br label %613

596:                                              ; preds = %574, %567
  %597 = load i32, ptr %19, align 4, !tbaa !5
  %598 = call ptr @__errno_location() #9
  store i32 %597, ptr %598, align 4, !tbaa !5
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = load i32, ptr @test_count, align 4, !tbaa !5
  %601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %602 = load i32, ptr %601, align 4, !tbaa !5
  %603 = call ptr @s2n_strerror(i32 noundef %602, ptr noundef @.str.4)
  %604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %605 = load i32, ptr %604, align 4, !tbaa !5
  %606 = call ptr @s2n_strerror_debug(i32 noundef %605, ptr noundef @.str.4)
  %607 = call ptr @__errno_location() #9
  %608 = load i32, ptr %607, align 4, !tbaa !5
  %609 = call ptr @strerror(i32 noundef %608) #8
  %610 = call ptr @__errno_location() #9
  %611 = load i32, ptr %610, align 4, !tbaa !5
  %612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %599, ptr noundef @.str.5, i32 noundef %600, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 245, ptr noundef %603, ptr noundef %606, ptr noundef %609, i32 noundef %611) #8
  br label %613

613:                                              ; preds = %596, %579
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %614

614:                                              ; preds = %613
  br label %615

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

616:                                              ; No predecessors!
  br label %617

617:                                              ; preds = %616
  br label %618

618:                                              ; preds = %617, %559
  br label %619

619:                                              ; preds = %618
  br label %620

620:                                              ; preds = %619
  br label %621

621:                                              ; preds = %620
  %622 = load i32, ptr @test_count, align 4, !tbaa !5
  %623 = add nsw i32 %622, 1
  store i32 %623, ptr @test_count, align 4, !tbaa !5
  %624 = load ptr, ptr %15, align 8, !tbaa !9
  %625 = call i32 @s2n_connection_wipe(ptr noundef %624)
  %626 = icmp eq i32 %625, -1
  br i1 %626, label %627, label %680

627:                                              ; preds = %621
  br label %628

628:                                              ; preds = %627
  br label %629

629:                                              ; preds = %628
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #8
  %630 = call ptr @__errno_location() #9
  %631 = load i32, ptr %630, align 4, !tbaa !5
  store i32 %631, ptr %20, align 4, !tbaa !5
  %632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %633 = call i32 @s2n_print_stacktrace(ptr noundef %632)
  %634 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %635 = trunc i8 %634 to i1
  br i1 %635, label %636, label %658

636:                                              ; preds = %629
  %637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %638 = call i32 @fileno(ptr noundef %637) #8
  %639 = call i32 @isatty(i32 noundef %638) #8
  %640 = icmp ne i32 %639, 0
  br i1 %640, label %641, label %658

641:                                              ; preds = %636
  %642 = load i32, ptr %20, align 4, !tbaa !5
  %643 = call ptr @__errno_location() #9
  store i32 %642, ptr %643, align 4, !tbaa !5
  %644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %645 = load i32, ptr @test_count, align 4, !tbaa !5
  %646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %647 = load i32, ptr %646, align 4, !tbaa !5
  %648 = call ptr @s2n_strerror(i32 noundef %647, ptr noundef @.str.4)
  %649 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %650 = load i32, ptr %649, align 4, !tbaa !5
  %651 = call ptr @s2n_strerror_debug(i32 noundef %650, ptr noundef @.str.4)
  %652 = call ptr @__errno_location() #9
  %653 = load i32, ptr %652, align 4, !tbaa !5
  %654 = call ptr @strerror(i32 noundef %653) #8
  %655 = call ptr @__errno_location() #9
  %656 = load i32, ptr %655, align 4, !tbaa !5
  %657 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %644, ptr noundef @.str.2, i32 noundef %645, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 247, ptr noundef %648, ptr noundef %651, ptr noundef %654, i32 noundef %656) #8
  br label %675

658:                                              ; preds = %636, %629
  %659 = load i32, ptr %20, align 4, !tbaa !5
  %660 = call ptr @__errno_location() #9
  store i32 %659, ptr %660, align 4, !tbaa !5
  %661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %662 = load i32, ptr @test_count, align 4, !tbaa !5
  %663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %664 = load i32, ptr %663, align 4, !tbaa !5
  %665 = call ptr @s2n_strerror(i32 noundef %664, ptr noundef @.str.4)
  %666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %667 = load i32, ptr %666, align 4, !tbaa !5
  %668 = call ptr @s2n_strerror_debug(i32 noundef %667, ptr noundef @.str.4)
  %669 = call ptr @__errno_location() #9
  %670 = load i32, ptr %669, align 4, !tbaa !5
  %671 = call ptr @strerror(i32 noundef %670) #8
  %672 = call ptr @__errno_location() #9
  %673 = load i32, ptr %672, align 4, !tbaa !5
  %674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %661, ptr noundef @.str.5, i32 noundef %662, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 247, ptr noundef %665, ptr noundef %668, ptr noundef %671, i32 noundef %673) #8
  br label %675

675:                                              ; preds = %658, %641
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  br label %676

676:                                              ; preds = %675
  br label %677

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

678:                                              ; No predecessors!
  br label %679

679:                                              ; preds = %678
  br label %680

680:                                              ; preds = %679, %621
  br label %681

681:                                              ; preds = %680
  br label %682

682:                                              ; preds = %681
  br label %683

683:                                              ; preds = %682
  %684 = load i32, ptr @test_count, align 4, !tbaa !5
  %685 = add nsw i32 %684, 1
  store i32 %685, ptr @test_count, align 4, !tbaa !5
  %686 = load ptr, ptr %15, align 8, !tbaa !9
  %687 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %688 = load i32, ptr %687, align 4, !tbaa !5
  %689 = call i32 @s2n_connection_set_read_fd(ptr noundef %686, i32 noundef %688)
  %690 = icmp eq i32 %689, -1
  br i1 %690, label %691, label %744

691:                                              ; preds = %683
  br label %692

692:                                              ; preds = %691
  br label %693

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

700:                                              ; preds = %693
  %701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %702 = call i32 @fileno(ptr noundef %701) #8
  %703 = call i32 @isatty(i32 noundef %702) #8
  %704 = icmp ne i32 %703, 0
  br i1 %704, label %705, label %722

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

722:                                              ; preds = %700, %693
  %723 = load i32, ptr %21, align 4, !tbaa !5
  %724 = call ptr @__errno_location() #9
  store i32 %723, ptr %724, align 4, !tbaa !5
  %725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %726 = load i32, ptr @test_count, align 4, !tbaa !5
  %727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = call ptr @s2n_strerror(i32 noundef %728, ptr noundef @.str.4)
  %730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %731 = load i32, ptr %730, align 4, !tbaa !5
  %732 = call ptr @s2n_strerror_debug(i32 noundef %731, ptr noundef @.str.4)
  %733 = call ptr @__errno_location() #9
  %734 = load i32, ptr %733, align 4, !tbaa !5
  %735 = call ptr @strerror(i32 noundef %734) #8
  %736 = call ptr @__errno_location() #9
  %737 = load i32, ptr %736, align 4, !tbaa !5
  %738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %725, ptr noundef @.str.5, i32 noundef %726, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 250, ptr noundef %729, ptr noundef %732, ptr noundef %735, i32 noundef %737) #8
  br label %739

739:                                              ; preds = %722, %705
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %740

740:                                              ; preds = %739
  br label %741

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

742:                                              ; No predecessors!
  br label %743

743:                                              ; preds = %742
  br label %744

744:                                              ; preds = %743, %683
  br label %745

745:                                              ; preds = %744
  br label %746

746:                                              ; preds = %745
  %747 = load ptr, ptr %15, align 8, !tbaa !9
  %748 = getelementptr inbounds %struct.s2n_connection, ptr %747, i32 0, i32 52
  %749 = getelementptr inbounds %struct.s2n_handshake, ptr %748, i32 0, i32 6
  store i32 3, ptr %749, align 4, !tbaa !15
  %750 = load ptr, ptr %15, align 8, !tbaa !9
  %751 = getelementptr inbounds %struct.s2n_connection, ptr %750, i32 0, i32 52
  %752 = getelementptr inbounds %struct.s2n_handshake, ptr %751, i32 0, i32 7
  store i32 1, ptr %752, align 8, !tbaa !42
  %753 = load ptr, ptr %15, align 8, !tbaa !9
  %754 = getelementptr inbounds %struct.s2n_connection, ptr %753, i32 0, i32 22
  store i8 33, ptr %754, align 1, !tbaa !43
  %755 = load ptr, ptr %15, align 8, !tbaa !9
  %756 = getelementptr inbounds %struct.s2n_connection, ptr %755, i32 0, i32 21
  store i8 33, ptr %756, align 2, !tbaa !44
  %757 = load ptr, ptr %15, align 8, !tbaa !9
  %758 = getelementptr inbounds %struct.s2n_connection, ptr %757, i32 0, i32 23
  store i8 33, ptr %758, align 4, !tbaa !45
  %759 = call i32 @fork() #8
  store i32 %759, ptr %8, align 4, !tbaa !5
  %760 = load i32, ptr %8, align 4, !tbaa !5
  %761 = icmp eq i32 %760, 0
  br i1 %761, label %762, label %952

762:                                              ; preds = %746
  br label %763

763:                                              ; preds = %762
  %764 = load i32, ptr @test_count, align 4, !tbaa !5
  %765 = add nsw i32 %764, 1
  store i32 %765, ptr @test_count, align 4, !tbaa !5
  %766 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %767 = load i32, ptr %766, align 4, !tbaa !5
  %768 = call i32 @close(i32 noundef %767)
  %769 = icmp eq i32 %768, -1
  br i1 %769, label %770, label %823

770:                                              ; preds = %763
  br label %771

771:                                              ; preds = %770
  br label %772

772:                                              ; preds = %771
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  %773 = call ptr @__errno_location() #9
  %774 = load i32, ptr %773, align 4, !tbaa !5
  store i32 %774, ptr %22, align 4, !tbaa !5
  %775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %776 = call i32 @s2n_print_stacktrace(ptr noundef %775)
  %777 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %778 = trunc i8 %777 to i1
  br i1 %778, label %779, label %801

779:                                              ; preds = %772
  %780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %781 = call i32 @fileno(ptr noundef %780) #8
  %782 = call i32 @isatty(i32 noundef %781) #8
  %783 = icmp ne i32 %782, 0
  br i1 %783, label %784, label %801

784:                                              ; preds = %779
  %785 = load i32, ptr %22, align 4, !tbaa !5
  %786 = call ptr @__errno_location() #9
  store i32 %785, ptr %786, align 4, !tbaa !5
  %787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %788 = load i32, ptr @test_count, align 4, !tbaa !5
  %789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = call ptr @s2n_strerror(i32 noundef %790, ptr noundef @.str.4)
  %792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %793 = load i32, ptr %792, align 4, !tbaa !5
  %794 = call ptr @s2n_strerror_debug(i32 noundef %793, ptr noundef @.str.4)
  %795 = call ptr @__errno_location() #9
  %796 = load i32, ptr %795, align 4, !tbaa !5
  %797 = call ptr @strerror(i32 noundef %796) #8
  %798 = call ptr @__errno_location() #9
  %799 = load i32, ptr %798, align 4, !tbaa !5
  %800 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %787, ptr noundef @.str.2, i32 noundef %788, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 263, ptr noundef %791, ptr noundef %794, ptr noundef %797, i32 noundef %799) #8
  br label %818

801:                                              ; preds = %779, %772
  %802 = load i32, ptr %22, align 4, !tbaa !5
  %803 = call ptr @__errno_location() #9
  store i32 %802, ptr %803, align 4, !tbaa !5
  %804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %805 = load i32, ptr @test_count, align 4, !tbaa !5
  %806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %807 = load i32, ptr %806, align 4, !tbaa !5
  %808 = call ptr @s2n_strerror(i32 noundef %807, ptr noundef @.str.4)
  %809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %810 = load i32, ptr %809, align 4, !tbaa !5
  %811 = call ptr @s2n_strerror_debug(i32 noundef %810, ptr noundef @.str.4)
  %812 = call ptr @__errno_location() #9
  %813 = load i32, ptr %812, align 4, !tbaa !5
  %814 = call ptr @strerror(i32 noundef %813) #8
  %815 = call ptr @__errno_location() #9
  %816 = load i32, ptr %815, align 4, !tbaa !5
  %817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %804, ptr noundef @.str.5, i32 noundef %805, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 263, ptr noundef %808, ptr noundef %811, ptr noundef %814, i32 noundef %816) #8
  br label %818

818:                                              ; preds = %801, %784
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %819

819:                                              ; preds = %818
  br label %820

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

821:                                              ; No predecessors!
  br label %822

822:                                              ; preds = %821
  br label %823

823:                                              ; preds = %822, %763
  br label %824

824:                                              ; preds = %823
  br label %825

825:                                              ; preds = %824
  %826 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 1
  %827 = load i32, ptr %826, align 4, !tbaa !5
  call void @send_messages(i32 noundef %827, ptr noundef @server_hello_message, i32 noundef 74, ptr noundef @good_certificate_list, i32 noundef 828)
  br label %828

828:                                              ; preds = %825
  %829 = load i32, ptr @test_count, align 4, !tbaa !5
  %830 = add nsw i32 %829, 1
  store i32 %830, ptr @test_count, align 4, !tbaa !5
  %831 = load ptr, ptr %15, align 8, !tbaa !9
  %832 = call i32 @s2n_connection_free(ptr noundef %831)
  %833 = icmp eq i32 %832, -1
  br i1 %833, label %834, label %887

834:                                              ; preds = %828
  br label %835

835:                                              ; preds = %834
  br label %836

836:                                              ; preds = %835
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  %837 = call ptr @__errno_location() #9
  %838 = load i32, ptr %837, align 4, !tbaa !5
  store i32 %838, ptr %23, align 4, !tbaa !5
  %839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %840 = call i32 @s2n_print_stacktrace(ptr noundef %839)
  %841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %842 = trunc i8 %841 to i1
  br i1 %842, label %843, label %865

843:                                              ; preds = %836
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = call i32 @fileno(ptr noundef %844) #8
  %846 = call i32 @isatty(i32 noundef %845) #8
  %847 = icmp ne i32 %846, 0
  br i1 %847, label %848, label %865

848:                                              ; preds = %843
  %849 = load i32, ptr %23, align 4, !tbaa !5
  %850 = call ptr @__errno_location() #9
  store i32 %849, ptr %850, align 4, !tbaa !5
  %851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %852 = load i32, ptr @test_count, align 4, !tbaa !5
  %853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %854 = load i32, ptr %853, align 4, !tbaa !5
  %855 = call ptr @s2n_strerror(i32 noundef %854, ptr noundef @.str.4)
  %856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %857 = load i32, ptr %856, align 4, !tbaa !5
  %858 = call ptr @s2n_strerror_debug(i32 noundef %857, ptr noundef @.str.4)
  %859 = call ptr @__errno_location() #9
  %860 = load i32, ptr %859, align 4, !tbaa !5
  %861 = call ptr @strerror(i32 noundef %860) #8
  %862 = call ptr @__errno_location() #9
  %863 = load i32, ptr %862, align 4, !tbaa !5
  %864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %851, ptr noundef @.str.2, i32 noundef %852, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 267, ptr noundef %855, ptr noundef %858, ptr noundef %861, i32 noundef %863) #8
  br label %882

865:                                              ; preds = %843, %836
  %866 = load i32, ptr %23, align 4, !tbaa !5
  %867 = call ptr @__errno_location() #9
  store i32 %866, ptr %867, align 4, !tbaa !5
  %868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %869 = load i32, ptr @test_count, align 4, !tbaa !5
  %870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %871 = load i32, ptr %870, align 4, !tbaa !5
  %872 = call ptr @s2n_strerror(i32 noundef %871, ptr noundef @.str.4)
  %873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %874 = load i32, ptr %873, align 4, !tbaa !5
  %875 = call ptr @s2n_strerror_debug(i32 noundef %874, ptr noundef @.str.4)
  %876 = call ptr @__errno_location() #9
  %877 = load i32, ptr %876, align 4, !tbaa !5
  %878 = call ptr @strerror(i32 noundef %877) #8
  %879 = call ptr @__errno_location() #9
  %880 = load i32, ptr %879, align 4, !tbaa !5
  %881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %868, ptr noundef @.str.5, i32 noundef %869, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 267, ptr noundef %872, ptr noundef %875, ptr noundef %878, i32 noundef %880) #8
  br label %882

882:                                              ; preds = %865, %848
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  br label %883

883:                                              ; preds = %882
  br label %884

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

885:                                              ; No predecessors!
  br label %886

886:                                              ; preds = %885
  br label %887

887:                                              ; preds = %886, %828
  br label %888

888:                                              ; preds = %887
  br label %889

889:                                              ; preds = %888
  br label %890

890:                                              ; preds = %889
  %891 = load i32, ptr @test_count, align 4, !tbaa !5
  %892 = add nsw i32 %891, 1
  store i32 %892, ptr @test_count, align 4, !tbaa !5
  %893 = load ptr, ptr %14, align 8, !tbaa !9
  %894 = call i32 @s2n_config_free(ptr noundef %893)
  %895 = icmp eq i32 %894, -1
  br i1 %895, label %896, label %949

896:                                              ; preds = %890
  br label %897

897:                                              ; preds = %896
  br label %898

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

905:                                              ; preds = %898
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = call i32 @fileno(ptr noundef %906) #8
  %908 = call i32 @isatty(i32 noundef %907) #8
  %909 = icmp ne i32 %908, 0
  br i1 %909, label %910, label %927

910:                                              ; preds = %905
  %911 = load i32, ptr %24, align 4, !tbaa !5
  %912 = call ptr @__errno_location() #9
  store i32 %911, ptr %912, align 4, !tbaa !5
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = load i32, ptr @test_count, align 4, !tbaa !5
  %915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %916 = load i32, ptr %915, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror(i32 noundef %916, ptr noundef @.str.4)
  %918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %919 = load i32, ptr %918, align 4, !tbaa !5
  %920 = call ptr @s2n_strerror_debug(i32 noundef %919, ptr noundef @.str.4)
  %921 = call ptr @__errno_location() #9
  %922 = load i32, ptr %921, align 4, !tbaa !5
  %923 = call ptr @strerror(i32 noundef %922) #8
  %924 = call ptr @__errno_location() #9
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %913, ptr noundef @.str.2, i32 noundef %914, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 268, ptr noundef %917, ptr noundef %920, ptr noundef %923, i32 noundef %925) #8
  br label %944

927:                                              ; preds = %905, %898
  %928 = load i32, ptr %24, align 4, !tbaa !5
  %929 = call ptr @__errno_location() #9
  store i32 %928, ptr %929, align 4, !tbaa !5
  %930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %931 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %933, ptr noundef @.str.4)
  %935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %936 = load i32, ptr %935, align 4, !tbaa !5
  %937 = call ptr @s2n_strerror_debug(i32 noundef %936, ptr noundef @.str.4)
  %938 = call ptr @__errno_location() #9
  %939 = load i32, ptr %938, align 4, !tbaa !5
  %940 = call ptr @strerror(i32 noundef %939) #8
  %941 = call ptr @__errno_location() #9
  %942 = load i32, ptr %941, align 4, !tbaa !5
  %943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %930, ptr noundef @.str.5, i32 noundef %931, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 268, ptr noundef %934, ptr noundef %937, ptr noundef %940, i32 noundef %942) #8
  br label %944

944:                                              ; preds = %927, %910
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  br label %945

945:                                              ; preds = %944
  br label %946

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

947:                                              ; No predecessors!
  br label %948

948:                                              ; preds = %947
  br label %949

949:                                              ; preds = %948, %890
  br label %950

950:                                              ; preds = %949
  br label %951

951:                                              ; preds = %950
  call void @exit(i32 noundef 0) #10
  unreachable

952:                                              ; preds = %746
  br label %953

953:                                              ; preds = %952
  %954 = load i32, ptr @test_count, align 4, !tbaa !5
  %955 = add nsw i32 %954, 1
  store i32 %955, ptr @test_count, align 4, !tbaa !5
  %956 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 1
  %957 = load i32, ptr %956, align 4, !tbaa !5
  %958 = call i32 @close(i32 noundef %957)
  %959 = icmp eq i32 %958, -1
  br i1 %959, label %960, label %1013

960:                                              ; preds = %953
  br label %961

961:                                              ; preds = %960
  br label %962

962:                                              ; preds = %961
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #8
  %963 = call ptr @__errno_location() #9
  %964 = load i32, ptr %963, align 4, !tbaa !5
  store i32 %964, ptr %25, align 4, !tbaa !5
  %965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %966 = call i32 @s2n_print_stacktrace(ptr noundef %965)
  %967 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %968 = trunc i8 %967 to i1
  br i1 %968, label %969, label %991

969:                                              ; preds = %962
  %970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %971 = call i32 @fileno(ptr noundef %970) #8
  %972 = call i32 @isatty(i32 noundef %971) #8
  %973 = icmp ne i32 %972, 0
  br i1 %973, label %974, label %991

974:                                              ; preds = %969
  %975 = load i32, ptr %25, align 4, !tbaa !5
  %976 = call ptr @__errno_location() #9
  store i32 %975, ptr %976, align 4, !tbaa !5
  %977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %978 = load i32, ptr @test_count, align 4, !tbaa !5
  %979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %980 = load i32, ptr %979, align 4, !tbaa !5
  %981 = call ptr @s2n_strerror(i32 noundef %980, ptr noundef @.str.4)
  %982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %983 = load i32, ptr %982, align 4, !tbaa !5
  %984 = call ptr @s2n_strerror_debug(i32 noundef %983, ptr noundef @.str.4)
  %985 = call ptr @__errno_location() #9
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = call ptr @strerror(i32 noundef %986) #8
  %988 = call ptr @__errno_location() #9
  %989 = load i32, ptr %988, align 4, !tbaa !5
  %990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %977, ptr noundef @.str.2, i32 noundef %978, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 273, ptr noundef %981, ptr noundef %984, ptr noundef %987, i32 noundef %989) #8
  br label %1008

991:                                              ; preds = %969, %962
  %992 = load i32, ptr %25, align 4, !tbaa !5
  %993 = call ptr @__errno_location() #9
  store i32 %992, ptr %993, align 4, !tbaa !5
  %994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %995 = load i32, ptr @test_count, align 4, !tbaa !5
  %996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %997 = load i32, ptr %996, align 4, !tbaa !5
  %998 = call ptr @s2n_strerror(i32 noundef %997, ptr noundef @.str.4)
  %999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1000 = load i32, ptr %999, align 4, !tbaa !5
  %1001 = call ptr @s2n_strerror_debug(i32 noundef %1000, ptr noundef @.str.4)
  %1002 = call ptr @__errno_location() #9
  %1003 = load i32, ptr %1002, align 4, !tbaa !5
  %1004 = call ptr @strerror(i32 noundef %1003) #8
  %1005 = call ptr @__errno_location() #9
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  %1007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %994, ptr noundef @.str.5, i32 noundef %995, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 273, ptr noundef %998, ptr noundef %1001, ptr noundef %1004, i32 noundef %1006) #8
  br label %1008

1008:                                             ; preds = %991, %974
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  br label %1009

1009:                                             ; preds = %1008
  br label %1010

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

1011:                                             ; No predecessors!
  br label %1012

1012:                                             ; preds = %1011
  br label %1013

1013:                                             ; preds = %1012, %953
  br label %1014

1014:                                             ; preds = %1013
  br label %1015

1015:                                             ; preds = %1014
  br label %1016

1016:                                             ; preds = %1015
  %1017 = load i32, ptr @test_count, align 4, !tbaa !5
  %1018 = add nsw i32 %1017, 1
  store i32 %1018, ptr @test_count, align 4, !tbaa !5
  %1019 = load ptr, ptr %15, align 8, !tbaa !9
  %1020 = call i32 @s2n_connection_set_blinding(ptr noundef %1019, i32 noundef 1)
  %1021 = icmp eq i32 %1020, -1
  br i1 %1021, label %1022, label %1075

1022:                                             ; preds = %1016
  br label %1023

1023:                                             ; preds = %1022
  br label %1024

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

1031:                                             ; preds = %1024
  %1032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1033 = call i32 @fileno(ptr noundef %1032) #8
  %1034 = call i32 @isatty(i32 noundef %1033) #8
  %1035 = icmp ne i32 %1034, 0
  br i1 %1035, label %1036, label %1053

1036:                                             ; preds = %1031
  %1037 = load i32, ptr %26, align 4, !tbaa !5
  %1038 = call ptr @__errno_location() #9
  store i32 %1037, ptr %1038, align 4, !tbaa !5
  %1039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1040 = load i32, ptr @test_count, align 4, !tbaa !5
  %1041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1042 = load i32, ptr %1041, align 4, !tbaa !5
  %1043 = call ptr @s2n_strerror(i32 noundef %1042, ptr noundef @.str.4)
  %1044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1045 = load i32, ptr %1044, align 4, !tbaa !5
  %1046 = call ptr @s2n_strerror_debug(i32 noundef %1045, ptr noundef @.str.4)
  %1047 = call ptr @__errno_location() #9
  %1048 = load i32, ptr %1047, align 4, !tbaa !5
  %1049 = call ptr @strerror(i32 noundef %1048) #8
  %1050 = call ptr @__errno_location() #9
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  %1052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1039, ptr noundef @.str.2, i32 noundef %1040, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 277, ptr noundef %1043, ptr noundef %1046, ptr noundef %1049, i32 noundef %1051) #8
  br label %1070

1053:                                             ; preds = %1031, %1024
  %1054 = load i32, ptr %26, 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.5, i32 noundef %1057, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 277, ptr noundef %1060, ptr noundef %1063, ptr noundef %1066, i32 noundef %1068) #8
  br label %1070

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

1071:                                             ; preds = %1070
  br label %1072

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

1073:                                             ; No predecessors!
  br label %1074

1074:                                             ; preds = %1073
  br label %1075

1075:                                             ; preds = %1074, %1016
  br label %1076

1076:                                             ; preds = %1075
  br label %1077

1077:                                             ; preds = %1076
  br label %1078

1078:                                             ; preds = %1077
  br label %1079

1079:                                             ; preds = %1078
  %1080 = load i32, ptr @test_count, align 4, !tbaa !5
  %1081 = add nsw i32 %1080, 1
  store i32 %1081, ptr @test_count, align 4, !tbaa !5
  %1082 = load ptr, ptr %15, align 8, !tbaa !9
  %1083 = call i32 @s2n_negotiate(ptr noundef %1082, ptr noundef %6)
  %1084 = icmp eq i32 %1083, -1
  br i1 %1084, label %1138, label %1085

1085:                                             ; preds = %1079
  br label %1086

1086:                                             ; preds = %1085
  br label %1087

1087:                                             ; preds = %1086
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  %1088 = call ptr @__errno_location() #9
  %1089 = load i32, ptr %1088, align 4, !tbaa !5
  store i32 %1089, ptr %27, align 4, !tbaa !5
  %1090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1091 = call i32 @s2n_print_stacktrace(ptr noundef %1090)
  %1092 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1093 = trunc i8 %1092 to i1
  br i1 %1093, label %1094, label %1116

1094:                                             ; preds = %1087
  %1095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1096 = call i32 @fileno(ptr noundef %1095) #8
  %1097 = call i32 @isatty(i32 noundef %1096) #8
  %1098 = icmp ne i32 %1097, 0
  br i1 %1098, label %1099, label %1116

1099:                                             ; preds = %1094
  %1100 = load i32, ptr %27, align 4, !tbaa !5
  %1101 = call ptr @__errno_location() #9
  store i32 %1100, ptr %1101, align 4, !tbaa !5
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = load i32, ptr @test_count, align 4, !tbaa !5
  %1104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1105 = load i32, ptr %1104, align 4, !tbaa !5
  %1106 = call ptr @s2n_strerror(i32 noundef %1105, ptr noundef @.str.4)
  %1107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1108 = load i32, ptr %1107, align 4, !tbaa !5
  %1109 = call ptr @s2n_strerror_debug(i32 noundef %1108, ptr noundef @.str.4)
  %1110 = call ptr @__errno_location() #9
  %1111 = load i32, ptr %1110, align 4, !tbaa !5
  %1112 = call ptr @strerror(i32 noundef %1111) #8
  %1113 = call ptr @__errno_location() #9
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  %1115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1102, ptr noundef @.str.2, i32 noundef %1103, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 278, ptr noundef %1106, ptr noundef %1109, ptr noundef %1112, i32 noundef %1114) #8
  br label %1133

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

1133:                                             ; preds = %1116, %1099
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %1134

1134:                                             ; preds = %1133
  br label %1135

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

1136:                                             ; No predecessors!
  br label %1137

1137:                                             ; preds = %1136
  br label %1138

1138:                                             ; preds = %1137, %1079
  br label %1139

1139:                                             ; preds = %1138
  br label %1140

1140:                                             ; preds = %1139
  br label %1141

1141:                                             ; preds = %1140
  %1142 = load i32, ptr @test_count, align 4, !tbaa !5
  %1143 = add nsw i32 %1142, 1
  store i32 %1143, ptr @test_count, align 4, !tbaa !5
  %1144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1145 = load i32, ptr %1144, align 4, !tbaa !5
  %1146 = icmp eq i32 %1145, 0
  br i1 %1146, label %1147, label %1200

1147:                                             ; preds = %1141
  br label %1148

1148:                                             ; preds = %1147
  br label %1149

1149:                                             ; preds = %1148
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  %1150 = call ptr @__errno_location() #9
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  store i32 %1151, ptr %28, align 4, !tbaa !5
  %1152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1153 = call i32 @s2n_print_stacktrace(ptr noundef %1152)
  %1154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1155 = trunc i8 %1154 to i1
  br i1 %1155, label %1156, label %1178

1156:                                             ; preds = %1149
  %1157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1158 = call i32 @fileno(ptr noundef %1157) #8
  %1159 = call i32 @isatty(i32 noundef %1158) #8
  %1160 = icmp ne i32 %1159, 0
  br i1 %1160, label %1161, label %1178

1161:                                             ; preds = %1156
  %1162 = load i32, ptr %28, align 4, !tbaa !5
  %1163 = call ptr @__errno_location() #9
  store i32 %1162, ptr %1163, align 4, !tbaa !5
  %1164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1165 = load i32, ptr @test_count, align 4, !tbaa !5
  %1166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1167 = load i32, ptr %1166, align 4, !tbaa !5
  %1168 = call ptr @s2n_strerror(i32 noundef %1167, ptr noundef @.str.4)
  %1169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1170 = load i32, ptr %1169, align 4, !tbaa !5
  %1171 = call ptr @s2n_strerror_debug(i32 noundef %1170, ptr noundef @.str.4)
  %1172 = call ptr @__errno_location() #9
  %1173 = load i32, ptr %1172, align 4, !tbaa !5
  %1174 = call ptr @strerror(i32 noundef %1173) #8
  %1175 = call ptr @__errno_location() #9
  %1176 = load i32, ptr %1175, align 4, !tbaa !5
  %1177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1164, ptr noundef @.str.2, i32 noundef %1165, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 278, ptr noundef %1168, ptr noundef %1171, ptr noundef %1174, i32 noundef %1176) #8
  br label %1195

1178:                                             ; preds = %1156, %1149
  %1179 = load i32, ptr %28, align 4, !tbaa !5
  %1180 = call ptr @__errno_location() #9
  store i32 %1179, ptr %1180, align 4, !tbaa !5
  %1181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1182 = load i32, ptr @test_count, align 4, !tbaa !5
  %1183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1184 = load i32, ptr %1183, align 4, !tbaa !5
  %1185 = call ptr @s2n_strerror(i32 noundef %1184, ptr noundef @.str.4)
  %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_debug(i32 noundef %1187, ptr noundef @.str.4)
  %1189 = call ptr @__errno_location() #9
  %1190 = load i32, ptr %1189, align 4, !tbaa !5
  %1191 = call ptr @strerror(i32 noundef %1190) #8
  %1192 = call ptr @__errno_location() #9
  %1193 = load i32, ptr %1192, align 4, !tbaa !5
  %1194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1181, ptr noundef @.str.5, i32 noundef %1182, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 278, ptr noundef %1185, ptr noundef %1188, ptr noundef %1191, i32 noundef %1193) #8
  br label %1195

1195:                                             ; preds = %1178, %1161
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %1196

1196:                                             ; preds = %1195
  br label %1197

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

1198:                                             ; No predecessors!
  br label %1199

1199:                                             ; preds = %1198
  br label %1200

1200:                                             ; preds = %1199, %1141
  br label %1201

1201:                                             ; preds = %1200
  br label %1202

1202:                                             ; preds = %1201
  br label %1203

1203:                                             ; preds = %1202
  %1204 = load i32, ptr @test_count, align 4, !tbaa !5
  %1205 = add nsw i32 %1204, 1
  store i32 %1205, ptr @test_count, align 4, !tbaa !5
  %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 = icmp eq ptr %1208, null
  br i1 %1209, label %1210, label %1263

1210:                                             ; preds = %1203
  br label %1211

1211:                                             ; preds = %1210
  br label %1212

1212:                                             ; preds = %1211
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  %1213 = call ptr @__errno_location() #9
  %1214 = load i32, ptr %1213, align 4, !tbaa !5
  store i32 %1214, ptr %29, align 4, !tbaa !5
  %1215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1216 = call i32 @s2n_print_stacktrace(ptr noundef %1215)
  %1217 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1218 = trunc i8 %1217 to i1
  br i1 %1218, label %1219, label %1241

1219:                                             ; preds = %1212
  %1220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1221 = call i32 @fileno(ptr noundef %1220) #8
  %1222 = call i32 @isatty(i32 noundef %1221) #8
  %1223 = icmp ne i32 %1222, 0
  br i1 %1223, label %1224, label %1241

1224:                                             ; preds = %1219
  %1225 = load i32, ptr %29, align 4, !tbaa !5
  %1226 = call ptr @__errno_location() #9
  store i32 %1225, ptr %1226, align 4, !tbaa !5
  %1227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1228 = load i32, ptr @test_count, align 4, !tbaa !5
  %1229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1230 = load i32, ptr %1229, align 4, !tbaa !5
  %1231 = call ptr @s2n_strerror(i32 noundef %1230, ptr noundef @.str.4)
  %1232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1233 = load i32, ptr %1232, align 4, !tbaa !5
  %1234 = call ptr @s2n_strerror_debug(i32 noundef %1233, ptr noundef @.str.4)
  %1235 = call ptr @__errno_location() #9
  %1236 = load i32, ptr %1235, align 4, !tbaa !5
  %1237 = call ptr @strerror(i32 noundef %1236) #8
  %1238 = call ptr @__errno_location() #9
  %1239 = load i32, ptr %1238, align 4, !tbaa !5
  %1240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1227, ptr noundef @.str.2, i32 noundef %1228, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 278, ptr noundef %1231, ptr noundef %1234, ptr noundef %1237, i32 noundef %1239) #8
  br label %1258

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

1258:                                             ; preds = %1241, %1224
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %1259

1259:                                             ; preds = %1258
  br label %1260

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

1261:                                             ; No predecessors!
  br label %1262

1262:                                             ; preds = %1261
  br label %1263

1263:                                             ; preds = %1262, %1203
  br label %1264

1264:                                             ; preds = %1263
  br label %1265

1265:                                             ; preds = %1264
  br label %1266

1266:                                             ; preds = %1265
  %1267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1267, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1268 = call ptr @__errno_location() #9
  store i32 0, ptr %1268, align 4, !tbaa !5
  br label %1269

1269:                                             ; preds = %1266
  br label %1270

1270:                                             ; preds = %1269
  br label %1271

1271:                                             ; preds = %1270
  br label %1272

1272:                                             ; preds = %1271
  br label %1273

1273:                                             ; preds = %1272
  %1274 = load i32, ptr @test_count, align 4, !tbaa !5
  %1275 = add nsw i32 %1274, 1
  store i32 %1275, ptr @test_count, align 4, !tbaa !5
  %1276 = load ptr, ptr %15, align 8, !tbaa !9
  %1277 = getelementptr inbounds %struct.s2n_connection, ptr %1276, i32 0, i32 32
  %1278 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %1277, i32 0, i32 13
  %1279 = getelementptr inbounds [32 x i8], ptr %1278, i64 0, i64 0
  %1280 = call i32 @memcmp(ptr noundef %1279, ptr noundef @zero_to_thirty_one, i64 noundef 32) #11
  %1281 = icmp eq i32 %1280, 0
  br i1 %1281, label %1335, label %1282

1282:                                             ; preds = %1273
  br label %1283

1283:                                             ; preds = %1282
  br label %1284

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

1291:                                             ; preds = %1284
  %1292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1293 = call i32 @fileno(ptr noundef %1292) #8
  %1294 = call i32 @isatty(i32 noundef %1293) #8
  %1295 = icmp ne i32 %1294, 0
  br i1 %1295, label %1296, label %1313

1296:                                             ; preds = %1291
  %1297 = load i32, ptr %30, align 4, !tbaa !5
  %1298 = call ptr @__errno_location() #9
  store i32 %1297, ptr %1298, align 4, !tbaa !5
  %1299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1300 = load i32, ptr @test_count, align 4, !tbaa !5
  %1301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = call ptr @s2n_strerror(i32 noundef %1302, ptr noundef @.str.4)
  %1304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1305 = load i32, ptr %1304, align 4, !tbaa !5
  %1306 = call ptr @s2n_strerror_debug(i32 noundef %1305, ptr noundef @.str.4)
  %1307 = call ptr @__errno_location() #9
  %1308 = load i32, ptr %1307, align 4, !tbaa !5
  %1309 = call ptr @strerror(i32 noundef %1308) #8
  %1310 = call ptr @__errno_location() #9
  %1311 = load i32, ptr %1310, align 4, !tbaa !5
  %1312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1299, ptr noundef @.str.2, i32 noundef %1300, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 281, ptr noundef %1303, ptr noundef %1306, ptr noundef %1309, i32 noundef %1311) #8
  br label %1330

1313:                                             ; preds = %1291, %1284
  %1314 = load i32, ptr %30, align 4, !tbaa !5
  %1315 = call ptr @__errno_location() #9
  store i32 %1314, ptr %1315, align 4, !tbaa !5
  %1316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1317 = load i32, ptr @test_count, align 4, !tbaa !5
  %1318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1319 = load i32, ptr %1318, align 4, !tbaa !5
  %1320 = call ptr @s2n_strerror(i32 noundef %1319, ptr noundef @.str.4)
  %1321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1322 = load i32, ptr %1321, align 4, !tbaa !5
  %1323 = call ptr @s2n_strerror_debug(i32 noundef %1322, ptr noundef @.str.4)
  %1324 = call ptr @__errno_location() #9
  %1325 = load i32, ptr %1324, align 4, !tbaa !5
  %1326 = call ptr @strerror(i32 noundef %1325) #8
  %1327 = call ptr @__errno_location() #9
  %1328 = load i32, ptr %1327, align 4, !tbaa !5
  %1329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1316, ptr noundef @.str.5, i32 noundef %1317, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 281, ptr noundef %1320, ptr noundef %1323, ptr noundef %1326, i32 noundef %1328) #8
  br label %1330

1330:                                             ; preds = %1313, %1296
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %1331

1331:                                             ; preds = %1330
  br label %1332

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

1333:                                             ; No predecessors!
  br label %1334

1334:                                             ; preds = %1333
  br label %1335

1335:                                             ; preds = %1334, %1273
  br label %1336

1336:                                             ; preds = %1335
  br label %1337

1337:                                             ; preds = %1336
  br label %1338

1338:                                             ; preds = %1337
  %1339 = load i32, ptr @test_count, align 4, !tbaa !5
  %1340 = add nsw i32 %1339, 1
  store i32 %1340, ptr @test_count, align 4, !tbaa !5
  %1341 = load ptr, ptr %15, align 8, !tbaa !9
  %1342 = call i32 @s2n_conn_get_current_message_type(ptr noundef %1341)
  %1343 = icmp eq i32 %1342, 7
  br i1 %1343, label %1397, label %1344

1344:                                             ; preds = %1338
  br label %1345

1345:                                             ; preds = %1344
  br label %1346

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

1353:                                             ; preds = %1346
  %1354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1355 = call i32 @fileno(ptr noundef %1354) #8
  %1356 = call i32 @isatty(i32 noundef %1355) #8
  %1357 = icmp ne i32 %1356, 0
  br i1 %1357, label %1358, label %1375

1358:                                             ; preds = %1353
  %1359 = load i32, ptr %31, align 4, !tbaa !5
  %1360 = call ptr @__errno_location() #9
  store i32 %1359, ptr %1360, align 4, !tbaa !5
  %1361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1362 = load i32, ptr @test_count, align 4, !tbaa !5
  %1363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1364 = load i32, ptr %1363, align 4, !tbaa !5
  %1365 = call ptr @s2n_strerror(i32 noundef %1364, ptr noundef @.str.4)
  %1366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1367 = load i32, ptr %1366, align 4, !tbaa !5
  %1368 = call ptr @s2n_strerror_debug(i32 noundef %1367, ptr noundef @.str.4)
  %1369 = call ptr @__errno_location() #9
  %1370 = load i32, ptr %1369, align 4, !tbaa !5
  %1371 = call ptr @strerror(i32 noundef %1370) #8
  %1372 = call ptr @__errno_location() #9
  %1373 = load i32, ptr %1372, align 4, !tbaa !5
  %1374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1361, ptr noundef @.str.2, i32 noundef %1362, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 284, ptr noundef %1365, ptr noundef %1368, ptr noundef %1371, i32 noundef %1373) #8
  br label %1392

1375:                                             ; preds = %1353, %1346
  %1376 = load i32, ptr %31, align 4, !tbaa !5
  %1377 = call ptr @__errno_location() #9
  store i32 %1376, ptr %1377, align 4, !tbaa !5
  %1378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1379 = load i32, ptr @test_count, align 4, !tbaa !5
  %1380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1381 = load i32, ptr %1380, align 4, !tbaa !5
  %1382 = call ptr @s2n_strerror(i32 noundef %1381, ptr noundef @.str.4)
  %1383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1384 = load i32, ptr %1383, align 4, !tbaa !5
  %1385 = call ptr @s2n_strerror_debug(i32 noundef %1384, ptr noundef @.str.4)
  %1386 = call ptr @__errno_location() #9
  %1387 = load i32, ptr %1386, align 4, !tbaa !5
  %1388 = call ptr @strerror(i32 noundef %1387) #8
  %1389 = call ptr @__errno_location() #9
  %1390 = load i32, ptr %1389, align 4, !tbaa !5
  %1391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1378, ptr noundef @.str.5, i32 noundef %1379, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 284, ptr noundef %1382, ptr noundef %1385, ptr noundef %1388, i32 noundef %1390) #8
  br label %1392

1392:                                             ; preds = %1375, %1358
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  br label %1393

1393:                                             ; preds = %1392
  br label %1394

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

1395:                                             ; No predecessors!
  br label %1396

1396:                                             ; preds = %1395
  br label %1397

1397:                                             ; preds = %1396, %1338
  br label %1398

1398:                                             ; preds = %1397
  br label %1399

1399:                                             ; preds = %1398
  br label %1400

1400:                                             ; preds = %1399
  %1401 = load i32, ptr @test_count, align 4, !tbaa !5
  %1402 = add nsw i32 %1401, 1
  store i32 %1402, ptr @test_count, align 4, !tbaa !5
  %1403 = load i32, ptr %8, align 4, !tbaa !5
  %1404 = call i32 @waitpid(i32 noundef %1403, ptr noundef %7, i32 noundef 0)
  %1405 = load i32, ptr %8, align 4, !tbaa !5
  %1406 = icmp eq i32 %1404, %1405
  br i1 %1406, label %1460, label %1407

1407:                                             ; preds = %1400
  br label %1408

1408:                                             ; preds = %1407
  br label %1409

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

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

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

1438:                                             ; preds = %1416, %1409
  %1439 = load i32, ptr %32, 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.5, i32 noundef %1442, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 287, ptr noundef %1445, ptr noundef %1448, ptr noundef %1451, i32 noundef %1453) #8
  br label %1455

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

1456:                                             ; preds = %1455
  br label %1457

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

1458:                                             ; No predecessors!
  br label %1459

1459:                                             ; preds = %1458
  br label %1460

1460:                                             ; preds = %1459, %1400
  br label %1461

1461:                                             ; preds = %1460
  br label %1462

1462:                                             ; preds = %1461
  br label %1463

1463:                                             ; preds = %1462
  %1464 = load i32, ptr @test_count, align 4, !tbaa !5
  %1465 = add nsw i32 %1464, 1
  store i32 %1465, ptr @test_count, align 4, !tbaa !5
  %1466 = load i32, ptr %7, align 4, !tbaa !5
  %1467 = icmp eq i32 %1466, 0
  br i1 %1467, label %1521, label %1468

1468:                                             ; preds = %1463
  br label %1469

1469:                                             ; preds = %1468
  br label %1470

1470:                                             ; preds = %1469
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  %1471 = call ptr @__errno_location() #9
  %1472 = load i32, ptr %1471, align 4, !tbaa !5
  store i32 %1472, ptr %33, align 4, !tbaa !5
  %1473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1474 = call i32 @s2n_print_stacktrace(ptr noundef %1473)
  %1475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1476 = trunc i8 %1475 to i1
  br i1 %1476, label %1477, label %1499

1477:                                             ; preds = %1470
  %1478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1479 = call i32 @fileno(ptr noundef %1478) #8
  %1480 = call i32 @isatty(i32 noundef %1479) #8
  %1481 = icmp ne i32 %1480, 0
  br i1 %1481, label %1482, label %1499

1482:                                             ; preds = %1477
  %1483 = load i32, ptr %33, align 4, !tbaa !5
  %1484 = call ptr @__errno_location() #9
  store i32 %1483, ptr %1484, align 4, !tbaa !5
  %1485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1486 = load i32, ptr @test_count, align 4, !tbaa !5
  %1487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1488 = load i32, ptr %1487, align 4, !tbaa !5
  %1489 = call ptr @s2n_strerror(i32 noundef %1488, ptr noundef @.str.4)
  %1490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1491 = load i32, ptr %1490, align 4, !tbaa !5
  %1492 = call ptr @s2n_strerror_debug(i32 noundef %1491, ptr noundef @.str.4)
  %1493 = call ptr @__errno_location() #9
  %1494 = load i32, ptr %1493, align 4, !tbaa !5
  %1495 = call ptr @strerror(i32 noundef %1494) #8
  %1496 = call ptr @__errno_location() #9
  %1497 = load i32, ptr %1496, align 4, !tbaa !5
  %1498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1485, ptr noundef @.str.2, i32 noundef %1486, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 288, ptr noundef %1489, ptr noundef %1492, ptr noundef %1495, i32 noundef %1497) #8
  br label %1516

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

1516:                                             ; preds = %1499, %1482
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %1517

1517:                                             ; preds = %1516
  br label %1518

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

1519:                                             ; No predecessors!
  br label %1520

1520:                                             ; preds = %1519
  br label %1521

1521:                                             ; preds = %1520, %1463
  br label %1522

1522:                                             ; preds = %1521
  br label %1523

1523:                                             ; preds = %1522
  br label %1524

1524:                                             ; preds = %1523
  %1525 = load i32, ptr @test_count, align 4, !tbaa !5
  %1526 = add nsw i32 %1525, 1
  store i32 %1526, ptr @test_count, align 4, !tbaa !5
  %1527 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %1528 = load i32, ptr %1527, align 4, !tbaa !5
  %1529 = call i32 @close(i32 noundef %1528)
  %1530 = icmp eq i32 %1529, -1
  br i1 %1530, label %1531, label %1584

1531:                                             ; preds = %1524
  br label %1532

1532:                                             ; preds = %1531
  br label %1533

1533:                                             ; preds = %1532
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  %1534 = call ptr @__errno_location() #9
  %1535 = load i32, ptr %1534, align 4, !tbaa !5
  store i32 %1535, ptr %34, align 4, !tbaa !5
  %1536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1537 = call i32 @s2n_print_stacktrace(ptr noundef %1536)
  %1538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1539 = trunc i8 %1538 to i1
  br i1 %1539, label %1540, label %1562

1540:                                             ; preds = %1533
  %1541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1542 = call i32 @fileno(ptr noundef %1541) #8
  %1543 = call i32 @isatty(i32 noundef %1542) #8
  %1544 = icmp ne i32 %1543, 0
  br i1 %1544, label %1545, label %1562

1545:                                             ; preds = %1540
  %1546 = load i32, ptr %34, align 4, !tbaa !5
  %1547 = call ptr @__errno_location() #9
  store i32 %1546, ptr %1547, align 4, !tbaa !5
  %1548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1549 = load i32, ptr @test_count, align 4, !tbaa !5
  %1550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1551 = load i32, ptr %1550, align 4, !tbaa !5
  %1552 = call ptr @s2n_strerror(i32 noundef %1551, ptr noundef @.str.4)
  %1553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1554 = load i32, ptr %1553, align 4, !tbaa !5
  %1555 = call ptr @s2n_strerror_debug(i32 noundef %1554, ptr noundef @.str.4)
  %1556 = call ptr @__errno_location() #9
  %1557 = load i32, ptr %1556, align 4, !tbaa !5
  %1558 = call ptr @strerror(i32 noundef %1557) #8
  %1559 = call ptr @__errno_location() #9
  %1560 = load i32, ptr %1559, align 4, !tbaa !5
  %1561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1548, ptr noundef @.str.2, i32 noundef %1549, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 289, ptr noundef %1552, ptr noundef %1555, ptr noundef %1558, i32 noundef %1560) #8
  br label %1579

1562:                                             ; preds = %1540, %1533
  %1563 = load i32, ptr %34, align 4, !tbaa !5
  %1564 = call ptr @__errno_location() #9
  store i32 %1563, ptr %1564, align 4, !tbaa !5
  %1565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1566 = load i32, ptr @test_count, align 4, !tbaa !5
  %1567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  %1569 = call ptr @s2n_strerror(i32 noundef %1568, ptr noundef @.str.4)
  %1570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  %1572 = call ptr @s2n_strerror_debug(i32 noundef %1571, ptr noundef @.str.4)
  %1573 = call ptr @__errno_location() #9
  %1574 = load i32, ptr %1573, align 4, !tbaa !5
  %1575 = call ptr @strerror(i32 noundef %1574) #8
  %1576 = call ptr @__errno_location() #9
  %1577 = load i32, ptr %1576, align 4, !tbaa !5
  %1578 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1565, ptr noundef @.str.5, i32 noundef %1566, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 289, ptr noundef %1569, ptr noundef %1572, ptr noundef %1575, i32 noundef %1577) #8
  br label %1579

1579:                                             ; preds = %1562, %1545
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  br label %1580

1580:                                             ; preds = %1579
  br label %1581

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

1582:                                             ; No predecessors!
  br label %1583

1583:                                             ; preds = %1582
  br label %1584

1584:                                             ; preds = %1583, %1524
  br label %1585

1585:                                             ; preds = %1584
  br label %1586

1586:                                             ; preds = %1585
  br label %1587

1587:                                             ; preds = %1586
  %1588 = load i32, ptr @test_count, align 4, !tbaa !5
  %1589 = add nsw i32 %1588, 1
  store i32 %1589, ptr @test_count, align 4, !tbaa !5
  %1590 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %1591 = call i32 @pipe(ptr noundef %1590) #8
  %1592 = icmp eq i32 %1591, -1
  br i1 %1592, label %1593, label %1646

1593:                                             ; preds = %1587
  br label %1594

1594:                                             ; preds = %1593
  br label %1595

1595:                                             ; preds = %1594
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  %1596 = call ptr @__errno_location() #9
  %1597 = load i32, ptr %1596, align 4, !tbaa !5
  store i32 %1597, ptr %35, align 4, !tbaa !5
  %1598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1599 = call i32 @s2n_print_stacktrace(ptr noundef %1598)
  %1600 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1601 = trunc i8 %1600 to i1
  br i1 %1601, label %1602, label %1624

1602:                                             ; preds = %1595
  %1603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1604 = call i32 @fileno(ptr noundef %1603) #8
  %1605 = call i32 @isatty(i32 noundef %1604) #8
  %1606 = icmp ne i32 %1605, 0
  br i1 %1606, label %1607, label %1624

1607:                                             ; preds = %1602
  %1608 = load i32, ptr %35, align 4, !tbaa !5
  %1609 = call ptr @__errno_location() #9
  store i32 %1608, ptr %1609, align 4, !tbaa !5
  %1610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1611 = load i32, ptr @test_count, align 4, !tbaa !5
  %1612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1613 = load i32, ptr %1612, align 4, !tbaa !5
  %1614 = call ptr @s2n_strerror(i32 noundef %1613, ptr noundef @.str.4)
  %1615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1616 = load i32, ptr %1615, align 4, !tbaa !5
  %1617 = call ptr @s2n_strerror_debug(i32 noundef %1616, ptr noundef @.str.4)
  %1618 = call ptr @__errno_location() #9
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = call ptr @strerror(i32 noundef %1619) #8
  %1621 = call ptr @__errno_location() #9
  %1622 = load i32, ptr %1621, align 4, !tbaa !5
  %1623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1610, ptr noundef @.str.2, i32 noundef %1611, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 294, ptr noundef %1614, ptr noundef %1617, ptr noundef %1620, i32 noundef %1622) #8
  br label %1641

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

1641:                                             ; preds = %1624, %1607
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  br label %1642

1642:                                             ; preds = %1641
  br label %1643

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

1644:                                             ; No predecessors!
  br label %1645

1645:                                             ; preds = %1644
  br label %1646

1646:                                             ; preds = %1645, %1587
  br label %1647

1647:                                             ; preds = %1646
  br label %1648

1648:                                             ; preds = %1647
  br label %1649

1649:                                             ; preds = %1648
  %1650 = load i32, ptr @test_count, align 4, !tbaa !5
  %1651 = add nsw i32 %1650, 1
  store i32 %1651, ptr @test_count, align 4, !tbaa !5
  %1652 = load ptr, ptr %15, align 8, !tbaa !9
  %1653 = call i32 @s2n_connection_wipe(ptr noundef %1652)
  %1654 = icmp eq i32 %1653, -1
  br i1 %1654, label %1655, label %1708

1655:                                             ; preds = %1649
  br label %1656

1656:                                             ; preds = %1655
  br label %1657

1657:                                             ; preds = %1656
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  %1658 = call ptr @__errno_location() #9
  %1659 = load i32, ptr %1658, align 4, !tbaa !5
  store i32 %1659, ptr %36, align 4, !tbaa !5
  %1660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1661 = call i32 @s2n_print_stacktrace(ptr noundef %1660)
  %1662 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1663 = trunc i8 %1662 to i1
  br i1 %1663, label %1664, label %1686

1664:                                             ; preds = %1657
  %1665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1666 = call i32 @fileno(ptr noundef %1665) #8
  %1667 = call i32 @isatty(i32 noundef %1666) #8
  %1668 = icmp ne i32 %1667, 0
  br i1 %1668, label %1669, label %1686

1669:                                             ; preds = %1664
  %1670 = load i32, ptr %36, align 4, !tbaa !5
  %1671 = call ptr @__errno_location() #9
  store i32 %1670, ptr %1671, align 4, !tbaa !5
  %1672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1673 = load i32, ptr @test_count, align 4, !tbaa !5
  %1674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1675 = load i32, ptr %1674, align 4, !tbaa !5
  %1676 = call ptr @s2n_strerror(i32 noundef %1675, ptr noundef @.str.4)
  %1677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1678 = load i32, ptr %1677, align 4, !tbaa !5
  %1679 = call ptr @s2n_strerror_debug(i32 noundef %1678, ptr noundef @.str.4)
  %1680 = call ptr @__errno_location() #9
  %1681 = load i32, ptr %1680, align 4, !tbaa !5
  %1682 = call ptr @strerror(i32 noundef %1681) #8
  %1683 = call ptr @__errno_location() #9
  %1684 = load i32, ptr %1683, align 4, !tbaa !5
  %1685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1672, ptr noundef @.str.2, i32 noundef %1673, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 296, ptr noundef %1676, ptr noundef %1679, ptr noundef %1682, i32 noundef %1684) #8
  br label %1703

1686:                                             ; preds = %1664, %1657
  %1687 = load i32, ptr %36, align 4, !tbaa !5
  %1688 = call ptr @__errno_location() #9
  store i32 %1687, ptr %1688, align 4, !tbaa !5
  %1689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1690 = load i32, ptr @test_count, align 4, !tbaa !5
  %1691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1692 = load i32, ptr %1691, align 4, !tbaa !5
  %1693 = call ptr @s2n_strerror(i32 noundef %1692, ptr noundef @.str.4)
  %1694 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1695 = load i32, ptr %1694, align 4, !tbaa !5
  %1696 = call ptr @s2n_strerror_debug(i32 noundef %1695, ptr noundef @.str.4)
  %1697 = call ptr @__errno_location() #9
  %1698 = load i32, ptr %1697, align 4, !tbaa !5
  %1699 = call ptr @strerror(i32 noundef %1698) #8
  %1700 = call ptr @__errno_location() #9
  %1701 = load i32, ptr %1700, align 4, !tbaa !5
  %1702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1689, ptr noundef @.str.5, i32 noundef %1690, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 296, ptr noundef %1693, ptr noundef %1696, ptr noundef %1699, i32 noundef %1701) #8
  br label %1703

1703:                                             ; preds = %1686, %1669
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %1704

1704:                                             ; preds = %1703
  br label %1705

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

1706:                                             ; No predecessors!
  br label %1707

1707:                                             ; preds = %1706
  br label %1708

1708:                                             ; preds = %1707, %1649
  br label %1709

1709:                                             ; preds = %1708
  br label %1710

1710:                                             ; preds = %1709
  br label %1711

1711:                                             ; preds = %1710
  %1712 = load i32, ptr @test_count, align 4, !tbaa !5
  %1713 = add nsw i32 %1712, 1
  store i32 %1713, ptr @test_count, align 4, !tbaa !5
  %1714 = load ptr, ptr %15, align 8, !tbaa !9
  %1715 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %1716 = load i32, ptr %1715, align 4, !tbaa !5
  %1717 = call i32 @s2n_connection_set_read_fd(ptr noundef %1714, i32 noundef %1716)
  %1718 = icmp eq i32 %1717, -1
  br i1 %1718, label %1719, label %1772

1719:                                             ; preds = %1711
  br label %1720

1720:                                             ; preds = %1719
  br label %1721

1721:                                             ; preds = %1720
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  %1722 = call ptr @__errno_location() #9
  %1723 = load i32, ptr %1722, align 4, !tbaa !5
  store i32 %1723, ptr %37, align 4, !tbaa !5
  %1724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1725 = call i32 @s2n_print_stacktrace(ptr noundef %1724)
  %1726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1727 = trunc i8 %1726 to i1
  br i1 %1727, label %1728, label %1750

1728:                                             ; preds = %1721
  %1729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1730 = call i32 @fileno(ptr noundef %1729) #8
  %1731 = call i32 @isatty(i32 noundef %1730) #8
  %1732 = icmp ne i32 %1731, 0
  br i1 %1732, label %1733, label %1750

1733:                                             ; preds = %1728
  %1734 = load i32, ptr %37, align 4, !tbaa !5
  %1735 = call ptr @__errno_location() #9
  store i32 %1734, ptr %1735, align 4, !tbaa !5
  %1736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1737 = load i32, ptr @test_count, align 4, !tbaa !5
  %1738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1739 = load i32, ptr %1738, align 4, !tbaa !5
  %1740 = call ptr @s2n_strerror(i32 noundef %1739, ptr noundef @.str.4)
  %1741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1742 = load i32, ptr %1741, align 4, !tbaa !5
  %1743 = call ptr @s2n_strerror_debug(i32 noundef %1742, ptr noundef @.str.4)
  %1744 = call ptr @__errno_location() #9
  %1745 = load i32, ptr %1744, align 4, !tbaa !5
  %1746 = call ptr @strerror(i32 noundef %1745) #8
  %1747 = call ptr @__errno_location() #9
  %1748 = load i32, ptr %1747, align 4, !tbaa !5
  %1749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1736, ptr noundef @.str.2, i32 noundef %1737, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 299, ptr noundef %1740, ptr noundef %1743, ptr noundef %1746, i32 noundef %1748) #8
  br label %1767

1750:                                             ; preds = %1728, %1721
  %1751 = load i32, ptr %37, align 4, !tbaa !5
  %1752 = call ptr @__errno_location() #9
  store i32 %1751, ptr %1752, align 4, !tbaa !5
  %1753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1754 = load i32, ptr @test_count, align 4, !tbaa !5
  %1755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1756 = load i32, ptr %1755, align 4, !tbaa !5
  %1757 = call ptr @s2n_strerror(i32 noundef %1756, ptr noundef @.str.4)
  %1758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1759 = load i32, ptr %1758, align 4, !tbaa !5
  %1760 = call ptr @s2n_strerror_debug(i32 noundef %1759, ptr noundef @.str.4)
  %1761 = call ptr @__errno_location() #9
  %1762 = load i32, ptr %1761, align 4, !tbaa !5
  %1763 = call ptr @strerror(i32 noundef %1762) #8
  %1764 = call ptr @__errno_location() #9
  %1765 = load i32, ptr %1764, align 4, !tbaa !5
  %1766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1753, ptr noundef @.str.5, i32 noundef %1754, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 299, ptr noundef %1757, ptr noundef %1760, ptr noundef %1763, i32 noundef %1765) #8
  br label %1767

1767:                                             ; preds = %1750, %1733
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  br label %1768

1768:                                             ; preds = %1767
  br label %1769

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

1770:                                             ; No predecessors!
  br label %1771

1771:                                             ; preds = %1770
  br label %1772

1772:                                             ; preds = %1771, %1711
  br label %1773

1773:                                             ; preds = %1772
  br label %1774

1774:                                             ; preds = %1773
  %1775 = load ptr, ptr %15, align 8, !tbaa !9
  %1776 = getelementptr inbounds %struct.s2n_connection, ptr %1775, i32 0, i32 52
  %1777 = getelementptr inbounds %struct.s2n_handshake, ptr %1776, i32 0, i32 6
  store i32 3, ptr %1777, align 4, !tbaa !15
  %1778 = load ptr, ptr %15, align 8, !tbaa !9
  %1779 = getelementptr inbounds %struct.s2n_connection, ptr %1778, i32 0, i32 52
  %1780 = getelementptr inbounds %struct.s2n_handshake, ptr %1779, i32 0, i32 7
  store i32 1, ptr %1780, align 8, !tbaa !42
  %1781 = load ptr, ptr %15, align 8, !tbaa !9
  %1782 = getelementptr inbounds %struct.s2n_connection, ptr %1781, i32 0, i32 22
  store i8 33, ptr %1782, align 1, !tbaa !43
  %1783 = load ptr, ptr %15, align 8, !tbaa !9
  %1784 = getelementptr inbounds %struct.s2n_connection, ptr %1783, i32 0, i32 21
  store i8 33, ptr %1784, align 2, !tbaa !44
  %1785 = load ptr, ptr %15, align 8, !tbaa !9
  %1786 = getelementptr inbounds %struct.s2n_connection, ptr %1785, i32 0, i32 23
  store i8 33, ptr %1786, align 4, !tbaa !45
  %1787 = call i32 @fork() #8
  store i32 %1787, ptr %8, align 4, !tbaa !5
  %1788 = load i32, ptr %8, align 4, !tbaa !5
  %1789 = icmp eq i32 %1788, 0
  br i1 %1789, label %1790, label %1980

1790:                                             ; preds = %1774
  br label %1791

1791:                                             ; preds = %1790
  %1792 = load i32, ptr @test_count, align 4, !tbaa !5
  %1793 = add nsw i32 %1792, 1
  store i32 %1793, ptr @test_count, align 4, !tbaa !5
  %1794 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = call i32 @close(i32 noundef %1795)
  %1797 = icmp eq i32 %1796, -1
  br i1 %1797, label %1798, label %1851

1798:                                             ; preds = %1791
  br label %1799

1799:                                             ; preds = %1798
  br label %1800

1800:                                             ; preds = %1799
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  %1801 = call ptr @__errno_location() #9
  %1802 = load i32, ptr %1801, align 4, !tbaa !5
  store i32 %1802, ptr %38, align 4, !tbaa !5
  %1803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1804 = call i32 @s2n_print_stacktrace(ptr noundef %1803)
  %1805 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1806 = trunc i8 %1805 to i1
  br i1 %1806, label %1807, label %1829

1807:                                             ; preds = %1800
  %1808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1809 = call i32 @fileno(ptr noundef %1808) #8
  %1810 = call i32 @isatty(i32 noundef %1809) #8
  %1811 = icmp ne i32 %1810, 0
  br i1 %1811, label %1812, label %1829

1812:                                             ; preds = %1807
  %1813 = load i32, ptr %38, align 4, !tbaa !5
  %1814 = call ptr @__errno_location() #9
  store i32 %1813, ptr %1814, align 4, !tbaa !5
  %1815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1816 = load i32, ptr @test_count, align 4, !tbaa !5
  %1817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1818 = load i32, ptr %1817, align 4, !tbaa !5
  %1819 = call ptr @s2n_strerror(i32 noundef %1818, ptr noundef @.str.4)
  %1820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1821 = load i32, ptr %1820, align 4, !tbaa !5
  %1822 = call ptr @s2n_strerror_debug(i32 noundef %1821, ptr noundef @.str.4)
  %1823 = call ptr @__errno_location() #9
  %1824 = load i32, ptr %1823, align 4, !tbaa !5
  %1825 = call ptr @strerror(i32 noundef %1824) #8
  %1826 = call ptr @__errno_location() #9
  %1827 = load i32, ptr %1826, align 4, !tbaa !5
  %1828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1815, ptr noundef @.str.2, i32 noundef %1816, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 312, ptr noundef %1819, ptr noundef %1822, ptr noundef %1825, i32 noundef %1827) #8
  br label %1846

1829:                                             ; preds = %1807, %1800
  %1830 = load i32, ptr %38, align 4, !tbaa !5
  %1831 = call ptr @__errno_location() #9
  store i32 %1830, ptr %1831, align 4, !tbaa !5
  %1832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1833 = load i32, ptr @test_count, align 4, !tbaa !5
  %1834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1835 = load i32, ptr %1834, align 4, !tbaa !5
  %1836 = call ptr @s2n_strerror(i32 noundef %1835, ptr noundef @.str.4)
  %1837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1838 = load i32, ptr %1837, align 4, !tbaa !5
  %1839 = call ptr @s2n_strerror_debug(i32 noundef %1838, ptr noundef @.str.4)
  %1840 = call ptr @__errno_location() #9
  %1841 = load i32, ptr %1840, align 4, !tbaa !5
  %1842 = call ptr @strerror(i32 noundef %1841) #8
  %1843 = call ptr @__errno_location() #9
  %1844 = load i32, ptr %1843, align 4, !tbaa !5
  %1845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1832, ptr noundef @.str.5, i32 noundef %1833, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 312, ptr noundef %1836, ptr noundef %1839, ptr noundef %1842, i32 noundef %1844) #8
  br label %1846

1846:                                             ; preds = %1829, %1812
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #8
  br label %1847

1847:                                             ; preds = %1846
  br label %1848

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

1849:                                             ; No predecessors!
  br label %1850

1850:                                             ; preds = %1849
  br label %1851

1851:                                             ; preds = %1850, %1791
  br label %1852

1852:                                             ; preds = %1851
  br label %1853

1853:                                             ; preds = %1852
  %1854 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 1
  %1855 = load i32, ptr %1854, align 4, !tbaa !5
  call void @send_messages(i32 noundef %1855, ptr noundef @server_hello_message, i32 noundef 74, ptr noundef @empty_certificate_list, i32 noundef 7)
  br label %1856

1856:                                             ; preds = %1853
  %1857 = load i32, ptr @test_count, align 4, !tbaa !5
  %1858 = add nsw i32 %1857, 1
  store i32 %1858, ptr @test_count, align 4, !tbaa !5
  %1859 = load ptr, ptr %15, align 8, !tbaa !9
  %1860 = call i32 @s2n_connection_free(ptr noundef %1859)
  %1861 = icmp eq i32 %1860, -1
  br i1 %1861, label %1862, label %1915

1862:                                             ; preds = %1856
  br label %1863

1863:                                             ; preds = %1862
  br label %1864

1864:                                             ; preds = %1863
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  %1865 = call ptr @__errno_location() #9
  %1866 = load i32, ptr %1865, align 4, !tbaa !5
  store i32 %1866, ptr %39, align 4, !tbaa !5
  %1867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1868 = call i32 @s2n_print_stacktrace(ptr noundef %1867)
  %1869 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1870 = trunc i8 %1869 to i1
  br i1 %1870, label %1871, label %1893

1871:                                             ; preds = %1864
  %1872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1873 = call i32 @fileno(ptr noundef %1872) #8
  %1874 = call i32 @isatty(i32 noundef %1873) #8
  %1875 = icmp ne i32 %1874, 0
  br i1 %1875, label %1876, label %1893

1876:                                             ; preds = %1871
  %1877 = load i32, ptr %39, align 4, !tbaa !5
  %1878 = call ptr @__errno_location() #9
  store i32 %1877, ptr %1878, align 4, !tbaa !5
  %1879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1880 = load i32, ptr @test_count, align 4, !tbaa !5
  %1881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1882 = load i32, ptr %1881, align 4, !tbaa !5
  %1883 = call ptr @s2n_strerror(i32 noundef %1882, ptr noundef @.str.4)
  %1884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1885 = load i32, ptr %1884, align 4, !tbaa !5
  %1886 = call ptr @s2n_strerror_debug(i32 noundef %1885, ptr noundef @.str.4)
  %1887 = call ptr @__errno_location() #9
  %1888 = load i32, ptr %1887, align 4, !tbaa !5
  %1889 = call ptr @strerror(i32 noundef %1888) #8
  %1890 = call ptr @__errno_location() #9
  %1891 = load i32, ptr %1890, align 4, !tbaa !5
  %1892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1879, ptr noundef @.str.2, i32 noundef %1880, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 316, ptr noundef %1883, ptr noundef %1886, ptr noundef %1889, i32 noundef %1891) #8
  br label %1910

1893:                                             ; preds = %1871, %1864
  %1894 = load i32, ptr %39, align 4, !tbaa !5
  %1895 = call ptr @__errno_location() #9
  store i32 %1894, ptr %1895, align 4, !tbaa !5
  %1896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1897 = load i32, ptr @test_count, align 4, !tbaa !5
  %1898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1899 = load i32, ptr %1898, align 4, !tbaa !5
  %1900 = call ptr @s2n_strerror(i32 noundef %1899, ptr noundef @.str.4)
  %1901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1902 = load i32, ptr %1901, align 4, !tbaa !5
  %1903 = call ptr @s2n_strerror_debug(i32 noundef %1902, ptr noundef @.str.4)
  %1904 = call ptr @__errno_location() #9
  %1905 = load i32, ptr %1904, align 4, !tbaa !5
  %1906 = call ptr @strerror(i32 noundef %1905) #8
  %1907 = call ptr @__errno_location() #9
  %1908 = load i32, ptr %1907, align 4, !tbaa !5
  %1909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1896, ptr noundef @.str.5, i32 noundef %1897, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 316, ptr noundef %1900, ptr noundef %1903, ptr noundef %1906, i32 noundef %1908) #8
  br label %1910

1910:                                             ; preds = %1893, %1876
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  br label %1911

1911:                                             ; preds = %1910
  br label %1912

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

1913:                                             ; No predecessors!
  br label %1914

1914:                                             ; preds = %1913
  br label %1915

1915:                                             ; preds = %1914, %1856
  br label %1916

1916:                                             ; preds = %1915
  br label %1917

1917:                                             ; preds = %1916
  br label %1918

1918:                                             ; preds = %1917
  %1919 = load i32, ptr @test_count, align 4, !tbaa !5
  %1920 = add nsw i32 %1919, 1
  store i32 %1920, ptr @test_count, align 4, !tbaa !5
  %1921 = load ptr, ptr %14, align 8, !tbaa !9
  %1922 = call i32 @s2n_config_free(ptr noundef %1921)
  %1923 = icmp eq i32 %1922, -1
  br i1 %1923, label %1924, label %1977

1924:                                             ; preds = %1918
  br label %1925

1925:                                             ; preds = %1924
  br label %1926

1926:                                             ; preds = %1925
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  %1927 = call ptr @__errno_location() #9
  %1928 = load i32, ptr %1927, align 4, !tbaa !5
  store i32 %1928, ptr %40, align 4, !tbaa !5
  %1929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1930 = call i32 @s2n_print_stacktrace(ptr noundef %1929)
  %1931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1932 = trunc i8 %1931 to i1
  br i1 %1932, label %1933, label %1955

1933:                                             ; preds = %1926
  %1934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1935 = call i32 @fileno(ptr noundef %1934) #8
  %1936 = call i32 @isatty(i32 noundef %1935) #8
  %1937 = icmp ne i32 %1936, 0
  br i1 %1937, label %1938, label %1955

1938:                                             ; preds = %1933
  %1939 = load i32, ptr %40, align 4, !tbaa !5
  %1940 = call ptr @__errno_location() #9
  store i32 %1939, ptr %1940, align 4, !tbaa !5
  %1941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1942 = load i32, ptr @test_count, align 4, !tbaa !5
  %1943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1944 = load i32, ptr %1943, align 4, !tbaa !5
  %1945 = call ptr @s2n_strerror(i32 noundef %1944, ptr noundef @.str.4)
  %1946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1947 = load i32, ptr %1946, align 4, !tbaa !5
  %1948 = call ptr @s2n_strerror_debug(i32 noundef %1947, ptr noundef @.str.4)
  %1949 = call ptr @__errno_location() #9
  %1950 = load i32, ptr %1949, align 4, !tbaa !5
  %1951 = call ptr @strerror(i32 noundef %1950) #8
  %1952 = call ptr @__errno_location() #9
  %1953 = load i32, ptr %1952, align 4, !tbaa !5
  %1954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1941, ptr noundef @.str.2, i32 noundef %1942, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 317, ptr noundef %1945, ptr noundef %1948, ptr noundef %1951, i32 noundef %1953) #8
  br label %1972

1955:                                             ; preds = %1933, %1926
  %1956 = load i32, ptr %40, align 4, !tbaa !5
  %1957 = call ptr @__errno_location() #9
  store i32 %1956, ptr %1957, align 4, !tbaa !5
  %1958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1959 = load i32, ptr @test_count, align 4, !tbaa !5
  %1960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1961 = load i32, ptr %1960, align 4, !tbaa !5
  %1962 = call ptr @s2n_strerror(i32 noundef %1961, ptr noundef @.str.4)
  %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_debug(i32 noundef %1964, ptr noundef @.str.4)
  %1966 = call ptr @__errno_location() #9
  %1967 = load i32, ptr %1966, align 4, !tbaa !5
  %1968 = call ptr @strerror(i32 noundef %1967) #8
  %1969 = call ptr @__errno_location() #9
  %1970 = load i32, ptr %1969, align 4, !tbaa !5
  %1971 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1958, ptr noundef @.str.5, i32 noundef %1959, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 317, ptr noundef %1962, ptr noundef %1965, ptr noundef %1968, i32 noundef %1970) #8
  br label %1972

1972:                                             ; preds = %1955, %1938
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %1973

1973:                                             ; preds = %1972
  br label %1974

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

1975:                                             ; No predecessors!
  br label %1976

1976:                                             ; preds = %1975
  br label %1977

1977:                                             ; preds = %1976, %1918
  br label %1978

1978:                                             ; preds = %1977
  br label %1979

1979:                                             ; preds = %1978
  call void @exit(i32 noundef 0) #10
  unreachable

1980:                                             ; preds = %1774
  br label %1981

1981:                                             ; preds = %1980
  %1982 = load i32, ptr @test_count, align 4, !tbaa !5
  %1983 = add nsw i32 %1982, 1
  store i32 %1983, ptr @test_count, align 4, !tbaa !5
  %1984 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 1
  %1985 = load i32, ptr %1984, align 4, !tbaa !5
  %1986 = call i32 @close(i32 noundef %1985)
  %1987 = icmp eq i32 %1986, -1
  br i1 %1987, label %1988, label %2041

1988:                                             ; preds = %1981
  br label %1989

1989:                                             ; preds = %1988
  br label %1990

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

1997:                                             ; preds = %1990
  %1998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1999 = call i32 @fileno(ptr noundef %1998) #8
  %2000 = call i32 @isatty(i32 noundef %1999) #8
  %2001 = icmp ne i32 %2000, 0
  br i1 %2001, label %2002, label %2019

2002:                                             ; preds = %1997
  %2003 = load i32, ptr %41, align 4, !tbaa !5
  %2004 = call ptr @__errno_location() #9
  store i32 %2003, ptr %2004, align 4, !tbaa !5
  %2005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2006 = load i32, ptr @test_count, align 4, !tbaa !5
  %2007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2008 = load i32, ptr %2007, align 4, !tbaa !5
  %2009 = call ptr @s2n_strerror(i32 noundef %2008, ptr noundef @.str.4)
  %2010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2011 = load i32, ptr %2010, align 4, !tbaa !5
  %2012 = call ptr @s2n_strerror_debug(i32 noundef %2011, ptr noundef @.str.4)
  %2013 = call ptr @__errno_location() #9
  %2014 = load i32, ptr %2013, align 4, !tbaa !5
  %2015 = call ptr @strerror(i32 noundef %2014) #8
  %2016 = call ptr @__errno_location() #9
  %2017 = load i32, ptr %2016, align 4, !tbaa !5
  %2018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2005, ptr noundef @.str.2, i32 noundef %2006, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 322, ptr noundef %2009, ptr noundef %2012, ptr noundef %2015, i32 noundef %2017) #8
  br label %2036

2019:                                             ; preds = %1997, %1990
  %2020 = load i32, ptr %41, align 4, !tbaa !5
  %2021 = call ptr @__errno_location() #9
  store i32 %2020, ptr %2021, align 4, !tbaa !5
  %2022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2023 = load i32, ptr @test_count, align 4, !tbaa !5
  %2024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2025 = load i32, ptr %2024, align 4, !tbaa !5
  %2026 = call ptr @s2n_strerror(i32 noundef %2025, ptr noundef @.str.4)
  %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_debug(i32 noundef %2028, ptr noundef @.str.4)
  %2030 = call ptr @__errno_location() #9
  %2031 = load i32, ptr %2030, align 4, !tbaa !5
  %2032 = call ptr @strerror(i32 noundef %2031) #8
  %2033 = call ptr @__errno_location() #9
  %2034 = load i32, ptr %2033, align 4, !tbaa !5
  %2035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2022, ptr noundef @.str.5, i32 noundef %2023, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 322, ptr noundef %2026, ptr noundef %2029, ptr noundef %2032, i32 noundef %2034) #8
  br label %2036

2036:                                             ; preds = %2019, %2002
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  br label %2037

2037:                                             ; preds = %2036
  br label %2038

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

2039:                                             ; No predecessors!
  br label %2040

2040:                                             ; preds = %2039
  br label %2041

2041:                                             ; preds = %2040, %1981
  br label %2042

2042:                                             ; preds = %2041
  br label %2043

2043:                                             ; preds = %2042
  br label %2044

2044:                                             ; preds = %2043
  %2045 = load i32, ptr @test_count, align 4, !tbaa !5
  %2046 = add nsw i32 %2045, 1
  store i32 %2046, ptr @test_count, align 4, !tbaa !5
  %2047 = load ptr, ptr %15, align 8, !tbaa !9
  %2048 = call i32 @s2n_connection_set_blinding(ptr noundef %2047, i32 noundef 1)
  %2049 = icmp eq i32 %2048, -1
  br i1 %2049, label %2050, label %2103

2050:                                             ; preds = %2044
  br label %2051

2051:                                             ; preds = %2050
  br label %2052

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

2059:                                             ; preds = %2052
  %2060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2061 = call i32 @fileno(ptr noundef %2060) #8
  %2062 = call i32 @isatty(i32 noundef %2061) #8
  %2063 = icmp ne i32 %2062, 0
  br i1 %2063, label %2064, label %2081

2064:                                             ; preds = %2059
  %2065 = load i32, ptr %42, align 4, !tbaa !5
  %2066 = call ptr @__errno_location() #9
  store i32 %2065, ptr %2066, align 4, !tbaa !5
  %2067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2068 = load i32, ptr @test_count, align 4, !tbaa !5
  %2069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2070 = load i32, ptr %2069, align 4, !tbaa !5
  %2071 = call ptr @s2n_strerror(i32 noundef %2070, ptr noundef @.str.4)
  %2072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2073 = load i32, ptr %2072, align 4, !tbaa !5
  %2074 = call ptr @s2n_strerror_debug(i32 noundef %2073, ptr noundef @.str.4)
  %2075 = call ptr @__errno_location() #9
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  %2077 = call ptr @strerror(i32 noundef %2076) #8
  %2078 = call ptr @__errno_location() #9
  %2079 = load i32, ptr %2078, align 4, !tbaa !5
  %2080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2067, ptr noundef @.str.2, i32 noundef %2068, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 326, ptr noundef %2071, ptr noundef %2074, ptr noundef %2077, i32 noundef %2079) #8
  br label %2098

2081:                                             ; preds = %2059, %2052
  %2082 = load i32, ptr %42, align 4, !tbaa !5
  %2083 = call ptr @__errno_location() #9
  store i32 %2082, ptr %2083, align 4, !tbaa !5
  %2084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2085 = load i32, ptr @test_count, align 4, !tbaa !5
  %2086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  %2088 = call ptr @s2n_strerror(i32 noundef %2087, ptr noundef @.str.4)
  %2089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  %2091 = call ptr @s2n_strerror_debug(i32 noundef %2090, ptr noundef @.str.4)
  %2092 = call ptr @__errno_location() #9
  %2093 = load i32, ptr %2092, align 4, !tbaa !5
  %2094 = call ptr @strerror(i32 noundef %2093) #8
  %2095 = call ptr @__errno_location() #9
  %2096 = load i32, ptr %2095, align 4, !tbaa !5
  %2097 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2084, ptr noundef @.str.5, i32 noundef %2085, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 326, ptr noundef %2088, ptr noundef %2091, ptr noundef %2094, i32 noundef %2096) #8
  br label %2098

2098:                                             ; preds = %2081, %2064
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  br label %2099

2099:                                             ; preds = %2098
  br label %2100

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

2101:                                             ; No predecessors!
  br label %2102

2102:                                             ; preds = %2101
  br label %2103

2103:                                             ; preds = %2102, %2044
  br label %2104

2104:                                             ; preds = %2103
  br label %2105

2105:                                             ; preds = %2104
  br label %2106

2106:                                             ; preds = %2105
  br label %2107

2107:                                             ; preds = %2106
  %2108 = load i32, ptr @test_count, align 4, !tbaa !5
  %2109 = add nsw i32 %2108, 1
  store i32 %2109, ptr @test_count, align 4, !tbaa !5
  %2110 = load ptr, ptr %15, align 8, !tbaa !9
  %2111 = call i32 @s2n_negotiate(ptr noundef %2110, ptr noundef %6)
  %2112 = icmp eq i32 %2111, -1
  br i1 %2112, label %2166, label %2113

2113:                                             ; preds = %2107
  br label %2114

2114:                                             ; preds = %2113
  br label %2115

2115:                                             ; preds = %2114
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #8
  %2116 = call ptr @__errno_location() #9
  %2117 = load i32, ptr %2116, align 4, !tbaa !5
  store i32 %2117, ptr %43, align 4, !tbaa !5
  %2118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2119 = call i32 @s2n_print_stacktrace(ptr noundef %2118)
  %2120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2121 = trunc i8 %2120 to i1
  br i1 %2121, label %2122, label %2144

2122:                                             ; preds = %2115
  %2123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2124 = call i32 @fileno(ptr noundef %2123) #8
  %2125 = call i32 @isatty(i32 noundef %2124) #8
  %2126 = icmp ne i32 %2125, 0
  br i1 %2126, label %2127, label %2144

2127:                                             ; preds = %2122
  %2128 = load i32, ptr %43, align 4, !tbaa !5
  %2129 = call ptr @__errno_location() #9
  store i32 %2128, ptr %2129, align 4, !tbaa !5
  %2130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2131 = load i32, ptr @test_count, align 4, !tbaa !5
  %2132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2133 = load i32, ptr %2132, align 4, !tbaa !5
  %2134 = call ptr @s2n_strerror(i32 noundef %2133, ptr noundef @.str.4)
  %2135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2136 = load i32, ptr %2135, align 4, !tbaa !5
  %2137 = call ptr @s2n_strerror_debug(i32 noundef %2136, ptr noundef @.str.4)
  %2138 = call ptr @__errno_location() #9
  %2139 = load i32, ptr %2138, align 4, !tbaa !5
  %2140 = call ptr @strerror(i32 noundef %2139) #8
  %2141 = call ptr @__errno_location() #9
  %2142 = load i32, ptr %2141, align 4, !tbaa !5
  %2143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2130, ptr noundef @.str.2, i32 noundef %2131, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 327, ptr noundef %2134, ptr noundef %2137, ptr noundef %2140, i32 noundef %2142) #8
  br label %2161

2144:                                             ; preds = %2122, %2115
  %2145 = load i32, ptr %43, align 4, !tbaa !5
  %2146 = call ptr @__errno_location() #9
  store i32 %2145, ptr %2146, align 4, !tbaa !5
  %2147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2148 = load i32, ptr @test_count, align 4, !tbaa !5
  %2149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2150 = load i32, ptr %2149, align 4, !tbaa !5
  %2151 = call ptr @s2n_strerror(i32 noundef %2150, ptr noundef @.str.4)
  %2152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2153 = load i32, ptr %2152, align 4, !tbaa !5
  %2154 = call ptr @s2n_strerror_debug(i32 noundef %2153, ptr noundef @.str.4)
  %2155 = call ptr @__errno_location() #9
  %2156 = load i32, ptr %2155, align 4, !tbaa !5
  %2157 = call ptr @strerror(i32 noundef %2156) #8
  %2158 = call ptr @__errno_location() #9
  %2159 = load i32, ptr %2158, align 4, !tbaa !5
  %2160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2147, ptr noundef @.str.5, i32 noundef %2148, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 327, ptr noundef %2151, ptr noundef %2154, ptr noundef %2157, i32 noundef %2159) #8
  br label %2161

2161:                                             ; preds = %2144, %2127
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  br label %2162

2162:                                             ; preds = %2161
  br label %2163

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

2164:                                             ; No predecessors!
  br label %2165

2165:                                             ; preds = %2164
  br label %2166

2166:                                             ; preds = %2165, %2107
  br label %2167

2167:                                             ; preds = %2166
  br label %2168

2168:                                             ; preds = %2167
  br label %2169

2169:                                             ; preds = %2168
  %2170 = load i32, ptr @test_count, align 4, !tbaa !5
  %2171 = add nsw i32 %2170, 1
  store i32 %2171, ptr @test_count, align 4, !tbaa !5
  %2172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2173 = load i32, ptr %2172, align 4, !tbaa !5
  %2174 = icmp eq i32 %2173, 0
  br i1 %2174, label %2175, label %2228

2175:                                             ; preds = %2169
  br label %2176

2176:                                             ; preds = %2175
  br label %2177

2177:                                             ; preds = %2176
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  %2178 = call ptr @__errno_location() #9
  %2179 = load i32, ptr %2178, align 4, !tbaa !5
  store i32 %2179, ptr %44, align 4, !tbaa !5
  %2180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2181 = call i32 @s2n_print_stacktrace(ptr noundef %2180)
  %2182 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2183 = trunc i8 %2182 to i1
  br i1 %2183, label %2184, label %2206

2184:                                             ; preds = %2177
  %2185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2186 = call i32 @fileno(ptr noundef %2185) #8
  %2187 = call i32 @isatty(i32 noundef %2186) #8
  %2188 = icmp ne i32 %2187, 0
  br i1 %2188, label %2189, label %2206

2189:                                             ; preds = %2184
  %2190 = load i32, ptr %44, align 4, !tbaa !5
  %2191 = call ptr @__errno_location() #9
  store i32 %2190, ptr %2191, align 4, !tbaa !5
  %2192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2193 = load i32, ptr @test_count, align 4, !tbaa !5
  %2194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2195 = load i32, ptr %2194, align 4, !tbaa !5
  %2196 = call ptr @s2n_strerror(i32 noundef %2195, ptr noundef @.str.4)
  %2197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2198 = load i32, ptr %2197, align 4, !tbaa !5
  %2199 = call ptr @s2n_strerror_debug(i32 noundef %2198, ptr noundef @.str.4)
  %2200 = call ptr @__errno_location() #9
  %2201 = load i32, ptr %2200, align 4, !tbaa !5
  %2202 = call ptr @strerror(i32 noundef %2201) #8
  %2203 = call ptr @__errno_location() #9
  %2204 = load i32, ptr %2203, align 4, !tbaa !5
  %2205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2192, ptr noundef @.str.2, i32 noundef %2193, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 327, ptr noundef %2196, ptr noundef %2199, ptr noundef %2202, i32 noundef %2204) #8
  br label %2223

2206:                                             ; preds = %2184, %2177
  %2207 = load i32, ptr %44, align 4, !tbaa !5
  %2208 = call ptr @__errno_location() #9
  store i32 %2207, ptr %2208, align 4, !tbaa !5
  %2209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2210 = load i32, ptr @test_count, align 4, !tbaa !5
  %2211 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2212 = load i32, ptr %2211, align 4, !tbaa !5
  %2213 = call ptr @s2n_strerror(i32 noundef %2212, ptr noundef @.str.4)
  %2214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2215 = load i32, ptr %2214, align 4, !tbaa !5
  %2216 = call ptr @s2n_strerror_debug(i32 noundef %2215, ptr noundef @.str.4)
  %2217 = call ptr @__errno_location() #9
  %2218 = load i32, ptr %2217, align 4, !tbaa !5
  %2219 = call ptr @strerror(i32 noundef %2218) #8
  %2220 = call ptr @__errno_location() #9
  %2221 = load i32, ptr %2220, align 4, !tbaa !5
  %2222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2209, ptr noundef @.str.5, i32 noundef %2210, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 327, ptr noundef %2213, ptr noundef %2216, ptr noundef %2219, i32 noundef %2221) #8
  br label %2223

2223:                                             ; preds = %2206, %2189
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %2224

2224:                                             ; preds = %2223
  br label %2225

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

2226:                                             ; No predecessors!
  br label %2227

2227:                                             ; preds = %2226
  br label %2228

2228:                                             ; preds = %2227, %2169
  br label %2229

2229:                                             ; preds = %2228
  br label %2230

2230:                                             ; preds = %2229
  br label %2231

2231:                                             ; preds = %2230
  %2232 = load i32, ptr @test_count, align 4, !tbaa !5
  %2233 = add nsw i32 %2232, 1
  store i32 %2233, ptr @test_count, align 4, !tbaa !5
  %2234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2235 = load i32, ptr %2234, align 4, !tbaa !5
  %2236 = call ptr @s2n_strerror_debug(i32 noundef %2235, ptr noundef @.str.4)
  %2237 = icmp eq ptr %2236, null
  br i1 %2237, label %2238, label %2291

2238:                                             ; preds = %2231
  br label %2239

2239:                                             ; preds = %2238
  br label %2240

2240:                                             ; preds = %2239
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  %2241 = call ptr @__errno_location() #9
  %2242 = load i32, ptr %2241, align 4, !tbaa !5
  store i32 %2242, ptr %45, align 4, !tbaa !5
  %2243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2244 = call i32 @s2n_print_stacktrace(ptr noundef %2243)
  %2245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2246 = trunc i8 %2245 to i1
  br i1 %2246, label %2247, label %2269

2247:                                             ; preds = %2240
  %2248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2249 = call i32 @fileno(ptr noundef %2248) #8
  %2250 = call i32 @isatty(i32 noundef %2249) #8
  %2251 = icmp ne i32 %2250, 0
  br i1 %2251, label %2252, label %2269

2252:                                             ; preds = %2247
  %2253 = load i32, ptr %45, align 4, !tbaa !5
  %2254 = call ptr @__errno_location() #9
  store i32 %2253, ptr %2254, align 4, !tbaa !5
  %2255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2256 = load i32, ptr @test_count, align 4, !tbaa !5
  %2257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2258 = load i32, ptr %2257, align 4, !tbaa !5
  %2259 = call ptr @s2n_strerror(i32 noundef %2258, ptr noundef @.str.4)
  %2260 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2261 = load i32, ptr %2260, align 4, !tbaa !5
  %2262 = call ptr @s2n_strerror_debug(i32 noundef %2261, ptr noundef @.str.4)
  %2263 = call ptr @__errno_location() #9
  %2264 = load i32, ptr %2263, align 4, !tbaa !5
  %2265 = call ptr @strerror(i32 noundef %2264) #8
  %2266 = call ptr @__errno_location() #9
  %2267 = load i32, ptr %2266, align 4, !tbaa !5
  %2268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2255, ptr noundef @.str.2, i32 noundef %2256, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 327, ptr noundef %2259, ptr noundef %2262, ptr noundef %2265, i32 noundef %2267) #8
  br label %2286

2269:                                             ; preds = %2247, %2240
  %2270 = load i32, ptr %45, align 4, !tbaa !5
  %2271 = call ptr @__errno_location() #9
  store i32 %2270, ptr %2271, align 4, !tbaa !5
  %2272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2273 = load i32, ptr @test_count, align 4, !tbaa !5
  %2274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2275 = load i32, ptr %2274, align 4, !tbaa !5
  %2276 = call ptr @s2n_strerror(i32 noundef %2275, ptr noundef @.str.4)
  %2277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2278 = load i32, ptr %2277, align 4, !tbaa !5
  %2279 = call ptr @s2n_strerror_debug(i32 noundef %2278, ptr noundef @.str.4)
  %2280 = call ptr @__errno_location() #9
  %2281 = load i32, ptr %2280, align 4, !tbaa !5
  %2282 = call ptr @strerror(i32 noundef %2281) #8
  %2283 = call ptr @__errno_location() #9
  %2284 = load i32, ptr %2283, align 4, !tbaa !5
  %2285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2272, ptr noundef @.str.5, i32 noundef %2273, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 327, ptr noundef %2276, ptr noundef %2279, ptr noundef %2282, i32 noundef %2284) #8
  br label %2286

2286:                                             ; preds = %2269, %2252
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  br label %2287

2287:                                             ; preds = %2286
  br label %2288

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

2289:                                             ; No predecessors!
  br label %2290

2290:                                             ; preds = %2289
  br label %2291

2291:                                             ; preds = %2290, %2231
  br label %2292

2292:                                             ; preds = %2291
  br label %2293

2293:                                             ; preds = %2292
  br label %2294

2294:                                             ; preds = %2293
  %2295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2295, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2296 = call ptr @__errno_location() #9
  store i32 0, ptr %2296, align 4, !tbaa !5
  br label %2297

2297:                                             ; preds = %2294
  br label %2298

2298:                                             ; preds = %2297
  br label %2299

2299:                                             ; preds = %2298
  br label %2300

2300:                                             ; preds = %2299
  br label %2301

2301:                                             ; preds = %2300
  %2302 = load i32, ptr @test_count, align 4, !tbaa !5
  %2303 = add nsw i32 %2302, 1
  store i32 %2303, ptr @test_count, align 4, !tbaa !5
  %2304 = load ptr, ptr %15, align 8, !tbaa !9
  %2305 = getelementptr inbounds %struct.s2n_connection, ptr %2304, i32 0, i32 32
  %2306 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %2305, i32 0, i32 13
  %2307 = getelementptr inbounds [32 x i8], ptr %2306, i64 0, i64 0
  %2308 = call i32 @memcmp(ptr noundef %2307, ptr noundef @zero_to_thirty_one, i64 noundef 32) #11
  %2309 = icmp eq i32 %2308, 0
  br i1 %2309, label %2363, label %2310

2310:                                             ; preds = %2301
  br label %2311

2311:                                             ; preds = %2310
  br label %2312

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

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

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

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

2358:                                             ; preds = %2341, %2324
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  br label %2359

2359:                                             ; preds = %2358
  br label %2360

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

2361:                                             ; No predecessors!
  br label %2362

2362:                                             ; preds = %2361
  br label %2363

2363:                                             ; preds = %2362, %2301
  br label %2364

2364:                                             ; preds = %2363
  br label %2365

2365:                                             ; preds = %2364
  br label %2366

2366:                                             ; preds = %2365
  %2367 = load i32, ptr @test_count, align 4, !tbaa !5
  %2368 = add nsw i32 %2367, 1
  store i32 %2368, ptr @test_count, align 4, !tbaa !5
  %2369 = load ptr, ptr %15, align 8, !tbaa !9
  %2370 = call i32 @s2n_conn_get_current_message_type(ptr noundef %2369)
  %2371 = icmp eq i32 %2370, 2
  br i1 %2371, label %2425, label %2372

2372:                                             ; preds = %2366
  br label %2373

2373:                                             ; preds = %2372
  br label %2374

2374:                                             ; preds = %2373
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  %2375 = call ptr @__errno_location() #9
  %2376 = load i32, ptr %2375, align 4, !tbaa !5
  store i32 %2376, ptr %47, align 4, !tbaa !5
  %2377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2378 = call i32 @s2n_print_stacktrace(ptr noundef %2377)
  %2379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2380 = trunc i8 %2379 to i1
  br i1 %2380, label %2381, label %2403

2381:                                             ; preds = %2374
  %2382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2383 = call i32 @fileno(ptr noundef %2382) #8
  %2384 = call i32 @isatty(i32 noundef %2383) #8
  %2385 = icmp ne i32 %2384, 0
  br i1 %2385, label %2386, label %2403

2386:                                             ; preds = %2381
  %2387 = load i32, ptr %47, align 4, !tbaa !5
  %2388 = call ptr @__errno_location() #9
  store i32 %2387, ptr %2388, align 4, !tbaa !5
  %2389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2390 = load i32, ptr @test_count, align 4, !tbaa !5
  %2391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2392 = load i32, ptr %2391, align 4, !tbaa !5
  %2393 = call ptr @s2n_strerror(i32 noundef %2392, ptr noundef @.str.4)
  %2394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2395 = load i32, ptr %2394, align 4, !tbaa !5
  %2396 = call ptr @s2n_strerror_debug(i32 noundef %2395, ptr noundef @.str.4)
  %2397 = call ptr @__errno_location() #9
  %2398 = load i32, ptr %2397, align 4, !tbaa !5
  %2399 = call ptr @strerror(i32 noundef %2398) #8
  %2400 = call ptr @__errno_location() #9
  %2401 = load i32, ptr %2400, align 4, !tbaa !5
  %2402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2389, ptr noundef @.str.2, i32 noundef %2390, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 333, ptr noundef %2393, ptr noundef %2396, ptr noundef %2399, i32 noundef %2401) #8
  br label %2420

2403:                                             ; preds = %2381, %2374
  %2404 = load i32, ptr %47, align 4, !tbaa !5
  %2405 = call ptr @__errno_location() #9
  store i32 %2404, ptr %2405, align 4, !tbaa !5
  %2406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2407 = load i32, ptr @test_count, align 4, !tbaa !5
  %2408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2409 = load i32, ptr %2408, align 4, !tbaa !5
  %2410 = call ptr @s2n_strerror(i32 noundef %2409, ptr noundef @.str.4)
  %2411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2412 = load i32, ptr %2411, align 4, !tbaa !5
  %2413 = call ptr @s2n_strerror_debug(i32 noundef %2412, ptr noundef @.str.4)
  %2414 = call ptr @__errno_location() #9
  %2415 = load i32, ptr %2414, align 4, !tbaa !5
  %2416 = call ptr @strerror(i32 noundef %2415) #8
  %2417 = call ptr @__errno_location() #9
  %2418 = load i32, ptr %2417, align 4, !tbaa !5
  %2419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2406, ptr noundef @.str.5, i32 noundef %2407, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 333, ptr noundef %2410, ptr noundef %2413, ptr noundef %2416, i32 noundef %2418) #8
  br label %2420

2420:                                             ; preds = %2403, %2386
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  br label %2421

2421:                                             ; preds = %2420
  br label %2422

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

2423:                                             ; No predecessors!
  br label %2424

2424:                                             ; preds = %2423
  br label %2425

2425:                                             ; preds = %2424, %2366
  br label %2426

2426:                                             ; preds = %2425
  br label %2427

2427:                                             ; preds = %2426
  br label %2428

2428:                                             ; preds = %2427
  %2429 = load i32, ptr @test_count, align 4, !tbaa !5
  %2430 = add nsw i32 %2429, 1
  store i32 %2430, ptr @test_count, align 4, !tbaa !5
  %2431 = load i32, ptr %8, align 4, !tbaa !5
  %2432 = call i32 @waitpid(i32 noundef %2431, ptr noundef %7, i32 noundef 0)
  %2433 = load i32, ptr %8, align 4, !tbaa !5
  %2434 = icmp eq i32 %2432, %2433
  br i1 %2434, label %2488, label %2435

2435:                                             ; preds = %2428
  br label %2436

2436:                                             ; preds = %2435
  br label %2437

2437:                                             ; preds = %2436
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  %2438 = call ptr @__errno_location() #9
  %2439 = load i32, ptr %2438, align 4, !tbaa !5
  store i32 %2439, ptr %48, align 4, !tbaa !5
  %2440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2441 = call i32 @s2n_print_stacktrace(ptr noundef %2440)
  %2442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2443 = trunc i8 %2442 to i1
  br i1 %2443, label %2444, label %2466

2444:                                             ; preds = %2437
  %2445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2446 = call i32 @fileno(ptr noundef %2445) #8
  %2447 = call i32 @isatty(i32 noundef %2446) #8
  %2448 = icmp ne i32 %2447, 0
  br i1 %2448, label %2449, label %2466

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

2466:                                             ; preds = %2444, %2437
  %2467 = load i32, ptr %48, align 4, !tbaa !5
  %2468 = call ptr @__errno_location() #9
  store i32 %2467, ptr %2468, align 4, !tbaa !5
  %2469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2470 = load i32, ptr @test_count, align 4, !tbaa !5
  %2471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2472 = load i32, ptr %2471, align 4, !tbaa !5
  %2473 = call ptr @s2n_strerror(i32 noundef %2472, ptr noundef @.str.4)
  %2474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2475 = load i32, ptr %2474, align 4, !tbaa !5
  %2476 = call ptr @s2n_strerror_debug(i32 noundef %2475, ptr noundef @.str.4)
  %2477 = call ptr @__errno_location() #9
  %2478 = load i32, ptr %2477, align 4, !tbaa !5
  %2479 = call ptr @strerror(i32 noundef %2478) #8
  %2480 = call ptr @__errno_location() #9
  %2481 = load i32, ptr %2480, align 4, !tbaa !5
  %2482 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2469, ptr noundef @.str.5, i32 noundef %2470, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 336, ptr noundef %2473, ptr noundef %2476, ptr noundef %2479, i32 noundef %2481) #8
  br label %2483

2483:                                             ; preds = %2466, %2449
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  br label %2484

2484:                                             ; preds = %2483
  br label %2485

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

2486:                                             ; No predecessors!
  br label %2487

2487:                                             ; preds = %2486
  br label %2488

2488:                                             ; preds = %2487, %2428
  br label %2489

2489:                                             ; preds = %2488
  br label %2490

2490:                                             ; preds = %2489
  br label %2491

2491:                                             ; preds = %2490
  %2492 = load i32, ptr @test_count, align 4, !tbaa !5
  %2493 = add nsw i32 %2492, 1
  store i32 %2493, ptr @test_count, align 4, !tbaa !5
  %2494 = load i32, ptr %7, align 4, !tbaa !5
  %2495 = icmp eq i32 %2494, 0
  br i1 %2495, label %2549, label %2496

2496:                                             ; preds = %2491
  br label %2497

2497:                                             ; preds = %2496
  br label %2498

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

2505:                                             ; preds = %2498
  %2506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2507 = call i32 @fileno(ptr noundef %2506) #8
  %2508 = call i32 @isatty(i32 noundef %2507) #8
  %2509 = icmp ne i32 %2508, 0
  br i1 %2509, label %2510, label %2527

2510:                                             ; preds = %2505
  %2511 = load i32, ptr %49, align 4, !tbaa !5
  %2512 = call ptr @__errno_location() #9
  store i32 %2511, ptr %2512, align 4, !tbaa !5
  %2513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2514 = load i32, ptr @test_count, align 4, !tbaa !5
  %2515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2516 = load i32, ptr %2515, align 4, !tbaa !5
  %2517 = call ptr @s2n_strerror(i32 noundef %2516, ptr noundef @.str.4)
  %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 = call ptr @__errno_location() #9
  %2522 = load i32, ptr %2521, align 4, !tbaa !5
  %2523 = call ptr @strerror(i32 noundef %2522) #8
  %2524 = call ptr @__errno_location() #9
  %2525 = load i32, ptr %2524, align 4, !tbaa !5
  %2526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2513, ptr noundef @.str.2, i32 noundef %2514, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 337, ptr noundef %2517, ptr noundef %2520, ptr noundef %2523, i32 noundef %2525) #8
  br label %2544

2527:                                             ; preds = %2505, %2498
  %2528 = load i32, ptr %49, align 4, !tbaa !5
  %2529 = call ptr @__errno_location() #9
  store i32 %2528, ptr %2529, align 4, !tbaa !5
  %2530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2531 = load i32, ptr @test_count, align 4, !tbaa !5
  %2532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2533 = load i32, ptr %2532, align 4, !tbaa !5
  %2534 = call ptr @s2n_strerror(i32 noundef %2533, ptr noundef @.str.4)
  %2535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2536 = load i32, ptr %2535, align 4, !tbaa !5
  %2537 = call ptr @s2n_strerror_debug(i32 noundef %2536, ptr noundef @.str.4)
  %2538 = call ptr @__errno_location() #9
  %2539 = load i32, ptr %2538, align 4, !tbaa !5
  %2540 = call ptr @strerror(i32 noundef %2539) #8
  %2541 = call ptr @__errno_location() #9
  %2542 = load i32, ptr %2541, align 4, !tbaa !5
  %2543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2530, ptr noundef @.str.5, i32 noundef %2531, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 337, ptr noundef %2534, ptr noundef %2537, ptr noundef %2540, i32 noundef %2542) #8
  br label %2544

2544:                                             ; preds = %2527, %2510
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #8
  br label %2545

2545:                                             ; preds = %2544
  br label %2546

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

2547:                                             ; No predecessors!
  br label %2548

2548:                                             ; preds = %2547
  br label %2549

2549:                                             ; preds = %2548, %2491
  br label %2550

2550:                                             ; preds = %2549
  br label %2551

2551:                                             ; preds = %2550
  br label %2552

2552:                                             ; preds = %2551
  %2553 = load i32, ptr @test_count, align 4, !tbaa !5
  %2554 = add nsw i32 %2553, 1
  store i32 %2554, ptr @test_count, align 4, !tbaa !5
  %2555 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %2556 = load i32, ptr %2555, align 4, !tbaa !5
  %2557 = call i32 @close(i32 noundef %2556)
  %2558 = icmp eq i32 %2557, -1
  br i1 %2558, label %2559, label %2612

2559:                                             ; preds = %2552
  br label %2560

2560:                                             ; preds = %2559
  br label %2561

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

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

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

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

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

2608:                                             ; preds = %2607
  br label %2609

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

2610:                                             ; No predecessors!
  br label %2611

2611:                                             ; preds = %2610
  br label %2612

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

2613:                                             ; preds = %2612
  br label %2614

2614:                                             ; preds = %2613
  br label %2615

2615:                                             ; preds = %2614
  %2616 = load i32, ptr @test_count, align 4, !tbaa !5
  %2617 = add nsw i32 %2616, 1
  store i32 %2617, ptr @test_count, align 4, !tbaa !5
  %2618 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %2619 = call i32 @pipe(ptr noundef %2618) #8
  %2620 = icmp eq i32 %2619, -1
  br i1 %2620, label %2621, label %2674

2621:                                             ; preds = %2615
  br label %2622

2622:                                             ; preds = %2621
  br label %2623

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

2630:                                             ; preds = %2623
  %2631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2632 = call i32 @fileno(ptr noundef %2631) #8
  %2633 = call i32 @isatty(i32 noundef %2632) #8
  %2634 = icmp ne i32 %2633, 0
  br i1 %2634, label %2635, label %2652

2635:                                             ; preds = %2630
  %2636 = load i32, ptr %51, align 4, !tbaa !5
  %2637 = call ptr @__errno_location() #9
  store i32 %2636, ptr %2637, align 4, !tbaa !5
  %2638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2639 = load i32, ptr @test_count, align 4, !tbaa !5
  %2640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2641 = load i32, ptr %2640, align 4, !tbaa !5
  %2642 = call ptr @s2n_strerror(i32 noundef %2641, ptr noundef @.str.4)
  %2643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2644 = load i32, ptr %2643, align 4, !tbaa !5
  %2645 = call ptr @s2n_strerror_debug(i32 noundef %2644, ptr noundef @.str.4)
  %2646 = call ptr @__errno_location() #9
  %2647 = load i32, ptr %2646, align 4, !tbaa !5
  %2648 = call ptr @strerror(i32 noundef %2647) #8
  %2649 = call ptr @__errno_location() #9
  %2650 = load i32, ptr %2649, align 4, !tbaa !5
  %2651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2638, ptr noundef @.str.2, i32 noundef %2639, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 343, ptr noundef %2642, ptr noundef %2645, ptr noundef %2648, i32 noundef %2650) #8
  br label %2669

2652:                                             ; preds = %2630, %2623
  %2653 = load i32, ptr %51, align 4, !tbaa !5
  %2654 = call ptr @__errno_location() #9
  store i32 %2653, ptr %2654, align 4, !tbaa !5
  %2655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2656 = load i32, ptr @test_count, align 4, !tbaa !5
  %2657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2658 = load i32, ptr %2657, align 4, !tbaa !5
  %2659 = call ptr @s2n_strerror(i32 noundef %2658, ptr noundef @.str.4)
  %2660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2661 = load i32, ptr %2660, align 4, !tbaa !5
  %2662 = call ptr @s2n_strerror_debug(i32 noundef %2661, ptr noundef @.str.4)
  %2663 = call ptr @__errno_location() #9
  %2664 = load i32, ptr %2663, align 4, !tbaa !5
  %2665 = call ptr @strerror(i32 noundef %2664) #8
  %2666 = call ptr @__errno_location() #9
  %2667 = load i32, ptr %2666, align 4, !tbaa !5
  %2668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2655, ptr noundef @.str.5, i32 noundef %2656, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 343, ptr noundef %2659, ptr noundef %2662, ptr noundef %2665, i32 noundef %2667) #8
  br label %2669

2669:                                             ; preds = %2652, %2635
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  br label %2670

2670:                                             ; preds = %2669
  br label %2671

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

2672:                                             ; No predecessors!
  br label %2673

2673:                                             ; preds = %2672
  br label %2674

2674:                                             ; preds = %2673, %2615
  br label %2675

2675:                                             ; preds = %2674
  br label %2676

2676:                                             ; preds = %2675
  br label %2677

2677:                                             ; preds = %2676
  %2678 = load i32, ptr @test_count, align 4, !tbaa !5
  %2679 = add nsw i32 %2678, 1
  store i32 %2679, ptr @test_count, align 4, !tbaa !5
  %2680 = load ptr, ptr %15, align 8, !tbaa !9
  %2681 = call i32 @s2n_connection_wipe(ptr noundef %2680)
  %2682 = icmp eq i32 %2681, -1
  br i1 %2682, label %2683, label %2736

2683:                                             ; preds = %2677
  br label %2684

2684:                                             ; preds = %2683
  br label %2685

2685:                                             ; preds = %2684
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #8
  %2686 = call ptr @__errno_location() #9
  %2687 = load i32, ptr %2686, align 4, !tbaa !5
  store i32 %2687, ptr %52, align 4, !tbaa !5
  %2688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2689 = call i32 @s2n_print_stacktrace(ptr noundef %2688)
  %2690 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2691 = trunc i8 %2690 to i1
  br i1 %2691, label %2692, label %2714

2692:                                             ; preds = %2685
  %2693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2694 = call i32 @fileno(ptr noundef %2693) #8
  %2695 = call i32 @isatty(i32 noundef %2694) #8
  %2696 = icmp ne i32 %2695, 0
  br i1 %2696, label %2697, label %2714

2697:                                             ; preds = %2692
  %2698 = load i32, ptr %52, align 4, !tbaa !5
  %2699 = call ptr @__errno_location() #9
  store i32 %2698, ptr %2699, align 4, !tbaa !5
  %2700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2701 = load i32, ptr @test_count, align 4, !tbaa !5
  %2702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2703 = load i32, ptr %2702, align 4, !tbaa !5
  %2704 = call ptr @s2n_strerror(i32 noundef %2703, ptr noundef @.str.4)
  %2705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2706 = load i32, ptr %2705, align 4, !tbaa !5
  %2707 = call ptr @s2n_strerror_debug(i32 noundef %2706, ptr noundef @.str.4)
  %2708 = call ptr @__errno_location() #9
  %2709 = load i32, ptr %2708, align 4, !tbaa !5
  %2710 = call ptr @strerror(i32 noundef %2709) #8
  %2711 = call ptr @__errno_location() #9
  %2712 = load i32, ptr %2711, align 4, !tbaa !5
  %2713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2700, ptr noundef @.str.2, i32 noundef %2701, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 345, ptr noundef %2704, ptr noundef %2707, ptr noundef %2710, i32 noundef %2712) #8
  br label %2731

2714:                                             ; preds = %2692, %2685
  %2715 = load i32, ptr %52, align 4, !tbaa !5
  %2716 = call ptr @__errno_location() #9
  store i32 %2715, ptr %2716, align 4, !tbaa !5
  %2717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2718 = load i32, ptr @test_count, align 4, !tbaa !5
  %2719 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2720 = load i32, ptr %2719, align 4, !tbaa !5
  %2721 = call ptr @s2n_strerror(i32 noundef %2720, ptr noundef @.str.4)
  %2722 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2723 = load i32, ptr %2722, align 4, !tbaa !5
  %2724 = call ptr @s2n_strerror_debug(i32 noundef %2723, ptr noundef @.str.4)
  %2725 = call ptr @__errno_location() #9
  %2726 = load i32, ptr %2725, align 4, !tbaa !5
  %2727 = call ptr @strerror(i32 noundef %2726) #8
  %2728 = call ptr @__errno_location() #9
  %2729 = load i32, ptr %2728, align 4, !tbaa !5
  %2730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2717, ptr noundef @.str.5, i32 noundef %2718, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 345, ptr noundef %2721, ptr noundef %2724, ptr noundef %2727, i32 noundef %2729) #8
  br label %2731

2731:                                             ; preds = %2714, %2697
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #8
  br label %2732

2732:                                             ; preds = %2731
  br label %2733

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

2734:                                             ; No predecessors!
  br label %2735

2735:                                             ; preds = %2734
  br label %2736

2736:                                             ; preds = %2735, %2677
  br label %2737

2737:                                             ; preds = %2736
  br label %2738

2738:                                             ; preds = %2737
  br label %2739

2739:                                             ; preds = %2738
  %2740 = load i32, ptr @test_count, align 4, !tbaa !5
  %2741 = add nsw i32 %2740, 1
  store i32 %2741, ptr @test_count, align 4, !tbaa !5
  %2742 = load ptr, ptr %15, align 8, !tbaa !9
  %2743 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %2744 = load i32, ptr %2743, align 4, !tbaa !5
  %2745 = call i32 @s2n_connection_set_read_fd(ptr noundef %2742, i32 noundef %2744)
  %2746 = icmp eq i32 %2745, -1
  br i1 %2746, label %2747, label %2800

2747:                                             ; preds = %2739
  br label %2748

2748:                                             ; preds = %2747
  br label %2749

2749:                                             ; preds = %2748
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #8
  %2750 = call ptr @__errno_location() #9
  %2751 = load i32, ptr %2750, align 4, !tbaa !5
  store i32 %2751, ptr %53, align 4, !tbaa !5
  %2752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2753 = call i32 @s2n_print_stacktrace(ptr noundef %2752)
  %2754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2755 = trunc i8 %2754 to i1
  br i1 %2755, label %2756, label %2778

2756:                                             ; preds = %2749
  %2757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2758 = call i32 @fileno(ptr noundef %2757) #8
  %2759 = call i32 @isatty(i32 noundef %2758) #8
  %2760 = icmp ne i32 %2759, 0
  br i1 %2760, label %2761, label %2778

2761:                                             ; preds = %2756
  %2762 = load i32, ptr %53, align 4, !tbaa !5
  %2763 = call ptr @__errno_location() #9
  store i32 %2762, ptr %2763, align 4, !tbaa !5
  %2764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2765 = load i32, ptr @test_count, align 4, !tbaa !5
  %2766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2767 = load i32, ptr %2766, align 4, !tbaa !5
  %2768 = call ptr @s2n_strerror(i32 noundef %2767, ptr noundef @.str.4)
  %2769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2770 = load i32, ptr %2769, align 4, !tbaa !5
  %2771 = call ptr @s2n_strerror_debug(i32 noundef %2770, ptr noundef @.str.4)
  %2772 = call ptr @__errno_location() #9
  %2773 = load i32, ptr %2772, align 4, !tbaa !5
  %2774 = call ptr @strerror(i32 noundef %2773) #8
  %2775 = call ptr @__errno_location() #9
  %2776 = load i32, ptr %2775, align 4, !tbaa !5
  %2777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2764, ptr noundef @.str.2, i32 noundef %2765, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 348, ptr noundef %2768, ptr noundef %2771, ptr noundef %2774, i32 noundef %2776) #8
  br label %2795

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

2795:                                             ; preds = %2778, %2761
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #8
  br label %2796

2796:                                             ; preds = %2795
  br label %2797

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

2798:                                             ; No predecessors!
  br label %2799

2799:                                             ; preds = %2798
  br label %2800

2800:                                             ; preds = %2799, %2739
  br label %2801

2801:                                             ; preds = %2800
  br label %2802

2802:                                             ; preds = %2801
  %2803 = load ptr, ptr %15, align 8, !tbaa !9
  %2804 = getelementptr inbounds %struct.s2n_connection, ptr %2803, i32 0, i32 52
  %2805 = getelementptr inbounds %struct.s2n_handshake, ptr %2804, i32 0, i32 6
  store i32 3, ptr %2805, align 4, !tbaa !15
  %2806 = load ptr, ptr %15, align 8, !tbaa !9
  %2807 = getelementptr inbounds %struct.s2n_connection, ptr %2806, i32 0, i32 52
  %2808 = getelementptr inbounds %struct.s2n_handshake, ptr %2807, i32 0, i32 7
  store i32 1, ptr %2808, align 8, !tbaa !42
  %2809 = load ptr, ptr %15, align 8, !tbaa !9
  %2810 = getelementptr inbounds %struct.s2n_connection, ptr %2809, i32 0, i32 22
  store i8 33, ptr %2810, align 1, !tbaa !43
  %2811 = load ptr, ptr %15, align 8, !tbaa !9
  %2812 = getelementptr inbounds %struct.s2n_connection, ptr %2811, i32 0, i32 21
  store i8 33, ptr %2812, align 2, !tbaa !44
  %2813 = load ptr, ptr %15, align 8, !tbaa !9
  %2814 = getelementptr inbounds %struct.s2n_connection, ptr %2813, i32 0, i32 23
  store i8 33, ptr %2814, align 4, !tbaa !45
  %2815 = call i32 @fork() #8
  store i32 %2815, ptr %8, align 4, !tbaa !5
  %2816 = load i32, ptr %8, align 4, !tbaa !5
  %2817 = icmp eq i32 %2816, 0
  br i1 %2817, label %2818, label %3008

2818:                                             ; preds = %2802
  br label %2819

2819:                                             ; preds = %2818
  %2820 = load i32, ptr @test_count, align 4, !tbaa !5
  %2821 = add nsw i32 %2820, 1
  store i32 %2821, ptr @test_count, align 4, !tbaa !5
  %2822 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %2823 = load i32, ptr %2822, align 4, !tbaa !5
  %2824 = call i32 @close(i32 noundef %2823)
  %2825 = icmp eq i32 %2824, -1
  br i1 %2825, label %2826, label %2879

2826:                                             ; preds = %2819
  br label %2827

2827:                                             ; preds = %2826
  br label %2828

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

2835:                                             ; preds = %2828
  %2836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2837 = call i32 @fileno(ptr noundef %2836) #8
  %2838 = call i32 @isatty(i32 noundef %2837) #8
  %2839 = icmp ne i32 %2838, 0
  br i1 %2839, label %2840, label %2857

2840:                                             ; preds = %2835
  %2841 = load i32, ptr %54, align 4, !tbaa !5
  %2842 = call ptr @__errno_location() #9
  store i32 %2841, ptr %2842, align 4, !tbaa !5
  %2843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2844 = load i32, ptr @test_count, align 4, !tbaa !5
  %2845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2846 = load i32, ptr %2845, align 4, !tbaa !5
  %2847 = call ptr @s2n_strerror(i32 noundef %2846, ptr noundef @.str.4)
  %2848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2849 = load i32, ptr %2848, align 4, !tbaa !5
  %2850 = call ptr @s2n_strerror_debug(i32 noundef %2849, ptr noundef @.str.4)
  %2851 = call ptr @__errno_location() #9
  %2852 = load i32, ptr %2851, align 4, !tbaa !5
  %2853 = call ptr @strerror(i32 noundef %2852) #8
  %2854 = call ptr @__errno_location() #9
  %2855 = load i32, ptr %2854, align 4, !tbaa !5
  %2856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2843, ptr noundef @.str.2, i32 noundef %2844, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 361, ptr noundef %2847, ptr noundef %2850, ptr noundef %2853, i32 noundef %2855) #8
  br label %2874

2857:                                             ; preds = %2835, %2828
  %2858 = load i32, ptr %54, align 4, !tbaa !5
  %2859 = call ptr @__errno_location() #9
  store i32 %2858, ptr %2859, align 4, !tbaa !5
  %2860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2861 = load i32, ptr @test_count, align 4, !tbaa !5
  %2862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2863 = load i32, ptr %2862, align 4, !tbaa !5
  %2864 = call ptr @s2n_strerror(i32 noundef %2863, ptr noundef @.str.4)
  %2865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2866 = load i32, ptr %2865, align 4, !tbaa !5
  %2867 = call ptr @s2n_strerror_debug(i32 noundef %2866, ptr noundef @.str.4)
  %2868 = call ptr @__errno_location() #9
  %2869 = load i32, ptr %2868, align 4, !tbaa !5
  %2870 = call ptr @strerror(i32 noundef %2869) #8
  %2871 = call ptr @__errno_location() #9
  %2872 = load i32, ptr %2871, align 4, !tbaa !5
  %2873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2860, ptr noundef @.str.5, i32 noundef %2861, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 361, ptr noundef %2864, ptr noundef %2867, ptr noundef %2870, i32 noundef %2872) #8
  br label %2874

2874:                                             ; preds = %2857, %2840
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  br label %2875

2875:                                             ; preds = %2874
  br label %2876

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

2877:                                             ; No predecessors!
  br label %2878

2878:                                             ; preds = %2877
  br label %2879

2879:                                             ; preds = %2878, %2819
  br label %2880

2880:                                             ; preds = %2879
  br label %2881

2881:                                             ; preds = %2880
  %2882 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 1
  %2883 = load i32, ptr %2882, align 4, !tbaa !5
  call void @send_messages(i32 noundef %2883, ptr noundef @server_hello_message, i32 noundef 74, ptr noundef @empty_certificate, i32 noundef 10)
  br label %2884

2884:                                             ; preds = %2881
  %2885 = load i32, ptr @test_count, align 4, !tbaa !5
  %2886 = add nsw i32 %2885, 1
  store i32 %2886, ptr @test_count, align 4, !tbaa !5
  %2887 = load ptr, ptr %15, align 8, !tbaa !9
  %2888 = call i32 @s2n_connection_free(ptr noundef %2887)
  %2889 = icmp eq i32 %2888, -1
  br i1 %2889, label %2890, label %2943

2890:                                             ; preds = %2884
  br label %2891

2891:                                             ; preds = %2890
  br label %2892

2892:                                             ; preds = %2891
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #8
  %2893 = call ptr @__errno_location() #9
  %2894 = load i32, ptr %2893, align 4, !tbaa !5
  store i32 %2894, ptr %55, align 4, !tbaa !5
  %2895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2896 = call i32 @s2n_print_stacktrace(ptr noundef %2895)
  %2897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2898 = trunc i8 %2897 to i1
  br i1 %2898, label %2899, label %2921

2899:                                             ; preds = %2892
  %2900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2901 = call i32 @fileno(ptr noundef %2900) #8
  %2902 = call i32 @isatty(i32 noundef %2901) #8
  %2903 = icmp ne i32 %2902, 0
  br i1 %2903, label %2904, label %2921

2904:                                             ; preds = %2899
  %2905 = load i32, ptr %55, align 4, !tbaa !5
  %2906 = call ptr @__errno_location() #9
  store i32 %2905, ptr %2906, align 4, !tbaa !5
  %2907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2908 = load i32, ptr @test_count, align 4, !tbaa !5
  %2909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2910 = load i32, ptr %2909, align 4, !tbaa !5
  %2911 = call ptr @s2n_strerror(i32 noundef %2910, ptr noundef @.str.4)
  %2912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  %2914 = call ptr @s2n_strerror_debug(i32 noundef %2913, ptr noundef @.str.4)
  %2915 = call ptr @__errno_location() #9
  %2916 = load i32, ptr %2915, align 4, !tbaa !5
  %2917 = call ptr @strerror(i32 noundef %2916) #8
  %2918 = call ptr @__errno_location() #9
  %2919 = load i32, ptr %2918, align 4, !tbaa !5
  %2920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2907, ptr noundef @.str.2, i32 noundef %2908, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 365, ptr noundef %2911, ptr noundef %2914, ptr noundef %2917, i32 noundef %2919) #8
  br label %2938

2921:                                             ; preds = %2899, %2892
  %2922 = load i32, ptr %55, align 4, !tbaa !5
  %2923 = call ptr @__errno_location() #9
  store i32 %2922, ptr %2923, align 4, !tbaa !5
  %2924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2925 = load i32, ptr @test_count, align 4, !tbaa !5
  %2926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2927 = load i32, ptr %2926, align 4, !tbaa !5
  %2928 = call ptr @s2n_strerror(i32 noundef %2927, ptr noundef @.str.4)
  %2929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2930 = load i32, ptr %2929, align 4, !tbaa !5
  %2931 = call ptr @s2n_strerror_debug(i32 noundef %2930, ptr noundef @.str.4)
  %2932 = call ptr @__errno_location() #9
  %2933 = load i32, ptr %2932, align 4, !tbaa !5
  %2934 = call ptr @strerror(i32 noundef %2933) #8
  %2935 = call ptr @__errno_location() #9
  %2936 = load i32, ptr %2935, align 4, !tbaa !5
  %2937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2924, ptr noundef @.str.5, i32 noundef %2925, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 365, ptr noundef %2928, ptr noundef %2931, ptr noundef %2934, i32 noundef %2936) #8
  br label %2938

2938:                                             ; preds = %2921, %2904
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #8
  br label %2939

2939:                                             ; preds = %2938
  br label %2940

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

2941:                                             ; No predecessors!
  br label %2942

2942:                                             ; preds = %2941
  br label %2943

2943:                                             ; preds = %2942, %2884
  br label %2944

2944:                                             ; preds = %2943
  br label %2945

2945:                                             ; preds = %2944
  br label %2946

2946:                                             ; preds = %2945
  %2947 = load i32, ptr @test_count, align 4, !tbaa !5
  %2948 = add nsw i32 %2947, 1
  store i32 %2948, ptr @test_count, align 4, !tbaa !5
  %2949 = load ptr, ptr %14, align 8, !tbaa !9
  %2950 = call i32 @s2n_config_free(ptr noundef %2949)
  %2951 = icmp eq i32 %2950, -1
  br i1 %2951, label %2952, label %3005

2952:                                             ; preds = %2946
  br label %2953

2953:                                             ; preds = %2952
  br label %2954

2954:                                             ; preds = %2953
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #8
  %2955 = call ptr @__errno_location() #9
  %2956 = load i32, ptr %2955, align 4, !tbaa !5
  store i32 %2956, ptr %56, align 4, !tbaa !5
  %2957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2958 = call i32 @s2n_print_stacktrace(ptr noundef %2957)
  %2959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2960 = trunc i8 %2959 to i1
  br i1 %2960, label %2961, label %2983

2961:                                             ; preds = %2954
  %2962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2963 = call i32 @fileno(ptr noundef %2962) #8
  %2964 = call i32 @isatty(i32 noundef %2963) #8
  %2965 = icmp ne i32 %2964, 0
  br i1 %2965, label %2966, label %2983

2966:                                             ; preds = %2961
  %2967 = load i32, ptr %56, align 4, !tbaa !5
  %2968 = call ptr @__errno_location() #9
  store i32 %2967, ptr %2968, align 4, !tbaa !5
  %2969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2970 = load i32, ptr @test_count, align 4, !tbaa !5
  %2971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2972 = load i32, ptr %2971, align 4, !tbaa !5
  %2973 = call ptr @s2n_strerror(i32 noundef %2972, ptr noundef @.str.4)
  %2974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2975 = load i32, ptr %2974, align 4, !tbaa !5
  %2976 = call ptr @s2n_strerror_debug(i32 noundef %2975, ptr noundef @.str.4)
  %2977 = call ptr @__errno_location() #9
  %2978 = load i32, ptr %2977, align 4, !tbaa !5
  %2979 = call ptr @strerror(i32 noundef %2978) #8
  %2980 = call ptr @__errno_location() #9
  %2981 = load i32, ptr %2980, align 4, !tbaa !5
  %2982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2969, ptr noundef @.str.2, i32 noundef %2970, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 366, ptr noundef %2973, ptr noundef %2976, ptr noundef %2979, i32 noundef %2981) #8
  br label %3000

2983:                                             ; preds = %2961, %2954
  %2984 = load i32, ptr %56, align 4, !tbaa !5
  %2985 = call ptr @__errno_location() #9
  store i32 %2984, ptr %2985, align 4, !tbaa !5
  %2986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2987 = load i32, ptr @test_count, align 4, !tbaa !5
  %2988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2989 = load i32, ptr %2988, align 4, !tbaa !5
  %2990 = call ptr @s2n_strerror(i32 noundef %2989, ptr noundef @.str.4)
  %2991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2992 = load i32, ptr %2991, align 4, !tbaa !5
  %2993 = call ptr @s2n_strerror_debug(i32 noundef %2992, ptr noundef @.str.4)
  %2994 = call ptr @__errno_location() #9
  %2995 = load i32, ptr %2994, align 4, !tbaa !5
  %2996 = call ptr @strerror(i32 noundef %2995) #8
  %2997 = call ptr @__errno_location() #9
  %2998 = load i32, ptr %2997, align 4, !tbaa !5
  %2999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2986, ptr noundef @.str.5, i32 noundef %2987, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 366, ptr noundef %2990, ptr noundef %2993, ptr noundef %2996, i32 noundef %2998) #8
  br label %3000

3000:                                             ; preds = %2983, %2966
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  br label %3001

3001:                                             ; preds = %3000
  br label %3002

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

3003:                                             ; No predecessors!
  br label %3004

3004:                                             ; preds = %3003
  br label %3005

3005:                                             ; preds = %3004, %2946
  br label %3006

3006:                                             ; preds = %3005
  br label %3007

3007:                                             ; preds = %3006
  call void @exit(i32 noundef 0) #10
  unreachable

3008:                                             ; preds = %2802
  br label %3009

3009:                                             ; preds = %3008
  %3010 = load i32, ptr @test_count, align 4, !tbaa !5
  %3011 = add nsw i32 %3010, 1
  store i32 %3011, ptr @test_count, align 4, !tbaa !5
  %3012 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 1
  %3013 = load i32, ptr %3012, align 4, !tbaa !5
  %3014 = call i32 @close(i32 noundef %3013)
  %3015 = icmp eq i32 %3014, -1
  br i1 %3015, label %3016, label %3069

3016:                                             ; preds = %3009
  br label %3017

3017:                                             ; preds = %3016
  br label %3018

3018:                                             ; preds = %3017
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #8
  %3019 = call ptr @__errno_location() #9
  %3020 = load i32, ptr %3019, align 4, !tbaa !5
  store i32 %3020, ptr %57, align 4, !tbaa !5
  %3021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3022 = call i32 @s2n_print_stacktrace(ptr noundef %3021)
  %3023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3024 = trunc i8 %3023 to i1
  br i1 %3024, label %3025, label %3047

3025:                                             ; preds = %3018
  %3026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3027 = call i32 @fileno(ptr noundef %3026) #8
  %3028 = call i32 @isatty(i32 noundef %3027) #8
  %3029 = icmp ne i32 %3028, 0
  br i1 %3029, label %3030, label %3047

3030:                                             ; preds = %3025
  %3031 = load i32, ptr %57, align 4, !tbaa !5
  %3032 = call ptr @__errno_location() #9
  store i32 %3031, ptr %3032, align 4, !tbaa !5
  %3033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3034 = load i32, ptr @test_count, align 4, !tbaa !5
  %3035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3036 = load i32, ptr %3035, align 4, !tbaa !5
  %3037 = call ptr @s2n_strerror(i32 noundef %3036, ptr noundef @.str.4)
  %3038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3039 = load i32, ptr %3038, align 4, !tbaa !5
  %3040 = call ptr @s2n_strerror_debug(i32 noundef %3039, ptr noundef @.str.4)
  %3041 = call ptr @__errno_location() #9
  %3042 = load i32, ptr %3041, align 4, !tbaa !5
  %3043 = call ptr @strerror(i32 noundef %3042) #8
  %3044 = call ptr @__errno_location() #9
  %3045 = load i32, ptr %3044, align 4, !tbaa !5
  %3046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3033, ptr noundef @.str.2, i32 noundef %3034, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 371, ptr noundef %3037, ptr noundef %3040, ptr noundef %3043, i32 noundef %3045) #8
  br label %3064

3047:                                             ; preds = %3025, %3018
  %3048 = load i32, ptr %57, align 4, !tbaa !5
  %3049 = call ptr @__errno_location() #9
  store i32 %3048, ptr %3049, align 4, !tbaa !5
  %3050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3051 = load i32, ptr @test_count, align 4, !tbaa !5
  %3052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3053 = load i32, ptr %3052, align 4, !tbaa !5
  %3054 = call ptr @s2n_strerror(i32 noundef %3053, ptr noundef @.str.4)
  %3055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3056 = load i32, ptr %3055, align 4, !tbaa !5
  %3057 = call ptr @s2n_strerror_debug(i32 noundef %3056, ptr noundef @.str.4)
  %3058 = call ptr @__errno_location() #9
  %3059 = load i32, ptr %3058, align 4, !tbaa !5
  %3060 = call ptr @strerror(i32 noundef %3059) #8
  %3061 = call ptr @__errno_location() #9
  %3062 = load i32, ptr %3061, align 4, !tbaa !5
  %3063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3050, ptr noundef @.str.5, i32 noundef %3051, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 371, ptr noundef %3054, ptr noundef %3057, ptr noundef %3060, i32 noundef %3062) #8
  br label %3064

3064:                                             ; preds = %3047, %3030
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #8
  br label %3065

3065:                                             ; preds = %3064
  br label %3066

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

3067:                                             ; No predecessors!
  br label %3068

3068:                                             ; preds = %3067
  br label %3069

3069:                                             ; preds = %3068, %3009
  br label %3070

3070:                                             ; preds = %3069
  br label %3071

3071:                                             ; preds = %3070
  br label %3072

3072:                                             ; preds = %3071
  %3073 = load i32, ptr @test_count, align 4, !tbaa !5
  %3074 = add nsw i32 %3073, 1
  store i32 %3074, ptr @test_count, align 4, !tbaa !5
  %3075 = load ptr, ptr %15, align 8, !tbaa !9
  %3076 = call i32 @s2n_connection_set_blinding(ptr noundef %3075, i32 noundef 1)
  %3077 = icmp eq i32 %3076, -1
  br i1 %3077, label %3078, label %3131

3078:                                             ; preds = %3072
  br label %3079

3079:                                             ; preds = %3078
  br label %3080

3080:                                             ; preds = %3079
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #8
  %3081 = call ptr @__errno_location() #9
  %3082 = load i32, ptr %3081, align 4, !tbaa !5
  store i32 %3082, ptr %58, align 4, !tbaa !5
  %3083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3084 = call i32 @s2n_print_stacktrace(ptr noundef %3083)
  %3085 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3086 = trunc i8 %3085 to i1
  br i1 %3086, label %3087, label %3109

3087:                                             ; preds = %3080
  %3088 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3089 = call i32 @fileno(ptr noundef %3088) #8
  %3090 = call i32 @isatty(i32 noundef %3089) #8
  %3091 = icmp ne i32 %3090, 0
  br i1 %3091, label %3092, label %3109

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

3109:                                             ; preds = %3087, %3080
  %3110 = load i32, ptr %58, align 4, !tbaa !5
  %3111 = call ptr @__errno_location() #9
  store i32 %3110, ptr %3111, align 4, !tbaa !5
  %3112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3113 = load i32, ptr @test_count, align 4, !tbaa !5
  %3114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3115 = load i32, ptr %3114, align 4, !tbaa !5
  %3116 = call ptr @s2n_strerror(i32 noundef %3115, ptr noundef @.str.4)
  %3117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3118 = load i32, ptr %3117, align 4, !tbaa !5
  %3119 = call ptr @s2n_strerror_debug(i32 noundef %3118, ptr noundef @.str.4)
  %3120 = call ptr @__errno_location() #9
  %3121 = load i32, ptr %3120, align 4, !tbaa !5
  %3122 = call ptr @strerror(i32 noundef %3121) #8
  %3123 = call ptr @__errno_location() #9
  %3124 = load i32, ptr %3123, align 4, !tbaa !5
  %3125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3112, ptr noundef @.str.5, i32 noundef %3113, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 375, ptr noundef %3116, ptr noundef %3119, ptr noundef %3122, i32 noundef %3124) #8
  br label %3126

3126:                                             ; preds = %3109, %3092
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #8
  br label %3127

3127:                                             ; preds = %3126
  br label %3128

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

3129:                                             ; No predecessors!
  br label %3130

3130:                                             ; preds = %3129
  br label %3131

3131:                                             ; preds = %3130, %3072
  br label %3132

3132:                                             ; preds = %3131
  br label %3133

3133:                                             ; preds = %3132
  br label %3134

3134:                                             ; preds = %3133
  br label %3135

3135:                                             ; preds = %3134
  %3136 = load i32, ptr @test_count, align 4, !tbaa !5
  %3137 = add nsw i32 %3136, 1
  store i32 %3137, ptr @test_count, align 4, !tbaa !5
  %3138 = load ptr, ptr %15, align 8, !tbaa !9
  %3139 = call i32 @s2n_negotiate(ptr noundef %3138, ptr noundef %6)
  %3140 = icmp eq i32 %3139, -1
  br i1 %3140, label %3194, label %3141

3141:                                             ; preds = %3135
  br label %3142

3142:                                             ; preds = %3141
  br label %3143

3143:                                             ; preds = %3142
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #8
  %3144 = call ptr @__errno_location() #9
  %3145 = load i32, ptr %3144, align 4, !tbaa !5
  store i32 %3145, ptr %59, align 4, !tbaa !5
  %3146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3147 = call i32 @s2n_print_stacktrace(ptr noundef %3146)
  %3148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3149 = trunc i8 %3148 to i1
  br i1 %3149, label %3150, label %3172

3150:                                             ; preds = %3143
  %3151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3152 = call i32 @fileno(ptr noundef %3151) #8
  %3153 = call i32 @isatty(i32 noundef %3152) #8
  %3154 = icmp ne i32 %3153, 0
  br i1 %3154, label %3155, label %3172

3155:                                             ; preds = %3150
  %3156 = load i32, ptr %59, align 4, !tbaa !5
  %3157 = call ptr @__errno_location() #9
  store i32 %3156, ptr %3157, align 4, !tbaa !5
  %3158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3159 = load i32, ptr @test_count, align 4, !tbaa !5
  %3160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3161 = load i32, ptr %3160, align 4, !tbaa !5
  %3162 = call ptr @s2n_strerror(i32 noundef %3161, ptr noundef @.str.4)
  %3163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3164 = load i32, ptr %3163, align 4, !tbaa !5
  %3165 = call ptr @s2n_strerror_debug(i32 noundef %3164, ptr noundef @.str.4)
  %3166 = call ptr @__errno_location() #9
  %3167 = load i32, ptr %3166, align 4, !tbaa !5
  %3168 = call ptr @strerror(i32 noundef %3167) #8
  %3169 = call ptr @__errno_location() #9
  %3170 = load i32, ptr %3169, align 4, !tbaa !5
  %3171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3158, ptr noundef @.str.2, i32 noundef %3159, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 376, ptr noundef %3162, ptr noundef %3165, ptr noundef %3168, i32 noundef %3170) #8
  br label %3189

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

3189:                                             ; preds = %3172, %3155
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #8
  br label %3190

3190:                                             ; preds = %3189
  br label %3191

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

3192:                                             ; No predecessors!
  br label %3193

3193:                                             ; preds = %3192
  br label %3194

3194:                                             ; preds = %3193, %3135
  br label %3195

3195:                                             ; preds = %3194
  br label %3196

3196:                                             ; preds = %3195
  br label %3197

3197:                                             ; preds = %3196
  %3198 = load i32, ptr @test_count, align 4, !tbaa !5
  %3199 = add nsw i32 %3198, 1
  store i32 %3199, ptr @test_count, align 4, !tbaa !5
  %3200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3201 = load i32, ptr %3200, align 4, !tbaa !5
  %3202 = icmp eq i32 %3201, 0
  br i1 %3202, label %3203, label %3256

3203:                                             ; preds = %3197
  br label %3204

3204:                                             ; preds = %3203
  br label %3205

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

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

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

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

3251:                                             ; preds = %3234, %3217
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #8
  br label %3252

3252:                                             ; preds = %3251
  br label %3253

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

3254:                                             ; No predecessors!
  br label %3255

3255:                                             ; preds = %3254
  br label %3256

3256:                                             ; preds = %3255, %3197
  br label %3257

3257:                                             ; preds = %3256
  br label %3258

3258:                                             ; preds = %3257
  br label %3259

3259:                                             ; preds = %3258
  %3260 = load i32, ptr @test_count, align 4, !tbaa !5
  %3261 = add nsw i32 %3260, 1
  store i32 %3261, ptr @test_count, align 4, !tbaa !5
  %3262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3263 = load i32, ptr %3262, align 4, !tbaa !5
  %3264 = call ptr @s2n_strerror_debug(i32 noundef %3263, ptr noundef @.str.4)
  %3265 = icmp eq ptr %3264, null
  br i1 %3265, label %3266, label %3319

3266:                                             ; preds = %3259
  br label %3267

3267:                                             ; preds = %3266
  br label %3268

3268:                                             ; preds = %3267
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #8
  %3269 = call ptr @__errno_location() #9
  %3270 = load i32, ptr %3269, align 4, !tbaa !5
  store i32 %3270, ptr %61, align 4, !tbaa !5
  %3271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3272 = call i32 @s2n_print_stacktrace(ptr noundef %3271)
  %3273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3274 = trunc i8 %3273 to i1
  br i1 %3274, label %3275, label %3297

3275:                                             ; preds = %3268
  %3276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3277 = call i32 @fileno(ptr noundef %3276) #8
  %3278 = call i32 @isatty(i32 noundef %3277) #8
  %3279 = icmp ne i32 %3278, 0
  br i1 %3279, label %3280, label %3297

3280:                                             ; preds = %3275
  %3281 = load i32, ptr %61, align 4, !tbaa !5
  %3282 = call ptr @__errno_location() #9
  store i32 %3281, ptr %3282, align 4, !tbaa !5
  %3283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3284 = load i32, ptr @test_count, align 4, !tbaa !5
  %3285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3286 = load i32, ptr %3285, align 4, !tbaa !5
  %3287 = call ptr @s2n_strerror(i32 noundef %3286, ptr noundef @.str.4)
  %3288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3289 = load i32, ptr %3288, align 4, !tbaa !5
  %3290 = call ptr @s2n_strerror_debug(i32 noundef %3289, ptr noundef @.str.4)
  %3291 = call ptr @__errno_location() #9
  %3292 = load i32, ptr %3291, align 4, !tbaa !5
  %3293 = call ptr @strerror(i32 noundef %3292) #8
  %3294 = call ptr @__errno_location() #9
  %3295 = load i32, ptr %3294, align 4, !tbaa !5
  %3296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3283, ptr noundef @.str.2, i32 noundef %3284, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 376, ptr noundef %3287, ptr noundef %3290, ptr noundef %3293, i32 noundef %3295) #8
  br label %3314

3297:                                             ; preds = %3275, %3268
  %3298 = load i32, ptr %61, align 4, !tbaa !5
  %3299 = call ptr @__errno_location() #9
  store i32 %3298, ptr %3299, align 4, !tbaa !5
  %3300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3301 = load i32, ptr @test_count, align 4, !tbaa !5
  %3302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3303 = load i32, ptr %3302, align 4, !tbaa !5
  %3304 = call ptr @s2n_strerror(i32 noundef %3303, ptr noundef @.str.4)
  %3305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3306 = load i32, ptr %3305, align 4, !tbaa !5
  %3307 = call ptr @s2n_strerror_debug(i32 noundef %3306, ptr noundef @.str.4)
  %3308 = call ptr @__errno_location() #9
  %3309 = load i32, ptr %3308, align 4, !tbaa !5
  %3310 = call ptr @strerror(i32 noundef %3309) #8
  %3311 = call ptr @__errno_location() #9
  %3312 = load i32, ptr %3311, align 4, !tbaa !5
  %3313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3300, ptr noundef @.str.5, i32 noundef %3301, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 376, ptr noundef %3304, ptr noundef %3307, ptr noundef %3310, i32 noundef %3312) #8
  br label %3314

3314:                                             ; preds = %3297, %3280
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #8
  br label %3315

3315:                                             ; preds = %3314
  br label %3316

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

3317:                                             ; No predecessors!
  br label %3318

3318:                                             ; preds = %3317
  br label %3319

3319:                                             ; preds = %3318, %3259
  br label %3320

3320:                                             ; preds = %3319
  br label %3321

3321:                                             ; preds = %3320
  br label %3322

3322:                                             ; preds = %3321
  %3323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3323, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3324 = call ptr @__errno_location() #9
  store i32 0, ptr %3324, align 4, !tbaa !5
  br label %3325

3325:                                             ; preds = %3322
  br label %3326

3326:                                             ; preds = %3325
  br label %3327

3327:                                             ; preds = %3326
  br label %3328

3328:                                             ; preds = %3327
  br label %3329

3329:                                             ; preds = %3328
  %3330 = load i32, ptr @test_count, align 4, !tbaa !5
  %3331 = add nsw i32 %3330, 1
  store i32 %3331, ptr @test_count, align 4, !tbaa !5
  %3332 = load ptr, ptr %15, align 8, !tbaa !9
  %3333 = getelementptr inbounds %struct.s2n_connection, ptr %3332, i32 0, i32 32
  %3334 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %3333, i32 0, i32 13
  %3335 = getelementptr inbounds [32 x i8], ptr %3334, i64 0, i64 0
  %3336 = call i32 @memcmp(ptr noundef %3335, ptr noundef @zero_to_thirty_one, i64 noundef 32) #11
  %3337 = icmp eq i32 %3336, 0
  br i1 %3337, label %3391, label %3338

3338:                                             ; preds = %3329
  br label %3339

3339:                                             ; preds = %3338
  br label %3340

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

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

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

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

3386:                                             ; preds = %3369, %3352
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #8
  br label %3387

3387:                                             ; preds = %3386
  br label %3388

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

3389:                                             ; No predecessors!
  br label %3390

3390:                                             ; preds = %3389
  br label %3391

3391:                                             ; preds = %3390, %3329
  br label %3392

3392:                                             ; preds = %3391
  br label %3393

3393:                                             ; preds = %3392
  br label %3394

3394:                                             ; preds = %3393
  %3395 = load i32, ptr @test_count, align 4, !tbaa !5
  %3396 = add nsw i32 %3395, 1
  store i32 %3396, ptr @test_count, align 4, !tbaa !5
  %3397 = load ptr, ptr %15, align 8, !tbaa !9
  %3398 = call i32 @s2n_conn_get_current_message_type(ptr noundef %3397)
  %3399 = icmp eq i32 %3398, 2
  br i1 %3399, label %3453, label %3400

3400:                                             ; preds = %3394
  br label %3401

3401:                                             ; preds = %3400
  br label %3402

3402:                                             ; preds = %3401
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #8
  %3403 = call ptr @__errno_location() #9
  %3404 = load i32, ptr %3403, align 4, !tbaa !5
  store i32 %3404, ptr %63, align 4, !tbaa !5
  %3405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3406 = call i32 @s2n_print_stacktrace(ptr noundef %3405)
  %3407 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3408 = trunc i8 %3407 to i1
  br i1 %3408, label %3409, label %3431

3409:                                             ; preds = %3402
  %3410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3411 = call i32 @fileno(ptr noundef %3410) #8
  %3412 = call i32 @isatty(i32 noundef %3411) #8
  %3413 = icmp ne i32 %3412, 0
  br i1 %3413, label %3414, label %3431

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

3431:                                             ; preds = %3409, %3402
  %3432 = load i32, ptr %63, align 4, !tbaa !5
  %3433 = call ptr @__errno_location() #9
  store i32 %3432, ptr %3433, align 4, !tbaa !5
  %3434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3435 = load i32, ptr @test_count, align 4, !tbaa !5
  %3436 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3437 = load i32, ptr %3436, align 4, !tbaa !5
  %3438 = call ptr @s2n_strerror(i32 noundef %3437, ptr noundef @.str.4)
  %3439 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3440 = load i32, ptr %3439, align 4, !tbaa !5
  %3441 = call ptr @s2n_strerror_debug(i32 noundef %3440, ptr noundef @.str.4)
  %3442 = call ptr @__errno_location() #9
  %3443 = load i32, ptr %3442, align 4, !tbaa !5
  %3444 = call ptr @strerror(i32 noundef %3443) #8
  %3445 = call ptr @__errno_location() #9
  %3446 = load i32, ptr %3445, align 4, !tbaa !5
  %3447 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3434, ptr noundef @.str.5, i32 noundef %3435, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 382, ptr noundef %3438, ptr noundef %3441, ptr noundef %3444, i32 noundef %3446) #8
  br label %3448

3448:                                             ; preds = %3431, %3414
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #8
  br label %3449

3449:                                             ; preds = %3448
  br label %3450

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

3451:                                             ; No predecessors!
  br label %3452

3452:                                             ; preds = %3451
  br label %3453

3453:                                             ; preds = %3452, %3394
  br label %3454

3454:                                             ; preds = %3453
  br label %3455

3455:                                             ; preds = %3454
  br label %3456

3456:                                             ; preds = %3455
  %3457 = load i32, ptr @test_count, align 4, !tbaa !5
  %3458 = add nsw i32 %3457, 1
  store i32 %3458, ptr @test_count, align 4, !tbaa !5
  %3459 = load i32, ptr %8, align 4, !tbaa !5
  %3460 = call i32 @waitpid(i32 noundef %3459, ptr noundef %7, i32 noundef 0)
  %3461 = load i32, ptr %8, align 4, !tbaa !5
  %3462 = icmp eq i32 %3460, %3461
  br i1 %3462, label %3516, label %3463

3463:                                             ; preds = %3456
  br label %3464

3464:                                             ; preds = %3463
  br label %3465

3465:                                             ; preds = %3464
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #8
  %3466 = call ptr @__errno_location() #9
  %3467 = load i32, ptr %3466, align 4, !tbaa !5
  store i32 %3467, ptr %64, align 4, !tbaa !5
  %3468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3469 = call i32 @s2n_print_stacktrace(ptr noundef %3468)
  %3470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3471 = trunc i8 %3470 to i1
  br i1 %3471, label %3472, label %3494

3472:                                             ; preds = %3465
  %3473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3474 = call i32 @fileno(ptr noundef %3473) #8
  %3475 = call i32 @isatty(i32 noundef %3474) #8
  %3476 = icmp ne i32 %3475, 0
  br i1 %3476, label %3477, label %3494

3477:                                             ; preds = %3472
  %3478 = load i32, ptr %64, 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.2, i32 noundef %3481, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 385, ptr noundef %3484, ptr noundef %3487, ptr noundef %3490, i32 noundef %3492) #8
  br label %3511

3494:                                             ; preds = %3472, %3465
  %3495 = load i32, ptr %64, align 4, !tbaa !5
  %3496 = call ptr @__errno_location() #9
  store i32 %3495, ptr %3496, align 4, !tbaa !5
  %3497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3498 = load i32, ptr @test_count, align 4, !tbaa !5
  %3499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3500 = load i32, ptr %3499, align 4, !tbaa !5
  %3501 = call ptr @s2n_strerror(i32 noundef %3500, ptr noundef @.str.4)
  %3502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3503 = load i32, ptr %3502, align 4, !tbaa !5
  %3504 = call ptr @s2n_strerror_debug(i32 noundef %3503, ptr noundef @.str.4)
  %3505 = call ptr @__errno_location() #9
  %3506 = load i32, ptr %3505, align 4, !tbaa !5
  %3507 = call ptr @strerror(i32 noundef %3506) #8
  %3508 = call ptr @__errno_location() #9
  %3509 = load i32, ptr %3508, align 4, !tbaa !5
  %3510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3497, ptr noundef @.str.5, i32 noundef %3498, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 385, ptr noundef %3501, ptr noundef %3504, ptr noundef %3507, i32 noundef %3509) #8
  br label %3511

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

3512:                                             ; preds = %3511
  br label %3513

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

3514:                                             ; No predecessors!
  br label %3515

3515:                                             ; preds = %3514
  br label %3516

3516:                                             ; preds = %3515, %3456
  br label %3517

3517:                                             ; preds = %3516
  br label %3518

3518:                                             ; preds = %3517
  br label %3519

3519:                                             ; preds = %3518
  %3520 = load i32, ptr @test_count, align 4, !tbaa !5
  %3521 = add nsw i32 %3520, 1
  store i32 %3521, ptr @test_count, align 4, !tbaa !5
  %3522 = load i32, ptr %7, align 4, !tbaa !5
  %3523 = icmp eq i32 %3522, 0
  br i1 %3523, label %3577, label %3524

3524:                                             ; preds = %3519
  br label %3525

3525:                                             ; preds = %3524
  br label %3526

3526:                                             ; preds = %3525
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #8
  %3527 = call ptr @__errno_location() #9
  %3528 = load i32, ptr %3527, align 4, !tbaa !5
  store i32 %3528, ptr %65, align 4, !tbaa !5
  %3529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3530 = call i32 @s2n_print_stacktrace(ptr noundef %3529)
  %3531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3532 = trunc i8 %3531 to i1
  br i1 %3532, label %3533, label %3555

3533:                                             ; preds = %3526
  %3534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3535 = call i32 @fileno(ptr noundef %3534) #8
  %3536 = call i32 @isatty(i32 noundef %3535) #8
  %3537 = icmp ne i32 %3536, 0
  br i1 %3537, label %3538, label %3555

3538:                                             ; preds = %3533
  %3539 = load i32, ptr %65, align 4, !tbaa !5
  %3540 = call ptr @__errno_location() #9
  store i32 %3539, ptr %3540, align 4, !tbaa !5
  %3541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3542 = load i32, ptr @test_count, align 4, !tbaa !5
  %3543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3544 = load i32, ptr %3543, align 4, !tbaa !5
  %3545 = call ptr @s2n_strerror(i32 noundef %3544, ptr noundef @.str.4)
  %3546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3547 = load i32, ptr %3546, align 4, !tbaa !5
  %3548 = call ptr @s2n_strerror_debug(i32 noundef %3547, ptr noundef @.str.4)
  %3549 = call ptr @__errno_location() #9
  %3550 = load i32, ptr %3549, align 4, !tbaa !5
  %3551 = call ptr @strerror(i32 noundef %3550) #8
  %3552 = call ptr @__errno_location() #9
  %3553 = load i32, ptr %3552, align 4, !tbaa !5
  %3554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3541, ptr noundef @.str.2, i32 noundef %3542, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 386, ptr noundef %3545, ptr noundef %3548, ptr noundef %3551, i32 noundef %3553) #8
  br label %3572

3555:                                             ; preds = %3533, %3526
  %3556 = load i32, ptr %65, align 4, !tbaa !5
  %3557 = call ptr @__errno_location() #9
  store i32 %3556, ptr %3557, align 4, !tbaa !5
  %3558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3559 = load i32, ptr @test_count, align 4, !tbaa !5
  %3560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3561 = load i32, ptr %3560, align 4, !tbaa !5
  %3562 = call ptr @s2n_strerror(i32 noundef %3561, ptr noundef @.str.4)
  %3563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3564 = load i32, ptr %3563, align 4, !tbaa !5
  %3565 = call ptr @s2n_strerror_debug(i32 noundef %3564, ptr noundef @.str.4)
  %3566 = call ptr @__errno_location() #9
  %3567 = load i32, ptr %3566, align 4, !tbaa !5
  %3568 = call ptr @strerror(i32 noundef %3567) #8
  %3569 = call ptr @__errno_location() #9
  %3570 = load i32, ptr %3569, align 4, !tbaa !5
  %3571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3558, ptr noundef @.str.5, i32 noundef %3559, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 386, ptr noundef %3562, ptr noundef %3565, ptr noundef %3568, i32 noundef %3570) #8
  br label %3572

3572:                                             ; preds = %3555, %3538
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #8
  br label %3573

3573:                                             ; preds = %3572
  br label %3574

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

3575:                                             ; No predecessors!
  br label %3576

3576:                                             ; preds = %3575
  br label %3577

3577:                                             ; preds = %3576, %3519
  br label %3578

3578:                                             ; preds = %3577
  br label %3579

3579:                                             ; preds = %3578
  br label %3580

3580:                                             ; preds = %3579
  %3581 = load i32, ptr @test_count, align 4, !tbaa !5
  %3582 = add nsw i32 %3581, 1
  store i32 %3582, ptr @test_count, align 4, !tbaa !5
  %3583 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %3584 = load i32, ptr %3583, align 4, !tbaa !5
  %3585 = call i32 @close(i32 noundef %3584)
  %3586 = icmp eq i32 %3585, -1
  br i1 %3586, label %3587, label %3640

3587:                                             ; preds = %3580
  br label %3588

3588:                                             ; preds = %3587
  br label %3589

3589:                                             ; preds = %3588
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #8
  %3590 = call ptr @__errno_location() #9
  %3591 = load i32, ptr %3590, align 4, !tbaa !5
  store i32 %3591, ptr %66, align 4, !tbaa !5
  %3592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3593 = call i32 @s2n_print_stacktrace(ptr noundef %3592)
  %3594 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3595 = trunc i8 %3594 to i1
  br i1 %3595, label %3596, label %3618

3596:                                             ; preds = %3589
  %3597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3598 = call i32 @fileno(ptr noundef %3597) #8
  %3599 = call i32 @isatty(i32 noundef %3598) #8
  %3600 = icmp ne i32 %3599, 0
  br i1 %3600, label %3601, label %3618

3601:                                             ; preds = %3596
  %3602 = load i32, ptr %66, align 4, !tbaa !5
  %3603 = call ptr @__errno_location() #9
  store i32 %3602, ptr %3603, align 4, !tbaa !5
  %3604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3605 = load i32, ptr @test_count, align 4, !tbaa !5
  %3606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3607 = load i32, ptr %3606, align 4, !tbaa !5
  %3608 = call ptr @s2n_strerror(i32 noundef %3607, ptr noundef @.str.4)
  %3609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3610 = load i32, ptr %3609, align 4, !tbaa !5
  %3611 = call ptr @s2n_strerror_debug(i32 noundef %3610, ptr noundef @.str.4)
  %3612 = call ptr @__errno_location() #9
  %3613 = load i32, ptr %3612, align 4, !tbaa !5
  %3614 = call ptr @strerror(i32 noundef %3613) #8
  %3615 = call ptr @__errno_location() #9
  %3616 = load i32, ptr %3615, align 4, !tbaa !5
  %3617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3604, ptr noundef @.str.2, i32 noundef %3605, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 387, ptr noundef %3608, ptr noundef %3611, ptr noundef %3614, i32 noundef %3616) #8
  br label %3635

3618:                                             ; preds = %3596, %3589
  %3619 = load i32, ptr %66, align 4, !tbaa !5
  %3620 = call ptr @__errno_location() #9
  store i32 %3619, ptr %3620, align 4, !tbaa !5
  %3621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3622 = load i32, ptr @test_count, align 4, !tbaa !5
  %3623 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3624 = load i32, ptr %3623, align 4, !tbaa !5
  %3625 = call ptr @s2n_strerror(i32 noundef %3624, ptr noundef @.str.4)
  %3626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3627 = load i32, ptr %3626, align 4, !tbaa !5
  %3628 = call ptr @s2n_strerror_debug(i32 noundef %3627, ptr noundef @.str.4)
  %3629 = call ptr @__errno_location() #9
  %3630 = load i32, ptr %3629, align 4, !tbaa !5
  %3631 = call ptr @strerror(i32 noundef %3630) #8
  %3632 = call ptr @__errno_location() #9
  %3633 = load i32, ptr %3632, align 4, !tbaa !5
  %3634 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3621, ptr noundef @.str.5, i32 noundef %3622, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 387, ptr noundef %3625, ptr noundef %3628, ptr noundef %3631, i32 noundef %3633) #8
  br label %3635

3635:                                             ; preds = %3618, %3601
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #8
  br label %3636

3636:                                             ; preds = %3635
  br label %3637

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

3638:                                             ; No predecessors!
  br label %3639

3639:                                             ; preds = %3638
  br label %3640

3640:                                             ; preds = %3639, %3580
  br label %3641

3641:                                             ; preds = %3640
  br label %3642

3642:                                             ; preds = %3641
  br label %3643

3643:                                             ; preds = %3642
  %3644 = load i32, ptr @test_count, align 4, !tbaa !5
  %3645 = add nsw i32 %3644, 1
  store i32 %3645, ptr @test_count, align 4, !tbaa !5
  %3646 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %3647 = call i32 @pipe(ptr noundef %3646) #8
  %3648 = icmp eq i32 %3647, -1
  br i1 %3648, label %3649, label %3702

3649:                                             ; preds = %3643
  br label %3650

3650:                                             ; preds = %3649
  br label %3651

3651:                                             ; preds = %3650
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #8
  %3652 = call ptr @__errno_location() #9
  %3653 = load i32, ptr %3652, align 4, !tbaa !5
  store i32 %3653, ptr %67, align 4, !tbaa !5
  %3654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3655 = call i32 @s2n_print_stacktrace(ptr noundef %3654)
  %3656 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3657 = trunc i8 %3656 to i1
  br i1 %3657, label %3658, label %3680

3658:                                             ; preds = %3651
  %3659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3660 = call i32 @fileno(ptr noundef %3659) #8
  %3661 = call i32 @isatty(i32 noundef %3660) #8
  %3662 = icmp ne i32 %3661, 0
  br i1 %3662, label %3663, label %3680

3663:                                             ; preds = %3658
  %3664 = load i32, ptr %67, align 4, !tbaa !5
  %3665 = call ptr @__errno_location() #9
  store i32 %3664, ptr %3665, align 4, !tbaa !5
  %3666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3667 = load i32, ptr @test_count, align 4, !tbaa !5
  %3668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3669 = load i32, ptr %3668, align 4, !tbaa !5
  %3670 = call ptr @s2n_strerror(i32 noundef %3669, ptr noundef @.str.4)
  %3671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3672 = load i32, ptr %3671, align 4, !tbaa !5
  %3673 = call ptr @s2n_strerror_debug(i32 noundef %3672, ptr noundef @.str.4)
  %3674 = call ptr @__errno_location() #9
  %3675 = load i32, ptr %3674, align 4, !tbaa !5
  %3676 = call ptr @strerror(i32 noundef %3675) #8
  %3677 = call ptr @__errno_location() #9
  %3678 = load i32, ptr %3677, align 4, !tbaa !5
  %3679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3666, ptr noundef @.str.2, i32 noundef %3667, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 392, ptr noundef %3670, ptr noundef %3673, ptr noundef %3676, i32 noundef %3678) #8
  br label %3697

3680:                                             ; preds = %3658, %3651
  %3681 = load i32, ptr %67, align 4, !tbaa !5
  %3682 = call ptr @__errno_location() #9
  store i32 %3681, ptr %3682, align 4, !tbaa !5
  %3683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3684 = load i32, ptr @test_count, align 4, !tbaa !5
  %3685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3686 = load i32, ptr %3685, align 4, !tbaa !5
  %3687 = call ptr @s2n_strerror(i32 noundef %3686, ptr noundef @.str.4)
  %3688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3689 = load i32, ptr %3688, align 4, !tbaa !5
  %3690 = call ptr @s2n_strerror_debug(i32 noundef %3689, ptr noundef @.str.4)
  %3691 = call ptr @__errno_location() #9
  %3692 = load i32, ptr %3691, align 4, !tbaa !5
  %3693 = call ptr @strerror(i32 noundef %3692) #8
  %3694 = call ptr @__errno_location() #9
  %3695 = load i32, ptr %3694, align 4, !tbaa !5
  %3696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3683, ptr noundef @.str.5, i32 noundef %3684, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 392, ptr noundef %3687, ptr noundef %3690, ptr noundef %3693, i32 noundef %3695) #8
  br label %3697

3697:                                             ; preds = %3680, %3663
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #8
  br label %3698

3698:                                             ; preds = %3697
  br label %3699

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

3700:                                             ; No predecessors!
  br label %3701

3701:                                             ; preds = %3700
  br label %3702

3702:                                             ; preds = %3701, %3643
  br label %3703

3703:                                             ; preds = %3702
  br label %3704

3704:                                             ; preds = %3703
  br label %3705

3705:                                             ; preds = %3704
  %3706 = load i32, ptr @test_count, align 4, !tbaa !5
  %3707 = add nsw i32 %3706, 1
  store i32 %3707, ptr @test_count, align 4, !tbaa !5
  %3708 = load ptr, ptr %15, align 8, !tbaa !9
  %3709 = call i32 @s2n_connection_wipe(ptr noundef %3708)
  %3710 = icmp eq i32 %3709, -1
  br i1 %3710, label %3711, label %3764

3711:                                             ; preds = %3705
  br label %3712

3712:                                             ; preds = %3711
  br label %3713

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

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

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

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

3759:                                             ; preds = %3742, %3725
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #8
  br label %3760

3760:                                             ; preds = %3759
  br label %3761

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

3762:                                             ; No predecessors!
  br label %3763

3763:                                             ; preds = %3762
  br label %3764

3764:                                             ; preds = %3763, %3705
  br label %3765

3765:                                             ; preds = %3764
  br label %3766

3766:                                             ; preds = %3765
  br label %3767

3767:                                             ; preds = %3766
  %3768 = load i32, ptr @test_count, align 4, !tbaa !5
  %3769 = add nsw i32 %3768, 1
  store i32 %3769, ptr @test_count, align 4, !tbaa !5
  %3770 = load ptr, ptr %15, align 8, !tbaa !9
  %3771 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %3772 = load i32, ptr %3771, align 4, !tbaa !5
  %3773 = call i32 @s2n_connection_set_read_fd(ptr noundef %3770, i32 noundef %3772)
  %3774 = icmp eq i32 %3773, -1
  br i1 %3774, label %3775, label %3828

3775:                                             ; preds = %3767
  br label %3776

3776:                                             ; preds = %3775
  br label %3777

3777:                                             ; preds = %3776
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #8
  %3778 = call ptr @__errno_location() #9
  %3779 = load i32, ptr %3778, align 4, !tbaa !5
  store i32 %3779, ptr %69, align 4, !tbaa !5
  %3780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3781 = call i32 @s2n_print_stacktrace(ptr noundef %3780)
  %3782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3783 = trunc i8 %3782 to i1
  br i1 %3783, label %3784, label %3806

3784:                                             ; preds = %3777
  %3785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3786 = call i32 @fileno(ptr noundef %3785) #8
  %3787 = call i32 @isatty(i32 noundef %3786) #8
  %3788 = icmp ne i32 %3787, 0
  br i1 %3788, label %3789, label %3806

3789:                                             ; preds = %3784
  %3790 = load i32, ptr %69, align 4, !tbaa !5
  %3791 = call ptr @__errno_location() #9
  store i32 %3790, ptr %3791, align 4, !tbaa !5
  %3792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3793 = load i32, ptr @test_count, align 4, !tbaa !5
  %3794 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3795 = load i32, ptr %3794, align 4, !tbaa !5
  %3796 = call ptr @s2n_strerror(i32 noundef %3795, ptr noundef @.str.4)
  %3797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3798 = load i32, ptr %3797, align 4, !tbaa !5
  %3799 = call ptr @s2n_strerror_debug(i32 noundef %3798, ptr noundef @.str.4)
  %3800 = call ptr @__errno_location() #9
  %3801 = load i32, ptr %3800, align 4, !tbaa !5
  %3802 = call ptr @strerror(i32 noundef %3801) #8
  %3803 = call ptr @__errno_location() #9
  %3804 = load i32, ptr %3803, align 4, !tbaa !5
  %3805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3792, ptr noundef @.str.2, i32 noundef %3793, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 397, ptr noundef %3796, ptr noundef %3799, ptr noundef %3802, i32 noundef %3804) #8
  br label %3823

3806:                                             ; preds = %3784, %3777
  %3807 = load i32, ptr %69, align 4, !tbaa !5
  %3808 = call ptr @__errno_location() #9
  store i32 %3807, ptr %3808, align 4, !tbaa !5
  %3809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3810 = load i32, ptr @test_count, align 4, !tbaa !5
  %3811 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3812 = load i32, ptr %3811, align 4, !tbaa !5
  %3813 = call ptr @s2n_strerror(i32 noundef %3812, ptr noundef @.str.4)
  %3814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3815 = load i32, ptr %3814, align 4, !tbaa !5
  %3816 = call ptr @s2n_strerror_debug(i32 noundef %3815, ptr noundef @.str.4)
  %3817 = call ptr @__errno_location() #9
  %3818 = load i32, ptr %3817, align 4, !tbaa !5
  %3819 = call ptr @strerror(i32 noundef %3818) #8
  %3820 = call ptr @__errno_location() #9
  %3821 = load i32, ptr %3820, align 4, !tbaa !5
  %3822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3809, ptr noundef @.str.5, i32 noundef %3810, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 397, ptr noundef %3813, ptr noundef %3816, ptr noundef %3819, i32 noundef %3821) #8
  br label %3823

3823:                                             ; preds = %3806, %3789
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #8
  br label %3824

3824:                                             ; preds = %3823
  br label %3825

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

3826:                                             ; No predecessors!
  br label %3827

3827:                                             ; preds = %3826
  br label %3828

3828:                                             ; preds = %3827, %3767
  br label %3829

3829:                                             ; preds = %3828
  br label %3830

3830:                                             ; preds = %3829
  %3831 = load ptr, ptr %15, align 8, !tbaa !9
  %3832 = getelementptr inbounds %struct.s2n_connection, ptr %3831, i32 0, i32 52
  %3833 = getelementptr inbounds %struct.s2n_handshake, ptr %3832, i32 0, i32 6
  store i32 3, ptr %3833, align 4, !tbaa !15
  %3834 = load ptr, ptr %15, align 8, !tbaa !9
  %3835 = getelementptr inbounds %struct.s2n_connection, ptr %3834, i32 0, i32 52
  %3836 = getelementptr inbounds %struct.s2n_handshake, ptr %3835, i32 0, i32 7
  store i32 1, ptr %3836, align 8, !tbaa !42
  %3837 = load ptr, ptr %15, align 8, !tbaa !9
  %3838 = getelementptr inbounds %struct.s2n_connection, ptr %3837, i32 0, i32 22
  store i8 33, ptr %3838, align 1, !tbaa !43
  %3839 = load ptr, ptr %15, align 8, !tbaa !9
  %3840 = getelementptr inbounds %struct.s2n_connection, ptr %3839, i32 0, i32 21
  store i8 33, ptr %3840, align 2, !tbaa !44
  %3841 = load ptr, ptr %15, align 8, !tbaa !9
  %3842 = getelementptr inbounds %struct.s2n_connection, ptr %3841, i32 0, i32 23
  store i8 33, ptr %3842, align 4, !tbaa !45
  %3843 = call i32 @fork() #8
  store i32 %3843, ptr %8, align 4, !tbaa !5
  %3844 = load i32, ptr %8, align 4, !tbaa !5
  %3845 = icmp eq i32 %3844, 0
  br i1 %3845, label %3846, label %4036

3846:                                             ; preds = %3830
  br label %3847

3847:                                             ; preds = %3846
  %3848 = load i32, ptr @test_count, align 4, !tbaa !5
  %3849 = add nsw i32 %3848, 1
  store i32 %3849, ptr @test_count, align 4, !tbaa !5
  %3850 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %3851 = load i32, ptr %3850, align 4, !tbaa !5
  %3852 = call i32 @close(i32 noundef %3851)
  %3853 = icmp eq i32 %3852, -1
  br i1 %3853, label %3854, label %3907

3854:                                             ; preds = %3847
  br label %3855

3855:                                             ; preds = %3854
  br label %3856

3856:                                             ; preds = %3855
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #8
  %3857 = call ptr @__errno_location() #9
  %3858 = load i32, ptr %3857, align 4, !tbaa !5
  store i32 %3858, ptr %70, align 4, !tbaa !5
  %3859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3860 = call i32 @s2n_print_stacktrace(ptr noundef %3859)
  %3861 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3862 = trunc i8 %3861 to i1
  br i1 %3862, label %3863, label %3885

3863:                                             ; preds = %3856
  %3864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3865 = call i32 @fileno(ptr noundef %3864) #8
  %3866 = call i32 @isatty(i32 noundef %3865) #8
  %3867 = icmp ne i32 %3866, 0
  br i1 %3867, label %3868, label %3885

3868:                                             ; preds = %3863
  %3869 = load i32, ptr %70, align 4, !tbaa !5
  %3870 = call ptr @__errno_location() #9
  store i32 %3869, ptr %3870, align 4, !tbaa !5
  %3871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3872 = load i32, ptr @test_count, align 4, !tbaa !5
  %3873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3874 = load i32, ptr %3873, align 4, !tbaa !5
  %3875 = call ptr @s2n_strerror(i32 noundef %3874, ptr noundef @.str.4)
  %3876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3877 = load i32, ptr %3876, align 4, !tbaa !5
  %3878 = call ptr @s2n_strerror_debug(i32 noundef %3877, ptr noundef @.str.4)
  %3879 = call ptr @__errno_location() #9
  %3880 = load i32, ptr %3879, align 4, !tbaa !5
  %3881 = call ptr @strerror(i32 noundef %3880) #8
  %3882 = call ptr @__errno_location() #9
  %3883 = load i32, ptr %3882, align 4, !tbaa !5
  %3884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3871, ptr noundef @.str.2, i32 noundef %3872, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 410, ptr noundef %3875, ptr noundef %3878, ptr noundef %3881, i32 noundef %3883) #8
  br label %3902

3885:                                             ; preds = %3863, %3856
  %3886 = load i32, ptr %70, align 4, !tbaa !5
  %3887 = call ptr @__errno_location() #9
  store i32 %3886, ptr %3887, align 4, !tbaa !5
  %3888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3889 = load i32, ptr @test_count, align 4, !tbaa !5
  %3890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3891 = load i32, ptr %3890, align 4, !tbaa !5
  %3892 = call ptr @s2n_strerror(i32 noundef %3891, ptr noundef @.str.4)
  %3893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3894 = load i32, ptr %3893, align 4, !tbaa !5
  %3895 = call ptr @s2n_strerror_debug(i32 noundef %3894, ptr noundef @.str.4)
  %3896 = call ptr @__errno_location() #9
  %3897 = load i32, ptr %3896, align 4, !tbaa !5
  %3898 = call ptr @strerror(i32 noundef %3897) #8
  %3899 = call ptr @__errno_location() #9
  %3900 = load i32, ptr %3899, align 4, !tbaa !5
  %3901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3888, ptr noundef @.str.5, i32 noundef %3889, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 410, ptr noundef %3892, ptr noundef %3895, ptr noundef %3898, i32 noundef %3900) #8
  br label %3902

3902:                                             ; preds = %3885, %3868
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #8
  br label %3903

3903:                                             ; preds = %3902
  br label %3904

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

3905:                                             ; No predecessors!
  br label %3906

3906:                                             ; preds = %3905
  br label %3907

3907:                                             ; preds = %3906, %3847
  br label %3908

3908:                                             ; preds = %3907
  br label %3909

3909:                                             ; preds = %3908
  %3910 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 1
  %3911 = load i32, ptr %3910, align 4, !tbaa !5
  call void @send_messages(i32 noundef %3911, ptr noundef @server_hello_message, i32 noundef 74, ptr noundef @certificate_list_too_large, i32 noundef 10)
  br label %3912

3912:                                             ; preds = %3909
  %3913 = load i32, ptr @test_count, align 4, !tbaa !5
  %3914 = add nsw i32 %3913, 1
  store i32 %3914, ptr @test_count, align 4, !tbaa !5
  %3915 = load ptr, ptr %15, align 8, !tbaa !9
  %3916 = call i32 @s2n_connection_free(ptr noundef %3915)
  %3917 = icmp eq i32 %3916, -1
  br i1 %3917, label %3918, label %3971

3918:                                             ; preds = %3912
  br label %3919

3919:                                             ; preds = %3918
  br label %3920

3920:                                             ; preds = %3919
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #8
  %3921 = call ptr @__errno_location() #9
  %3922 = load i32, ptr %3921, align 4, !tbaa !5
  store i32 %3922, ptr %71, align 4, !tbaa !5
  %3923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3924 = call i32 @s2n_print_stacktrace(ptr noundef %3923)
  %3925 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3926 = trunc i8 %3925 to i1
  br i1 %3926, label %3927, label %3949

3927:                                             ; preds = %3920
  %3928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3929 = call i32 @fileno(ptr noundef %3928) #8
  %3930 = call i32 @isatty(i32 noundef %3929) #8
  %3931 = icmp ne i32 %3930, 0
  br i1 %3931, label %3932, label %3949

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

3949:                                             ; preds = %3927, %3920
  %3950 = load i32, ptr %71, align 4, !tbaa !5
  %3951 = call ptr @__errno_location() #9
  store i32 %3950, ptr %3951, align 4, !tbaa !5
  %3952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3953 = load i32, ptr @test_count, align 4, !tbaa !5
  %3954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3955 = load i32, ptr %3954, align 4, !tbaa !5
  %3956 = call ptr @s2n_strerror(i32 noundef %3955, ptr noundef @.str.4)
  %3957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3958 = load i32, ptr %3957, align 4, !tbaa !5
  %3959 = call ptr @s2n_strerror_debug(i32 noundef %3958, ptr noundef @.str.4)
  %3960 = call ptr @__errno_location() #9
  %3961 = load i32, ptr %3960, align 4, !tbaa !5
  %3962 = call ptr @strerror(i32 noundef %3961) #8
  %3963 = call ptr @__errno_location() #9
  %3964 = load i32, ptr %3963, align 4, !tbaa !5
  %3965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3952, ptr noundef @.str.5, i32 noundef %3953, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 414, ptr noundef %3956, ptr noundef %3959, ptr noundef %3962, i32 noundef %3964) #8
  br label %3966

3966:                                             ; preds = %3949, %3932
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #8
  br label %3967

3967:                                             ; preds = %3966
  br label %3968

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

3969:                                             ; No predecessors!
  br label %3970

3970:                                             ; preds = %3969
  br label %3971

3971:                                             ; preds = %3970, %3912
  br label %3972

3972:                                             ; preds = %3971
  br label %3973

3973:                                             ; preds = %3972
  br label %3974

3974:                                             ; preds = %3973
  %3975 = load i32, ptr @test_count, align 4, !tbaa !5
  %3976 = add nsw i32 %3975, 1
  store i32 %3976, ptr @test_count, align 4, !tbaa !5
  %3977 = load ptr, ptr %14, align 8, !tbaa !9
  %3978 = call i32 @s2n_config_free(ptr noundef %3977)
  %3979 = icmp eq i32 %3978, -1
  br i1 %3979, label %3980, label %4033

3980:                                             ; preds = %3974
  br label %3981

3981:                                             ; preds = %3980
  br label %3982

3982:                                             ; preds = %3981
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #8
  %3983 = call ptr @__errno_location() #9
  %3984 = load i32, ptr %3983, align 4, !tbaa !5
  store i32 %3984, ptr %72, align 4, !tbaa !5
  %3985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3986 = call i32 @s2n_print_stacktrace(ptr noundef %3985)
  %3987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3988 = trunc i8 %3987 to i1
  br i1 %3988, label %3989, label %4011

3989:                                             ; preds = %3982
  %3990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3991 = call i32 @fileno(ptr noundef %3990) #8
  %3992 = call i32 @isatty(i32 noundef %3991) #8
  %3993 = icmp ne i32 %3992, 0
  br i1 %3993, label %3994, label %4011

3994:                                             ; preds = %3989
  %3995 = load i32, ptr %72, align 4, !tbaa !5
  %3996 = call ptr @__errno_location() #9
  store i32 %3995, ptr %3996, align 4, !tbaa !5
  %3997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3998 = load i32, ptr @test_count, align 4, !tbaa !5
  %3999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4000 = load i32, ptr %3999, align 4, !tbaa !5
  %4001 = call ptr @s2n_strerror(i32 noundef %4000, ptr noundef @.str.4)
  %4002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4003 = load i32, ptr %4002, align 4, !tbaa !5
  %4004 = call ptr @s2n_strerror_debug(i32 noundef %4003, ptr noundef @.str.4)
  %4005 = call ptr @__errno_location() #9
  %4006 = load i32, ptr %4005, align 4, !tbaa !5
  %4007 = call ptr @strerror(i32 noundef %4006) #8
  %4008 = call ptr @__errno_location() #9
  %4009 = load i32, ptr %4008, align 4, !tbaa !5
  %4010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3997, ptr noundef @.str.2, i32 noundef %3998, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 415, ptr noundef %4001, ptr noundef %4004, ptr noundef %4007, i32 noundef %4009) #8
  br label %4028

4011:                                             ; preds = %3989, %3982
  %4012 = load i32, ptr %72, align 4, !tbaa !5
  %4013 = call ptr @__errno_location() #9
  store i32 %4012, ptr %4013, align 4, !tbaa !5
  %4014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4015 = load i32, ptr @test_count, align 4, !tbaa !5
  %4016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4017 = load i32, ptr %4016, align 4, !tbaa !5
  %4018 = call ptr @s2n_strerror(i32 noundef %4017, ptr noundef @.str.4)
  %4019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4020 = load i32, ptr %4019, align 4, !tbaa !5
  %4021 = call ptr @s2n_strerror_debug(i32 noundef %4020, ptr noundef @.str.4)
  %4022 = call ptr @__errno_location() #9
  %4023 = load i32, ptr %4022, align 4, !tbaa !5
  %4024 = call ptr @strerror(i32 noundef %4023) #8
  %4025 = call ptr @__errno_location() #9
  %4026 = load i32, ptr %4025, align 4, !tbaa !5
  %4027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4014, ptr noundef @.str.5, i32 noundef %4015, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 415, ptr noundef %4018, ptr noundef %4021, ptr noundef %4024, i32 noundef %4026) #8
  br label %4028

4028:                                             ; preds = %4011, %3994
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #8
  br label %4029

4029:                                             ; preds = %4028
  br label %4030

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

4031:                                             ; No predecessors!
  br label %4032

4032:                                             ; preds = %4031
  br label %4033

4033:                                             ; preds = %4032, %3974
  br label %4034

4034:                                             ; preds = %4033
  br label %4035

4035:                                             ; preds = %4034
  call void @exit(i32 noundef 0) #10
  unreachable

4036:                                             ; preds = %3830
  br label %4037

4037:                                             ; preds = %4036
  %4038 = load i32, ptr @test_count, align 4, !tbaa !5
  %4039 = add nsw i32 %4038, 1
  store i32 %4039, ptr @test_count, align 4, !tbaa !5
  %4040 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 1
  %4041 = load i32, ptr %4040, align 4, !tbaa !5
  %4042 = call i32 @close(i32 noundef %4041)
  %4043 = icmp eq i32 %4042, -1
  br i1 %4043, label %4044, label %4097

4044:                                             ; preds = %4037
  br label %4045

4045:                                             ; preds = %4044
  br label %4046

4046:                                             ; preds = %4045
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #8
  %4047 = call ptr @__errno_location() #9
  %4048 = load i32, ptr %4047, align 4, !tbaa !5
  store i32 %4048, ptr %73, align 4, !tbaa !5
  %4049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4050 = call i32 @s2n_print_stacktrace(ptr noundef %4049)
  %4051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4052 = trunc i8 %4051 to i1
  br i1 %4052, label %4053, label %4075

4053:                                             ; preds = %4046
  %4054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4055 = call i32 @fileno(ptr noundef %4054) #8
  %4056 = call i32 @isatty(i32 noundef %4055) #8
  %4057 = icmp ne i32 %4056, 0
  br i1 %4057, label %4058, label %4075

4058:                                             ; preds = %4053
  %4059 = load i32, ptr %73, align 4, !tbaa !5
  %4060 = call ptr @__errno_location() #9
  store i32 %4059, ptr %4060, align 4, !tbaa !5
  %4061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4062 = load i32, ptr @test_count, align 4, !tbaa !5
  %4063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4064 = load i32, ptr %4063, align 4, !tbaa !5
  %4065 = call ptr @s2n_strerror(i32 noundef %4064, ptr noundef @.str.4)
  %4066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4067 = load i32, ptr %4066, align 4, !tbaa !5
  %4068 = call ptr @s2n_strerror_debug(i32 noundef %4067, ptr noundef @.str.4)
  %4069 = call ptr @__errno_location() #9
  %4070 = load i32, ptr %4069, align 4, !tbaa !5
  %4071 = call ptr @strerror(i32 noundef %4070) #8
  %4072 = call ptr @__errno_location() #9
  %4073 = load i32, ptr %4072, align 4, !tbaa !5
  %4074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4061, ptr noundef @.str.2, i32 noundef %4062, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 420, ptr noundef %4065, ptr noundef %4068, ptr noundef %4071, i32 noundef %4073) #8
  br label %4092

4075:                                             ; preds = %4053, %4046
  %4076 = load i32, ptr %73, align 4, !tbaa !5
  %4077 = call ptr @__errno_location() #9
  store i32 %4076, ptr %4077, align 4, !tbaa !5
  %4078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4079 = load i32, ptr @test_count, align 4, !tbaa !5
  %4080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4081 = load i32, ptr %4080, align 4, !tbaa !5
  %4082 = call ptr @s2n_strerror(i32 noundef %4081, ptr noundef @.str.4)
  %4083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4084 = load i32, ptr %4083, align 4, !tbaa !5
  %4085 = call ptr @s2n_strerror_debug(i32 noundef %4084, ptr noundef @.str.4)
  %4086 = call ptr @__errno_location() #9
  %4087 = load i32, ptr %4086, align 4, !tbaa !5
  %4088 = call ptr @strerror(i32 noundef %4087) #8
  %4089 = call ptr @__errno_location() #9
  %4090 = load i32, ptr %4089, align 4, !tbaa !5
  %4091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4078, ptr noundef @.str.5, i32 noundef %4079, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 420, ptr noundef %4082, ptr noundef %4085, ptr noundef %4088, i32 noundef %4090) #8
  br label %4092

4092:                                             ; preds = %4075, %4058
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #8
  br label %4093

4093:                                             ; preds = %4092
  br label %4094

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

4095:                                             ; No predecessors!
  br label %4096

4096:                                             ; preds = %4095
  br label %4097

4097:                                             ; preds = %4096, %4037
  br label %4098

4098:                                             ; preds = %4097
  br label %4099

4099:                                             ; preds = %4098
  br label %4100

4100:                                             ; preds = %4099
  %4101 = load i32, ptr @test_count, align 4, !tbaa !5
  %4102 = add nsw i32 %4101, 1
  store i32 %4102, ptr @test_count, align 4, !tbaa !5
  %4103 = load ptr, ptr %15, align 8, !tbaa !9
  %4104 = call i32 @s2n_connection_set_blinding(ptr noundef %4103, i32 noundef 1)
  %4105 = icmp eq i32 %4104, -1
  br i1 %4105, label %4106, label %4159

4106:                                             ; preds = %4100
  br label %4107

4107:                                             ; preds = %4106
  br label %4108

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

4115:                                             ; preds = %4108
  %4116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4117 = call i32 @fileno(ptr noundef %4116) #8
  %4118 = call i32 @isatty(i32 noundef %4117) #8
  %4119 = icmp ne i32 %4118, 0
  br i1 %4119, label %4120, label %4137

4120:                                             ; preds = %4115
  %4121 = load i32, ptr %74, align 4, !tbaa !5
  %4122 = call ptr @__errno_location() #9
  store i32 %4121, ptr %4122, align 4, !tbaa !5
  %4123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4124 = load i32, ptr @test_count, align 4, !tbaa !5
  %4125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4126 = load i32, ptr %4125, align 4, !tbaa !5
  %4127 = call ptr @s2n_strerror(i32 noundef %4126, ptr noundef @.str.4)
  %4128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4129 = load i32, ptr %4128, align 4, !tbaa !5
  %4130 = call ptr @s2n_strerror_debug(i32 noundef %4129, ptr noundef @.str.4)
  %4131 = call ptr @__errno_location() #9
  %4132 = load i32, ptr %4131, align 4, !tbaa !5
  %4133 = call ptr @strerror(i32 noundef %4132) #8
  %4134 = call ptr @__errno_location() #9
  %4135 = load i32, ptr %4134, align 4, !tbaa !5
  %4136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4123, ptr noundef @.str.2, i32 noundef %4124, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 424, ptr noundef %4127, ptr noundef %4130, ptr noundef %4133, i32 noundef %4135) #8
  br label %4154

4137:                                             ; preds = %4115, %4108
  %4138 = load i32, ptr %74, align 4, !tbaa !5
  %4139 = call ptr @__errno_location() #9
  store i32 %4138, ptr %4139, align 4, !tbaa !5
  %4140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4141 = load i32, ptr @test_count, align 4, !tbaa !5
  %4142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4143 = load i32, ptr %4142, align 4, !tbaa !5
  %4144 = call ptr @s2n_strerror(i32 noundef %4143, ptr noundef @.str.4)
  %4145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4146 = load i32, ptr %4145, align 4, !tbaa !5
  %4147 = call ptr @s2n_strerror_debug(i32 noundef %4146, ptr noundef @.str.4)
  %4148 = call ptr @__errno_location() #9
  %4149 = load i32, ptr %4148, align 4, !tbaa !5
  %4150 = call ptr @strerror(i32 noundef %4149) #8
  %4151 = call ptr @__errno_location() #9
  %4152 = load i32, ptr %4151, align 4, !tbaa !5
  %4153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4140, ptr noundef @.str.5, i32 noundef %4141, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 424, ptr noundef %4144, ptr noundef %4147, ptr noundef %4150, i32 noundef %4152) #8
  br label %4154

4154:                                             ; preds = %4137, %4120
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #8
  br label %4155

4155:                                             ; preds = %4154
  br label %4156

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

4157:                                             ; No predecessors!
  br label %4158

4158:                                             ; preds = %4157
  br label %4159

4159:                                             ; preds = %4158, %4100
  br label %4160

4160:                                             ; preds = %4159
  br label %4161

4161:                                             ; preds = %4160
  br label %4162

4162:                                             ; preds = %4161
  br label %4163

4163:                                             ; preds = %4162
  %4164 = load i32, ptr @test_count, align 4, !tbaa !5
  %4165 = add nsw i32 %4164, 1
  store i32 %4165, ptr @test_count, align 4, !tbaa !5
  %4166 = load ptr, ptr %15, align 8, !tbaa !9
  %4167 = call i32 @s2n_negotiate(ptr noundef %4166, ptr noundef %6)
  %4168 = icmp eq i32 %4167, -1
  br i1 %4168, label %4222, label %4169

4169:                                             ; preds = %4163
  br label %4170

4170:                                             ; preds = %4169
  br label %4171

4171:                                             ; preds = %4170
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #8
  %4172 = call ptr @__errno_location() #9
  %4173 = load i32, ptr %4172, align 4, !tbaa !5
  store i32 %4173, ptr %75, align 4, !tbaa !5
  %4174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4175 = call i32 @s2n_print_stacktrace(ptr noundef %4174)
  %4176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4177 = trunc i8 %4176 to i1
  br i1 %4177, label %4178, label %4200

4178:                                             ; preds = %4171
  %4179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4180 = call i32 @fileno(ptr noundef %4179) #8
  %4181 = call i32 @isatty(i32 noundef %4180) #8
  %4182 = icmp ne i32 %4181, 0
  br i1 %4182, label %4183, label %4200

4183:                                             ; preds = %4178
  %4184 = load i32, ptr %75, align 4, !tbaa !5
  %4185 = call ptr @__errno_location() #9
  store i32 %4184, ptr %4185, align 4, !tbaa !5
  %4186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4187 = load i32, ptr @test_count, align 4, !tbaa !5
  %4188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4189 = load i32, ptr %4188, align 4, !tbaa !5
  %4190 = call ptr @s2n_strerror(i32 noundef %4189, ptr noundef @.str.4)
  %4191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4192 = load i32, ptr %4191, align 4, !tbaa !5
  %4193 = call ptr @s2n_strerror_debug(i32 noundef %4192, ptr noundef @.str.4)
  %4194 = call ptr @__errno_location() #9
  %4195 = load i32, ptr %4194, align 4, !tbaa !5
  %4196 = call ptr @strerror(i32 noundef %4195) #8
  %4197 = call ptr @__errno_location() #9
  %4198 = load i32, ptr %4197, align 4, !tbaa !5
  %4199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4186, ptr noundef @.str.2, i32 noundef %4187, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 425, ptr noundef %4190, ptr noundef %4193, ptr noundef %4196, i32 noundef %4198) #8
  br label %4217

4200:                                             ; preds = %4178, %4171
  %4201 = load i32, ptr %75, align 4, !tbaa !5
  %4202 = call ptr @__errno_location() #9
  store i32 %4201, ptr %4202, align 4, !tbaa !5
  %4203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4204 = load i32, ptr @test_count, align 4, !tbaa !5
  %4205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4206 = load i32, ptr %4205, align 4, !tbaa !5
  %4207 = call ptr @s2n_strerror(i32 noundef %4206, ptr noundef @.str.4)
  %4208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4209 = load i32, ptr %4208, align 4, !tbaa !5
  %4210 = call ptr @s2n_strerror_debug(i32 noundef %4209, ptr noundef @.str.4)
  %4211 = call ptr @__errno_location() #9
  %4212 = load i32, ptr %4211, align 4, !tbaa !5
  %4213 = call ptr @strerror(i32 noundef %4212) #8
  %4214 = call ptr @__errno_location() #9
  %4215 = load i32, ptr %4214, align 4, !tbaa !5
  %4216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4203, ptr noundef @.str.5, i32 noundef %4204, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 425, ptr noundef %4207, ptr noundef %4210, ptr noundef %4213, i32 noundef %4215) #8
  br label %4217

4217:                                             ; preds = %4200, %4183
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #8
  br label %4218

4218:                                             ; preds = %4217
  br label %4219

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

4220:                                             ; No predecessors!
  br label %4221

4221:                                             ; preds = %4220
  br label %4222

4222:                                             ; preds = %4221, %4163
  br label %4223

4223:                                             ; preds = %4222
  br label %4224

4224:                                             ; preds = %4223
  br label %4225

4225:                                             ; preds = %4224
  %4226 = load i32, ptr @test_count, align 4, !tbaa !5
  %4227 = add nsw i32 %4226, 1
  store i32 %4227, ptr @test_count, align 4, !tbaa !5
  %4228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4229 = load i32, ptr %4228, align 4, !tbaa !5
  %4230 = icmp eq i32 %4229, 0
  br i1 %4230, label %4231, label %4284

4231:                                             ; preds = %4225
  br label %4232

4232:                                             ; preds = %4231
  br label %4233

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

4240:                                             ; preds = %4233
  %4241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4242 = call i32 @fileno(ptr noundef %4241) #8
  %4243 = call i32 @isatty(i32 noundef %4242) #8
  %4244 = icmp ne i32 %4243, 0
  br i1 %4244, label %4245, label %4262

4245:                                             ; preds = %4240
  %4246 = load i32, ptr %76, align 4, !tbaa !5
  %4247 = call ptr @__errno_location() #9
  store i32 %4246, ptr %4247, align 4, !tbaa !5
  %4248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4249 = load i32, ptr @test_count, align 4, !tbaa !5
  %4250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4251 = load i32, ptr %4250, align 4, !tbaa !5
  %4252 = call ptr @s2n_strerror(i32 noundef %4251, ptr noundef @.str.4)
  %4253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4254 = load i32, ptr %4253, align 4, !tbaa !5
  %4255 = call ptr @s2n_strerror_debug(i32 noundef %4254, ptr noundef @.str.4)
  %4256 = call ptr @__errno_location() #9
  %4257 = load i32, ptr %4256, align 4, !tbaa !5
  %4258 = call ptr @strerror(i32 noundef %4257) #8
  %4259 = call ptr @__errno_location() #9
  %4260 = load i32, ptr %4259, align 4, !tbaa !5
  %4261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4248, ptr noundef @.str.2, i32 noundef %4249, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 425, ptr noundef %4252, ptr noundef %4255, ptr noundef %4258, i32 noundef %4260) #8
  br label %4279

4262:                                             ; preds = %4240, %4233
  %4263 = load i32, ptr %76, align 4, !tbaa !5
  %4264 = call ptr @__errno_location() #9
  store i32 %4263, ptr %4264, align 4, !tbaa !5
  %4265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4266 = load i32, ptr @test_count, align 4, !tbaa !5
  %4267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4268 = load i32, ptr %4267, align 4, !tbaa !5
  %4269 = call ptr @s2n_strerror(i32 noundef %4268, ptr noundef @.str.4)
  %4270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4271 = load i32, ptr %4270, align 4, !tbaa !5
  %4272 = call ptr @s2n_strerror_debug(i32 noundef %4271, ptr noundef @.str.4)
  %4273 = call ptr @__errno_location() #9
  %4274 = load i32, ptr %4273, align 4, !tbaa !5
  %4275 = call ptr @strerror(i32 noundef %4274) #8
  %4276 = call ptr @__errno_location() #9
  %4277 = load i32, ptr %4276, align 4, !tbaa !5
  %4278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4265, ptr noundef @.str.5, i32 noundef %4266, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 425, ptr noundef %4269, ptr noundef %4272, ptr noundef %4275, i32 noundef %4277) #8
  br label %4279

4279:                                             ; preds = %4262, %4245
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #8
  br label %4280

4280:                                             ; preds = %4279
  br label %4281

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

4282:                                             ; No predecessors!
  br label %4283

4283:                                             ; preds = %4282
  br label %4284

4284:                                             ; preds = %4283, %4225
  br label %4285

4285:                                             ; preds = %4284
  br label %4286

4286:                                             ; preds = %4285
  br label %4287

4287:                                             ; preds = %4286
  %4288 = load i32, ptr @test_count, align 4, !tbaa !5
  %4289 = add nsw i32 %4288, 1
  store i32 %4289, ptr @test_count, align 4, !tbaa !5
  %4290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4291 = load i32, ptr %4290, align 4, !tbaa !5
  %4292 = call ptr @s2n_strerror_debug(i32 noundef %4291, ptr noundef @.str.4)
  %4293 = icmp eq ptr %4292, null
  br i1 %4293, label %4294, label %4347

4294:                                             ; preds = %4287
  br label %4295

4295:                                             ; preds = %4294
  br label %4296

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

4303:                                             ; preds = %4296
  %4304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4305 = call i32 @fileno(ptr noundef %4304) #8
  %4306 = call i32 @isatty(i32 noundef %4305) #8
  %4307 = icmp ne i32 %4306, 0
  br i1 %4307, label %4308, label %4325

4308:                                             ; preds = %4303
  %4309 = load i32, ptr %77, align 4, !tbaa !5
  %4310 = call ptr @__errno_location() #9
  store i32 %4309, ptr %4310, align 4, !tbaa !5
  %4311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4312 = load i32, ptr @test_count, align 4, !tbaa !5
  %4313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4314 = load i32, ptr %4313, align 4, !tbaa !5
  %4315 = call ptr @s2n_strerror(i32 noundef %4314, ptr noundef @.str.4)
  %4316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4317 = load i32, ptr %4316, align 4, !tbaa !5
  %4318 = call ptr @s2n_strerror_debug(i32 noundef %4317, ptr noundef @.str.4)
  %4319 = call ptr @__errno_location() #9
  %4320 = load i32, ptr %4319, align 4, !tbaa !5
  %4321 = call ptr @strerror(i32 noundef %4320) #8
  %4322 = call ptr @__errno_location() #9
  %4323 = load i32, ptr %4322, align 4, !tbaa !5
  %4324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4311, ptr noundef @.str.2, i32 noundef %4312, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 425, ptr noundef %4315, ptr noundef %4318, ptr noundef %4321, i32 noundef %4323) #8
  br label %4342

4325:                                             ; preds = %4303, %4296
  %4326 = load i32, ptr %77, align 4, !tbaa !5
  %4327 = call ptr @__errno_location() #9
  store i32 %4326, ptr %4327, align 4, !tbaa !5
  %4328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4329 = load i32, ptr @test_count, align 4, !tbaa !5
  %4330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4331 = load i32, ptr %4330, align 4, !tbaa !5
  %4332 = call ptr @s2n_strerror(i32 noundef %4331, ptr noundef @.str.4)
  %4333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4334 = load i32, ptr %4333, align 4, !tbaa !5
  %4335 = call ptr @s2n_strerror_debug(i32 noundef %4334, ptr noundef @.str.4)
  %4336 = call ptr @__errno_location() #9
  %4337 = load i32, ptr %4336, align 4, !tbaa !5
  %4338 = call ptr @strerror(i32 noundef %4337) #8
  %4339 = call ptr @__errno_location() #9
  %4340 = load i32, ptr %4339, align 4, !tbaa !5
  %4341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4328, ptr noundef @.str.5, i32 noundef %4329, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 425, ptr noundef %4332, ptr noundef %4335, ptr noundef %4338, i32 noundef %4340) #8
  br label %4342

4342:                                             ; preds = %4325, %4308
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #8
  br label %4343

4343:                                             ; preds = %4342
  br label %4344

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

4345:                                             ; No predecessors!
  br label %4346

4346:                                             ; preds = %4345
  br label %4347

4347:                                             ; preds = %4346, %4287
  br label %4348

4348:                                             ; preds = %4347
  br label %4349

4349:                                             ; preds = %4348
  br label %4350

4350:                                             ; preds = %4349
  %4351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4351, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4352 = call ptr @__errno_location() #9
  store i32 0, ptr %4352, align 4, !tbaa !5
  br label %4353

4353:                                             ; preds = %4350
  br label %4354

4354:                                             ; preds = %4353
  br label %4355

4355:                                             ; preds = %4354
  br label %4356

4356:                                             ; preds = %4355
  br label %4357

4357:                                             ; preds = %4356
  %4358 = load i32, ptr @test_count, align 4, !tbaa !5
  %4359 = add nsw i32 %4358, 1
  store i32 %4359, ptr @test_count, align 4, !tbaa !5
  %4360 = load ptr, ptr %15, align 8, !tbaa !9
  %4361 = getelementptr inbounds %struct.s2n_connection, ptr %4360, i32 0, i32 32
  %4362 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %4361, i32 0, i32 13
  %4363 = getelementptr inbounds [32 x i8], ptr %4362, i64 0, i64 0
  %4364 = call i32 @memcmp(ptr noundef %4363, ptr noundef @zero_to_thirty_one, i64 noundef 32) #11
  %4365 = icmp eq i32 %4364, 0
  br i1 %4365, label %4419, label %4366

4366:                                             ; preds = %4357
  br label %4367

4367:                                             ; preds = %4366
  br label %4368

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

4375:                                             ; preds = %4368
  %4376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4377 = call i32 @fileno(ptr noundef %4376) #8
  %4378 = call i32 @isatty(i32 noundef %4377) #8
  %4379 = icmp ne i32 %4378, 0
  br i1 %4379, label %4380, label %4397

4380:                                             ; preds = %4375
  %4381 = load i32, ptr %78, align 4, !tbaa !5
  %4382 = call ptr @__errno_location() #9
  store i32 %4381, ptr %4382, align 4, !tbaa !5
  %4383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4384 = load i32, ptr @test_count, align 4, !tbaa !5
  %4385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4386 = load i32, ptr %4385, align 4, !tbaa !5
  %4387 = call ptr @s2n_strerror(i32 noundef %4386, ptr noundef @.str.4)
  %4388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4389 = load i32, ptr %4388, align 4, !tbaa !5
  %4390 = call ptr @s2n_strerror_debug(i32 noundef %4389, ptr noundef @.str.4)
  %4391 = call ptr @__errno_location() #9
  %4392 = load i32, ptr %4391, align 4, !tbaa !5
  %4393 = call ptr @strerror(i32 noundef %4392) #8
  %4394 = call ptr @__errno_location() #9
  %4395 = load i32, ptr %4394, align 4, !tbaa !5
  %4396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4383, ptr noundef @.str.2, i32 noundef %4384, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 428, ptr noundef %4387, ptr noundef %4390, ptr noundef %4393, i32 noundef %4395) #8
  br label %4414

4397:                                             ; preds = %4375, %4368
  %4398 = load i32, ptr %78, align 4, !tbaa !5
  %4399 = call ptr @__errno_location() #9
  store i32 %4398, ptr %4399, align 4, !tbaa !5
  %4400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4401 = load i32, ptr @test_count, align 4, !tbaa !5
  %4402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4403 = load i32, ptr %4402, align 4, !tbaa !5
  %4404 = call ptr @s2n_strerror(i32 noundef %4403, ptr noundef @.str.4)
  %4405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4406 = load i32, ptr %4405, align 4, !tbaa !5
  %4407 = call ptr @s2n_strerror_debug(i32 noundef %4406, ptr noundef @.str.4)
  %4408 = call ptr @__errno_location() #9
  %4409 = load i32, ptr %4408, align 4, !tbaa !5
  %4410 = call ptr @strerror(i32 noundef %4409) #8
  %4411 = call ptr @__errno_location() #9
  %4412 = load i32, ptr %4411, align 4, !tbaa !5
  %4413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4400, ptr noundef @.str.5, i32 noundef %4401, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 428, ptr noundef %4404, ptr noundef %4407, ptr noundef %4410, i32 noundef %4412) #8
  br label %4414

4414:                                             ; preds = %4397, %4380
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #8
  br label %4415

4415:                                             ; preds = %4414
  br label %4416

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

4417:                                             ; No predecessors!
  br label %4418

4418:                                             ; preds = %4417
  br label %4419

4419:                                             ; preds = %4418, %4357
  br label %4420

4420:                                             ; preds = %4419
  br label %4421

4421:                                             ; preds = %4420
  br label %4422

4422:                                             ; preds = %4421
  %4423 = load i32, ptr @test_count, align 4, !tbaa !5
  %4424 = add nsw i32 %4423, 1
  store i32 %4424, ptr @test_count, align 4, !tbaa !5
  %4425 = load ptr, ptr %15, align 8, !tbaa !9
  %4426 = call i32 @s2n_conn_get_current_message_type(ptr noundef %4425)
  %4427 = icmp eq i32 %4426, 2
  br i1 %4427, label %4481, label %4428

4428:                                             ; preds = %4422
  br label %4429

4429:                                             ; preds = %4428
  br label %4430

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

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

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

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

4476:                                             ; preds = %4459, %4442
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #8
  br label %4477

4477:                                             ; preds = %4476
  br label %4478

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

4479:                                             ; No predecessors!
  br label %4480

4480:                                             ; preds = %4479
  br label %4481

4481:                                             ; preds = %4480, %4422
  br label %4482

4482:                                             ; preds = %4481
  br label %4483

4483:                                             ; preds = %4482
  br label %4484

4484:                                             ; preds = %4483
  %4485 = load i32, ptr @test_count, align 4, !tbaa !5
  %4486 = add nsw i32 %4485, 1
  store i32 %4486, ptr @test_count, align 4, !tbaa !5
  %4487 = load i32, ptr %8, align 4, !tbaa !5
  %4488 = call i32 @waitpid(i32 noundef %4487, ptr noundef %7, i32 noundef 0)
  %4489 = load i32, ptr %8, align 4, !tbaa !5
  %4490 = icmp eq i32 %4488, %4489
  br i1 %4490, label %4544, label %4491

4491:                                             ; preds = %4484
  br label %4492

4492:                                             ; preds = %4491
  br label %4493

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

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

4505:                                             ; preds = %4500
  %4506 = load i32, ptr %80, align 4, !tbaa !5
  %4507 = call ptr @__errno_location() #9
  store i32 %4506, ptr %4507, align 4, !tbaa !5
  %4508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4509 = load i32, ptr @test_count, align 4, !tbaa !5
  %4510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4511 = load i32, ptr %4510, align 4, !tbaa !5
  %4512 = call ptr @s2n_strerror(i32 noundef %4511, ptr noundef @.str.4)
  %4513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4514 = load i32, ptr %4513, align 4, !tbaa !5
  %4515 = call ptr @s2n_strerror_debug(i32 noundef %4514, ptr noundef @.str.4)
  %4516 = call ptr @__errno_location() #9
  %4517 = load i32, ptr %4516, align 4, !tbaa !5
  %4518 = call ptr @strerror(i32 noundef %4517) #8
  %4519 = call ptr @__errno_location() #9
  %4520 = load i32, ptr %4519, align 4, !tbaa !5
  %4521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4508, ptr noundef @.str.2, i32 noundef %4509, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 434, ptr noundef %4512, ptr noundef %4515, ptr noundef %4518, i32 noundef %4520) #8
  br label %4539

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

4539:                                             ; preds = %4522, %4505
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #8
  br label %4540

4540:                                             ; preds = %4539
  br label %4541

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

4542:                                             ; No predecessors!
  br label %4543

4543:                                             ; preds = %4542
  br label %4544

4544:                                             ; preds = %4543, %4484
  br label %4545

4545:                                             ; preds = %4544
  br label %4546

4546:                                             ; preds = %4545
  br label %4547

4547:                                             ; preds = %4546
  %4548 = load i32, ptr @test_count, align 4, !tbaa !5
  %4549 = add nsw i32 %4548, 1
  store i32 %4549, ptr @test_count, align 4, !tbaa !5
  %4550 = load i32, ptr %7, align 4, !tbaa !5
  %4551 = icmp eq i32 %4550, 0
  br i1 %4551, label %4605, label %4552

4552:                                             ; preds = %4547
  br label %4553

4553:                                             ; preds = %4552
  br label %4554

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

4561:                                             ; preds = %4554
  %4562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4563 = call i32 @fileno(ptr noundef %4562) #8
  %4564 = call i32 @isatty(i32 noundef %4563) #8
  %4565 = icmp ne i32 %4564, 0
  br i1 %4565, label %4566, label %4583

4566:                                             ; preds = %4561
  %4567 = load i32, ptr %81, align 4, !tbaa !5
  %4568 = call ptr @__errno_location() #9
  store i32 %4567, ptr %4568, align 4, !tbaa !5
  %4569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4570 = load i32, ptr @test_count, align 4, !tbaa !5
  %4571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4572 = load i32, ptr %4571, align 4, !tbaa !5
  %4573 = call ptr @s2n_strerror(i32 noundef %4572, ptr noundef @.str.4)
  %4574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4575 = load i32, ptr %4574, align 4, !tbaa !5
  %4576 = call ptr @s2n_strerror_debug(i32 noundef %4575, ptr noundef @.str.4)
  %4577 = call ptr @__errno_location() #9
  %4578 = load i32, ptr %4577, align 4, !tbaa !5
  %4579 = call ptr @strerror(i32 noundef %4578) #8
  %4580 = call ptr @__errno_location() #9
  %4581 = load i32, ptr %4580, align 4, !tbaa !5
  %4582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4569, ptr noundef @.str.2, i32 noundef %4570, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 435, ptr noundef %4573, ptr noundef %4576, ptr noundef %4579, i32 noundef %4581) #8
  br label %4600

4583:                                             ; preds = %4561, %4554
  %4584 = load i32, ptr %81, align 4, !tbaa !5
  %4585 = call ptr @__errno_location() #9
  store i32 %4584, ptr %4585, align 4, !tbaa !5
  %4586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4587 = load i32, ptr @test_count, align 4, !tbaa !5
  %4588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4589 = load i32, ptr %4588, align 4, !tbaa !5
  %4590 = call ptr @s2n_strerror(i32 noundef %4589, ptr noundef @.str.4)
  %4591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4592 = load i32, ptr %4591, align 4, !tbaa !5
  %4593 = call ptr @s2n_strerror_debug(i32 noundef %4592, ptr noundef @.str.4)
  %4594 = call ptr @__errno_location() #9
  %4595 = load i32, ptr %4594, align 4, !tbaa !5
  %4596 = call ptr @strerror(i32 noundef %4595) #8
  %4597 = call ptr @__errno_location() #9
  %4598 = load i32, ptr %4597, align 4, !tbaa !5
  %4599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4586, ptr noundef @.str.5, i32 noundef %4587, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 435, ptr noundef %4590, ptr noundef %4593, ptr noundef %4596, i32 noundef %4598) #8
  br label %4600

4600:                                             ; preds = %4583, %4566
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #8
  br label %4601

4601:                                             ; preds = %4600
  br label %4602

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

4603:                                             ; No predecessors!
  br label %4604

4604:                                             ; preds = %4603
  br label %4605

4605:                                             ; preds = %4604, %4547
  br label %4606

4606:                                             ; preds = %4605
  br label %4607

4607:                                             ; preds = %4606
  br label %4608

4608:                                             ; preds = %4607
  %4609 = load i32, ptr @test_count, align 4, !tbaa !5
  %4610 = add nsw i32 %4609, 1
  store i32 %4610, ptr @test_count, align 4, !tbaa !5
  %4611 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %4612 = load i32, ptr %4611, align 4, !tbaa !5
  %4613 = call i32 @close(i32 noundef %4612)
  %4614 = icmp eq i32 %4613, -1
  br i1 %4614, label %4615, label %4668

4615:                                             ; preds = %4608
  br label %4616

4616:                                             ; preds = %4615
  br label %4617

4617:                                             ; preds = %4616
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #8
  %4618 = call ptr @__errno_location() #9
  %4619 = load i32, ptr %4618, align 4, !tbaa !5
  store i32 %4619, ptr %82, align 4, !tbaa !5
  %4620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4621 = call i32 @s2n_print_stacktrace(ptr noundef %4620)
  %4622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4623 = trunc i8 %4622 to i1
  br i1 %4623, label %4624, label %4646

4624:                                             ; preds = %4617
  %4625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4626 = call i32 @fileno(ptr noundef %4625) #8
  %4627 = call i32 @isatty(i32 noundef %4626) #8
  %4628 = icmp ne i32 %4627, 0
  br i1 %4628, label %4629, label %4646

4629:                                             ; preds = %4624
  %4630 = load i32, ptr %82, align 4, !tbaa !5
  %4631 = call ptr @__errno_location() #9
  store i32 %4630, ptr %4631, align 4, !tbaa !5
  %4632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4633 = load i32, ptr @test_count, align 4, !tbaa !5
  %4634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4635 = load i32, ptr %4634, align 4, !tbaa !5
  %4636 = call ptr @s2n_strerror(i32 noundef %4635, ptr noundef @.str.4)
  %4637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4638 = load i32, ptr %4637, align 4, !tbaa !5
  %4639 = call ptr @s2n_strerror_debug(i32 noundef %4638, ptr noundef @.str.4)
  %4640 = call ptr @__errno_location() #9
  %4641 = load i32, ptr %4640, align 4, !tbaa !5
  %4642 = call ptr @strerror(i32 noundef %4641) #8
  %4643 = call ptr @__errno_location() #9
  %4644 = load i32, ptr %4643, align 4, !tbaa !5
  %4645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4632, ptr noundef @.str.2, i32 noundef %4633, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 436, ptr noundef %4636, ptr noundef %4639, ptr noundef %4642, i32 noundef %4644) #8
  br label %4663

4646:                                             ; preds = %4624, %4617
  %4647 = load i32, ptr %82, align 4, !tbaa !5
  %4648 = call ptr @__errno_location() #9
  store i32 %4647, ptr %4648, align 4, !tbaa !5
  %4649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4650 = load i32, ptr @test_count, align 4, !tbaa !5
  %4651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4652 = load i32, ptr %4651, align 4, !tbaa !5
  %4653 = call ptr @s2n_strerror(i32 noundef %4652, ptr noundef @.str.4)
  %4654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4655 = load i32, ptr %4654, align 4, !tbaa !5
  %4656 = call ptr @s2n_strerror_debug(i32 noundef %4655, ptr noundef @.str.4)
  %4657 = call ptr @__errno_location() #9
  %4658 = load i32, ptr %4657, align 4, !tbaa !5
  %4659 = call ptr @strerror(i32 noundef %4658) #8
  %4660 = call ptr @__errno_location() #9
  %4661 = load i32, ptr %4660, align 4, !tbaa !5
  %4662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4649, ptr noundef @.str.5, i32 noundef %4650, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 436, ptr noundef %4653, ptr noundef %4656, ptr noundef %4659, i32 noundef %4661) #8
  br label %4663

4663:                                             ; preds = %4646, %4629
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #8
  br label %4664

4664:                                             ; preds = %4663
  br label %4665

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

4666:                                             ; No predecessors!
  br label %4667

4667:                                             ; preds = %4666
  br label %4668

4668:                                             ; preds = %4667, %4608
  br label %4669

4669:                                             ; preds = %4668
  br label %4670

4670:                                             ; preds = %4669
  br label %4671

4671:                                             ; preds = %4670
  %4672 = load i32, ptr @test_count, align 4, !tbaa !5
  %4673 = add nsw i32 %4672, 1
  store i32 %4673, ptr @test_count, align 4, !tbaa !5
  %4674 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %4675 = call i32 @pipe(ptr noundef %4674) #8
  %4676 = icmp eq i32 %4675, -1
  br i1 %4676, label %4677, label %4730

4677:                                             ; preds = %4671
  br label %4678

4678:                                             ; preds = %4677
  br label %4679

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

4686:                                             ; preds = %4679
  %4687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4688 = call i32 @fileno(ptr noundef %4687) #8
  %4689 = call i32 @isatty(i32 noundef %4688) #8
  %4690 = icmp ne i32 %4689, 0
  br i1 %4690, label %4691, label %4708

4691:                                             ; preds = %4686
  %4692 = load i32, ptr %83, align 4, !tbaa !5
  %4693 = call ptr @__errno_location() #9
  store i32 %4692, ptr %4693, align 4, !tbaa !5
  %4694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4695 = load i32, ptr @test_count, align 4, !tbaa !5
  %4696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4697 = load i32, ptr %4696, align 4, !tbaa !5
  %4698 = call ptr @s2n_strerror(i32 noundef %4697, ptr noundef @.str.4)
  %4699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4700 = load i32, ptr %4699, align 4, !tbaa !5
  %4701 = call ptr @s2n_strerror_debug(i32 noundef %4700, ptr noundef @.str.4)
  %4702 = call ptr @__errno_location() #9
  %4703 = load i32, ptr %4702, align 4, !tbaa !5
  %4704 = call ptr @strerror(i32 noundef %4703) #8
  %4705 = call ptr @__errno_location() #9
  %4706 = load i32, ptr %4705, align 4, !tbaa !5
  %4707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4694, ptr noundef @.str.2, i32 noundef %4695, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 441, ptr noundef %4698, ptr noundef %4701, ptr noundef %4704, i32 noundef %4706) #8
  br label %4725

4708:                                             ; preds = %4686, %4679
  %4709 = load i32, ptr %83, align 4, !tbaa !5
  %4710 = call ptr @__errno_location() #9
  store i32 %4709, ptr %4710, align 4, !tbaa !5
  %4711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4712 = load i32, ptr @test_count, align 4, !tbaa !5
  %4713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4714 = load i32, ptr %4713, align 4, !tbaa !5
  %4715 = call ptr @s2n_strerror(i32 noundef %4714, ptr noundef @.str.4)
  %4716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4717 = load i32, ptr %4716, align 4, !tbaa !5
  %4718 = call ptr @s2n_strerror_debug(i32 noundef %4717, ptr noundef @.str.4)
  %4719 = call ptr @__errno_location() #9
  %4720 = load i32, ptr %4719, align 4, !tbaa !5
  %4721 = call ptr @strerror(i32 noundef %4720) #8
  %4722 = call ptr @__errno_location() #9
  %4723 = load i32, ptr %4722, align 4, !tbaa !5
  %4724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4711, ptr noundef @.str.5, i32 noundef %4712, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 441, ptr noundef %4715, ptr noundef %4718, ptr noundef %4721, i32 noundef %4723) #8
  br label %4725

4725:                                             ; preds = %4708, %4691
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #8
  br label %4726

4726:                                             ; preds = %4725
  br label %4727

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

4728:                                             ; No predecessors!
  br label %4729

4729:                                             ; preds = %4728
  br label %4730

4730:                                             ; preds = %4729, %4671
  br label %4731

4731:                                             ; preds = %4730
  br label %4732

4732:                                             ; preds = %4731
  br label %4733

4733:                                             ; preds = %4732
  %4734 = load i32, ptr @test_count, align 4, !tbaa !5
  %4735 = add nsw i32 %4734, 1
  store i32 %4735, ptr @test_count, align 4, !tbaa !5
  %4736 = load ptr, ptr %15, align 8, !tbaa !9
  %4737 = call i32 @s2n_connection_wipe(ptr noundef %4736)
  %4738 = icmp eq i32 %4737, -1
  br i1 %4738, label %4739, label %4792

4739:                                             ; preds = %4733
  br label %4740

4740:                                             ; preds = %4739
  br label %4741

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

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

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

4770:                                             ; preds = %4748, %4741
  %4771 = load i32, ptr %84, 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.5, i32 noundef %4774, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 443, ptr noundef %4777, ptr noundef %4780, ptr noundef %4783, i32 noundef %4785) #8
  br label %4787

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

4788:                                             ; preds = %4787
  br label %4789

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

4790:                                             ; No predecessors!
  br label %4791

4791:                                             ; preds = %4790
  br label %4792

4792:                                             ; preds = %4791, %4733
  br label %4793

4793:                                             ; preds = %4792
  br label %4794

4794:                                             ; preds = %4793
  br label %4795

4795:                                             ; preds = %4794
  %4796 = load i32, ptr @test_count, align 4, !tbaa !5
  %4797 = add nsw i32 %4796, 1
  store i32 %4797, ptr @test_count, align 4, !tbaa !5
  %4798 = load ptr, ptr %15, align 8, !tbaa !9
  %4799 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %4800 = load i32, ptr %4799, align 4, !tbaa !5
  %4801 = call i32 @s2n_connection_set_read_fd(ptr noundef %4798, i32 noundef %4800)
  %4802 = icmp eq i32 %4801, -1
  br i1 %4802, label %4803, label %4856

4803:                                             ; preds = %4795
  br label %4804

4804:                                             ; preds = %4803
  br label %4805

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

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

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

4834:                                             ; preds = %4812, %4805
  %4835 = load i32, ptr %85, 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.5, i32 noundef %4838, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 446, ptr noundef %4841, ptr noundef %4844, ptr noundef %4847, i32 noundef %4849) #8
  br label %4851

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

4852:                                             ; preds = %4851
  br label %4853

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

4854:                                             ; No predecessors!
  br label %4855

4855:                                             ; preds = %4854
  br label %4856

4856:                                             ; preds = %4855, %4795
  br label %4857

4857:                                             ; preds = %4856
  br label %4858

4858:                                             ; preds = %4857
  %4859 = load ptr, ptr %15, align 8, !tbaa !9
  %4860 = getelementptr inbounds %struct.s2n_connection, ptr %4859, i32 0, i32 52
  %4861 = getelementptr inbounds %struct.s2n_handshake, ptr %4860, i32 0, i32 6
  store i32 3, ptr %4861, align 4, !tbaa !15
  %4862 = load ptr, ptr %15, align 8, !tbaa !9
  %4863 = getelementptr inbounds %struct.s2n_connection, ptr %4862, i32 0, i32 52
  %4864 = getelementptr inbounds %struct.s2n_handshake, ptr %4863, i32 0, i32 7
  store i32 1, ptr %4864, align 8, !tbaa !42
  %4865 = load ptr, ptr %15, align 8, !tbaa !9
  %4866 = getelementptr inbounds %struct.s2n_connection, ptr %4865, i32 0, i32 22
  store i8 33, ptr %4866, align 1, !tbaa !43
  %4867 = load ptr, ptr %15, align 8, !tbaa !9
  %4868 = getelementptr inbounds %struct.s2n_connection, ptr %4867, i32 0, i32 21
  store i8 33, ptr %4868, align 2, !tbaa !44
  %4869 = load ptr, ptr %15, align 8, !tbaa !9
  %4870 = getelementptr inbounds %struct.s2n_connection, ptr %4869, i32 0, i32 23
  store i8 33, ptr %4870, align 4, !tbaa !45
  %4871 = call i32 @fork() #8
  store i32 %4871, ptr %8, align 4, !tbaa !5
  %4872 = load i32, ptr %8, align 4, !tbaa !5
  %4873 = icmp eq i32 %4872, 0
  br i1 %4873, label %4874, label %5064

4874:                                             ; preds = %4858
  br label %4875

4875:                                             ; preds = %4874
  %4876 = load i32, ptr @test_count, align 4, !tbaa !5
  %4877 = add nsw i32 %4876, 1
  store i32 %4877, ptr @test_count, align 4, !tbaa !5
  %4878 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %4879 = load i32, ptr %4878, align 4, !tbaa !5
  %4880 = call i32 @close(i32 noundef %4879)
  %4881 = icmp eq i32 %4880, -1
  br i1 %4881, label %4882, label %4935

4882:                                             ; preds = %4875
  br label %4883

4883:                                             ; preds = %4882
  br label %4884

4884:                                             ; preds = %4883
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #8
  %4885 = call ptr @__errno_location() #9
  %4886 = load i32, ptr %4885, align 4, !tbaa !5
  store i32 %4886, ptr %86, 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 %86, 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.16, ptr noundef @.str.1, i32 noundef 459, ptr noundef %4903, ptr noundef %4906, ptr noundef %4909, i32 noundef %4911) #8
  br label %4930

4913:                                             ; preds = %4891, %4884
  %4914 = load i32, ptr %86, 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.16, ptr noundef @.str.1, i32 noundef 459, 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 %86) #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, %4875
  br label %4936

4936:                                             ; preds = %4935
  br label %4937

4937:                                             ; preds = %4936
  %4938 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 1
  %4939 = load i32, ptr %4938, align 4, !tbaa !5
  call void @send_messages(i32 noundef %4939, ptr noundef @server_hello_message, i32 noundef 74, ptr noundef @certificate_too_large, i32 noundef 10)
  br label %4940

4940:                                             ; preds = %4937
  %4941 = load i32, ptr @test_count, align 4, !tbaa !5
  %4942 = add nsw i32 %4941, 1
  store i32 %4942, ptr @test_count, align 4, !tbaa !5
  %4943 = load ptr, ptr %15, align 8, !tbaa !9
  %4944 = call i32 @s2n_connection_free(ptr noundef %4943)
  %4945 = icmp eq i32 %4944, -1
  br i1 %4945, label %4946, label %4999

4946:                                             ; preds = %4940
  br label %4947

4947:                                             ; preds = %4946
  br label %4948

4948:                                             ; preds = %4947
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #8
  %4949 = call ptr @__errno_location() #9
  %4950 = load i32, ptr %4949, align 4, !tbaa !5
  store i32 %4950, ptr %87, 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 %87, 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.17, ptr noundef @.str.1, i32 noundef 463, ptr noundef %4967, ptr noundef %4970, ptr noundef %4973, i32 noundef %4975) #8
  br label %4994

4977:                                             ; preds = %4955, %4948
  %4978 = load i32, ptr %87, 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.17, ptr noundef @.str.1, i32 noundef 463, 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 %87) #8
  br label %4995

4995:                                             ; preds = %4994
  br label %4996

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

4997:                                             ; No predecessors!
  br label %4998

4998:                                             ; preds = %4997
  br label %4999

4999:                                             ; preds = %4998, %4940
  br label %5000

5000:                                             ; preds = %4999
  br label %5001

5001:                                             ; preds = %5000
  br label %5002

5002:                                             ; preds = %5001
  %5003 = load i32, ptr @test_count, align 4, !tbaa !5
  %5004 = add nsw i32 %5003, 1
  store i32 %5004, ptr @test_count, align 4, !tbaa !5
  %5005 = load ptr, ptr %14, align 8, !tbaa !9
  %5006 = call i32 @s2n_config_free(ptr noundef %5005)
  %5007 = icmp eq i32 %5006, -1
  br i1 %5007, label %5008, label %5061

5008:                                             ; preds = %5002
  br label %5009

5009:                                             ; preds = %5008
  br label %5010

5010:                                             ; preds = %5009
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #8
  %5011 = call ptr @__errno_location() #9
  %5012 = load i32, ptr %5011, align 4, !tbaa !5
  store i32 %5012, ptr %88, align 4, !tbaa !5
  %5013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5014 = call i32 @s2n_print_stacktrace(ptr noundef %5013)
  %5015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5016 = trunc i8 %5015 to i1
  br i1 %5016, label %5017, label %5039

5017:                                             ; preds = %5010
  %5018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5019 = call i32 @fileno(ptr noundef %5018) #8
  %5020 = call i32 @isatty(i32 noundef %5019) #8
  %5021 = icmp ne i32 %5020, 0
  br i1 %5021, label %5022, label %5039

5022:                                             ; preds = %5017
  %5023 = load i32, ptr %88, align 4, !tbaa !5
  %5024 = call ptr @__errno_location() #9
  store i32 %5023, ptr %5024, align 4, !tbaa !5
  %5025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5026 = load i32, ptr @test_count, align 4, !tbaa !5
  %5027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5028 = load i32, ptr %5027, align 4, !tbaa !5
  %5029 = call ptr @s2n_strerror(i32 noundef %5028, ptr noundef @.str.4)
  %5030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5031 = load i32, ptr %5030, align 4, !tbaa !5
  %5032 = call ptr @s2n_strerror_debug(i32 noundef %5031, ptr noundef @.str.4)
  %5033 = call ptr @__errno_location() #9
  %5034 = load i32, ptr %5033, align 4, !tbaa !5
  %5035 = call ptr @strerror(i32 noundef %5034) #8
  %5036 = call ptr @__errno_location() #9
  %5037 = load i32, ptr %5036, align 4, !tbaa !5
  %5038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5025, ptr noundef @.str.2, i32 noundef %5026, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 464, ptr noundef %5029, ptr noundef %5032, ptr noundef %5035, i32 noundef %5037) #8
  br label %5056

5039:                                             ; preds = %5017, %5010
  %5040 = load i32, ptr %88, align 4, !tbaa !5
  %5041 = call ptr @__errno_location() #9
  store i32 %5040, ptr %5041, align 4, !tbaa !5
  %5042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5043 = load i32, ptr @test_count, align 4, !tbaa !5
  %5044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5045 = load i32, ptr %5044, align 4, !tbaa !5
  %5046 = call ptr @s2n_strerror(i32 noundef %5045, ptr noundef @.str.4)
  %5047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5048 = load i32, ptr %5047, align 4, !tbaa !5
  %5049 = call ptr @s2n_strerror_debug(i32 noundef %5048, ptr noundef @.str.4)
  %5050 = call ptr @__errno_location() #9
  %5051 = load i32, ptr %5050, align 4, !tbaa !5
  %5052 = call ptr @strerror(i32 noundef %5051) #8
  %5053 = call ptr @__errno_location() #9
  %5054 = load i32, ptr %5053, align 4, !tbaa !5
  %5055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5042, ptr noundef @.str.5, i32 noundef %5043, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 464, ptr noundef %5046, ptr noundef %5049, ptr noundef %5052, i32 noundef %5054) #8
  br label %5056

5056:                                             ; preds = %5039, %5022
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #8
  br label %5057

5057:                                             ; preds = %5056
  br label %5058

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

5059:                                             ; No predecessors!
  br label %5060

5060:                                             ; preds = %5059
  br label %5061

5061:                                             ; preds = %5060, %5002
  br label %5062

5062:                                             ; preds = %5061
  br label %5063

5063:                                             ; preds = %5062
  call void @exit(i32 noundef 0) #10
  unreachable

5064:                                             ; preds = %4858
  br label %5065

5065:                                             ; preds = %5064
  %5066 = load i32, ptr @test_count, align 4, !tbaa !5
  %5067 = add nsw i32 %5066, 1
  store i32 %5067, ptr @test_count, align 4, !tbaa !5
  %5068 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 1
  %5069 = load i32, ptr %5068, align 4, !tbaa !5
  %5070 = call i32 @close(i32 noundef %5069)
  %5071 = icmp eq i32 %5070, -1
  br i1 %5071, label %5072, label %5125

5072:                                             ; preds = %5065
  br label %5073

5073:                                             ; preds = %5072
  br label %5074

5074:                                             ; preds = %5073
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #8
  %5075 = call ptr @__errno_location() #9
  %5076 = load i32, ptr %5075, align 4, !tbaa !5
  store i32 %5076, ptr %89, align 4, !tbaa !5
  %5077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5078 = call i32 @s2n_print_stacktrace(ptr noundef %5077)
  %5079 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5080 = trunc i8 %5079 to i1
  br i1 %5080, label %5081, label %5103

5081:                                             ; preds = %5074
  %5082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5083 = call i32 @fileno(ptr noundef %5082) #8
  %5084 = call i32 @isatty(i32 noundef %5083) #8
  %5085 = icmp ne i32 %5084, 0
  br i1 %5085, label %5086, label %5103

5086:                                             ; preds = %5081
  %5087 = load i32, ptr %89, align 4, !tbaa !5
  %5088 = call ptr @__errno_location() #9
  store i32 %5087, ptr %5088, align 4, !tbaa !5
  %5089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5090 = load i32, ptr @test_count, align 4, !tbaa !5
  %5091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5092 = load i32, ptr %5091, align 4, !tbaa !5
  %5093 = call ptr @s2n_strerror(i32 noundef %5092, ptr noundef @.str.4)
  %5094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5095 = load i32, ptr %5094, align 4, !tbaa !5
  %5096 = call ptr @s2n_strerror_debug(i32 noundef %5095, ptr noundef @.str.4)
  %5097 = call ptr @__errno_location() #9
  %5098 = load i32, ptr %5097, align 4, !tbaa !5
  %5099 = call ptr @strerror(i32 noundef %5098) #8
  %5100 = call ptr @__errno_location() #9
  %5101 = load i32, ptr %5100, align 4, !tbaa !5
  %5102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5089, ptr noundef @.str.2, i32 noundef %5090, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 469, ptr noundef %5093, ptr noundef %5096, ptr noundef %5099, i32 noundef %5101) #8
  br label %5120

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

5120:                                             ; preds = %5103, %5086
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #8
  br label %5121

5121:                                             ; preds = %5120
  br label %5122

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

5123:                                             ; No predecessors!
  br label %5124

5124:                                             ; preds = %5123
  br label %5125

5125:                                             ; preds = %5124, %5065
  br label %5126

5126:                                             ; preds = %5125
  br label %5127

5127:                                             ; preds = %5126
  br label %5128

5128:                                             ; preds = %5127
  %5129 = load i32, ptr @test_count, align 4, !tbaa !5
  %5130 = add nsw i32 %5129, 1
  store i32 %5130, ptr @test_count, align 4, !tbaa !5
  %5131 = load ptr, ptr %15, align 8, !tbaa !9
  %5132 = call i32 @s2n_connection_set_blinding(ptr noundef %5131, i32 noundef 1)
  %5133 = icmp eq i32 %5132, -1
  br i1 %5133, label %5134, label %5187

5134:                                             ; preds = %5128
  br label %5135

5135:                                             ; preds = %5134
  br label %5136

5136:                                             ; preds = %5135
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #8
  %5137 = call ptr @__errno_location() #9
  %5138 = load i32, ptr %5137, align 4, !tbaa !5
  store i32 %5138, ptr %90, align 4, !tbaa !5
  %5139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5140 = call i32 @s2n_print_stacktrace(ptr noundef %5139)
  %5141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5142 = trunc i8 %5141 to i1
  br i1 %5142, label %5143, label %5165

5143:                                             ; preds = %5136
  %5144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5145 = call i32 @fileno(ptr noundef %5144) #8
  %5146 = call i32 @isatty(i32 noundef %5145) #8
  %5147 = icmp ne i32 %5146, 0
  br i1 %5147, label %5148, label %5165

5148:                                             ; preds = %5143
  %5149 = load i32, ptr %90, align 4, !tbaa !5
  %5150 = call ptr @__errno_location() #9
  store i32 %5149, ptr %5150, align 4, !tbaa !5
  %5151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5152 = load i32, ptr @test_count, align 4, !tbaa !5
  %5153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5154 = load i32, ptr %5153, align 4, !tbaa !5
  %5155 = call ptr @s2n_strerror(i32 noundef %5154, ptr noundef @.str.4)
  %5156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5157 = load i32, ptr %5156, align 4, !tbaa !5
  %5158 = call ptr @s2n_strerror_debug(i32 noundef %5157, ptr noundef @.str.4)
  %5159 = call ptr @__errno_location() #9
  %5160 = load i32, ptr %5159, align 4, !tbaa !5
  %5161 = call ptr @strerror(i32 noundef %5160) #8
  %5162 = call ptr @__errno_location() #9
  %5163 = load i32, ptr %5162, align 4, !tbaa !5
  %5164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5151, ptr noundef @.str.2, i32 noundef %5152, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 473, ptr noundef %5155, ptr noundef %5158, ptr noundef %5161, i32 noundef %5163) #8
  br label %5182

5165:                                             ; preds = %5143, %5136
  %5166 = load i32, ptr %90, align 4, !tbaa !5
  %5167 = call ptr @__errno_location() #9
  store i32 %5166, ptr %5167, align 4, !tbaa !5
  %5168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5169 = load i32, ptr @test_count, align 4, !tbaa !5
  %5170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5171 = load i32, ptr %5170, align 4, !tbaa !5
  %5172 = call ptr @s2n_strerror(i32 noundef %5171, ptr noundef @.str.4)
  %5173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5174 = load i32, ptr %5173, align 4, !tbaa !5
  %5175 = call ptr @s2n_strerror_debug(i32 noundef %5174, ptr noundef @.str.4)
  %5176 = call ptr @__errno_location() #9
  %5177 = load i32, ptr %5176, align 4, !tbaa !5
  %5178 = call ptr @strerror(i32 noundef %5177) #8
  %5179 = call ptr @__errno_location() #9
  %5180 = load i32, ptr %5179, align 4, !tbaa !5
  %5181 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5168, ptr noundef @.str.5, i32 noundef %5169, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 473, ptr noundef %5172, ptr noundef %5175, ptr noundef %5178, i32 noundef %5180) #8
  br label %5182

5182:                                             ; preds = %5165, %5148
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #8
  br label %5183

5183:                                             ; preds = %5182
  br label %5184

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

5185:                                             ; No predecessors!
  br label %5186

5186:                                             ; preds = %5185
  br label %5187

5187:                                             ; preds = %5186, %5128
  br label %5188

5188:                                             ; preds = %5187
  br label %5189

5189:                                             ; preds = %5188
  br label %5190

5190:                                             ; preds = %5189
  br label %5191

5191:                                             ; preds = %5190
  %5192 = load i32, ptr @test_count, align 4, !tbaa !5
  %5193 = add nsw i32 %5192, 1
  store i32 %5193, ptr @test_count, align 4, !tbaa !5
  %5194 = load ptr, ptr %15, align 8, !tbaa !9
  %5195 = call i32 @s2n_negotiate(ptr noundef %5194, ptr noundef %6)
  %5196 = icmp eq i32 %5195, -1
  br i1 %5196, label %5250, label %5197

5197:                                             ; preds = %5191
  br label %5198

5198:                                             ; preds = %5197
  br label %5199

5199:                                             ; preds = %5198
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #8
  %5200 = call ptr @__errno_location() #9
  %5201 = load i32, ptr %5200, align 4, !tbaa !5
  store i32 %5201, ptr %91, align 4, !tbaa !5
  %5202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5203 = call i32 @s2n_print_stacktrace(ptr noundef %5202)
  %5204 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5205 = trunc i8 %5204 to i1
  br i1 %5205, label %5206, label %5228

5206:                                             ; preds = %5199
  %5207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5208 = call i32 @fileno(ptr noundef %5207) #8
  %5209 = call i32 @isatty(i32 noundef %5208) #8
  %5210 = icmp ne i32 %5209, 0
  br i1 %5210, label %5211, label %5228

5211:                                             ; preds = %5206
  %5212 = load i32, ptr %91, align 4, !tbaa !5
  %5213 = call ptr @__errno_location() #9
  store i32 %5212, ptr %5213, align 4, !tbaa !5
  %5214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5215 = load i32, ptr @test_count, align 4, !tbaa !5
  %5216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5217 = load i32, ptr %5216, align 4, !tbaa !5
  %5218 = call ptr @s2n_strerror(i32 noundef %5217, ptr noundef @.str.4)
  %5219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5220 = load i32, ptr %5219, align 4, !tbaa !5
  %5221 = call ptr @s2n_strerror_debug(i32 noundef %5220, ptr noundef @.str.4)
  %5222 = call ptr @__errno_location() #9
  %5223 = load i32, ptr %5222, align 4, !tbaa !5
  %5224 = call ptr @strerror(i32 noundef %5223) #8
  %5225 = call ptr @__errno_location() #9
  %5226 = load i32, ptr %5225, align 4, !tbaa !5
  %5227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5214, ptr noundef @.str.2, i32 noundef %5215, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 474, ptr noundef %5218, ptr noundef %5221, ptr noundef %5224, i32 noundef %5226) #8
  br label %5245

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

5245:                                             ; preds = %5228, %5211
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #8
  br label %5246

5246:                                             ; preds = %5245
  br label %5247

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

5248:                                             ; No predecessors!
  br label %5249

5249:                                             ; preds = %5248
  br label %5250

5250:                                             ; preds = %5249, %5191
  br label %5251

5251:                                             ; preds = %5250
  br label %5252

5252:                                             ; preds = %5251
  br label %5253

5253:                                             ; preds = %5252
  %5254 = load i32, ptr @test_count, align 4, !tbaa !5
  %5255 = add nsw i32 %5254, 1
  store i32 %5255, ptr @test_count, align 4, !tbaa !5
  %5256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5257 = load i32, ptr %5256, align 4, !tbaa !5
  %5258 = icmp eq i32 %5257, 0
  br i1 %5258, label %5259, label %5312

5259:                                             ; preds = %5253
  br label %5260

5260:                                             ; preds = %5259
  br label %5261

5261:                                             ; preds = %5260
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #8
  %5262 = call ptr @__errno_location() #9
  %5263 = load i32, ptr %5262, align 4, !tbaa !5
  store i32 %5263, ptr %92, align 4, !tbaa !5
  %5264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5265 = call i32 @s2n_print_stacktrace(ptr noundef %5264)
  %5266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5267 = trunc i8 %5266 to i1
  br i1 %5267, label %5268, label %5290

5268:                                             ; preds = %5261
  %5269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5270 = call i32 @fileno(ptr noundef %5269) #8
  %5271 = call i32 @isatty(i32 noundef %5270) #8
  %5272 = icmp ne i32 %5271, 0
  br i1 %5272, label %5273, label %5290

5273:                                             ; preds = %5268
  %5274 = load i32, ptr %92, align 4, !tbaa !5
  %5275 = call ptr @__errno_location() #9
  store i32 %5274, ptr %5275, align 4, !tbaa !5
  %5276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5277 = load i32, ptr @test_count, align 4, !tbaa !5
  %5278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5279 = load i32, ptr %5278, align 4, !tbaa !5
  %5280 = call ptr @s2n_strerror(i32 noundef %5279, ptr noundef @.str.4)
  %5281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5282 = load i32, ptr %5281, align 4, !tbaa !5
  %5283 = call ptr @s2n_strerror_debug(i32 noundef %5282, ptr noundef @.str.4)
  %5284 = call ptr @__errno_location() #9
  %5285 = load i32, ptr %5284, align 4, !tbaa !5
  %5286 = call ptr @strerror(i32 noundef %5285) #8
  %5287 = call ptr @__errno_location() #9
  %5288 = load i32, ptr %5287, align 4, !tbaa !5
  %5289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5276, ptr noundef @.str.2, i32 noundef %5277, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 474, ptr noundef %5280, ptr noundef %5283, ptr noundef %5286, i32 noundef %5288) #8
  br label %5307

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

5307:                                             ; preds = %5290, %5273
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #8
  br label %5308

5308:                                             ; preds = %5307
  br label %5309

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

5310:                                             ; No predecessors!
  br label %5311

5311:                                             ; preds = %5310
  br label %5312

5312:                                             ; preds = %5311, %5253
  br label %5313

5313:                                             ; preds = %5312
  br label %5314

5314:                                             ; preds = %5313
  br label %5315

5315:                                             ; preds = %5314
  %5316 = load i32, ptr @test_count, align 4, !tbaa !5
  %5317 = add nsw i32 %5316, 1
  store i32 %5317, ptr @test_count, align 4, !tbaa !5
  %5318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5319 = load i32, ptr %5318, align 4, !tbaa !5
  %5320 = call ptr @s2n_strerror_debug(i32 noundef %5319, ptr noundef @.str.4)
  %5321 = icmp eq ptr %5320, null
  br i1 %5321, label %5322, label %5375

5322:                                             ; preds = %5315
  br label %5323

5323:                                             ; preds = %5322
  br label %5324

5324:                                             ; preds = %5323
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #8
  %5325 = call ptr @__errno_location() #9
  %5326 = load i32, ptr %5325, align 4, !tbaa !5
  store i32 %5326, ptr %93, align 4, !tbaa !5
  %5327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5328 = call i32 @s2n_print_stacktrace(ptr noundef %5327)
  %5329 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5330 = trunc i8 %5329 to i1
  br i1 %5330, label %5331, label %5353

5331:                                             ; preds = %5324
  %5332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5333 = call i32 @fileno(ptr noundef %5332) #8
  %5334 = call i32 @isatty(i32 noundef %5333) #8
  %5335 = icmp ne i32 %5334, 0
  br i1 %5335, label %5336, label %5353

5336:                                             ; preds = %5331
  %5337 = load i32, ptr %93, align 4, !tbaa !5
  %5338 = call ptr @__errno_location() #9
  store i32 %5337, ptr %5338, align 4, !tbaa !5
  %5339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5340 = load i32, ptr @test_count, align 4, !tbaa !5
  %5341 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5342 = load i32, ptr %5341, align 4, !tbaa !5
  %5343 = call ptr @s2n_strerror(i32 noundef %5342, ptr noundef @.str.4)
  %5344 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5345 = load i32, ptr %5344, align 4, !tbaa !5
  %5346 = call ptr @s2n_strerror_debug(i32 noundef %5345, ptr noundef @.str.4)
  %5347 = call ptr @__errno_location() #9
  %5348 = load i32, ptr %5347, align 4, !tbaa !5
  %5349 = call ptr @strerror(i32 noundef %5348) #8
  %5350 = call ptr @__errno_location() #9
  %5351 = load i32, ptr %5350, align 4, !tbaa !5
  %5352 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5339, ptr noundef @.str.2, i32 noundef %5340, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 474, ptr noundef %5343, ptr noundef %5346, ptr noundef %5349, i32 noundef %5351) #8
  br label %5370

5353:                                             ; preds = %5331, %5324
  %5354 = load i32, ptr %93, align 4, !tbaa !5
  %5355 = call ptr @__errno_location() #9
  store i32 %5354, ptr %5355, align 4, !tbaa !5
  %5356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5357 = load i32, ptr @test_count, align 4, !tbaa !5
  %5358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5359 = load i32, ptr %5358, align 4, !tbaa !5
  %5360 = call ptr @s2n_strerror(i32 noundef %5359, ptr noundef @.str.4)
  %5361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5362 = load i32, ptr %5361, align 4, !tbaa !5
  %5363 = call ptr @s2n_strerror_debug(i32 noundef %5362, ptr noundef @.str.4)
  %5364 = call ptr @__errno_location() #9
  %5365 = load i32, ptr %5364, align 4, !tbaa !5
  %5366 = call ptr @strerror(i32 noundef %5365) #8
  %5367 = call ptr @__errno_location() #9
  %5368 = load i32, ptr %5367, align 4, !tbaa !5
  %5369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5356, ptr noundef @.str.5, i32 noundef %5357, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 474, ptr noundef %5360, ptr noundef %5363, ptr noundef %5366, i32 noundef %5368) #8
  br label %5370

5370:                                             ; preds = %5353, %5336
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #8
  br label %5371

5371:                                             ; preds = %5370
  br label %5372

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

5373:                                             ; No predecessors!
  br label %5374

5374:                                             ; preds = %5373
  br label %5375

5375:                                             ; preds = %5374, %5315
  br label %5376

5376:                                             ; preds = %5375
  br label %5377

5377:                                             ; preds = %5376
  br label %5378

5378:                                             ; preds = %5377
  %5379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5379, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5380 = call ptr @__errno_location() #9
  store i32 0, ptr %5380, align 4, !tbaa !5
  br label %5381

5381:                                             ; preds = %5378
  br label %5382

5382:                                             ; preds = %5381
  br label %5383

5383:                                             ; preds = %5382
  br label %5384

5384:                                             ; preds = %5383
  br label %5385

5385:                                             ; preds = %5384
  %5386 = load i32, ptr @test_count, align 4, !tbaa !5
  %5387 = add nsw i32 %5386, 1
  store i32 %5387, ptr @test_count, align 4, !tbaa !5
  %5388 = load ptr, ptr %15, align 8, !tbaa !9
  %5389 = getelementptr inbounds %struct.s2n_connection, ptr %5388, i32 0, i32 32
  %5390 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %5389, i32 0, i32 13
  %5391 = getelementptr inbounds [32 x i8], ptr %5390, i64 0, i64 0
  %5392 = call i32 @memcmp(ptr noundef %5391, ptr noundef @zero_to_thirty_one, i64 noundef 32) #11
  %5393 = icmp eq i32 %5392, 0
  br i1 %5393, label %5447, label %5394

5394:                                             ; preds = %5385
  br label %5395

5395:                                             ; preds = %5394
  br label %5396

5396:                                             ; preds = %5395
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #8
  %5397 = call ptr @__errno_location() #9
  %5398 = load i32, ptr %5397, align 4, !tbaa !5
  store i32 %5398, ptr %94, align 4, !tbaa !5
  %5399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5400 = call i32 @s2n_print_stacktrace(ptr noundef %5399)
  %5401 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5402 = trunc i8 %5401 to i1
  br i1 %5402, label %5403, label %5425

5403:                                             ; preds = %5396
  %5404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5405 = call i32 @fileno(ptr noundef %5404) #8
  %5406 = call i32 @isatty(i32 noundef %5405) #8
  %5407 = icmp ne i32 %5406, 0
  br i1 %5407, label %5408, label %5425

5408:                                             ; preds = %5403
  %5409 = load i32, ptr %94, align 4, !tbaa !5
  %5410 = call ptr @__errno_location() #9
  store i32 %5409, ptr %5410, align 4, !tbaa !5
  %5411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5412 = load i32, ptr @test_count, align 4, !tbaa !5
  %5413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5414 = load i32, ptr %5413, align 4, !tbaa !5
  %5415 = call ptr @s2n_strerror(i32 noundef %5414, ptr noundef @.str.4)
  %5416 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5417 = load i32, ptr %5416, align 4, !tbaa !5
  %5418 = call ptr @s2n_strerror_debug(i32 noundef %5417, ptr noundef @.str.4)
  %5419 = call ptr @__errno_location() #9
  %5420 = load i32, ptr %5419, align 4, !tbaa !5
  %5421 = call ptr @strerror(i32 noundef %5420) #8
  %5422 = call ptr @__errno_location() #9
  %5423 = load i32, ptr %5422, align 4, !tbaa !5
  %5424 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5411, ptr noundef @.str.2, i32 noundef %5412, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 477, ptr noundef %5415, ptr noundef %5418, ptr noundef %5421, i32 noundef %5423) #8
  br label %5442

5425:                                             ; preds = %5403, %5396
  %5426 = load i32, ptr %94, align 4, !tbaa !5
  %5427 = call ptr @__errno_location() #9
  store i32 %5426, ptr %5427, align 4, !tbaa !5
  %5428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5429 = load i32, ptr @test_count, align 4, !tbaa !5
  %5430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5431 = load i32, ptr %5430, align 4, !tbaa !5
  %5432 = call ptr @s2n_strerror(i32 noundef %5431, ptr noundef @.str.4)
  %5433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5434 = load i32, ptr %5433, align 4, !tbaa !5
  %5435 = call ptr @s2n_strerror_debug(i32 noundef %5434, ptr noundef @.str.4)
  %5436 = call ptr @__errno_location() #9
  %5437 = load i32, ptr %5436, align 4, !tbaa !5
  %5438 = call ptr @strerror(i32 noundef %5437) #8
  %5439 = call ptr @__errno_location() #9
  %5440 = load i32, ptr %5439, align 4, !tbaa !5
  %5441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5428, ptr noundef @.str.5, i32 noundef %5429, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 477, ptr noundef %5432, ptr noundef %5435, ptr noundef %5438, i32 noundef %5440) #8
  br label %5442

5442:                                             ; preds = %5425, %5408
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #8
  br label %5443

5443:                                             ; preds = %5442
  br label %5444

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

5445:                                             ; No predecessors!
  br label %5446

5446:                                             ; preds = %5445
  br label %5447

5447:                                             ; preds = %5446, %5385
  br label %5448

5448:                                             ; preds = %5447
  br label %5449

5449:                                             ; preds = %5448
  br label %5450

5450:                                             ; preds = %5449
  %5451 = load i32, ptr @test_count, align 4, !tbaa !5
  %5452 = add nsw i32 %5451, 1
  store i32 %5452, ptr @test_count, align 4, !tbaa !5
  %5453 = load ptr, ptr %15, align 8, !tbaa !9
  %5454 = call i32 @s2n_conn_get_current_message_type(ptr noundef %5453)
  %5455 = icmp eq i32 %5454, 2
  br i1 %5455, label %5509, label %5456

5456:                                             ; preds = %5450
  br label %5457

5457:                                             ; preds = %5456
  br label %5458

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

5465:                                             ; preds = %5458
  %5466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5467 = call i32 @fileno(ptr noundef %5466) #8
  %5468 = call i32 @isatty(i32 noundef %5467) #8
  %5469 = icmp ne i32 %5468, 0
  br i1 %5469, label %5470, label %5487

5470:                                             ; preds = %5465
  %5471 = load i32, ptr %95, align 4, !tbaa !5
  %5472 = call ptr @__errno_location() #9
  store i32 %5471, ptr %5472, align 4, !tbaa !5
  %5473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5474 = load i32, ptr @test_count, align 4, !tbaa !5
  %5475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5476 = load i32, ptr %5475, align 4, !tbaa !5
  %5477 = call ptr @s2n_strerror(i32 noundef %5476, ptr noundef @.str.4)
  %5478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5479 = load i32, ptr %5478, align 4, !tbaa !5
  %5480 = call ptr @s2n_strerror_debug(i32 noundef %5479, ptr noundef @.str.4)
  %5481 = call ptr @__errno_location() #9
  %5482 = load i32, ptr %5481, align 4, !tbaa !5
  %5483 = call ptr @strerror(i32 noundef %5482) #8
  %5484 = call ptr @__errno_location() #9
  %5485 = load i32, ptr %5484, align 4, !tbaa !5
  %5486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5473, ptr noundef @.str.2, i32 noundef %5474, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 480, ptr noundef %5477, ptr noundef %5480, ptr noundef %5483, i32 noundef %5485) #8
  br label %5504

5487:                                             ; preds = %5465, %5458
  %5488 = load i32, ptr %95, align 4, !tbaa !5
  %5489 = call ptr @__errno_location() #9
  store i32 %5488, ptr %5489, align 4, !tbaa !5
  %5490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5491 = load i32, ptr @test_count, align 4, !tbaa !5
  %5492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5493 = load i32, ptr %5492, align 4, !tbaa !5
  %5494 = call ptr @s2n_strerror(i32 noundef %5493, ptr noundef @.str.4)
  %5495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5496 = load i32, ptr %5495, align 4, !tbaa !5
  %5497 = call ptr @s2n_strerror_debug(i32 noundef %5496, ptr noundef @.str.4)
  %5498 = call ptr @__errno_location() #9
  %5499 = load i32, ptr %5498, align 4, !tbaa !5
  %5500 = call ptr @strerror(i32 noundef %5499) #8
  %5501 = call ptr @__errno_location() #9
  %5502 = load i32, ptr %5501, align 4, !tbaa !5
  %5503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5490, ptr noundef @.str.5, i32 noundef %5491, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 480, ptr noundef %5494, ptr noundef %5497, ptr noundef %5500, i32 noundef %5502) #8
  br label %5504

5504:                                             ; preds = %5487, %5470
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #8
  br label %5505

5505:                                             ; preds = %5504
  br label %5506

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

5507:                                             ; No predecessors!
  br label %5508

5508:                                             ; preds = %5507
  br label %5509

5509:                                             ; preds = %5508, %5450
  br label %5510

5510:                                             ; preds = %5509
  br label %5511

5511:                                             ; preds = %5510
  br label %5512

5512:                                             ; preds = %5511
  %5513 = load i32, ptr @test_count, align 4, !tbaa !5
  %5514 = add nsw i32 %5513, 1
  store i32 %5514, ptr @test_count, align 4, !tbaa !5
  %5515 = load i32, ptr %8, align 4, !tbaa !5
  %5516 = call i32 @waitpid(i32 noundef %5515, ptr noundef %7, i32 noundef 0)
  %5517 = load i32, ptr %8, align 4, !tbaa !5
  %5518 = icmp eq i32 %5516, %5517
  br i1 %5518, label %5572, label %5519

5519:                                             ; preds = %5512
  br label %5520

5520:                                             ; preds = %5519
  br label %5521

5521:                                             ; preds = %5520
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #8
  %5522 = call ptr @__errno_location() #9
  %5523 = load i32, ptr %5522, align 4, !tbaa !5
  store i32 %5523, ptr %96, align 4, !tbaa !5
  %5524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5525 = call i32 @s2n_print_stacktrace(ptr noundef %5524)
  %5526 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5527 = trunc i8 %5526 to i1
  br i1 %5527, label %5528, label %5550

5528:                                             ; preds = %5521
  %5529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5530 = call i32 @fileno(ptr noundef %5529) #8
  %5531 = call i32 @isatty(i32 noundef %5530) #8
  %5532 = icmp ne i32 %5531, 0
  br i1 %5532, label %5533, label %5550

5533:                                             ; preds = %5528
  %5534 = load i32, ptr %96, align 4, !tbaa !5
  %5535 = call ptr @__errno_location() #9
  store i32 %5534, ptr %5535, align 4, !tbaa !5
  %5536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5537 = load i32, ptr @test_count, align 4, !tbaa !5
  %5538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5539 = load i32, ptr %5538, align 4, !tbaa !5
  %5540 = call ptr @s2n_strerror(i32 noundef %5539, ptr noundef @.str.4)
  %5541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5542 = load i32, ptr %5541, align 4, !tbaa !5
  %5543 = call ptr @s2n_strerror_debug(i32 noundef %5542, ptr noundef @.str.4)
  %5544 = call ptr @__errno_location() #9
  %5545 = load i32, ptr %5544, align 4, !tbaa !5
  %5546 = call ptr @strerror(i32 noundef %5545) #8
  %5547 = call ptr @__errno_location() #9
  %5548 = load i32, ptr %5547, align 4, !tbaa !5
  %5549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5536, ptr noundef @.str.2, i32 noundef %5537, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 483, ptr noundef %5540, ptr noundef %5543, ptr noundef %5546, i32 noundef %5548) #8
  br label %5567

5550:                                             ; preds = %5528, %5521
  %5551 = load i32, ptr %96, align 4, !tbaa !5
  %5552 = call ptr @__errno_location() #9
  store i32 %5551, ptr %5552, align 4, !tbaa !5
  %5553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5554 = load i32, ptr @test_count, align 4, !tbaa !5
  %5555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5556 = load i32, ptr %5555, align 4, !tbaa !5
  %5557 = call ptr @s2n_strerror(i32 noundef %5556, ptr noundef @.str.4)
  %5558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5559 = load i32, ptr %5558, align 4, !tbaa !5
  %5560 = call ptr @s2n_strerror_debug(i32 noundef %5559, ptr noundef @.str.4)
  %5561 = call ptr @__errno_location() #9
  %5562 = load i32, ptr %5561, align 4, !tbaa !5
  %5563 = call ptr @strerror(i32 noundef %5562) #8
  %5564 = call ptr @__errno_location() #9
  %5565 = load i32, ptr %5564, align 4, !tbaa !5
  %5566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5553, ptr noundef @.str.5, i32 noundef %5554, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 483, ptr noundef %5557, ptr noundef %5560, ptr noundef %5563, i32 noundef %5565) #8
  br label %5567

5567:                                             ; preds = %5550, %5533
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #8
  br label %5568

5568:                                             ; preds = %5567
  br label %5569

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

5570:                                             ; No predecessors!
  br label %5571

5571:                                             ; preds = %5570
  br label %5572

5572:                                             ; preds = %5571, %5512
  br label %5573

5573:                                             ; preds = %5572
  br label %5574

5574:                                             ; preds = %5573
  br label %5575

5575:                                             ; preds = %5574
  %5576 = load i32, ptr @test_count, align 4, !tbaa !5
  %5577 = add nsw i32 %5576, 1
  store i32 %5577, ptr @test_count, align 4, !tbaa !5
  %5578 = load i32, ptr %7, align 4, !tbaa !5
  %5579 = icmp eq i32 %5578, 0
  br i1 %5579, label %5633, label %5580

5580:                                             ; preds = %5575
  br label %5581

5581:                                             ; preds = %5580
  br label %5582

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

5589:                                             ; preds = %5582
  %5590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5591 = call i32 @fileno(ptr noundef %5590) #8
  %5592 = call i32 @isatty(i32 noundef %5591) #8
  %5593 = icmp ne i32 %5592, 0
  br i1 %5593, label %5594, label %5611

5594:                                             ; preds = %5589
  %5595 = load i32, ptr %97, align 4, !tbaa !5
  %5596 = call ptr @__errno_location() #9
  store i32 %5595, ptr %5596, align 4, !tbaa !5
  %5597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5598 = load i32, ptr @test_count, align 4, !tbaa !5
  %5599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5600 = load i32, ptr %5599, align 4, !tbaa !5
  %5601 = call ptr @s2n_strerror(i32 noundef %5600, ptr noundef @.str.4)
  %5602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5603 = load i32, ptr %5602, align 4, !tbaa !5
  %5604 = call ptr @s2n_strerror_debug(i32 noundef %5603, ptr noundef @.str.4)
  %5605 = call ptr @__errno_location() #9
  %5606 = load i32, ptr %5605, align 4, !tbaa !5
  %5607 = call ptr @strerror(i32 noundef %5606) #8
  %5608 = call ptr @__errno_location() #9
  %5609 = load i32, ptr %5608, align 4, !tbaa !5
  %5610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5597, ptr noundef @.str.2, i32 noundef %5598, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 484, ptr noundef %5601, ptr noundef %5604, ptr noundef %5607, i32 noundef %5609) #8
  br label %5628

5611:                                             ; preds = %5589, %5582
  %5612 = load i32, ptr %97, align 4, !tbaa !5
  %5613 = call ptr @__errno_location() #9
  store i32 %5612, ptr %5613, align 4, !tbaa !5
  %5614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5615 = load i32, ptr @test_count, align 4, !tbaa !5
  %5616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5617 = load i32, ptr %5616, align 4, !tbaa !5
  %5618 = call ptr @s2n_strerror(i32 noundef %5617, ptr noundef @.str.4)
  %5619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5620 = load i32, ptr %5619, align 4, !tbaa !5
  %5621 = call ptr @s2n_strerror_debug(i32 noundef %5620, ptr noundef @.str.4)
  %5622 = call ptr @__errno_location() #9
  %5623 = load i32, ptr %5622, align 4, !tbaa !5
  %5624 = call ptr @strerror(i32 noundef %5623) #8
  %5625 = call ptr @__errno_location() #9
  %5626 = load i32, ptr %5625, align 4, !tbaa !5
  %5627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5614, ptr noundef @.str.5, i32 noundef %5615, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 484, ptr noundef %5618, ptr noundef %5621, ptr noundef %5624, i32 noundef %5626) #8
  br label %5628

5628:                                             ; preds = %5611, %5594
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #8
  br label %5629

5629:                                             ; preds = %5628
  br label %5630

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

5631:                                             ; No predecessors!
  br label %5632

5632:                                             ; preds = %5631
  br label %5633

5633:                                             ; preds = %5632, %5575
  br label %5634

5634:                                             ; preds = %5633
  br label %5635

5635:                                             ; preds = %5634
  br label %5636

5636:                                             ; preds = %5635
  %5637 = load i32, ptr @test_count, align 4, !tbaa !5
  %5638 = add nsw i32 %5637, 1
  store i32 %5638, ptr @test_count, align 4, !tbaa !5
  %5639 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %5640 = load i32, ptr %5639, align 4, !tbaa !5
  %5641 = call i32 @close(i32 noundef %5640)
  %5642 = icmp eq i32 %5641, -1
  br i1 %5642, label %5643, label %5696

5643:                                             ; preds = %5636
  br label %5644

5644:                                             ; preds = %5643
  br label %5645

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

5652:                                             ; preds = %5645
  %5653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5654 = call i32 @fileno(ptr noundef %5653) #8
  %5655 = call i32 @isatty(i32 noundef %5654) #8
  %5656 = icmp ne i32 %5655, 0
  br i1 %5656, label %5657, label %5674

5657:                                             ; preds = %5652
  %5658 = load i32, ptr %98, align 4, !tbaa !5
  %5659 = call ptr @__errno_location() #9
  store i32 %5658, ptr %5659, align 4, !tbaa !5
  %5660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5661 = load i32, ptr @test_count, align 4, !tbaa !5
  %5662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5663 = load i32, ptr %5662, align 4, !tbaa !5
  %5664 = call ptr @s2n_strerror(i32 noundef %5663, ptr noundef @.str.4)
  %5665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5666 = load i32, ptr %5665, align 4, !tbaa !5
  %5667 = call ptr @s2n_strerror_debug(i32 noundef %5666, ptr noundef @.str.4)
  %5668 = call ptr @__errno_location() #9
  %5669 = load i32, ptr %5668, align 4, !tbaa !5
  %5670 = call ptr @strerror(i32 noundef %5669) #8
  %5671 = call ptr @__errno_location() #9
  %5672 = load i32, ptr %5671, align 4, !tbaa !5
  %5673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5660, ptr noundef @.str.2, i32 noundef %5661, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 485, ptr noundef %5664, ptr noundef %5667, ptr noundef %5670, i32 noundef %5672) #8
  br label %5691

5674:                                             ; preds = %5652, %5645
  %5675 = load i32, ptr %98, align 4, !tbaa !5
  %5676 = call ptr @__errno_location() #9
  store i32 %5675, ptr %5676, align 4, !tbaa !5
  %5677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5678 = load i32, ptr @test_count, align 4, !tbaa !5
  %5679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5680 = load i32, ptr %5679, align 4, !tbaa !5
  %5681 = call ptr @s2n_strerror(i32 noundef %5680, ptr noundef @.str.4)
  %5682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5683 = load i32, ptr %5682, align 4, !tbaa !5
  %5684 = call ptr @s2n_strerror_debug(i32 noundef %5683, ptr noundef @.str.4)
  %5685 = call ptr @__errno_location() #9
  %5686 = load i32, ptr %5685, align 4, !tbaa !5
  %5687 = call ptr @strerror(i32 noundef %5686) #8
  %5688 = call ptr @__errno_location() #9
  %5689 = load i32, ptr %5688, align 4, !tbaa !5
  %5690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5677, ptr noundef @.str.5, i32 noundef %5678, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 485, ptr noundef %5681, ptr noundef %5684, ptr noundef %5687, i32 noundef %5689) #8
  br label %5691

5691:                                             ; preds = %5674, %5657
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #8
  br label %5692

5692:                                             ; preds = %5691
  br label %5693

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

5694:                                             ; No predecessors!
  br label %5695

5695:                                             ; preds = %5694
  br label %5696

5696:                                             ; preds = %5695, %5636
  br label %5697

5697:                                             ; preds = %5696
  br label %5698

5698:                                             ; preds = %5697
  br label %5699

5699:                                             ; preds = %5698
  %5700 = load i32, ptr @test_count, align 4, !tbaa !5
  %5701 = add nsw i32 %5700, 1
  store i32 %5701, ptr @test_count, align 4, !tbaa !5
  %5702 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %5703 = call i32 @pipe(ptr noundef %5702) #8
  %5704 = icmp eq i32 %5703, -1
  br i1 %5704, label %5705, label %5758

5705:                                             ; preds = %5699
  br label %5706

5706:                                             ; preds = %5705
  br label %5707

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

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

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

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

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

5754:                                             ; preds = %5753
  br label %5755

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

5756:                                             ; No predecessors!
  br label %5757

5757:                                             ; preds = %5756
  br label %5758

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

5759:                                             ; preds = %5758
  br label %5760

5760:                                             ; preds = %5759
  br label %5761

5761:                                             ; preds = %5760
  %5762 = load i32, ptr @test_count, align 4, !tbaa !5
  %5763 = add nsw i32 %5762, 1
  store i32 %5763, ptr @test_count, align 4, !tbaa !5
  %5764 = load ptr, ptr %15, align 8, !tbaa !9
  %5765 = call i32 @s2n_connection_wipe(ptr noundef %5764)
  %5766 = icmp eq i32 %5765, -1
  br i1 %5766, label %5767, label %5820

5767:                                             ; preds = %5761
  br label %5768

5768:                                             ; preds = %5767
  br label %5769

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

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

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

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

5815:                                             ; preds = %5798, %5781
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #8
  br label %5816

5816:                                             ; preds = %5815
  br label %5817

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

5818:                                             ; No predecessors!
  br label %5819

5819:                                             ; preds = %5818
  br label %5820

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

5821:                                             ; preds = %5820
  br label %5822

5822:                                             ; preds = %5821
  br label %5823

5823:                                             ; preds = %5822
  %5824 = load i32, ptr @test_count, align 4, !tbaa !5
  %5825 = add nsw i32 %5824, 1
  store i32 %5825, ptr @test_count, align 4, !tbaa !5
  %5826 = load ptr, ptr %15, align 8, !tbaa !9
  %5827 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %5828 = load i32, ptr %5827, align 4, !tbaa !5
  %5829 = call i32 @s2n_connection_set_read_fd(ptr noundef %5826, i32 noundef %5828)
  %5830 = icmp eq i32 %5829, -1
  br i1 %5830, label %5831, label %5884

5831:                                             ; preds = %5823
  br label %5832

5832:                                             ; preds = %5831
  br label %5833

5833:                                             ; preds = %5832
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #8
  %5834 = call ptr @__errno_location() #9
  %5835 = load i32, ptr %5834, align 4, !tbaa !5
  store i32 %5835, ptr %101, align 4, !tbaa !5
  %5836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5837 = call i32 @s2n_print_stacktrace(ptr noundef %5836)
  %5838 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5839 = trunc i8 %5838 to i1
  br i1 %5839, label %5840, label %5862

5840:                                             ; preds = %5833
  %5841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5842 = call i32 @fileno(ptr noundef %5841) #8
  %5843 = call i32 @isatty(i32 noundef %5842) #8
  %5844 = icmp ne i32 %5843, 0
  br i1 %5844, label %5845, label %5862

5845:                                             ; preds = %5840
  %5846 = load i32, ptr %101, align 4, !tbaa !5
  %5847 = call ptr @__errno_location() #9
  store i32 %5846, ptr %5847, align 4, !tbaa !5
  %5848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5849 = load i32, ptr @test_count, align 4, !tbaa !5
  %5850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5851 = load i32, ptr %5850, align 4, !tbaa !5
  %5852 = call ptr @s2n_strerror(i32 noundef %5851, ptr noundef @.str.4)
  %5853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5854 = load i32, ptr %5853, align 4, !tbaa !5
  %5855 = call ptr @s2n_strerror_debug(i32 noundef %5854, ptr noundef @.str.4)
  %5856 = call ptr @__errno_location() #9
  %5857 = load i32, ptr %5856, align 4, !tbaa !5
  %5858 = call ptr @strerror(i32 noundef %5857) #8
  %5859 = call ptr @__errno_location() #9
  %5860 = load i32, ptr %5859, align 4, !tbaa !5
  %5861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5848, ptr noundef @.str.2, i32 noundef %5849, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 495, ptr noundef %5852, ptr noundef %5855, ptr noundef %5858, i32 noundef %5860) #8
  br label %5879

5862:                                             ; preds = %5840, %5833
  %5863 = load i32, ptr %101, align 4, !tbaa !5
  %5864 = call ptr @__errno_location() #9
  store i32 %5863, ptr %5864, align 4, !tbaa !5
  %5865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5866 = load i32, ptr @test_count, align 4, !tbaa !5
  %5867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5868 = load i32, ptr %5867, align 4, !tbaa !5
  %5869 = call ptr @s2n_strerror(i32 noundef %5868, ptr noundef @.str.4)
  %5870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5871 = load i32, ptr %5870, align 4, !tbaa !5
  %5872 = call ptr @s2n_strerror_debug(i32 noundef %5871, ptr noundef @.str.4)
  %5873 = call ptr @__errno_location() #9
  %5874 = load i32, ptr %5873, align 4, !tbaa !5
  %5875 = call ptr @strerror(i32 noundef %5874) #8
  %5876 = call ptr @__errno_location() #9
  %5877 = load i32, ptr %5876, align 4, !tbaa !5
  %5878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5865, ptr noundef @.str.5, i32 noundef %5866, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 495, ptr noundef %5869, ptr noundef %5872, ptr noundef %5875, i32 noundef %5877) #8
  br label %5879

5879:                                             ; preds = %5862, %5845
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #8
  br label %5880

5880:                                             ; preds = %5879
  br label %5881

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

5882:                                             ; No predecessors!
  br label %5883

5883:                                             ; preds = %5882
  br label %5884

5884:                                             ; preds = %5883, %5823
  br label %5885

5885:                                             ; preds = %5884
  br label %5886

5886:                                             ; preds = %5885
  %5887 = load ptr, ptr %15, align 8, !tbaa !9
  %5888 = getelementptr inbounds %struct.s2n_connection, ptr %5887, i32 0, i32 52
  %5889 = getelementptr inbounds %struct.s2n_handshake, ptr %5888, i32 0, i32 6
  store i32 3, ptr %5889, align 4, !tbaa !15
  %5890 = load ptr, ptr %15, align 8, !tbaa !9
  %5891 = getelementptr inbounds %struct.s2n_connection, ptr %5890, i32 0, i32 52
  %5892 = getelementptr inbounds %struct.s2n_handshake, ptr %5891, i32 0, i32 7
  store i32 1, ptr %5892, align 8, !tbaa !42
  %5893 = load ptr, ptr %15, align 8, !tbaa !9
  %5894 = getelementptr inbounds %struct.s2n_connection, ptr %5893, i32 0, i32 22
  store i8 33, ptr %5894, align 1, !tbaa !43
  %5895 = load ptr, ptr %15, align 8, !tbaa !9
  %5896 = getelementptr inbounds %struct.s2n_connection, ptr %5895, i32 0, i32 21
  store i8 33, ptr %5896, align 2, !tbaa !44
  %5897 = load ptr, ptr %15, align 8, !tbaa !9
  %5898 = getelementptr inbounds %struct.s2n_connection, ptr %5897, i32 0, i32 23
  store i8 33, ptr %5898, align 4, !tbaa !45
  %5899 = call i32 @fork() #8
  store i32 %5899, ptr %8, align 4, !tbaa !5
  %5900 = load i32, ptr %8, align 4, !tbaa !5
  %5901 = icmp eq i32 %5900, 0
  br i1 %5901, label %5902, label %6092

5902:                                             ; preds = %5886
  br label %5903

5903:                                             ; preds = %5902
  %5904 = load i32, ptr @test_count, align 4, !tbaa !5
  %5905 = add nsw i32 %5904, 1
  store i32 %5905, ptr @test_count, align 4, !tbaa !5
  %5906 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %5907 = load i32, ptr %5906, align 4, !tbaa !5
  %5908 = call i32 @close(i32 noundef %5907)
  %5909 = icmp eq i32 %5908, -1
  br i1 %5909, label %5910, label %5963

5910:                                             ; preds = %5903
  br label %5911

5911:                                             ; preds = %5910
  br label %5912

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

5919:                                             ; preds = %5912
  %5920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5921 = call i32 @fileno(ptr noundef %5920) #8
  %5922 = call i32 @isatty(i32 noundef %5921) #8
  %5923 = icmp ne i32 %5922, 0
  br i1 %5923, label %5924, label %5941

5924:                                             ; preds = %5919
  %5925 = load i32, ptr %102, align 4, !tbaa !5
  %5926 = call ptr @__errno_location() #9
  store i32 %5925, ptr %5926, align 4, !tbaa !5
  %5927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5928 = load i32, ptr @test_count, align 4, !tbaa !5
  %5929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5930 = load i32, ptr %5929, align 4, !tbaa !5
  %5931 = call ptr @s2n_strerror(i32 noundef %5930, ptr noundef @.str.4)
  %5932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5933 = load i32, ptr %5932, align 4, !tbaa !5
  %5934 = call ptr @s2n_strerror_debug(i32 noundef %5933, ptr noundef @.str.4)
  %5935 = call ptr @__errno_location() #9
  %5936 = load i32, ptr %5935, align 4, !tbaa !5
  %5937 = call ptr @strerror(i32 noundef %5936) #8
  %5938 = call ptr @__errno_location() #9
  %5939 = load i32, ptr %5938, align 4, !tbaa !5
  %5940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5927, ptr noundef @.str.2, i32 noundef %5928, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 508, ptr noundef %5931, ptr noundef %5934, ptr noundef %5937, i32 noundef %5939) #8
  br label %5958

5941:                                             ; preds = %5919, %5912
  %5942 = load i32, ptr %102, align 4, !tbaa !5
  %5943 = call ptr @__errno_location() #9
  store i32 %5942, ptr %5943, align 4, !tbaa !5
  %5944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5945 = load i32, ptr @test_count, align 4, !tbaa !5
  %5946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5947 = load i32, ptr %5946, align 4, !tbaa !5
  %5948 = call ptr @s2n_strerror(i32 noundef %5947, ptr noundef @.str.4)
  %5949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5950 = load i32, ptr %5949, align 4, !tbaa !5
  %5951 = call ptr @s2n_strerror_debug(i32 noundef %5950, ptr noundef @.str.4)
  %5952 = call ptr @__errno_location() #9
  %5953 = load i32, ptr %5952, align 4, !tbaa !5
  %5954 = call ptr @strerror(i32 noundef %5953) #8
  %5955 = call ptr @__errno_location() #9
  %5956 = load i32, ptr %5955, align 4, !tbaa !5
  %5957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5944, ptr noundef @.str.5, i32 noundef %5945, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 508, ptr noundef %5948, ptr noundef %5951, ptr noundef %5954, i32 noundef %5956) #8
  br label %5958

5958:                                             ; preds = %5941, %5924
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #8
  br label %5959

5959:                                             ; preds = %5958
  br label %5960

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

5961:                                             ; No predecessors!
  br label %5962

5962:                                             ; preds = %5961
  br label %5963

5963:                                             ; preds = %5962, %5903
  br label %5964

5964:                                             ; preds = %5963
  br label %5965

5965:                                             ; preds = %5964
  %5966 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 1
  %5967 = load i32, ptr %5966, align 4, !tbaa !5
  call void @send_messages(i32 noundef %5967, ptr noundef @server_hello_message, i32 noundef 74, ptr noundef @certificate_list_too_large, i32 noundef 10)
  br label %5968

5968:                                             ; preds = %5965
  %5969 = load i32, ptr @test_count, align 4, !tbaa !5
  %5970 = add nsw i32 %5969, 1
  store i32 %5970, ptr @test_count, align 4, !tbaa !5
  %5971 = load ptr, ptr %15, align 8, !tbaa !9
  %5972 = call i32 @s2n_connection_free(ptr noundef %5971)
  %5973 = icmp eq i32 %5972, -1
  br i1 %5973, label %5974, label %6027

5974:                                             ; preds = %5968
  br label %5975

5975:                                             ; preds = %5974
  br label %5976

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

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

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

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

6022:                                             ; preds = %6005, %5988
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #8
  br label %6023

6023:                                             ; preds = %6022
  br label %6024

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

6025:                                             ; No predecessors!
  br label %6026

6026:                                             ; preds = %6025
  br label %6027

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

6028:                                             ; preds = %6027
  br label %6029

6029:                                             ; preds = %6028
  br label %6030

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

6036:                                             ; preds = %6030
  br label %6037

6037:                                             ; preds = %6036
  br label %6038

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

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

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

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

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

6085:                                             ; preds = %6084
  br label %6086

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

6087:                                             ; No predecessors!
  br label %6088

6088:                                             ; preds = %6087
  br label %6089

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

6090:                                             ; preds = %6089
  br label %6091

6091:                                             ; preds = %6090
  call void @exit(i32 noundef 0) #10
  unreachable

6092:                                             ; preds = %5886
  br label %6093

6093:                                             ; preds = %6092
  %6094 = load i32, ptr @test_count, align 4, !tbaa !5
  %6095 = add nsw i32 %6094, 1
  store i32 %6095, ptr @test_count, align 4, !tbaa !5
  %6096 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 1
  %6097 = load i32, ptr %6096, align 4, !tbaa !5
  %6098 = call i32 @close(i32 noundef %6097)
  %6099 = icmp eq i32 %6098, -1
  br i1 %6099, label %6100, label %6153

6100:                                             ; preds = %6093
  br label %6101

6101:                                             ; preds = %6100
  br label %6102

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

6109:                                             ; preds = %6102
  %6110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6111 = call i32 @fileno(ptr noundef %6110) #8
  %6112 = call i32 @isatty(i32 noundef %6111) #8
  %6113 = icmp ne i32 %6112, 0
  br i1 %6113, label %6114, label %6131

6114:                                             ; preds = %6109
  %6115 = load i32, ptr %105, align 4, !tbaa !5
  %6116 = call ptr @__errno_location() #9
  store i32 %6115, ptr %6116, align 4, !tbaa !5
  %6117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6118 = load i32, ptr @test_count, align 4, !tbaa !5
  %6119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6120 = load i32, ptr %6119, align 4, !tbaa !5
  %6121 = call ptr @s2n_strerror(i32 noundef %6120, ptr noundef @.str.4)
  %6122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6123 = load i32, ptr %6122, align 4, !tbaa !5
  %6124 = call ptr @s2n_strerror_debug(i32 noundef %6123, ptr noundef @.str.4)
  %6125 = call ptr @__errno_location() #9
  %6126 = load i32, ptr %6125, align 4, !tbaa !5
  %6127 = call ptr @strerror(i32 noundef %6126) #8
  %6128 = call ptr @__errno_location() #9
  %6129 = load i32, ptr %6128, align 4, !tbaa !5
  %6130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6117, ptr noundef @.str.2, i32 noundef %6118, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 518, ptr noundef %6121, ptr noundef %6124, ptr noundef %6127, i32 noundef %6129) #8
  br label %6148

6131:                                             ; preds = %6109, %6102
  %6132 = load i32, ptr %105, align 4, !tbaa !5
  %6133 = call ptr @__errno_location() #9
  store i32 %6132, ptr %6133, align 4, !tbaa !5
  %6134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6135 = load i32, ptr @test_count, align 4, !tbaa !5
  %6136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6137 = load i32, ptr %6136, align 4, !tbaa !5
  %6138 = call ptr @s2n_strerror(i32 noundef %6137, ptr noundef @.str.4)
  %6139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6140 = load i32, ptr %6139, align 4, !tbaa !5
  %6141 = call ptr @s2n_strerror_debug(i32 noundef %6140, ptr noundef @.str.4)
  %6142 = call ptr @__errno_location() #9
  %6143 = load i32, ptr %6142, align 4, !tbaa !5
  %6144 = call ptr @strerror(i32 noundef %6143) #8
  %6145 = call ptr @__errno_location() #9
  %6146 = load i32, ptr %6145, align 4, !tbaa !5
  %6147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6134, ptr noundef @.str.5, i32 noundef %6135, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 518, ptr noundef %6138, ptr noundef %6141, ptr noundef %6144, i32 noundef %6146) #8
  br label %6148

6148:                                             ; preds = %6131, %6114
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #8
  br label %6149

6149:                                             ; preds = %6148
  br label %6150

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

6151:                                             ; No predecessors!
  br label %6152

6152:                                             ; preds = %6151
  br label %6153

6153:                                             ; preds = %6152, %6093
  br label %6154

6154:                                             ; preds = %6153
  br label %6155

6155:                                             ; preds = %6154
  br label %6156

6156:                                             ; preds = %6155
  %6157 = load i32, ptr @test_count, align 4, !tbaa !5
  %6158 = add nsw i32 %6157, 1
  store i32 %6158, ptr @test_count, align 4, !tbaa !5
  %6159 = load ptr, ptr %15, align 8, !tbaa !9
  %6160 = call i32 @s2n_connection_set_blinding(ptr noundef %6159, i32 noundef 1)
  %6161 = icmp eq i32 %6160, -1
  br i1 %6161, label %6162, label %6215

6162:                                             ; preds = %6156
  br label %6163

6163:                                             ; preds = %6162
  br label %6164

6164:                                             ; preds = %6163
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #8
  %6165 = call ptr @__errno_location() #9
  %6166 = load i32, ptr %6165, align 4, !tbaa !5
  store i32 %6166, ptr %106, align 4, !tbaa !5
  %6167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6168 = call i32 @s2n_print_stacktrace(ptr noundef %6167)
  %6169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6170 = trunc i8 %6169 to i1
  br i1 %6170, label %6171, label %6193

6171:                                             ; preds = %6164
  %6172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6173 = call i32 @fileno(ptr noundef %6172) #8
  %6174 = call i32 @isatty(i32 noundef %6173) #8
  %6175 = icmp ne i32 %6174, 0
  br i1 %6175, label %6176, label %6193

6176:                                             ; preds = %6171
  %6177 = load i32, ptr %106, align 4, !tbaa !5
  %6178 = call ptr @__errno_location() #9
  store i32 %6177, ptr %6178, align 4, !tbaa !5
  %6179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6180 = load i32, ptr @test_count, align 4, !tbaa !5
  %6181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6182 = load i32, ptr %6181, align 4, !tbaa !5
  %6183 = call ptr @s2n_strerror(i32 noundef %6182, ptr noundef @.str.4)
  %6184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6185 = load i32, ptr %6184, align 4, !tbaa !5
  %6186 = call ptr @s2n_strerror_debug(i32 noundef %6185, ptr noundef @.str.4)
  %6187 = call ptr @__errno_location() #9
  %6188 = load i32, ptr %6187, align 4, !tbaa !5
  %6189 = call ptr @strerror(i32 noundef %6188) #8
  %6190 = call ptr @__errno_location() #9
  %6191 = load i32, ptr %6190, align 4, !tbaa !5
  %6192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6179, ptr noundef @.str.2, i32 noundef %6180, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 522, ptr noundef %6183, ptr noundef %6186, ptr noundef %6189, i32 noundef %6191) #8
  br label %6210

6193:                                             ; preds = %6171, %6164
  %6194 = load i32, ptr %106, align 4, !tbaa !5
  %6195 = call ptr @__errno_location() #9
  store i32 %6194, ptr %6195, align 4, !tbaa !5
  %6196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6197 = load i32, ptr @test_count, align 4, !tbaa !5
  %6198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6199 = load i32, ptr %6198, align 4, !tbaa !5
  %6200 = call ptr @s2n_strerror(i32 noundef %6199, ptr noundef @.str.4)
  %6201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6202 = load i32, ptr %6201, align 4, !tbaa !5
  %6203 = call ptr @s2n_strerror_debug(i32 noundef %6202, ptr noundef @.str.4)
  %6204 = call ptr @__errno_location() #9
  %6205 = load i32, ptr %6204, align 4, !tbaa !5
  %6206 = call ptr @strerror(i32 noundef %6205) #8
  %6207 = call ptr @__errno_location() #9
  %6208 = load i32, ptr %6207, align 4, !tbaa !5
  %6209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6196, ptr noundef @.str.5, i32 noundef %6197, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 522, ptr noundef %6200, ptr noundef %6203, ptr noundef %6206, i32 noundef %6208) #8
  br label %6210

6210:                                             ; preds = %6193, %6176
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #8
  br label %6211

6211:                                             ; preds = %6210
  br label %6212

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

6213:                                             ; No predecessors!
  br label %6214

6214:                                             ; preds = %6213
  br label %6215

6215:                                             ; preds = %6214, %6156
  br label %6216

6216:                                             ; preds = %6215
  br label %6217

6217:                                             ; preds = %6216
  br label %6218

6218:                                             ; preds = %6217
  br label %6219

6219:                                             ; preds = %6218
  %6220 = load i32, ptr @test_count, align 4, !tbaa !5
  %6221 = add nsw i32 %6220, 1
  store i32 %6221, ptr @test_count, align 4, !tbaa !5
  %6222 = load ptr, ptr %15, align 8, !tbaa !9
  %6223 = call i32 @s2n_negotiate(ptr noundef %6222, ptr noundef %6)
  %6224 = icmp eq i32 %6223, -1
  br i1 %6224, label %6278, label %6225

6225:                                             ; preds = %6219
  br label %6226

6226:                                             ; preds = %6225
  br label %6227

6227:                                             ; preds = %6226
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #8
  %6228 = call ptr @__errno_location() #9
  %6229 = load i32, ptr %6228, align 4, !tbaa !5
  store i32 %6229, ptr %107, align 4, !tbaa !5
  %6230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6231 = call i32 @s2n_print_stacktrace(ptr noundef %6230)
  %6232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6233 = trunc i8 %6232 to i1
  br i1 %6233, label %6234, label %6256

6234:                                             ; preds = %6227
  %6235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6236 = call i32 @fileno(ptr noundef %6235) #8
  %6237 = call i32 @isatty(i32 noundef %6236) #8
  %6238 = icmp ne i32 %6237, 0
  br i1 %6238, label %6239, label %6256

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

6256:                                             ; preds = %6234, %6227
  %6257 = load i32, ptr %107, align 4, !tbaa !5
  %6258 = call ptr @__errno_location() #9
  store i32 %6257, ptr %6258, align 4, !tbaa !5
  %6259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6260 = load i32, ptr @test_count, align 4, !tbaa !5
  %6261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6262 = load i32, ptr %6261, align 4, !tbaa !5
  %6263 = call ptr @s2n_strerror(i32 noundef %6262, ptr noundef @.str.4)
  %6264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6265 = load i32, ptr %6264, align 4, !tbaa !5
  %6266 = call ptr @s2n_strerror_debug(i32 noundef %6265, ptr noundef @.str.4)
  %6267 = call ptr @__errno_location() #9
  %6268 = load i32, ptr %6267, align 4, !tbaa !5
  %6269 = call ptr @strerror(i32 noundef %6268) #8
  %6270 = call ptr @__errno_location() #9
  %6271 = load i32, ptr %6270, align 4, !tbaa !5
  %6272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6259, ptr noundef @.str.5, i32 noundef %6260, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 523, ptr noundef %6263, ptr noundef %6266, ptr noundef %6269, i32 noundef %6271) #8
  br label %6273

6273:                                             ; preds = %6256, %6239
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #8
  br label %6274

6274:                                             ; preds = %6273
  br label %6275

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

6276:                                             ; No predecessors!
  br label %6277

6277:                                             ; preds = %6276
  br label %6278

6278:                                             ; preds = %6277, %6219
  br label %6279

6279:                                             ; preds = %6278
  br label %6280

6280:                                             ; preds = %6279
  br label %6281

6281:                                             ; preds = %6280
  %6282 = load i32, ptr @test_count, align 4, !tbaa !5
  %6283 = add nsw i32 %6282, 1
  store i32 %6283, ptr @test_count, align 4, !tbaa !5
  %6284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6285 = load i32, ptr %6284, align 4, !tbaa !5
  %6286 = icmp eq i32 %6285, 0
  br i1 %6286, label %6287, label %6340

6287:                                             ; preds = %6281
  br label %6288

6288:                                             ; preds = %6287
  br label %6289

6289:                                             ; preds = %6288
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #8
  %6290 = call ptr @__errno_location() #9
  %6291 = load i32, ptr %6290, align 4, !tbaa !5
  store i32 %6291, ptr %108, align 4, !tbaa !5
  %6292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6293 = call i32 @s2n_print_stacktrace(ptr noundef %6292)
  %6294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6295 = trunc i8 %6294 to i1
  br i1 %6295, label %6296, label %6318

6296:                                             ; preds = %6289
  %6297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6298 = call i32 @fileno(ptr noundef %6297) #8
  %6299 = call i32 @isatty(i32 noundef %6298) #8
  %6300 = icmp ne i32 %6299, 0
  br i1 %6300, label %6301, label %6318

6301:                                             ; preds = %6296
  %6302 = load i32, ptr %108, align 4, !tbaa !5
  %6303 = call ptr @__errno_location() #9
  store i32 %6302, ptr %6303, align 4, !tbaa !5
  %6304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6305 = load i32, ptr @test_count, align 4, !tbaa !5
  %6306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6307 = load i32, ptr %6306, align 4, !tbaa !5
  %6308 = call ptr @s2n_strerror(i32 noundef %6307, ptr noundef @.str.4)
  %6309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6310 = load i32, ptr %6309, align 4, !tbaa !5
  %6311 = call ptr @s2n_strerror_debug(i32 noundef %6310, ptr noundef @.str.4)
  %6312 = call ptr @__errno_location() #9
  %6313 = load i32, ptr %6312, align 4, !tbaa !5
  %6314 = call ptr @strerror(i32 noundef %6313) #8
  %6315 = call ptr @__errno_location() #9
  %6316 = load i32, ptr %6315, align 4, !tbaa !5
  %6317 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6304, ptr noundef @.str.2, i32 noundef %6305, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 523, ptr noundef %6308, ptr noundef %6311, ptr noundef %6314, i32 noundef %6316) #8
  br label %6335

6318:                                             ; preds = %6296, %6289
  %6319 = load i32, ptr %108, align 4, !tbaa !5
  %6320 = call ptr @__errno_location() #9
  store i32 %6319, ptr %6320, align 4, !tbaa !5
  %6321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6322 = load i32, ptr @test_count, align 4, !tbaa !5
  %6323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6324 = load i32, ptr %6323, align 4, !tbaa !5
  %6325 = call ptr @s2n_strerror(i32 noundef %6324, ptr noundef @.str.4)
  %6326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6327 = load i32, ptr %6326, align 4, !tbaa !5
  %6328 = call ptr @s2n_strerror_debug(i32 noundef %6327, ptr noundef @.str.4)
  %6329 = call ptr @__errno_location() #9
  %6330 = load i32, ptr %6329, align 4, !tbaa !5
  %6331 = call ptr @strerror(i32 noundef %6330) #8
  %6332 = call ptr @__errno_location() #9
  %6333 = load i32, ptr %6332, align 4, !tbaa !5
  %6334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6321, ptr noundef @.str.5, i32 noundef %6322, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 523, ptr noundef %6325, ptr noundef %6328, ptr noundef %6331, i32 noundef %6333) #8
  br label %6335

6335:                                             ; preds = %6318, %6301
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #8
  br label %6336

6336:                                             ; preds = %6335
  br label %6337

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

6338:                                             ; No predecessors!
  br label %6339

6339:                                             ; preds = %6338
  br label %6340

6340:                                             ; preds = %6339, %6281
  br label %6341

6341:                                             ; preds = %6340
  br label %6342

6342:                                             ; preds = %6341
  br label %6343

6343:                                             ; preds = %6342
  %6344 = load i32, ptr @test_count, align 4, !tbaa !5
  %6345 = add nsw i32 %6344, 1
  store i32 %6345, ptr @test_count, align 4, !tbaa !5
  %6346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6347 = load i32, ptr %6346, align 4, !tbaa !5
  %6348 = call ptr @s2n_strerror_debug(i32 noundef %6347, ptr noundef @.str.4)
  %6349 = icmp eq ptr %6348, null
  br i1 %6349, label %6350, label %6403

6350:                                             ; preds = %6343
  br label %6351

6351:                                             ; preds = %6350
  br label %6352

6352:                                             ; preds = %6351
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #8
  %6353 = call ptr @__errno_location() #9
  %6354 = load i32, ptr %6353, align 4, !tbaa !5
  store i32 %6354, ptr %109, align 4, !tbaa !5
  %6355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6356 = call i32 @s2n_print_stacktrace(ptr noundef %6355)
  %6357 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6358 = trunc i8 %6357 to i1
  br i1 %6358, label %6359, label %6381

6359:                                             ; preds = %6352
  %6360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6361 = call i32 @fileno(ptr noundef %6360) #8
  %6362 = call i32 @isatty(i32 noundef %6361) #8
  %6363 = icmp ne i32 %6362, 0
  br i1 %6363, label %6364, label %6381

6364:                                             ; preds = %6359
  %6365 = load i32, ptr %109, align 4, !tbaa !5
  %6366 = call ptr @__errno_location() #9
  store i32 %6365, ptr %6366, align 4, !tbaa !5
  %6367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6368 = load i32, ptr @test_count, align 4, !tbaa !5
  %6369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6370 = load i32, ptr %6369, align 4, !tbaa !5
  %6371 = call ptr @s2n_strerror(i32 noundef %6370, ptr noundef @.str.4)
  %6372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6373 = load i32, ptr %6372, align 4, !tbaa !5
  %6374 = call ptr @s2n_strerror_debug(i32 noundef %6373, ptr noundef @.str.4)
  %6375 = call ptr @__errno_location() #9
  %6376 = load i32, ptr %6375, align 4, !tbaa !5
  %6377 = call ptr @strerror(i32 noundef %6376) #8
  %6378 = call ptr @__errno_location() #9
  %6379 = load i32, ptr %6378, align 4, !tbaa !5
  %6380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6367, ptr noundef @.str.2, i32 noundef %6368, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 523, ptr noundef %6371, ptr noundef %6374, ptr noundef %6377, i32 noundef %6379) #8
  br label %6398

6381:                                             ; preds = %6359, %6352
  %6382 = load i32, ptr %109, align 4, !tbaa !5
  %6383 = call ptr @__errno_location() #9
  store i32 %6382, ptr %6383, align 4, !tbaa !5
  %6384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6385 = load i32, ptr @test_count, align 4, !tbaa !5
  %6386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6387 = load i32, ptr %6386, align 4, !tbaa !5
  %6388 = call ptr @s2n_strerror(i32 noundef %6387, ptr noundef @.str.4)
  %6389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6390 = load i32, ptr %6389, align 4, !tbaa !5
  %6391 = call ptr @s2n_strerror_debug(i32 noundef %6390, ptr noundef @.str.4)
  %6392 = call ptr @__errno_location() #9
  %6393 = load i32, ptr %6392, align 4, !tbaa !5
  %6394 = call ptr @strerror(i32 noundef %6393) #8
  %6395 = call ptr @__errno_location() #9
  %6396 = load i32, ptr %6395, align 4, !tbaa !5
  %6397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6384, ptr noundef @.str.5, i32 noundef %6385, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 523, ptr noundef %6388, ptr noundef %6391, ptr noundef %6394, i32 noundef %6396) #8
  br label %6398

6398:                                             ; preds = %6381, %6364
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #8
  br label %6399

6399:                                             ; preds = %6398
  br label %6400

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

6401:                                             ; No predecessors!
  br label %6402

6402:                                             ; preds = %6401
  br label %6403

6403:                                             ; preds = %6402, %6343
  br label %6404

6404:                                             ; preds = %6403
  br label %6405

6405:                                             ; preds = %6404
  br label %6406

6406:                                             ; preds = %6405
  %6407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6407, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6408 = call ptr @__errno_location() #9
  store i32 0, ptr %6408, align 4, !tbaa !5
  br label %6409

6409:                                             ; preds = %6406
  br label %6410

6410:                                             ; preds = %6409
  br label %6411

6411:                                             ; preds = %6410
  br label %6412

6412:                                             ; preds = %6411
  br label %6413

6413:                                             ; preds = %6412
  %6414 = load i32, ptr @test_count, align 4, !tbaa !5
  %6415 = add nsw i32 %6414, 1
  store i32 %6415, ptr @test_count, align 4, !tbaa !5
  %6416 = load ptr, ptr %15, align 8, !tbaa !9
  %6417 = getelementptr inbounds %struct.s2n_connection, ptr %6416, i32 0, i32 32
  %6418 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %6417, i32 0, i32 13
  %6419 = getelementptr inbounds [32 x i8], ptr %6418, i64 0, i64 0
  %6420 = call i32 @memcmp(ptr noundef %6419, ptr noundef @zero_to_thirty_one, i64 noundef 32) #11
  %6421 = icmp eq i32 %6420, 0
  br i1 %6421, label %6475, label %6422

6422:                                             ; preds = %6413
  br label %6423

6423:                                             ; preds = %6422
  br label %6424

6424:                                             ; preds = %6423
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #8
  %6425 = call ptr @__errno_location() #9
  %6426 = load i32, ptr %6425, align 4, !tbaa !5
  store i32 %6426, ptr %110, align 4, !tbaa !5
  %6427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6428 = call i32 @s2n_print_stacktrace(ptr noundef %6427)
  %6429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6430 = trunc i8 %6429 to i1
  br i1 %6430, label %6431, label %6453

6431:                                             ; preds = %6424
  %6432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6433 = call i32 @fileno(ptr noundef %6432) #8
  %6434 = call i32 @isatty(i32 noundef %6433) #8
  %6435 = icmp ne i32 %6434, 0
  br i1 %6435, label %6436, label %6453

6436:                                             ; preds = %6431
  %6437 = load i32, ptr %110, align 4, !tbaa !5
  %6438 = call ptr @__errno_location() #9
  store i32 %6437, ptr %6438, align 4, !tbaa !5
  %6439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6440 = load i32, ptr @test_count, align 4, !tbaa !5
  %6441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6442 = load i32, ptr %6441, align 4, !tbaa !5
  %6443 = call ptr @s2n_strerror(i32 noundef %6442, ptr noundef @.str.4)
  %6444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6445 = load i32, ptr %6444, align 4, !tbaa !5
  %6446 = call ptr @s2n_strerror_debug(i32 noundef %6445, ptr noundef @.str.4)
  %6447 = call ptr @__errno_location() #9
  %6448 = load i32, ptr %6447, align 4, !tbaa !5
  %6449 = call ptr @strerror(i32 noundef %6448) #8
  %6450 = call ptr @__errno_location() #9
  %6451 = load i32, ptr %6450, align 4, !tbaa !5
  %6452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6439, ptr noundef @.str.2, i32 noundef %6440, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 526, ptr noundef %6443, ptr noundef %6446, ptr noundef %6449, i32 noundef %6451) #8
  br label %6470

6453:                                             ; preds = %6431, %6424
  %6454 = load i32, ptr %110, align 4, !tbaa !5
  %6455 = call ptr @__errno_location() #9
  store i32 %6454, ptr %6455, align 4, !tbaa !5
  %6456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6457 = load i32, ptr @test_count, align 4, !tbaa !5
  %6458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6459 = load i32, ptr %6458, align 4, !tbaa !5
  %6460 = call ptr @s2n_strerror(i32 noundef %6459, ptr noundef @.str.4)
  %6461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6462 = load i32, ptr %6461, align 4, !tbaa !5
  %6463 = call ptr @s2n_strerror_debug(i32 noundef %6462, ptr noundef @.str.4)
  %6464 = call ptr @__errno_location() #9
  %6465 = load i32, ptr %6464, align 4, !tbaa !5
  %6466 = call ptr @strerror(i32 noundef %6465) #8
  %6467 = call ptr @__errno_location() #9
  %6468 = load i32, ptr %6467, align 4, !tbaa !5
  %6469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6456, ptr noundef @.str.5, i32 noundef %6457, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 526, ptr noundef %6460, ptr noundef %6463, ptr noundef %6466, i32 noundef %6468) #8
  br label %6470

6470:                                             ; preds = %6453, %6436
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #8
  br label %6471

6471:                                             ; preds = %6470
  br label %6472

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

6473:                                             ; No predecessors!
  br label %6474

6474:                                             ; preds = %6473
  br label %6475

6475:                                             ; preds = %6474, %6413
  br label %6476

6476:                                             ; preds = %6475
  br label %6477

6477:                                             ; preds = %6476
  br label %6478

6478:                                             ; preds = %6477
  %6479 = load i32, ptr @test_count, align 4, !tbaa !5
  %6480 = add nsw i32 %6479, 1
  store i32 %6480, ptr @test_count, align 4, !tbaa !5
  %6481 = load ptr, ptr %15, align 8, !tbaa !9
  %6482 = call i32 @s2n_conn_get_current_message_type(ptr noundef %6481)
  %6483 = icmp eq i32 %6482, 2
  br i1 %6483, label %6537, label %6484

6484:                                             ; preds = %6478
  br label %6485

6485:                                             ; preds = %6484
  br label %6486

6486:                                             ; preds = %6485
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #8
  %6487 = call ptr @__errno_location() #9
  %6488 = load i32, ptr %6487, align 4, !tbaa !5
  store i32 %6488, ptr %111, align 4, !tbaa !5
  %6489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6490 = call i32 @s2n_print_stacktrace(ptr noundef %6489)
  %6491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6492 = trunc i8 %6491 to i1
  br i1 %6492, label %6493, label %6515

6493:                                             ; preds = %6486
  %6494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6495 = call i32 @fileno(ptr noundef %6494) #8
  %6496 = call i32 @isatty(i32 noundef %6495) #8
  %6497 = icmp ne i32 %6496, 0
  br i1 %6497, label %6498, label %6515

6498:                                             ; preds = %6493
  %6499 = load i32, ptr %111, align 4, !tbaa !5
  %6500 = call ptr @__errno_location() #9
  store i32 %6499, ptr %6500, align 4, !tbaa !5
  %6501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6502 = load i32, ptr @test_count, align 4, !tbaa !5
  %6503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6504 = load i32, ptr %6503, align 4, !tbaa !5
  %6505 = call ptr @s2n_strerror(i32 noundef %6504, ptr noundef @.str.4)
  %6506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6507 = load i32, ptr %6506, align 4, !tbaa !5
  %6508 = call ptr @s2n_strerror_debug(i32 noundef %6507, ptr noundef @.str.4)
  %6509 = call ptr @__errno_location() #9
  %6510 = load i32, ptr %6509, align 4, !tbaa !5
  %6511 = call ptr @strerror(i32 noundef %6510) #8
  %6512 = call ptr @__errno_location() #9
  %6513 = load i32, ptr %6512, align 4, !tbaa !5
  %6514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6501, ptr noundef @.str.2, i32 noundef %6502, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 529, ptr noundef %6505, ptr noundef %6508, ptr noundef %6511, i32 noundef %6513) #8
  br label %6532

6515:                                             ; preds = %6493, %6486
  %6516 = load i32, ptr %111, align 4, !tbaa !5
  %6517 = call ptr @__errno_location() #9
  store i32 %6516, ptr %6517, align 4, !tbaa !5
  %6518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6519 = load i32, ptr @test_count, align 4, !tbaa !5
  %6520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6521 = load i32, ptr %6520, align 4, !tbaa !5
  %6522 = call ptr @s2n_strerror(i32 noundef %6521, ptr noundef @.str.4)
  %6523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6524 = load i32, ptr %6523, align 4, !tbaa !5
  %6525 = call ptr @s2n_strerror_debug(i32 noundef %6524, ptr noundef @.str.4)
  %6526 = call ptr @__errno_location() #9
  %6527 = load i32, ptr %6526, align 4, !tbaa !5
  %6528 = call ptr @strerror(i32 noundef %6527) #8
  %6529 = call ptr @__errno_location() #9
  %6530 = load i32, ptr %6529, align 4, !tbaa !5
  %6531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6518, ptr noundef @.str.5, i32 noundef %6519, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 529, ptr noundef %6522, ptr noundef %6525, ptr noundef %6528, i32 noundef %6530) #8
  br label %6532

6532:                                             ; preds = %6515, %6498
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #8
  br label %6533

6533:                                             ; preds = %6532
  br label %6534

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

6535:                                             ; No predecessors!
  br label %6536

6536:                                             ; preds = %6535
  br label %6537

6537:                                             ; preds = %6536, %6478
  br label %6538

6538:                                             ; preds = %6537
  br label %6539

6539:                                             ; preds = %6538
  br label %6540

6540:                                             ; preds = %6539
  %6541 = load i32, ptr @test_count, align 4, !tbaa !5
  %6542 = add nsw i32 %6541, 1
  store i32 %6542, ptr @test_count, align 4, !tbaa !5
  %6543 = load i32, ptr %8, align 4, !tbaa !5
  %6544 = call i32 @waitpid(i32 noundef %6543, ptr noundef %7, i32 noundef 0)
  %6545 = load i32, ptr %8, align 4, !tbaa !5
  %6546 = icmp eq i32 %6544, %6545
  br i1 %6546, label %6600, label %6547

6547:                                             ; preds = %6540
  br label %6548

6548:                                             ; preds = %6547
  br label %6549

6549:                                             ; preds = %6548
  call void @llvm.lifetime.start.p0(i64 4, ptr %112) #8
  %6550 = call ptr @__errno_location() #9
  %6551 = load i32, ptr %6550, align 4, !tbaa !5
  store i32 %6551, ptr %112, align 4, !tbaa !5
  %6552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6553 = call i32 @s2n_print_stacktrace(ptr noundef %6552)
  %6554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6555 = trunc i8 %6554 to i1
  br i1 %6555, label %6556, label %6578

6556:                                             ; preds = %6549
  %6557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6558 = call i32 @fileno(ptr noundef %6557) #8
  %6559 = call i32 @isatty(i32 noundef %6558) #8
  %6560 = icmp ne i32 %6559, 0
  br i1 %6560, label %6561, label %6578

6561:                                             ; preds = %6556
  %6562 = load i32, ptr %112, align 4, !tbaa !5
  %6563 = call ptr @__errno_location() #9
  store i32 %6562, ptr %6563, align 4, !tbaa !5
  %6564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6565 = load i32, ptr @test_count, align 4, !tbaa !5
  %6566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6567 = load i32, ptr %6566, align 4, !tbaa !5
  %6568 = call ptr @s2n_strerror(i32 noundef %6567, ptr noundef @.str.4)
  %6569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6570 = load i32, ptr %6569, align 4, !tbaa !5
  %6571 = call ptr @s2n_strerror_debug(i32 noundef %6570, ptr noundef @.str.4)
  %6572 = call ptr @__errno_location() #9
  %6573 = load i32, ptr %6572, align 4, !tbaa !5
  %6574 = call ptr @strerror(i32 noundef %6573) #8
  %6575 = call ptr @__errno_location() #9
  %6576 = load i32, ptr %6575, align 4, !tbaa !5
  %6577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6564, ptr noundef @.str.2, i32 noundef %6565, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 532, ptr noundef %6568, ptr noundef %6571, ptr noundef %6574, i32 noundef %6576) #8
  br label %6595

6578:                                             ; preds = %6556, %6549
  %6579 = load i32, ptr %112, align 4, !tbaa !5
  %6580 = call ptr @__errno_location() #9
  store i32 %6579, ptr %6580, align 4, !tbaa !5
  %6581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6582 = load i32, ptr @test_count, align 4, !tbaa !5
  %6583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6584 = load i32, ptr %6583, align 4, !tbaa !5
  %6585 = call ptr @s2n_strerror(i32 noundef %6584, ptr noundef @.str.4)
  %6586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6587 = load i32, ptr %6586, align 4, !tbaa !5
  %6588 = call ptr @s2n_strerror_debug(i32 noundef %6587, ptr noundef @.str.4)
  %6589 = call ptr @__errno_location() #9
  %6590 = load i32, ptr %6589, align 4, !tbaa !5
  %6591 = call ptr @strerror(i32 noundef %6590) #8
  %6592 = call ptr @__errno_location() #9
  %6593 = load i32, ptr %6592, align 4, !tbaa !5
  %6594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6581, ptr noundef @.str.5, i32 noundef %6582, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 532, ptr noundef %6585, ptr noundef %6588, ptr noundef %6591, i32 noundef %6593) #8
  br label %6595

6595:                                             ; preds = %6578, %6561
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #8
  br label %6596

6596:                                             ; preds = %6595
  br label %6597

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

6598:                                             ; No predecessors!
  br label %6599

6599:                                             ; preds = %6598
  br label %6600

6600:                                             ; preds = %6599, %6540
  br label %6601

6601:                                             ; preds = %6600
  br label %6602

6602:                                             ; preds = %6601
  br label %6603

6603:                                             ; preds = %6602
  %6604 = load i32, ptr @test_count, align 4, !tbaa !5
  %6605 = add nsw i32 %6604, 1
  store i32 %6605, ptr @test_count, align 4, !tbaa !5
  %6606 = load i32, ptr %7, align 4, !tbaa !5
  %6607 = icmp eq i32 %6606, 0
  br i1 %6607, label %6661, label %6608

6608:                                             ; preds = %6603
  br label %6609

6609:                                             ; preds = %6608
  br label %6610

6610:                                             ; preds = %6609
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #8
  %6611 = call ptr @__errno_location() #9
  %6612 = load i32, ptr %6611, align 4, !tbaa !5
  store i32 %6612, ptr %113, align 4, !tbaa !5
  %6613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6614 = call i32 @s2n_print_stacktrace(ptr noundef %6613)
  %6615 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6616 = trunc i8 %6615 to i1
  br i1 %6616, label %6617, label %6639

6617:                                             ; preds = %6610
  %6618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6619 = call i32 @fileno(ptr noundef %6618) #8
  %6620 = call i32 @isatty(i32 noundef %6619) #8
  %6621 = icmp ne i32 %6620, 0
  br i1 %6621, label %6622, label %6639

6622:                                             ; preds = %6617
  %6623 = load i32, ptr %113, align 4, !tbaa !5
  %6624 = call ptr @__errno_location() #9
  store i32 %6623, ptr %6624, align 4, !tbaa !5
  %6625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6626 = load i32, ptr @test_count, align 4, !tbaa !5
  %6627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6628 = load i32, ptr %6627, align 4, !tbaa !5
  %6629 = call ptr @s2n_strerror(i32 noundef %6628, ptr noundef @.str.4)
  %6630 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6631 = load i32, ptr %6630, align 4, !tbaa !5
  %6632 = call ptr @s2n_strerror_debug(i32 noundef %6631, ptr noundef @.str.4)
  %6633 = call ptr @__errno_location() #9
  %6634 = load i32, ptr %6633, align 4, !tbaa !5
  %6635 = call ptr @strerror(i32 noundef %6634) #8
  %6636 = call ptr @__errno_location() #9
  %6637 = load i32, ptr %6636, align 4, !tbaa !5
  %6638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6625, ptr noundef @.str.2, i32 noundef %6626, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 533, ptr noundef %6629, ptr noundef %6632, ptr noundef %6635, i32 noundef %6637) #8
  br label %6656

6639:                                             ; preds = %6617, %6610
  %6640 = load i32, ptr %113, align 4, !tbaa !5
  %6641 = call ptr @__errno_location() #9
  store i32 %6640, ptr %6641, align 4, !tbaa !5
  %6642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6643 = load i32, ptr @test_count, align 4, !tbaa !5
  %6644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6645 = load i32, ptr %6644, align 4, !tbaa !5
  %6646 = call ptr @s2n_strerror(i32 noundef %6645, ptr noundef @.str.4)
  %6647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6648 = load i32, ptr %6647, align 4, !tbaa !5
  %6649 = call ptr @s2n_strerror_debug(i32 noundef %6648, ptr noundef @.str.4)
  %6650 = call ptr @__errno_location() #9
  %6651 = load i32, ptr %6650, align 4, !tbaa !5
  %6652 = call ptr @strerror(i32 noundef %6651) #8
  %6653 = call ptr @__errno_location() #9
  %6654 = load i32, ptr %6653, align 4, !tbaa !5
  %6655 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6642, ptr noundef @.str.5, i32 noundef %6643, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 533, ptr noundef %6646, ptr noundef %6649, ptr noundef %6652, i32 noundef %6654) #8
  br label %6656

6656:                                             ; preds = %6639, %6622
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #8
  br label %6657

6657:                                             ; preds = %6656
  br label %6658

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

6659:                                             ; No predecessors!
  br label %6660

6660:                                             ; preds = %6659
  br label %6661

6661:                                             ; preds = %6660, %6603
  br label %6662

6662:                                             ; preds = %6661
  br label %6663

6663:                                             ; preds = %6662
  br label %6664

6664:                                             ; preds = %6663
  %6665 = load i32, ptr @test_count, align 4, !tbaa !5
  %6666 = add nsw i32 %6665, 1
  store i32 %6666, ptr @test_count, align 4, !tbaa !5
  %6667 = getelementptr inbounds [2 x i32], ptr %9, i64 0, i64 0
  %6668 = load i32, ptr %6667, align 4, !tbaa !5
  %6669 = call i32 @close(i32 noundef %6668)
  %6670 = icmp eq i32 %6669, -1
  br i1 %6670, label %6671, label %6724

6671:                                             ; preds = %6664
  br label %6672

6672:                                             ; preds = %6671
  br label %6673

6673:                                             ; preds = %6672
  call void @llvm.lifetime.start.p0(i64 4, ptr %114) #8
  %6674 = call ptr @__errno_location() #9
  %6675 = load i32, ptr %6674, align 4, !tbaa !5
  store i32 %6675, ptr %114, align 4, !tbaa !5
  %6676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6677 = call i32 @s2n_print_stacktrace(ptr noundef %6676)
  %6678 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6679 = trunc i8 %6678 to i1
  br i1 %6679, label %6680, label %6702

6680:                                             ; preds = %6673
  %6681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6682 = call i32 @fileno(ptr noundef %6681) #8
  %6683 = call i32 @isatty(i32 noundef %6682) #8
  %6684 = icmp ne i32 %6683, 0
  br i1 %6684, label %6685, label %6702

6685:                                             ; preds = %6680
  %6686 = load i32, ptr %114, align 4, !tbaa !5
  %6687 = call ptr @__errno_location() #9
  store i32 %6686, ptr %6687, align 4, !tbaa !5
  %6688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6689 = load i32, ptr @test_count, align 4, !tbaa !5
  %6690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6691 = load i32, ptr %6690, align 4, !tbaa !5
  %6692 = call ptr @s2n_strerror(i32 noundef %6691, ptr noundef @.str.4)
  %6693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6694 = load i32, ptr %6693, align 4, !tbaa !5
  %6695 = call ptr @s2n_strerror_debug(i32 noundef %6694, ptr noundef @.str.4)
  %6696 = call ptr @__errno_location() #9
  %6697 = load i32, ptr %6696, align 4, !tbaa !5
  %6698 = call ptr @strerror(i32 noundef %6697) #8
  %6699 = call ptr @__errno_location() #9
  %6700 = load i32, ptr %6699, align 4, !tbaa !5
  %6701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6688, ptr noundef @.str.2, i32 noundef %6689, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 534, ptr noundef %6692, ptr noundef %6695, ptr noundef %6698, i32 noundef %6700) #8
  br label %6719

6702:                                             ; preds = %6680, %6673
  %6703 = load i32, ptr %114, align 4, !tbaa !5
  %6704 = call ptr @__errno_location() #9
  store i32 %6703, ptr %6704, align 4, !tbaa !5
  %6705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6706 = load i32, ptr @test_count, align 4, !tbaa !5
  %6707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6708 = load i32, ptr %6707, align 4, !tbaa !5
  %6709 = call ptr @s2n_strerror(i32 noundef %6708, ptr noundef @.str.4)
  %6710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6711 = load i32, ptr %6710, align 4, !tbaa !5
  %6712 = call ptr @s2n_strerror_debug(i32 noundef %6711, ptr noundef @.str.4)
  %6713 = call ptr @__errno_location() #9
  %6714 = load i32, ptr %6713, align 4, !tbaa !5
  %6715 = call ptr @strerror(i32 noundef %6714) #8
  %6716 = call ptr @__errno_location() #9
  %6717 = load i32, ptr %6716, align 4, !tbaa !5
  %6718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6705, ptr noundef @.str.5, i32 noundef %6706, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 534, ptr noundef %6709, ptr noundef %6712, ptr noundef %6715, i32 noundef %6717) #8
  br label %6719

6719:                                             ; preds = %6702, %6685
  call void @llvm.lifetime.end.p0(i64 4, ptr %114) #8
  br label %6720

6720:                                             ; preds = %6719
  br label %6721

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

6722:                                             ; No predecessors!
  br label %6723

6723:                                             ; preds = %6722
  br label %6724

6724:                                             ; preds = %6723, %6664
  br label %6725

6725:                                             ; preds = %6724
  br label %6726

6726:                                             ; preds = %6725
  br label %6727

6727:                                             ; preds = %6726
  br label %6728

6728:                                             ; preds = %6727
  %6729 = call i32 @s2n_cleanup()
  %6730 = icmp eq i32 %6729, -1
  br i1 %6730, label %6731, label %6784

6731:                                             ; preds = %6728
  br label %6732

6732:                                             ; preds = %6731
  br label %6733

6733:                                             ; preds = %6732
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #8
  %6734 = call ptr @__errno_location() #9
  %6735 = load i32, ptr %6734, align 4, !tbaa !5
  store i32 %6735, ptr %115, align 4, !tbaa !5
  %6736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6737 = call i32 @s2n_print_stacktrace(ptr noundef %6736)
  %6738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6739 = trunc i8 %6738 to i1
  br i1 %6739, label %6740, label %6762

6740:                                             ; preds = %6733
  %6741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6742 = call i32 @fileno(ptr noundef %6741) #8
  %6743 = call i32 @isatty(i32 noundef %6742) #8
  %6744 = icmp ne i32 %6743, 0
  br i1 %6744, label %6745, label %6762

6745:                                             ; preds = %6740
  %6746 = load i32, ptr %115, align 4, !tbaa !5
  %6747 = call ptr @__errno_location() #9
  store i32 %6746, ptr %6747, align 4, !tbaa !5
  %6748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6749 = load i32, ptr @test_count, align 4, !tbaa !5
  %6750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6751 = load i32, ptr %6750, align 4, !tbaa !5
  %6752 = call ptr @s2n_strerror(i32 noundef %6751, ptr noundef @.str.4)
  %6753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6754 = load i32, ptr %6753, align 4, !tbaa !5
  %6755 = call ptr @s2n_strerror_debug(i32 noundef %6754, ptr noundef @.str.4)
  %6756 = call ptr @__errno_location() #9
  %6757 = load i32, ptr %6756, align 4, !tbaa !5
  %6758 = call ptr @strerror(i32 noundef %6757) #8
  %6759 = call ptr @__errno_location() #9
  %6760 = load i32, ptr %6759, align 4, !tbaa !5
  %6761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6748, ptr noundef @.str.2, i32 noundef %6749, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 536, ptr noundef %6752, ptr noundef %6755, ptr noundef %6758, i32 noundef %6760) #8
  br label %6779

6762:                                             ; preds = %6740, %6733
  %6763 = load i32, ptr %115, align 4, !tbaa !5
  %6764 = call ptr @__errno_location() #9
  store i32 %6763, ptr %6764, align 4, !tbaa !5
  %6765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6766 = load i32, ptr @test_count, align 4, !tbaa !5
  %6767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6768 = load i32, ptr %6767, align 4, !tbaa !5
  %6769 = call ptr @s2n_strerror(i32 noundef %6768, ptr noundef @.str.4)
  %6770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6771 = load i32, ptr %6770, align 4, !tbaa !5
  %6772 = call ptr @s2n_strerror_debug(i32 noundef %6771, ptr noundef @.str.4)
  %6773 = call ptr @__errno_location() #9
  %6774 = load i32, ptr %6773, align 4, !tbaa !5
  %6775 = call ptr @strerror(i32 noundef %6774) #8
  %6776 = call ptr @__errno_location() #9
  %6777 = load i32, ptr %6776, align 4, !tbaa !5
  %6778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6765, ptr noundef @.str.5, i32 noundef %6766, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 536, ptr noundef %6769, ptr noundef %6772, ptr noundef %6775, i32 noundef %6777) #8
  br label %6779

6779:                                             ; preds = %6762, %6745
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #8
  br label %6780

6780:                                             ; preds = %6779
  br label %6781

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

6782:                                             ; No predecessors!
  br label %6783

6783:                                             ; preds = %6782
  br label %6784

6784:                                             ; preds = %6783, %6728
  br label %6785

6785:                                             ; preds = %6784
  br label %6786

6786:                                             ; preds = %6785
  br label %6787

6787:                                             ; preds = %6786
  br label %6788

6788:                                             ; preds = %6787
  %6789 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %6790 = icmp eq i32 %6789, -1
  br i1 %6790, label %6791, label %6844

6791:                                             ; preds = %6788
  br label %6792

6792:                                             ; preds = %6791
  br label %6793

6793:                                             ; preds = %6792
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #8
  %6794 = call ptr @__errno_location() #9
  %6795 = load i32, ptr %6794, align 4, !tbaa !5
  store i32 %6795, ptr %116, align 4, !tbaa !5
  %6796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6797 = call i32 @s2n_print_stacktrace(ptr noundef %6796)
  %6798 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6799 = trunc i8 %6798 to i1
  br i1 %6799, label %6800, label %6822

6800:                                             ; preds = %6793
  %6801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6802 = call i32 @fileno(ptr noundef %6801) #8
  %6803 = call i32 @isatty(i32 noundef %6802) #8
  %6804 = icmp ne i32 %6803, 0
  br i1 %6804, label %6805, label %6822

6805:                                             ; preds = %6800
  %6806 = load i32, ptr %116, align 4, !tbaa !5
  %6807 = call ptr @__errno_location() #9
  store i32 %6806, ptr %6807, align 4, !tbaa !5
  %6808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6809 = load i32, ptr @test_count, align 4, !tbaa !5
  %6810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6811 = load i32, ptr %6810, align 4, !tbaa !5
  %6812 = call ptr @s2n_strerror(i32 noundef %6811, ptr noundef @.str.4)
  %6813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6814 = load i32, ptr %6813, align 4, !tbaa !5
  %6815 = call ptr @s2n_strerror_debug(i32 noundef %6814, ptr noundef @.str.4)
  %6816 = call ptr @__errno_location() #9
  %6817 = load i32, ptr %6816, align 4, !tbaa !5
  %6818 = call ptr @strerror(i32 noundef %6817) #8
  %6819 = call ptr @__errno_location() #9
  %6820 = load i32, ptr %6819, align 4, !tbaa !5
  %6821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6808, ptr noundef @.str.2, i32 noundef %6809, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 536, ptr noundef %6812, ptr noundef %6815, ptr noundef %6818, i32 noundef %6820) #8
  br label %6839

6822:                                             ; preds = %6800, %6793
  %6823 = load i32, ptr %116, align 4, !tbaa !5
  %6824 = call ptr @__errno_location() #9
  store i32 %6823, ptr %6824, align 4, !tbaa !5
  %6825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6826 = load i32, ptr @test_count, align 4, !tbaa !5
  %6827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6828 = load i32, ptr %6827, align 4, !tbaa !5
  %6829 = call ptr @s2n_strerror(i32 noundef %6828, ptr noundef @.str.4)
  %6830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6831 = load i32, ptr %6830, align 4, !tbaa !5
  %6832 = call ptr @s2n_strerror_debug(i32 noundef %6831, ptr noundef @.str.4)
  %6833 = call ptr @__errno_location() #9
  %6834 = load i32, ptr %6833, align 4, !tbaa !5
  %6835 = call ptr @strerror(i32 noundef %6834) #8
  %6836 = call ptr @__errno_location() #9
  %6837 = load i32, ptr %6836, align 4, !tbaa !5
  %6838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6825, ptr noundef @.str.5, i32 noundef %6826, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 536, ptr noundef %6829, ptr noundef %6832, ptr noundef %6835, i32 noundef %6837) #8
  br label %6839

6839:                                             ; preds = %6822, %6805
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #8
  br label %6840

6840:                                             ; preds = %6839
  br label %6841

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

6842:                                             ; No predecessors!
  br label %6843

6843:                                             ; preds = %6842
  br label %6844

6844:                                             ; preds = %6843, %6788
  br label %6845

6845:                                             ; preds = %6844
  br label %6846

6846:                                             ; preds = %6845
  %6847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6848 = trunc i8 %6847 to i1
  br i1 %6848, label %6849, label %6865

6849:                                             ; preds = %6846
  %6850 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6851 = call i32 @fileno(ptr noundef %6850) #8
  %6852 = call i32 @isatty(i32 noundef %6851) #8
  %6853 = icmp ne i32 %6852, 0
  br i1 %6853, label %6854, label %6865

6854:                                             ; preds = %6849
  %6855 = load i32, ptr @test_count, align 4, !tbaa !5
  %6856 = icmp ne i32 %6855, 0
  br i1 %6856, label %6857, label %6861

6857:                                             ; preds = %6854
  %6858 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6859 = load i32, ptr @test_count, align 4, !tbaa !5
  %6860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6858, ptr noundef @.str.31, i32 noundef %6859) #8
  br label %6864

6861:                                             ; preds = %6854
  %6862 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6862, ptr noundef @.str.32) #8
  br label %6864

6864:                                             ; preds = %6861, %6857
  br label %6876

6865:                                             ; preds = %6849, %6846
  %6866 = load i32, ptr @test_count, align 4, !tbaa !5
  %6867 = icmp ne i32 %6866, 0
  br i1 %6867, label %6868, label %6872

6868:                                             ; preds = %6865
  %6869 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6870 = load i32, ptr @test_count, align 4, !tbaa !5
  %6871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6869, ptr noundef @.str.33, i32 noundef %6870) #8
  br label %6875

6872:                                             ; preds = %6865
  %6873 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6873, ptr noundef @.str.34) #8
  br label %6875

6875:                                             ; preds = %6872, %6868
  br label %6876

6876:                                             ; preds = %6875, %6864
  store i32 0, ptr %3, align 4
  store i32 1, ptr %117, align 4
  br label %6881

6877:                                             ; No predecessors!
  br label %6878

6878:                                             ; preds = %6877
  br label %6879

6879:                                             ; preds = %6878
  br label %6880

6880:                                             ; preds = %6879
  store i32 0, ptr %117, align 4
  br label %6881

6881:                                             ; preds = %6880, %6876
  %6882 = call i32 @s2n_connection_ptr_free(ptr noundef %15)
  %6883 = getelementptr inbounds %struct.s2n_result, ptr %118, i32 0, i32 0
  store i32 %6882, ptr %6883, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #8
  %6884 = call i32 @s2n_config_ptr_free(ptr noundef %14)
  %6885 = getelementptr inbounds %struct.s2n_result, ptr %119, i32 0, i32 0
  store i32 %6884, ptr %6885, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #8
  %6886 = load i32, ptr %117, align 4
  switch i32 %6886, label %6889 [
    i32 0, label %6887
    i32 1, label %6887
  ]

6887:                                             ; preds = %6881, %6881
  %6888 = load i32, ptr %3, align 4
  ret i32 %6888

6889:                                             ; preds = %6881
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

; 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) #3

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

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) #3

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

declare i32 @s2n_config_disable_x509_verification(ptr noundef) #2

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

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

; Function Attrs: nounwind
declare i32 @pipe(ptr noundef) #3

declare i32 @s2n_connection_wipe(ptr noundef) #2

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

; Function Attrs: nounwind
declare i32 @fork() #3

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_config_free(ptr noundef) #2

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

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

declare void @s2n_debug_info_reset() #2

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

declare i32 @s2n_conn_get_current_message_type(ptr noundef) #2

declare i32 @waitpid(i32 noundef, 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 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
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 = { 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 #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 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { nounwind willreturn memory(none) }
attributes #10 = { noreturn nounwind }
attributes #11 = { nounwind willreturn memory(read) }

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

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


; 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 [87 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 [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [40 x i8], align 1
@server_hello_message = external hidden global [74 x i8], align 16
@good_certificate_list = external hidden global [828 x i8], align 16
@.str.17 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [70 x i8], align 1
@zero_to_thirty_one = external hidden global [32 x i8], align 16
@.str.24 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [29 x i8], align 1
@empty_certificate_list = external hidden global [7 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [72 x i8], align 1
@empty_certificate = external hidden global [10 x i8], align 1
@certificate_list_too_large = external hidden global [10 x i8], align 1
@certificate_too_large = external hidden global [10 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local void @send_messages(i32 noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #0

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

declare i32 @close(i32 noundef) local_unnamed_addr #2

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

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca [2 x i32], align 4
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #9
  store i32 0, ptr %4, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #9
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %8 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #9
  %10 = load ptr, ptr @stdout, align 8, !tbaa !9
  %11 = tail call i32 @fflush(ptr noundef %10)
  %12 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #9
  %13 = icmp eq i32 %12, -1
  br i1 %13, label %14, label %38

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

21:                                               ; preds = %14
  %22 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23 = tail call i32 @fileno(ptr noundef %22) #9
  %24 = tail call i32 @isatty(i32 noundef %23) #9
  %.not348 = icmp eq i32 %24, 0
  br i1 %.not348, label %25, label %26

25:                                               ; preds = %21, %14
  br label %26

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

38:                                               ; preds = %2
  %39 = load i32, ptr @test_count, align 4, !tbaa !5
  %40 = add nsw i32 %39, 1
  store i32 %40, ptr @test_count, align 4, !tbaa !5
  %41 = tail call i32 @s2n_enable_atexit() #9
  %42 = icmp eq i32 %41, -1
  br i1 %42, label %43, label %67

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

50:                                               ; preds = %43
  %51 = load ptr, ptr @stderr, align 8, !tbaa !9
  %52 = tail call i32 @fileno(ptr noundef %51) #9
  %53 = tail call i32 @isatty(i32 noundef %52) #9
  %.not347 = icmp eq i32 %53, 0
  br i1 %.not347, label %54, label %55

54:                                               ; preds = %50, %43
  br label %55

55:                                               ; preds = %50, %54
  %.str.5.sink359 = phi ptr [ @.str.5, %54 ], [ @.str.2, %50 ]
  store i32 %45, ptr %44, align 4, !tbaa !5
  %56 = load ptr, ptr @stderr, align 8, !tbaa !9
  %57 = load i32, ptr @test_count, align 4, !tbaa !5
  %58 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %59 = load i32, ptr %58, align 4, !tbaa !5
  %60 = tail call ptr @s2n_strerror(i32 noundef %59, ptr noundef nonnull @.str.4) #9
  %61 = load i32, ptr %58, align 4, !tbaa !5
  %62 = tail call ptr @s2n_strerror_debug(i32 noundef %61, ptr noundef nonnull @.str.4) #9
  %63 = load i32, ptr %44, align 4, !tbaa !5
  %64 = tail call ptr @strerror(i32 noundef %63) #9
  %65 = load i32, ptr %44, align 4, !tbaa !5
  %66 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %56, ptr noundef nonnull %.str.5.sink359, i32 noundef %57, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %60, ptr noundef %62, ptr noundef %64, i32 noundef %65) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

67:                                               ; preds = %38
  %68 = tail call i32 @s2n_init() #9
  %69 = icmp eq i32 %68, -1
  br i1 %69, label %70, label %94

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

77:                                               ; preds = %70
  %78 = load ptr, ptr @stderr, align 8, !tbaa !9
  %79 = tail call i32 @fileno(ptr noundef %78) #9
  %80 = tail call i32 @isatty(i32 noundef %79) #9
  %.not346 = icmp eq i32 %80, 0
  br i1 %.not346, label %81, label %82

81:                                               ; preds = %77, %70
  br label %82

82:                                               ; preds = %77, %81
  %.str.5.sink370 = phi ptr [ @.str.5, %81 ], [ @.str.2, %77 ]
  store i32 %72, ptr %71, align 4, !tbaa !5
  %83 = load ptr, ptr @stderr, align 8, !tbaa !9
  %84 = load i32, ptr @test_count, align 4, !tbaa !5
  %85 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %86 = load i32, ptr %85, align 4, !tbaa !5
  %87 = tail call ptr @s2n_strerror(i32 noundef %86, ptr noundef nonnull @.str.4) #9
  %88 = load i32, ptr %85, align 4, !tbaa !5
  %89 = tail call ptr @s2n_strerror_debug(i32 noundef %88, ptr noundef nonnull @.str.4) #9
  %90 = load i32, ptr %71, align 4, !tbaa !5
  %91 = tail call ptr @strerror(i32 noundef %90) #9
  %92 = load i32, ptr %71, align 4, !tbaa !5
  %93 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %83, ptr noundef nonnull %.str.5.sink370, i32 noundef %84, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %87, ptr noundef %89, ptr noundef %91, i32 noundef %92) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

94:                                               ; preds = %67
  %95 = load i32, ptr @test_count, align 4, !tbaa !5
  %96 = add nsw i32 %95, 1
  store i32 %96, ptr @test_count, align 4, !tbaa !5
  %97 = tail call i32 (...) @s2n_disable_tls13_in_test() #9
  %98 = icmp eq i32 %97, -1
  br i1 %98, label %99, label %123

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

106:                                              ; preds = %99
  %107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %108 = tail call i32 @fileno(ptr noundef %107) #9
  %109 = tail call i32 @isatty(i32 noundef %108) #9
  %.not345 = icmp eq i32 %109, 0
  br i1 %.not345, label %110, label %111

110:                                              ; preds = %106, %99
  br label %111

111:                                              ; preds = %106, %110
  %.str.5.sink381 = phi ptr [ @.str.5, %110 ], [ @.str.2, %106 ]
  store i32 %101, ptr %100, align 4, !tbaa !5
  %112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %113 = load i32, ptr @test_count, align 4, !tbaa !5
  %114 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %115 = load i32, ptr %114, align 4, !tbaa !5
  %116 = tail call ptr @s2n_strerror(i32 noundef %115, ptr noundef nonnull @.str.4) #9
  %117 = load i32, ptr %114, align 4, !tbaa !5
  %118 = tail call ptr @s2n_strerror_debug(i32 noundef %117, ptr noundef nonnull @.str.4) #9
  %119 = load i32, ptr %100, align 4, !tbaa !5
  %120 = tail call ptr @strerror(i32 noundef %119) #9
  %121 = load i32, ptr %100, align 4, !tbaa !5
  %122 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %112, ptr noundef nonnull %.str.5.sink381, i32 noundef %113, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 234, ptr noundef %116, ptr noundef %118, ptr noundef %120, i32 noundef %121) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

123:                                              ; preds = %94
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  %124 = tail call ptr @s2n_config_new() #9
  store ptr %124, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  %125 = tail call ptr @s2n_connection_new(i32 noundef 1) #9
  store ptr %125, ptr %7, align 8, !tbaa !9
  %126 = load i32, ptr @test_count, align 4, !tbaa !5
  %127 = add nsw i32 %126, 1
  store i32 %127, ptr @test_count, align 4, !tbaa !5
  %128 = tail call i32 @s2n_config_disable_x509_verification(ptr noundef %124) #9
  %129 = icmp eq i32 %128, -1
  br i1 %129, label %130, label %154

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

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

141:                                              ; preds = %137, %130
  br label %142

142:                                              ; preds = %137, %141
  %.str.5.sink392 = phi ptr [ @.str.5, %141 ], [ @.str.2, %137 ]
  store i32 %132, ptr %131, align 4, !tbaa !5
  %143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %144 = load i32, ptr @test_count, align 4, !tbaa !5
  %145 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %146 = load i32, ptr %145, align 4, !tbaa !5
  %147 = tail call ptr @s2n_strerror(i32 noundef %146, ptr noundef nonnull @.str.4) #9
  %148 = load i32, ptr %145, align 4, !tbaa !5
  %149 = tail call ptr @s2n_strerror_debug(i32 noundef %148, ptr noundef nonnull @.str.4) #9
  %150 = load i32, ptr %131, align 4, !tbaa !5
  %151 = tail call ptr @strerror(i32 noundef %150) #9
  %152 = load i32, ptr %131, align 4, !tbaa !5
  %153 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %143, ptr noundef nonnull %.str.5.sink392, i32 noundef %144, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 238, ptr noundef %147, ptr noundef %149, ptr noundef %151, i32 noundef %152) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

154:                                              ; preds = %123
  %155 = load i32, ptr @test_count, align 4, !tbaa !5
  %156 = add nsw i32 %155, 1
  store i32 %156, ptr @test_count, align 4, !tbaa !5
  %157 = tail call i32 @s2n_config_set_cipher_preferences(ptr noundef %124, ptr noundef nonnull @.str.10) #9
  %158 = icmp eq i32 %157, -1
  br i1 %158, label %159, label %183

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

166:                                              ; preds = %159
  %167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %168 = tail call i32 @fileno(ptr noundef %167) #9
  %169 = tail call i32 @isatty(i32 noundef %168) #9
  %.not343 = icmp eq i32 %169, 0
  br i1 %.not343, label %170, label %171

170:                                              ; preds = %166, %159
  br label %171

171:                                              ; preds = %166, %170
  %.str.5.sink403 = phi ptr [ @.str.5, %170 ], [ @.str.2, %166 ]
  store i32 %161, ptr %160, align 4, !tbaa !5
  %172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %173 = load i32, ptr @test_count, align 4, !tbaa !5
  %174 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %175 = load i32, ptr %174, align 4, !tbaa !5
  %176 = tail call ptr @s2n_strerror(i32 noundef %175, ptr noundef nonnull @.str.4) #9
  %177 = load i32, ptr %174, align 4, !tbaa !5
  %178 = tail call ptr @s2n_strerror_debug(i32 noundef %177, ptr noundef nonnull @.str.4) #9
  %179 = load i32, ptr %160, align 4, !tbaa !5
  %180 = tail call ptr @strerror(i32 noundef %179) #9
  %181 = load i32, ptr %160, align 4, !tbaa !5
  %182 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %172, ptr noundef nonnull %.str.5.sink403, i32 noundef %173, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 239, ptr noundef %176, ptr noundef %178, ptr noundef %180, i32 noundef %181) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

183:                                              ; preds = %154
  %184 = load i32, ptr @test_count, align 4, !tbaa !5
  %185 = add nsw i32 %184, 1
  store i32 %185, ptr @test_count, align 4, !tbaa !5
  %186 = tail call i32 @s2n_connection_set_config(ptr noundef %125, ptr noundef %124) #9
  %187 = icmp eq i32 %186, -1
  br i1 %187, label %188, label %212

188:                                              ; preds = %183
  %189 = tail call ptr @__errno_location() #10
  %190 = load i32, ptr %189, align 4, !tbaa !5
  %191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %192 = tail call i32 @s2n_print_stacktrace(ptr noundef %191) #9
  %193 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %194 = trunc nuw i8 %193 to i1
  br i1 %194, label %195, label %199

195:                                              ; preds = %188
  %196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %197 = tail call i32 @fileno(ptr noundef %196) #9
  %198 = tail call i32 @isatty(i32 noundef %197) #9
  %.not342 = icmp eq i32 %198, 0
  br i1 %.not342, label %199, label %200

199:                                              ; preds = %195, %188
  br label %200

200:                                              ; preds = %195, %199
  %.str.5.sink414 = phi ptr [ @.str.5, %199 ], [ @.str.2, %195 ]
  store i32 %190, ptr %189, align 4, !tbaa !5
  %201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %202 = load i32, ptr @test_count, align 4, !tbaa !5
  %203 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %204 = load i32, ptr %203, align 4, !tbaa !5
  %205 = tail call ptr @s2n_strerror(i32 noundef %204, ptr noundef nonnull @.str.4) #9
  %206 = load i32, ptr %203, align 4, !tbaa !5
  %207 = tail call ptr @s2n_strerror_debug(i32 noundef %206, ptr noundef nonnull @.str.4) #9
  %208 = load i32, ptr %189, align 4, !tbaa !5
  %209 = tail call ptr @strerror(i32 noundef %208) #9
  %210 = load i32, ptr %189, align 4, !tbaa !5
  %211 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %201, ptr noundef nonnull %.str.5.sink414, i32 noundef %202, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 240, ptr noundef %205, ptr noundef %207, ptr noundef %209, i32 noundef %210) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

212:                                              ; preds = %183
  %213 = load i32, ptr @test_count, align 4, !tbaa !5
  %214 = add nsw i32 %213, 1
  store i32 %214, ptr @test_count, align 4, !tbaa !5
  %215 = call i32 @pipe(ptr noundef nonnull %5) #9
  %216 = icmp eq i32 %215, -1
  br i1 %216, label %217, label %241

217:                                              ; preds = %212
  %218 = tail call ptr @__errno_location() #10
  %219 = load i32, ptr %218, align 4, !tbaa !5
  %220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %221 = call i32 @s2n_print_stacktrace(ptr noundef %220) #9
  %222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %223 = trunc nuw i8 %222 to i1
  br i1 %223, label %224, label %228

224:                                              ; preds = %217
  %225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %226 = call i32 @fileno(ptr noundef %225) #9
  %227 = call i32 @isatty(i32 noundef %226) #9
  %.not341 = icmp eq i32 %227, 0
  br i1 %.not341, label %228, label %229

228:                                              ; preds = %224, %217
  br label %229

229:                                              ; preds = %224, %228
  %.str.5.sink425 = phi ptr [ @.str.5, %228 ], [ @.str.2, %224 ]
  store i32 %219, ptr %218, align 4, !tbaa !5
  %230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %231 = load i32, ptr @test_count, align 4, !tbaa !5
  %232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %233 = load i32, ptr %232, align 4, !tbaa !5
  %234 = call ptr @s2n_strerror(i32 noundef %233, ptr noundef nonnull @.str.4) #9
  %235 = load i32, ptr %232, align 4, !tbaa !5
  %236 = call ptr @s2n_strerror_debug(i32 noundef %235, ptr noundef nonnull @.str.4) #9
  %237 = load i32, ptr %218, align 4, !tbaa !5
  %238 = call ptr @strerror(i32 noundef %237) #9
  %239 = load i32, ptr %218, align 4, !tbaa !5
  %240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %230, ptr noundef nonnull %.str.5.sink425, i32 noundef %231, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 245, ptr noundef %234, ptr noundef %236, ptr noundef %238, i32 noundef %239) #11
  call void @exit(i32 noundef 1) #12
  unreachable

241:                                              ; preds = %212
  %242 = load i32, ptr @test_count, align 4, !tbaa !5
  %243 = add nsw i32 %242, 1
  store i32 %243, ptr @test_count, align 4, !tbaa !5
  %244 = call i32 @s2n_connection_wipe(ptr noundef %125) #9
  %245 = icmp eq i32 %244, -1
  br i1 %245, label %246, label %270

246:                                              ; preds = %241
  %247 = tail call ptr @__errno_location() #10
  %248 = load i32, ptr %247, align 4, !tbaa !5
  %249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %250 = call i32 @s2n_print_stacktrace(ptr noundef %249) #9
  %251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %252 = trunc nuw i8 %251 to i1
  br i1 %252, label %253, label %257

253:                                              ; preds = %246
  %254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %255 = call i32 @fileno(ptr noundef %254) #9
  %256 = call i32 @isatty(i32 noundef %255) #9
  %.not340 = icmp eq i32 %256, 0
  br i1 %.not340, label %257, label %258

257:                                              ; preds = %253, %246
  br label %258

258:                                              ; preds = %253, %257
  %.str.5.sink436 = phi ptr [ @.str.5, %257 ], [ @.str.2, %253 ]
  store i32 %248, ptr %247, align 4, !tbaa !5
  %259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %260 = load i32, ptr @test_count, align 4, !tbaa !5
  %261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %262 = load i32, ptr %261, align 4, !tbaa !5
  %263 = call ptr @s2n_strerror(i32 noundef %262, ptr noundef nonnull @.str.4) #9
  %264 = load i32, ptr %261, align 4, !tbaa !5
  %265 = call ptr @s2n_strerror_debug(i32 noundef %264, ptr noundef nonnull @.str.4) #9
  %266 = load i32, ptr %247, align 4, !tbaa !5
  %267 = call ptr @strerror(i32 noundef %266) #9
  %268 = load i32, ptr %247, align 4, !tbaa !5
  %269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %259, ptr noundef nonnull %.str.5.sink436, i32 noundef %260, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 247, ptr noundef %263, ptr noundef %265, ptr noundef %267, i32 noundef %268) #11
  call void @exit(i32 noundef 1) #12
  unreachable

270:                                              ; preds = %241
  %271 = load i32, ptr @test_count, align 4, !tbaa !5
  %272 = add nsw i32 %271, 1
  store i32 %272, ptr @test_count, align 4, !tbaa !5
  %273 = load i32, ptr %5, align 4, !tbaa !5
  %274 = call i32 @s2n_connection_set_read_fd(ptr noundef %125, i32 noundef %273) #9
  %275 = icmp eq i32 %274, -1
  br i1 %275, label %276, label %300

276:                                              ; preds = %270
  %277 = tail call ptr @__errno_location() #10
  %278 = load i32, ptr %277, align 4, !tbaa !5
  %279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %280 = call i32 @s2n_print_stacktrace(ptr noundef %279) #9
  %281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %282 = trunc nuw i8 %281 to i1
  br i1 %282, label %283, label %287

283:                                              ; preds = %276
  %284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %285 = call i32 @fileno(ptr noundef %284) #9
  %286 = call i32 @isatty(i32 noundef %285) #9
  %.not339 = icmp eq i32 %286, 0
  br i1 %.not339, label %287, label %288

287:                                              ; preds = %283, %276
  br label %288

288:                                              ; preds = %283, %287
  %.str.5.sink447 = phi ptr [ @.str.5, %287 ], [ @.str.2, %283 ]
  store i32 %278, ptr %277, align 4, !tbaa !5
  %289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %290 = load i32, ptr @test_count, align 4, !tbaa !5
  %291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %292 = load i32, ptr %291, align 4, !tbaa !5
  %293 = call ptr @s2n_strerror(i32 noundef %292, ptr noundef nonnull @.str.4) #9
  %294 = load i32, ptr %291, align 4, !tbaa !5
  %295 = call ptr @s2n_strerror_debug(i32 noundef %294, ptr noundef nonnull @.str.4) #9
  %296 = load i32, ptr %277, align 4, !tbaa !5
  %297 = call ptr @strerror(i32 noundef %296) #9
  %298 = load i32, ptr %277, align 4, !tbaa !5
  %299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %289, ptr noundef nonnull %.str.5.sink447, i32 noundef %290, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 250, ptr noundef %293, ptr noundef %295, ptr noundef %297, i32 noundef %298) #11
  call void @exit(i32 noundef 1) #12
  unreachable

300:                                              ; preds = %270
  %301 = getelementptr inbounds i8, ptr %125, i64 2172
  store i32 3, ptr %301, align 4, !tbaa !15
  %302 = getelementptr inbounds i8, ptr %125, i64 2176
  store i32 1, ptr %302, align 8, !tbaa !42
  %303 = getelementptr inbounds i8, ptr %125, i64 219
  store i8 33, ptr %303, align 1, !tbaa !43
  %304 = getelementptr inbounds i8, ptr %125, i64 218
  store i8 33, ptr %304, align 2, !tbaa !44
  %305 = getelementptr inbounds i8, ptr %125, i64 220
  store i8 33, ptr %305, align 4, !tbaa !45
  %306 = call i32 @fork() #9
  %307 = icmp eq i32 %306, 0
  %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 i1 %307, label %310, label %399

310:                                              ; preds = %300
  %311 = load i32, ptr %5, align 4, !tbaa !5
  %312 = call i32 @close(i32 noundef %311) #9
  %313 = icmp eq i32 %312, -1
  br i1 %313, label %314, label %338

314:                                              ; preds = %310
  %315 = tail call ptr @__errno_location() #10
  %316 = load i32, ptr %315, align 4, !tbaa !5
  %317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %318 = call i32 @s2n_print_stacktrace(ptr noundef %317) #9
  %319 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %320 = trunc nuw i8 %319 to i1
  br i1 %320, label %321, label %325

321:                                              ; preds = %314
  %322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %323 = call i32 @fileno(ptr noundef %322) #9
  %324 = call i32 @isatty(i32 noundef %323) #9
  %.not338 = icmp eq i32 %324, 0
  br i1 %.not338, label %325, label %326

325:                                              ; preds = %321, %314
  br label %326

326:                                              ; preds = %321, %325
  %.str.5.sink458 = phi ptr [ @.str.5, %325 ], [ @.str.2, %321 ]
  store i32 %316, ptr %315, align 4, !tbaa !5
  %327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %328 = load i32, ptr @test_count, align 4, !tbaa !5
  %329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %330 = load i32, ptr %329, align 4, !tbaa !5
  %331 = call ptr @s2n_strerror(i32 noundef %330, ptr noundef nonnull @.str.4) #9
  %332 = load i32, ptr %329, align 4, !tbaa !5
  %333 = call ptr @s2n_strerror_debug(i32 noundef %332, ptr noundef nonnull @.str.4) #9
  %334 = load i32, ptr %315, align 4, !tbaa !5
  %335 = call ptr @strerror(i32 noundef %334) #9
  %336 = load i32, ptr %315, align 4, !tbaa !5
  %337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %327, ptr noundef nonnull %.str.5.sink458, i32 noundef %328, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 263, ptr noundef %331, ptr noundef %333, ptr noundef %335, i32 noundef %336) #11
  call void @exit(i32 noundef 1) #12
  unreachable

338:                                              ; preds = %310
  %339 = getelementptr inbounds i8, ptr %5, i64 4
  %340 = load i32, ptr %339, align 4, !tbaa !5
  call void @send_messages(i32 noundef %340, ptr noundef nonnull @server_hello_message, i32 noundef 74, ptr noundef nonnull @good_certificate_list, i32 noundef 828)
  %341 = load i32, ptr @test_count, align 4, !tbaa !5
  %342 = add nsw i32 %341, 1
  store i32 %342, ptr @test_count, align 4, !tbaa !5
  %343 = call i32 @s2n_connection_free(ptr noundef nonnull %125) #9
  %344 = icmp eq i32 %343, -1
  br i1 %344, label %345, label %369

345:                                              ; preds = %338
  %346 = tail call ptr @__errno_location() #10
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %349 = call i32 @s2n_print_stacktrace(ptr noundef %348) #9
  %350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %351 = trunc nuw i8 %350 to i1
  br i1 %351, label %352, label %356

352:                                              ; preds = %345
  %353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %354 = call i32 @fileno(ptr noundef %353) #9
  %355 = call i32 @isatty(i32 noundef %354) #9
  %.not337 = icmp eq i32 %355, 0
  br i1 %.not337, label %356, label %357

356:                                              ; preds = %352, %345
  br label %357

357:                                              ; preds = %352, %356
  %.str.5.sink469 = phi ptr [ @.str.5, %356 ], [ @.str.2, %352 ]
  store i32 %347, ptr %346, align 4, !tbaa !5
  %358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %359 = load i32, ptr @test_count, align 4, !tbaa !5
  %360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = call ptr @s2n_strerror(i32 noundef %361, ptr noundef nonnull @.str.4) #9
  %363 = load i32, ptr %360, align 4, !tbaa !5
  %364 = call ptr @s2n_strerror_debug(i32 noundef %363, ptr noundef nonnull @.str.4) #9
  %365 = load i32, ptr %346, align 4, !tbaa !5
  %366 = call ptr @strerror(i32 noundef %365) #9
  %367 = load i32, ptr %346, align 4, !tbaa !5
  %368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %358, ptr noundef nonnull %.str.5.sink469, i32 noundef %359, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 267, ptr noundef %362, ptr noundef %364, ptr noundef %366, i32 noundef %367) #11
  call void @exit(i32 noundef 1) #12
  unreachable

369:                                              ; preds = %338
  %370 = load i32, ptr @test_count, align 4, !tbaa !5
  %371 = add nsw i32 %370, 1
  store i32 %371, ptr @test_count, align 4, !tbaa !5
  %372 = call i32 @s2n_config_free(ptr noundef %124) #9
  %373 = icmp eq i32 %372, -1
  br i1 %373, label %374, label %398

374:                                              ; preds = %369
  %375 = tail call ptr @__errno_location() #10
  %376 = load i32, ptr %375, align 4, !tbaa !5
  %377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %378 = call i32 @s2n_print_stacktrace(ptr noundef %377) #9
  %379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %380 = trunc nuw i8 %379 to i1
  br i1 %380, label %381, label %385

381:                                              ; preds = %374
  %382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %383 = call i32 @fileno(ptr noundef %382) #9
  %384 = call i32 @isatty(i32 noundef %383) #9
  %.not336 = icmp eq i32 %384, 0
  br i1 %.not336, label %385, label %386

385:                                              ; preds = %381, %374
  br label %386

386:                                              ; preds = %381, %385
  %.str.5.sink480 = phi ptr [ @.str.5, %385 ], [ @.str.2, %381 ]
  store i32 %376, ptr %375, align 4, !tbaa !5
  %387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %388 = load i32, ptr @test_count, align 4, !tbaa !5
  %389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %390 = load i32, ptr %389, align 4, !tbaa !5
  %391 = call ptr @s2n_strerror(i32 noundef %390, ptr noundef nonnull @.str.4) #9
  %392 = load i32, ptr %389, align 4, !tbaa !5
  %393 = call ptr @s2n_strerror_debug(i32 noundef %392, ptr noundef nonnull @.str.4) #9
  %394 = load i32, ptr %375, align 4, !tbaa !5
  %395 = call ptr @strerror(i32 noundef %394) #9
  %396 = load i32, ptr %375, align 4, !tbaa !5
  %397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %387, ptr noundef nonnull %.str.5.sink480, i32 noundef %388, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 268, ptr noundef %391, ptr noundef %393, ptr noundef %395, i32 noundef %396) #11
  call void @exit(i32 noundef 1) #12
  unreachable

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

399:                                              ; preds = %300
  %400 = getelementptr inbounds i8, ptr %5, i64 4
  %401 = load i32, ptr %400, align 4, !tbaa !5
  %402 = call i32 @close(i32 noundef %401) #9
  %403 = icmp eq i32 %402, -1
  br i1 %403, label %404, label %428

404:                                              ; preds = %399
  %405 = tail call ptr @__errno_location() #10
  %406 = load i32, ptr %405, align 4, !tbaa !5
  %407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %408 = call i32 @s2n_print_stacktrace(ptr noundef %407) #9
  %409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %410 = trunc nuw i8 %409 to i1
  br i1 %410, label %411, label %415

411:                                              ; preds = %404
  %412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %413 = call i32 @fileno(ptr noundef %412) #9
  %414 = call i32 @isatty(i32 noundef %413) #9
  %.not335 = icmp eq i32 %414, 0
  br i1 %.not335, label %415, label %416

415:                                              ; preds = %411, %404
  br label %416

416:                                              ; preds = %411, %415
  %.str.5.sink491 = phi ptr [ @.str.5, %415 ], [ @.str.2, %411 ]
  store i32 %406, ptr %405, align 4, !tbaa !5
  %417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %418 = load i32, ptr @test_count, align 4, !tbaa !5
  %419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %420 = load i32, ptr %419, align 4, !tbaa !5
  %421 = call ptr @s2n_strerror(i32 noundef %420, ptr noundef nonnull @.str.4) #9
  %422 = load i32, ptr %419, align 4, !tbaa !5
  %423 = call ptr @s2n_strerror_debug(i32 noundef %422, ptr noundef nonnull @.str.4) #9
  %424 = load i32, ptr %405, align 4, !tbaa !5
  %425 = call ptr @strerror(i32 noundef %424) #9
  %426 = load i32, ptr %405, align 4, !tbaa !5
  %427 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %417, ptr noundef nonnull %.str.5.sink491, i32 noundef %418, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 273, ptr noundef %421, ptr noundef %423, ptr noundef %425, i32 noundef %426) #11
  call void @exit(i32 noundef 1) #12
  unreachable

428:                                              ; preds = %399
  %429 = load i32, ptr @test_count, align 4, !tbaa !5
  %430 = add nsw i32 %429, 1
  store i32 %430, ptr @test_count, align 4, !tbaa !5
  %431 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %125, i32 noundef 1) #9
  %432 = icmp eq i32 %431, -1
  br i1 %432, label %433, label %457

433:                                              ; preds = %428
  %434 = tail call ptr @__errno_location() #10
  %435 = load i32, ptr %434, align 4, !tbaa !5
  %436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %437 = call i32 @s2n_print_stacktrace(ptr noundef %436) #9
  %438 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %439 = trunc nuw i8 %438 to i1
  br i1 %439, label %440, label %444

440:                                              ; preds = %433
  %441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %442 = call i32 @fileno(ptr noundef %441) #9
  %443 = call i32 @isatty(i32 noundef %442) #9
  %.not334 = icmp eq i32 %443, 0
  br i1 %.not334, label %444, label %445

444:                                              ; preds = %440, %433
  br label %445

445:                                              ; preds = %440, %444
  %.str.5.sink502 = phi ptr [ @.str.5, %444 ], [ @.str.2, %440 ]
  store i32 %435, ptr %434, align 4, !tbaa !5
  %446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %447 = load i32, ptr @test_count, align 4, !tbaa !5
  %448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = call ptr @s2n_strerror(i32 noundef %449, ptr noundef nonnull @.str.4) #9
  %451 = load i32, ptr %448, align 4, !tbaa !5
  %452 = call ptr @s2n_strerror_debug(i32 noundef %451, ptr noundef nonnull @.str.4) #9
  %453 = load i32, ptr %434, align 4, !tbaa !5
  %454 = call ptr @strerror(i32 noundef %453) #9
  %455 = load i32, ptr %434, align 4, !tbaa !5
  %456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %446, ptr noundef nonnull %.str.5.sink502, i32 noundef %447, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 277, ptr noundef %450, ptr noundef %452, ptr noundef %454, i32 noundef %455) #11
  call void @exit(i32 noundef 1) #12
  unreachable

457:                                              ; preds = %428
  %458 = load i32, ptr @test_count, align 4, !tbaa !5
  %459 = add nsw i32 %458, 1
  store i32 %459, ptr @test_count, align 4, !tbaa !5
  %460 = call i32 @s2n_negotiate(ptr noundef nonnull %125, ptr noundef nonnull %3) #9
  %461 = icmp eq i32 %460, -1
  br i1 %461, label %486, label %462

462:                                              ; preds = %457
  %463 = tail call ptr @__errno_location() #10
  %464 = load i32, ptr %463, align 4, !tbaa !5
  %465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %466 = call i32 @s2n_print_stacktrace(ptr noundef %465) #9
  %467 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %468 = trunc nuw i8 %467 to i1
  br i1 %468, label %469, label %473

469:                                              ; preds = %462
  %470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %471 = call i32 @fileno(ptr noundef %470) #9
  %472 = call i32 @isatty(i32 noundef %471) #9
  %.not = icmp eq i32 %472, 0
  br i1 %.not, label %473, label %474

473:                                              ; preds = %469, %462
  br label %474

474:                                              ; preds = %469, %473
  %.str.5.sink513 = phi ptr [ @.str.5, %473 ], [ @.str.2, %469 ]
  store i32 %464, ptr %463, align 4, !tbaa !5
  %475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %476 = load i32, ptr @test_count, align 4, !tbaa !5
  %477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %478 = load i32, ptr %477, align 4, !tbaa !5
  %479 = call ptr @s2n_strerror(i32 noundef %478, ptr noundef nonnull @.str.4) #9
  %480 = load i32, ptr %477, align 4, !tbaa !5
  %481 = call ptr @s2n_strerror_debug(i32 noundef %480, ptr noundef nonnull @.str.4) #9
  %482 = load i32, ptr %463, align 4, !tbaa !5
  %483 = call ptr @strerror(i32 noundef %482) #9
  %484 = load i32, ptr %463, align 4, !tbaa !5
  %485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %475, ptr noundef nonnull %.str.5.sink513, i32 noundef %476, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 278, ptr noundef %479, ptr noundef %481, ptr noundef %483, i32 noundef %484) #11
  call void @exit(i32 noundef 1) #12
  unreachable

486:                                              ; preds = %457
  %487 = load i32, ptr @test_count, align 4, !tbaa !5
  %488 = add nsw i32 %487, 1
  store i32 %488, ptr @test_count, align 4, !tbaa !5
  %489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %490 = load i32, ptr %489, align 4, !tbaa !5
  %491 = icmp eq i32 %490, 0
  br i1 %491, label %492, label %515

492:                                              ; preds = %486
  %493 = tail call ptr @__errno_location() #10
  %494 = load i32, ptr %493, align 4, !tbaa !5
  %495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %496 = call i32 @s2n_print_stacktrace(ptr noundef %495) #9
  %497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %498 = trunc nuw i8 %497 to i1
  br i1 %498, label %499, label %503

499:                                              ; preds = %492
  %500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %501 = call i32 @fileno(ptr noundef %500) #9
  %502 = call i32 @isatty(i32 noundef %501) #9
  %.not333 = icmp eq i32 %502, 0
  br i1 %.not333, label %503, label %504

503:                                              ; preds = %499, %492
  br label %504

504:                                              ; preds = %499, %503
  %.str.5.sink524 = phi ptr [ @.str.5, %503 ], [ @.str.2, %499 ]
  store i32 %494, ptr %493, align 4, !tbaa !5
  %505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %506 = load i32, ptr @test_count, align 4, !tbaa !5
  %507 = load i32, ptr %489, align 4, !tbaa !5
  %508 = call ptr @s2n_strerror(i32 noundef %507, ptr noundef nonnull @.str.4) #9
  %509 = load i32, ptr %489, align 4, !tbaa !5
  %510 = call ptr @s2n_strerror_debug(i32 noundef %509, ptr noundef nonnull @.str.4) #9
  %511 = load i32, ptr %493, align 4, !tbaa !5
  %512 = call ptr @strerror(i32 noundef %511) #9
  %513 = load i32, ptr %493, align 4, !tbaa !5
  %514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %505, ptr noundef nonnull %.str.5.sink524, i32 noundef %506, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 278, ptr noundef %508, ptr noundef %510, ptr noundef %512, i32 noundef %513) #11
  call void @exit(i32 noundef 1) #12
  unreachable

515:                                              ; preds = %486
  %516 = add nsw i32 %487, 2
  store i32 %516, ptr @test_count, align 4, !tbaa !5
  %517 = call ptr @s2n_strerror_debug(i32 noundef %490, ptr noundef nonnull @.str.4) #9
  %518 = icmp eq ptr %517, null
  br i1 %518, label %519, label %542

519:                                              ; preds = %515
  %520 = tail call ptr @__errno_location() #10
  %521 = load i32, ptr %520, align 4, !tbaa !5
  %522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %523 = call i32 @s2n_print_stacktrace(ptr noundef %522) #9
  %524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %525 = trunc nuw i8 %524 to i1
  br i1 %525, label %526, label %530

526:                                              ; preds = %519
  %527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %528 = call i32 @fileno(ptr noundef %527) #9
  %529 = call i32 @isatty(i32 noundef %528) #9
  %.not332 = icmp eq i32 %529, 0
  br i1 %.not332, label %530, label %531

530:                                              ; preds = %526, %519
  br label %531

531:                                              ; preds = %526, %530
  %.str.5.sink533 = phi ptr [ @.str.5, %530 ], [ @.str.2, %526 ]
  store i32 %521, ptr %520, align 4, !tbaa !5
  %532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %533 = load i32, ptr @test_count, align 4, !tbaa !5
  %534 = load i32, ptr %489, align 4, !tbaa !5
  %535 = call ptr @s2n_strerror(i32 noundef %534, ptr noundef nonnull @.str.4) #9
  %536 = load i32, ptr %489, align 4, !tbaa !5
  %537 = call ptr @s2n_strerror_debug(i32 noundef %536, ptr noundef nonnull @.str.4) #9
  %538 = load i32, ptr %520, align 4, !tbaa !5
  %539 = call ptr @strerror(i32 noundef %538) #9
  %540 = load i32, ptr %520, align 4, !tbaa !5
  %541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %532, ptr noundef nonnull %.str.5.sink533, i32 noundef %533, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 278, ptr noundef %535, ptr noundef %537, ptr noundef %539, i32 noundef %540) #11
  call void @exit(i32 noundef 1) #12
  unreachable

542:                                              ; preds = %515
  store i32 0, ptr %489, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  %543 = tail call ptr @__errno_location() #10
  store i32 0, ptr %543, align 4, !tbaa !5
  %544 = load i32, ptr @test_count, align 4, !tbaa !5
  %545 = add nsw i32 %544, 1
  store i32 %545, ptr @test_count, align 4, !tbaa !5
  %546 = getelementptr inbounds i8, ptr %125, i64 1650
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(32) %546, ptr noundef nonnull dereferenceable(32) @zero_to_thirty_one, i64 32)
  %547 = icmp eq i32 %bcmp, 0
  br i1 %547, label %570, label %548

548:                                              ; preds = %542
  %549 = load i32, ptr %543, align 4, !tbaa !5
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = call i32 @s2n_print_stacktrace(ptr noundef %550) #9
  %552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %553 = trunc nuw i8 %552 to i1
  br i1 %553, label %554, label %558

554:                                              ; preds = %548
  %555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %556 = call i32 @fileno(ptr noundef %555) #9
  %557 = call i32 @isatty(i32 noundef %556) #9
  %.not237 = icmp eq i32 %557, 0
  br i1 %.not237, label %558, label %559

558:                                              ; preds = %554, %548
  br label %559

559:                                              ; preds = %554, %558
  %.str.5.sink542 = phi ptr [ @.str.5, %558 ], [ @.str.2, %554 ]
  store i32 %549, ptr %543, align 4, !tbaa !5
  %560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %561 = load i32, ptr @test_count, align 4, !tbaa !5
  %562 = load i32, ptr %489, align 4, !tbaa !5
  %563 = call ptr @s2n_strerror(i32 noundef %562, ptr noundef nonnull @.str.4) #9
  %564 = load i32, ptr %489, align 4, !tbaa !5
  %565 = call ptr @s2n_strerror_debug(i32 noundef %564, ptr noundef nonnull @.str.4) #9
  %566 = load i32, ptr %543, align 4, !tbaa !5
  %567 = call ptr @strerror(i32 noundef %566) #9
  %568 = load i32, ptr %543, align 4, !tbaa !5
  %569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %560, ptr noundef nonnull %.str.5.sink542, i32 noundef %561, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 281, ptr noundef %563, ptr noundef %565, ptr noundef %567, i32 noundef %568) #11
  call void @exit(i32 noundef 1) #12
  unreachable

570:                                              ; preds = %542
  %571 = add nsw i32 %544, 2
  store i32 %571, ptr @test_count, align 4, !tbaa !5
  %572 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %125) #9
  %573 = icmp eq i32 %572, 7
  br i1 %573, label %596, label %574

574:                                              ; preds = %570
  %575 = load i32, ptr %543, align 4, !tbaa !5
  %576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %577 = call i32 @s2n_print_stacktrace(ptr noundef %576) #9
  %578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %579 = trunc nuw i8 %578 to i1
  br i1 %579, label %580, label %584

580:                                              ; preds = %574
  %581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %582 = call i32 @fileno(ptr noundef %581) #9
  %583 = call i32 @isatty(i32 noundef %582) #9
  %.not238 = icmp eq i32 %583, 0
  br i1 %.not238, label %584, label %585

584:                                              ; preds = %580, %574
  br label %585

585:                                              ; preds = %580, %584
  %.str.5.sink551 = phi ptr [ @.str.5, %584 ], [ @.str.2, %580 ]
  store i32 %575, ptr %543, align 4, !tbaa !5
  %586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %587 = load i32, ptr @test_count, align 4, !tbaa !5
  %588 = load i32, ptr %489, align 4, !tbaa !5
  %589 = call ptr @s2n_strerror(i32 noundef %588, ptr noundef nonnull @.str.4) #9
  %590 = load i32, ptr %489, align 4, !tbaa !5
  %591 = call ptr @s2n_strerror_debug(i32 noundef %590, ptr noundef nonnull @.str.4) #9
  %592 = load i32, ptr %543, align 4, !tbaa !5
  %593 = call ptr @strerror(i32 noundef %592) #9
  %594 = load i32, ptr %543, align 4, !tbaa !5
  %595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %586, ptr noundef nonnull %.str.5.sink551, i32 noundef %587, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 284, ptr noundef %589, ptr noundef %591, ptr noundef %593, i32 noundef %594) #11
  call void @exit(i32 noundef 1) #12
  unreachable

596:                                              ; preds = %570
  %597 = load i32, ptr @test_count, align 4, !tbaa !5
  %598 = add nsw i32 %597, 1
  store i32 %598, ptr @test_count, align 4, !tbaa !5
  %599 = call i32 @waitpid(i32 noundef %306, ptr noundef nonnull %4, i32 noundef 0) #9
  %600 = icmp eq i32 %599, %306
  br i1 %600, label %623, label %601

601:                                              ; preds = %596
  %602 = load i32, ptr %543, align 4, !tbaa !5
  %603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %604 = call i32 @s2n_print_stacktrace(ptr noundef %603) #9
  %605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %606 = trunc nuw i8 %605 to i1
  br i1 %606, label %607, label %611

607:                                              ; preds = %601
  %608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %609 = call i32 @fileno(ptr noundef %608) #9
  %610 = call i32 @isatty(i32 noundef %609) #9
  %.not239 = icmp eq i32 %610, 0
  br i1 %.not239, label %611, label %612

611:                                              ; preds = %607, %601
  br label %612

612:                                              ; preds = %607, %611
  %.str.5.sink560 = phi ptr [ @.str.5, %611 ], [ @.str.2, %607 ]
  store i32 %602, ptr %543, align 4, !tbaa !5
  %613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %614 = load i32, ptr @test_count, align 4, !tbaa !5
  %615 = load i32, ptr %489, align 4, !tbaa !5
  %616 = call ptr @s2n_strerror(i32 noundef %615, ptr noundef nonnull @.str.4) #9
  %617 = load i32, ptr %489, align 4, !tbaa !5
  %618 = call ptr @s2n_strerror_debug(i32 noundef %617, ptr noundef nonnull @.str.4) #9
  %619 = load i32, ptr %543, align 4, !tbaa !5
  %620 = call ptr @strerror(i32 noundef %619) #9
  %621 = load i32, ptr %543, align 4, !tbaa !5
  %622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %613, ptr noundef nonnull %.str.5.sink560, i32 noundef %614, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 287, ptr noundef %616, ptr noundef %618, ptr noundef %620, i32 noundef %621) #11
  call void @exit(i32 noundef 1) #12
  unreachable

623:                                              ; preds = %596
  %624 = load i32, ptr @test_count, align 4, !tbaa !5
  %625 = add nsw i32 %624, 1
  store i32 %625, ptr @test_count, align 4, !tbaa !5
  %626 = load i32, ptr %4, align 4, !tbaa !5
  %627 = icmp eq i32 %626, 0
  br i1 %627, label %650, label %628

628:                                              ; preds = %623
  %629 = load i32, ptr %543, align 4, !tbaa !5
  %630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %631 = call i32 @s2n_print_stacktrace(ptr noundef %630) #9
  %632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %633 = trunc nuw i8 %632 to i1
  br i1 %633, label %634, label %638

634:                                              ; preds = %628
  %635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %636 = call i32 @fileno(ptr noundef %635) #9
  %637 = call i32 @isatty(i32 noundef %636) #9
  %.not240 = icmp eq i32 %637, 0
  br i1 %.not240, label %638, label %639

638:                                              ; preds = %634, %628
  br label %639

639:                                              ; preds = %634, %638
  %.str.5.sink569 = phi ptr [ @.str.5, %638 ], [ @.str.2, %634 ]
  store i32 %629, ptr %543, align 4, !tbaa !5
  %640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %641 = load i32, ptr @test_count, align 4, !tbaa !5
  %642 = load i32, ptr %489, align 4, !tbaa !5
  %643 = call ptr @s2n_strerror(i32 noundef %642, ptr noundef nonnull @.str.4) #9
  %644 = load i32, ptr %489, align 4, !tbaa !5
  %645 = call ptr @s2n_strerror_debug(i32 noundef %644, ptr noundef nonnull @.str.4) #9
  %646 = load i32, ptr %543, align 4, !tbaa !5
  %647 = call ptr @strerror(i32 noundef %646) #9
  %648 = load i32, ptr %543, align 4, !tbaa !5
  %649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %640, ptr noundef nonnull %.str.5.sink569, i32 noundef %641, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 288, ptr noundef %643, ptr noundef %645, ptr noundef %647, i32 noundef %648) #11
  call void @exit(i32 noundef 1) #12
  unreachable

650:                                              ; preds = %623
  %651 = add nsw i32 %624, 2
  store i32 %651, ptr @test_count, align 4, !tbaa !5
  %652 = load i32, ptr %5, align 4, !tbaa !5
  %653 = call i32 @close(i32 noundef %652) #9
  %654 = icmp eq i32 %653, -1
  br i1 %654, label %655, label %677

655:                                              ; preds = %650
  %656 = load i32, ptr %543, align 4, !tbaa !5
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = call i32 @s2n_print_stacktrace(ptr noundef %657) #9
  %659 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %660 = trunc nuw i8 %659 to i1
  br i1 %660, label %661, label %665

661:                                              ; preds = %655
  %662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %663 = call i32 @fileno(ptr noundef %662) #9
  %664 = call i32 @isatty(i32 noundef %663) #9
  %.not331 = icmp eq i32 %664, 0
  br i1 %.not331, label %665, label %666

665:                                              ; preds = %661, %655
  br label %666

666:                                              ; preds = %661, %665
  %.str.5.sink578 = phi ptr [ @.str.5, %665 ], [ @.str.2, %661 ]
  store i32 %656, ptr %543, align 4, !tbaa !5
  %667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %668 = load i32, ptr @test_count, align 4, !tbaa !5
  %669 = load i32, ptr %489, align 4, !tbaa !5
  %670 = call ptr @s2n_strerror(i32 noundef %669, ptr noundef nonnull @.str.4) #9
  %671 = load i32, ptr %489, align 4, !tbaa !5
  %672 = call ptr @s2n_strerror_debug(i32 noundef %671, ptr noundef nonnull @.str.4) #9
  %673 = load i32, ptr %543, align 4, !tbaa !5
  %674 = call ptr @strerror(i32 noundef %673) #9
  %675 = load i32, ptr %543, align 4, !tbaa !5
  %676 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %667, ptr noundef nonnull %.str.5.sink578, i32 noundef %668, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 289, ptr noundef %670, ptr noundef %672, ptr noundef %674, i32 noundef %675) #11
  call void @exit(i32 noundef 1) #12
  unreachable

677:                                              ; preds = %650
  %678 = load i32, ptr @test_count, align 4, !tbaa !5
  %679 = add nsw i32 %678, 1
  store i32 %679, ptr @test_count, align 4, !tbaa !5
  %680 = call i32 @pipe(ptr noundef nonnull %5) #9
  %681 = icmp eq i32 %680, -1
  br i1 %681, label %682, label %704

682:                                              ; preds = %677
  %683 = load i32, ptr %543, align 4, !tbaa !5
  %684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %685 = call i32 @s2n_print_stacktrace(ptr noundef %684) #9
  %686 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %687 = trunc nuw i8 %686 to i1
  br i1 %687, label %688, label %692

688:                                              ; preds = %682
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = call i32 @fileno(ptr noundef %689) #9
  %691 = call i32 @isatty(i32 noundef %690) #9
  %.not330 = icmp eq i32 %691, 0
  br i1 %.not330, label %692, label %693

692:                                              ; preds = %688, %682
  br label %693

693:                                              ; preds = %688, %692
  %.str.5.sink587 = phi ptr [ @.str.5, %692 ], [ @.str.2, %688 ]
  store i32 %683, ptr %543, align 4, !tbaa !5
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = load i32, ptr @test_count, align 4, !tbaa !5
  %696 = load i32, ptr %489, align 4, !tbaa !5
  %697 = call ptr @s2n_strerror(i32 noundef %696, ptr noundef nonnull @.str.4) #9
  %698 = load i32, ptr %489, align 4, !tbaa !5
  %699 = call ptr @s2n_strerror_debug(i32 noundef %698, ptr noundef nonnull @.str.4) #9
  %700 = load i32, ptr %543, align 4, !tbaa !5
  %701 = call ptr @strerror(i32 noundef %700) #9
  %702 = load i32, ptr %543, align 4, !tbaa !5
  %703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %694, ptr noundef nonnull %.str.5.sink587, i32 noundef %695, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 294, ptr noundef %697, ptr noundef %699, ptr noundef %701, i32 noundef %702) #11
  call void @exit(i32 noundef 1) #12
  unreachable

704:                                              ; preds = %677
  %705 = load i32, ptr @test_count, align 4, !tbaa !5
  %706 = add nsw i32 %705, 1
  store i32 %706, ptr @test_count, align 4, !tbaa !5
  %707 = call i32 @s2n_connection_wipe(ptr noundef nonnull %125) #9
  %708 = icmp eq i32 %707, -1
  br i1 %708, label %709, label %731

709:                                              ; preds = %704
  %710 = load i32, ptr %543, align 4, !tbaa !5
  %711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %712 = call i32 @s2n_print_stacktrace(ptr noundef %711) #9
  %713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %714 = trunc nuw i8 %713 to i1
  br i1 %714, label %715, label %719

715:                                              ; preds = %709
  %716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %717 = call i32 @fileno(ptr noundef %716) #9
  %718 = call i32 @isatty(i32 noundef %717) #9
  %.not329 = icmp eq i32 %718, 0
  br i1 %.not329, label %719, label %720

719:                                              ; preds = %715, %709
  br label %720

720:                                              ; preds = %715, %719
  %.str.5.sink596 = phi ptr [ @.str.5, %719 ], [ @.str.2, %715 ]
  store i32 %710, ptr %543, align 4, !tbaa !5
  %721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %722 = load i32, ptr @test_count, align 4, !tbaa !5
  %723 = load i32, ptr %489, align 4, !tbaa !5
  %724 = call ptr @s2n_strerror(i32 noundef %723, ptr noundef nonnull @.str.4) #9
  %725 = load i32, ptr %489, align 4, !tbaa !5
  %726 = call ptr @s2n_strerror_debug(i32 noundef %725, ptr noundef nonnull @.str.4) #9
  %727 = load i32, ptr %543, align 4, !tbaa !5
  %728 = call ptr @strerror(i32 noundef %727) #9
  %729 = load i32, ptr %543, align 4, !tbaa !5
  %730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %721, ptr noundef nonnull %.str.5.sink596, i32 noundef %722, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 296, ptr noundef %724, ptr noundef %726, ptr noundef %728, i32 noundef %729) #11
  call void @exit(i32 noundef 1) #12
  unreachable

731:                                              ; preds = %704
  %732 = load i32, ptr @test_count, align 4, !tbaa !5
  %733 = add nsw i32 %732, 1
  store i32 %733, ptr @test_count, align 4, !tbaa !5
  %734 = load i32, ptr %5, align 4, !tbaa !5
  %735 = call i32 @s2n_connection_set_read_fd(ptr noundef nonnull %125, i32 noundef %734) #9
  %736 = icmp eq i32 %735, -1
  br i1 %736, label %737, label %759

737:                                              ; preds = %731
  %738 = load i32, ptr %543, align 4, !tbaa !5
  %739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %740 = call i32 @s2n_print_stacktrace(ptr noundef %739) #9
  %741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %742 = trunc nuw i8 %741 to i1
  br i1 %742, label %743, label %747

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

747:                                              ; preds = %743, %737
  br label %748

748:                                              ; preds = %743, %747
  %.str.5.sink605 = phi ptr [ @.str.5, %747 ], [ @.str.2, %743 ]
  store i32 %738, ptr %543, align 4, !tbaa !5
  %749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %750 = load i32, ptr @test_count, align 4, !tbaa !5
  %751 = load i32, ptr %489, align 4, !tbaa !5
  %752 = call ptr @s2n_strerror(i32 noundef %751, ptr noundef nonnull @.str.4) #9
  %753 = load i32, ptr %489, align 4, !tbaa !5
  %754 = call ptr @s2n_strerror_debug(i32 noundef %753, ptr noundef nonnull @.str.4) #9
  %755 = load i32, ptr %543, align 4, !tbaa !5
  %756 = call ptr @strerror(i32 noundef %755) #9
  %757 = load i32, ptr %543, align 4, !tbaa !5
  %758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %749, ptr noundef nonnull %.str.5.sink605, i32 noundef %750, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 299, ptr noundef %752, ptr noundef %754, ptr noundef %756, i32 noundef %757) #11
  call void @exit(i32 noundef 1) #12
  unreachable

759:                                              ; preds = %731
  store i32 3, ptr %301, align 4, !tbaa !15
  store i32 1, ptr %302, align 8, !tbaa !42
  store i8 33, ptr %303, align 1, !tbaa !43
  store i8 33, ptr %304, align 2, !tbaa !44
  store i8 33, ptr %305, align 4, !tbaa !45
  %760 = call i32 @fork() #9
  %761 = icmp eq i32 %760, 0
  %762 = load i32, ptr @test_count, align 4, !tbaa !5
  %763 = add nsw i32 %762, 1
  store i32 %763, ptr @test_count, align 4, !tbaa !5
  br i1 %761, label %764, label %846

764:                                              ; preds = %759
  %765 = load i32, ptr %5, align 4, !tbaa !5
  %766 = call i32 @close(i32 noundef %765) #9
  %767 = icmp eq i32 %766, -1
  br i1 %767, label %768, label %790

768:                                              ; preds = %764
  %769 = load i32, ptr %543, align 4, !tbaa !5
  %770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %771 = call i32 @s2n_print_stacktrace(ptr noundef %770) #9
  %772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %773 = trunc nuw i8 %772 to i1
  br i1 %773, label %774, label %778

774:                                              ; preds = %768
  %775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %776 = call i32 @fileno(ptr noundef %775) #9
  %777 = call i32 @isatty(i32 noundef %776) #9
  %.not327 = icmp eq i32 %777, 0
  br i1 %.not327, label %778, label %779

778:                                              ; preds = %774, %768
  br label %779

779:                                              ; preds = %774, %778
  %.str.5.sink614 = phi ptr [ @.str.5, %778 ], [ @.str.2, %774 ]
  store i32 %769, ptr %543, align 4, !tbaa !5
  %780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %781 = load i32, ptr @test_count, align 4, !tbaa !5
  %782 = load i32, ptr %489, align 4, !tbaa !5
  %783 = call ptr @s2n_strerror(i32 noundef %782, ptr noundef nonnull @.str.4) #9
  %784 = load i32, ptr %489, align 4, !tbaa !5
  %785 = call ptr @s2n_strerror_debug(i32 noundef %784, ptr noundef nonnull @.str.4) #9
  %786 = load i32, ptr %543, align 4, !tbaa !5
  %787 = call ptr @strerror(i32 noundef %786) #9
  %788 = load i32, ptr %543, align 4, !tbaa !5
  %789 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %780, ptr noundef nonnull %.str.5.sink614, i32 noundef %781, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 312, ptr noundef %783, ptr noundef %785, ptr noundef %787, i32 noundef %788) #11
  call void @exit(i32 noundef 1) #12
  unreachable

790:                                              ; preds = %764
  %791 = load i32, ptr %400, align 4, !tbaa !5
  call void @send_messages(i32 noundef %791, ptr noundef nonnull @server_hello_message, i32 noundef 74, ptr noundef nonnull @empty_certificate_list, i32 noundef 7)
  %792 = load i32, ptr @test_count, align 4, !tbaa !5
  %793 = add nsw i32 %792, 1
  store i32 %793, ptr @test_count, align 4, !tbaa !5
  %794 = call i32 @s2n_connection_free(ptr noundef nonnull %125) #9
  %795 = icmp eq i32 %794, -1
  br i1 %795, label %796, label %818

796:                                              ; preds = %790
  %797 = load i32, ptr %543, align 4, !tbaa !5
  %798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %799 = call i32 @s2n_print_stacktrace(ptr noundef %798) #9
  %800 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %801 = trunc nuw i8 %800 to i1
  br i1 %801, label %802, label %806

802:                                              ; preds = %796
  %803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %804 = call i32 @fileno(ptr noundef %803) #9
  %805 = call i32 @isatty(i32 noundef %804) #9
  %.not326 = icmp eq i32 %805, 0
  br i1 %.not326, label %806, label %807

806:                                              ; preds = %802, %796
  br label %807

807:                                              ; preds = %802, %806
  %.str.5.sink623 = phi ptr [ @.str.5, %806 ], [ @.str.2, %802 ]
  store i32 %797, ptr %543, align 4, !tbaa !5
  %808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %809 = load i32, ptr @test_count, align 4, !tbaa !5
  %810 = load i32, ptr %489, align 4, !tbaa !5
  %811 = call ptr @s2n_strerror(i32 noundef %810, ptr noundef nonnull @.str.4) #9
  %812 = load i32, ptr %489, align 4, !tbaa !5
  %813 = call ptr @s2n_strerror_debug(i32 noundef %812, ptr noundef nonnull @.str.4) #9
  %814 = load i32, ptr %543, align 4, !tbaa !5
  %815 = call ptr @strerror(i32 noundef %814) #9
  %816 = load i32, ptr %543, align 4, !tbaa !5
  %817 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %808, ptr noundef nonnull %.str.5.sink623, i32 noundef %809, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 316, ptr noundef %811, ptr noundef %813, ptr noundef %815, i32 noundef %816) #11
  call void @exit(i32 noundef 1) #12
  unreachable

818:                                              ; preds = %790
  %819 = load i32, ptr @test_count, align 4, !tbaa !5
  %820 = add nsw i32 %819, 1
  store i32 %820, ptr @test_count, align 4, !tbaa !5
  %821 = call i32 @s2n_config_free(ptr noundef %124) #9
  %822 = icmp eq i32 %821, -1
  br i1 %822, label %823, label %845

823:                                              ; preds = %818
  %824 = load i32, ptr %543, align 4, !tbaa !5
  %825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %826 = call i32 @s2n_print_stacktrace(ptr noundef %825) #9
  %827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %828 = trunc nuw i8 %827 to i1
  br i1 %828, label %829, label %833

829:                                              ; preds = %823
  %830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %831 = call i32 @fileno(ptr noundef %830) #9
  %832 = call i32 @isatty(i32 noundef %831) #9
  %.not325 = icmp eq i32 %832, 0
  br i1 %.not325, label %833, label %834

833:                                              ; preds = %829, %823
  br label %834

834:                                              ; preds = %829, %833
  %.str.5.sink632 = phi ptr [ @.str.5, %833 ], [ @.str.2, %829 ]
  store i32 %824, ptr %543, align 4, !tbaa !5
  %835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %836 = load i32, ptr @test_count, align 4, !tbaa !5
  %837 = load i32, ptr %489, align 4, !tbaa !5
  %838 = call ptr @s2n_strerror(i32 noundef %837, ptr noundef nonnull @.str.4) #9
  %839 = load i32, ptr %489, align 4, !tbaa !5
  %840 = call ptr @s2n_strerror_debug(i32 noundef %839, ptr noundef nonnull @.str.4) #9
  %841 = load i32, ptr %543, align 4, !tbaa !5
  %842 = call ptr @strerror(i32 noundef %841) #9
  %843 = load i32, ptr %543, align 4, !tbaa !5
  %844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %835, ptr noundef nonnull %.str.5.sink632, i32 noundef %836, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 317, ptr noundef %838, ptr noundef %840, ptr noundef %842, i32 noundef %843) #11
  call void @exit(i32 noundef 1) #12
  unreachable

845:                                              ; preds = %818
  call void @exit(i32 noundef 0) #12
  unreachable

846:                                              ; preds = %759
  %847 = load i32, ptr %400, align 4, !tbaa !5
  %848 = call i32 @close(i32 noundef %847) #9
  %849 = icmp eq i32 %848, -1
  br i1 %849, label %850, label %872

850:                                              ; preds = %846
  %851 = load i32, ptr %543, align 4, !tbaa !5
  %852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %853 = call i32 @s2n_print_stacktrace(ptr noundef %852) #9
  %854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %855 = trunc nuw i8 %854 to i1
  br i1 %855, label %856, label %860

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

860:                                              ; preds = %856, %850
  br label %861

861:                                              ; preds = %856, %860
  %.str.5.sink641 = phi ptr [ @.str.5, %860 ], [ @.str.2, %856 ]
  store i32 %851, ptr %543, align 4, !tbaa !5
  %862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %863 = load i32, ptr @test_count, align 4, !tbaa !5
  %864 = load i32, ptr %489, align 4, !tbaa !5
  %865 = call ptr @s2n_strerror(i32 noundef %864, ptr noundef nonnull @.str.4) #9
  %866 = load i32, ptr %489, align 4, !tbaa !5
  %867 = call ptr @s2n_strerror_debug(i32 noundef %866, ptr noundef nonnull @.str.4) #9
  %868 = load i32, ptr %543, align 4, !tbaa !5
  %869 = call ptr @strerror(i32 noundef %868) #9
  %870 = load i32, ptr %543, align 4, !tbaa !5
  %871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %862, ptr noundef nonnull %.str.5.sink641, i32 noundef %863, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 322, ptr noundef %865, ptr noundef %867, ptr noundef %869, i32 noundef %870) #11
  call void @exit(i32 noundef 1) #12
  unreachable

872:                                              ; preds = %846
  %873 = load i32, ptr @test_count, align 4, !tbaa !5
  %874 = add nsw i32 %873, 1
  store i32 %874, ptr @test_count, align 4, !tbaa !5
  %875 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %125, i32 noundef 1) #9
  %876 = icmp eq i32 %875, -1
  br i1 %876, label %877, label %899

877:                                              ; preds = %872
  %878 = load i32, ptr %543, align 4, !tbaa !5
  %879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %880 = call i32 @s2n_print_stacktrace(ptr noundef %879) #9
  %881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %882 = trunc nuw i8 %881 to i1
  br i1 %882, label %883, label %887

883:                                              ; preds = %877
  %884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %885 = call i32 @fileno(ptr noundef %884) #9
  %886 = call i32 @isatty(i32 noundef %885) #9
  %.not323 = icmp eq i32 %886, 0
  br i1 %.not323, label %887, label %888

887:                                              ; preds = %883, %877
  br label %888

888:                                              ; preds = %883, %887
  %.str.5.sink650 = phi ptr [ @.str.5, %887 ], [ @.str.2, %883 ]
  store i32 %878, ptr %543, align 4, !tbaa !5
  %889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %890 = load i32, ptr @test_count, align 4, !tbaa !5
  %891 = load i32, ptr %489, align 4, !tbaa !5
  %892 = call ptr @s2n_strerror(i32 noundef %891, ptr noundef nonnull @.str.4) #9
  %893 = load i32, ptr %489, align 4, !tbaa !5
  %894 = call ptr @s2n_strerror_debug(i32 noundef %893, ptr noundef nonnull @.str.4) #9
  %895 = load i32, ptr %543, align 4, !tbaa !5
  %896 = call ptr @strerror(i32 noundef %895) #9
  %897 = load i32, ptr %543, align 4, !tbaa !5
  %898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %889, ptr noundef nonnull %.str.5.sink650, i32 noundef %890, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 326, ptr noundef %892, ptr noundef %894, ptr noundef %896, i32 noundef %897) #11
  call void @exit(i32 noundef 1) #12
  unreachable

899:                                              ; preds = %872
  %900 = load i32, ptr @test_count, align 4, !tbaa !5
  %901 = add nsw i32 %900, 1
  store i32 %901, ptr @test_count, align 4, !tbaa !5
  %902 = call i32 @s2n_negotiate(ptr noundef nonnull %125, ptr noundef nonnull %3) #9
  %903 = icmp eq i32 %902, -1
  br i1 %903, label %926, label %904

904:                                              ; preds = %899
  %905 = load i32, ptr %543, align 4, !tbaa !5
  %906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %907 = call i32 @s2n_print_stacktrace(ptr noundef %906) #9
  %908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %909 = trunc nuw i8 %908 to i1
  br i1 %909, label %910, label %914

910:                                              ; preds = %904
  %911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %912 = call i32 @fileno(ptr noundef %911) #9
  %913 = call i32 @isatty(i32 noundef %912) #9
  %.not241 = icmp eq i32 %913, 0
  br i1 %.not241, label %914, label %915

914:                                              ; preds = %910, %904
  br label %915

915:                                              ; preds = %910, %914
  %.str.5.sink659 = phi ptr [ @.str.5, %914 ], [ @.str.2, %910 ]
  store i32 %905, ptr %543, align 4, !tbaa !5
  %916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %917 = load i32, ptr @test_count, align 4, !tbaa !5
  %918 = load i32, ptr %489, align 4, !tbaa !5
  %919 = call ptr @s2n_strerror(i32 noundef %918, ptr noundef nonnull @.str.4) #9
  %920 = load i32, ptr %489, align 4, !tbaa !5
  %921 = call ptr @s2n_strerror_debug(i32 noundef %920, ptr noundef nonnull @.str.4) #9
  %922 = load i32, ptr %543, align 4, !tbaa !5
  %923 = call ptr @strerror(i32 noundef %922) #9
  %924 = load i32, ptr %543, align 4, !tbaa !5
  %925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %916, ptr noundef nonnull %.str.5.sink659, i32 noundef %917, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 327, ptr noundef %919, ptr noundef %921, ptr noundef %923, i32 noundef %924) #11
  call void @exit(i32 noundef 1) #12
  unreachable

926:                                              ; preds = %899
  %927 = load i32, ptr @test_count, align 4, !tbaa !5
  %928 = add nsw i32 %927, 1
  store i32 %928, ptr @test_count, align 4, !tbaa !5
  %929 = load i32, ptr %489, align 4, !tbaa !5
  %930 = icmp eq i32 %929, 0
  br i1 %930, label %931, label %953

931:                                              ; preds = %926
  %932 = load i32, ptr %543, align 4, !tbaa !5
  %933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %934 = call i32 @s2n_print_stacktrace(ptr noundef %933) #9
  %935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %936 = trunc nuw i8 %935 to i1
  br i1 %936, label %937, label %941

937:                                              ; preds = %931
  %938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %939 = call i32 @fileno(ptr noundef %938) #9
  %940 = call i32 @isatty(i32 noundef %939) #9
  %.not322 = icmp eq i32 %940, 0
  br i1 %.not322, label %941, label %942

941:                                              ; preds = %937, %931
  br label %942

942:                                              ; preds = %937, %941
  %.str.5.sink668 = phi ptr [ @.str.5, %941 ], [ @.str.2, %937 ]
  store i32 %932, ptr %543, align 4, !tbaa !5
  %943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %944 = load i32, ptr @test_count, align 4, !tbaa !5
  %945 = load i32, ptr %489, align 4, !tbaa !5
  %946 = call ptr @s2n_strerror(i32 noundef %945, ptr noundef nonnull @.str.4) #9
  %947 = load i32, ptr %489, align 4, !tbaa !5
  %948 = call ptr @s2n_strerror_debug(i32 noundef %947, ptr noundef nonnull @.str.4) #9
  %949 = load i32, ptr %543, align 4, !tbaa !5
  %950 = call ptr @strerror(i32 noundef %949) #9
  %951 = load i32, ptr %543, align 4, !tbaa !5
  %952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %943, ptr noundef nonnull %.str.5.sink668, i32 noundef %944, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 327, ptr noundef %946, ptr noundef %948, ptr noundef %950, i32 noundef %951) #11
  call void @exit(i32 noundef 1) #12
  unreachable

953:                                              ; preds = %926
  %954 = add nsw i32 %927, 2
  store i32 %954, ptr @test_count, align 4, !tbaa !5
  %955 = call ptr @s2n_strerror_debug(i32 noundef %929, ptr noundef nonnull @.str.4) #9
  %956 = icmp eq ptr %955, null
  br i1 %956, label %957, label %979

957:                                              ; preds = %953
  %958 = load i32, ptr %543, align 4, !tbaa !5
  %959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %960 = call i32 @s2n_print_stacktrace(ptr noundef %959) #9
  %961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %962 = trunc nuw i8 %961 to i1
  br i1 %962, label %963, label %967

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

967:                                              ; preds = %963, %957
  br label %968

968:                                              ; preds = %963, %967
  %.str.5.sink677 = phi ptr [ @.str.5, %967 ], [ @.str.2, %963 ]
  store i32 %958, ptr %543, align 4, !tbaa !5
  %969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %970 = load i32, ptr @test_count, align 4, !tbaa !5
  %971 = load i32, ptr %489, align 4, !tbaa !5
  %972 = call ptr @s2n_strerror(i32 noundef %971, ptr noundef nonnull @.str.4) #9
  %973 = load i32, ptr %489, align 4, !tbaa !5
  %974 = call ptr @s2n_strerror_debug(i32 noundef %973, ptr noundef nonnull @.str.4) #9
  %975 = load i32, ptr %543, align 4, !tbaa !5
  %976 = call ptr @strerror(i32 noundef %975) #9
  %977 = load i32, ptr %543, align 4, !tbaa !5
  %978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %969, ptr noundef nonnull %.str.5.sink677, i32 noundef %970, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 327, ptr noundef %972, ptr noundef %974, ptr noundef %976, i32 noundef %977) #11
  call void @exit(i32 noundef 1) #12
  unreachable

979:                                              ; preds = %953
  store i32 0, ptr %489, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %543, align 4, !tbaa !5
  %980 = load i32, ptr @test_count, align 4, !tbaa !5
  %981 = add nsw i32 %980, 1
  store i32 %981, ptr @test_count, align 4, !tbaa !5
  %bcmp242 = call i32 @bcmp(ptr noundef nonnull dereferenceable(32) %546, ptr noundef nonnull dereferenceable(32) @zero_to_thirty_one, i64 32)
  %982 = icmp eq i32 %bcmp242, 0
  br i1 %982, label %1005, label %983

983:                                              ; preds = %979
  %984 = load i32, ptr %543, align 4, !tbaa !5
  %985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %986 = call i32 @s2n_print_stacktrace(ptr noundef %985) #9
  %987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %988 = trunc nuw i8 %987 to i1
  br i1 %988, label %989, label %993

989:                                              ; preds = %983
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = call i32 @fileno(ptr noundef %990) #9
  %992 = call i32 @isatty(i32 noundef %991) #9
  %.not243 = icmp eq i32 %992, 0
  br i1 %.not243, label %993, label %994

993:                                              ; preds = %989, %983
  br label %994

994:                                              ; preds = %989, %993
  %.str.5.sink686 = phi ptr [ @.str.5, %993 ], [ @.str.2, %989 ]
  store i32 %984, ptr %543, align 4, !tbaa !5
  %995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %996 = load i32, ptr @test_count, align 4, !tbaa !5
  %997 = load i32, ptr %489, align 4, !tbaa !5
  %998 = call ptr @s2n_strerror(i32 noundef %997, ptr noundef nonnull @.str.4) #9
  %999 = load i32, ptr %489, align 4, !tbaa !5
  %1000 = call ptr @s2n_strerror_debug(i32 noundef %999, ptr noundef nonnull @.str.4) #9
  %1001 = load i32, ptr %543, align 4, !tbaa !5
  %1002 = call ptr @strerror(i32 noundef %1001) #9
  %1003 = load i32, ptr %543, align 4, !tbaa !5
  %1004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %995, ptr noundef nonnull %.str.5.sink686, i32 noundef %996, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 330, ptr noundef %998, ptr noundef %1000, ptr noundef %1002, i32 noundef %1003) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1005:                                             ; preds = %979
  %1006 = add nsw i32 %980, 2
  store i32 %1006, ptr @test_count, align 4, !tbaa !5
  %1007 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %125) #9
  %1008 = icmp eq i32 %1007, 2
  br i1 %1008, label %1031, label %1009

1009:                                             ; preds = %1005
  %1010 = load i32, ptr %543, align 4, !tbaa !5
  %1011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1012 = call i32 @s2n_print_stacktrace(ptr noundef %1011) #9
  %1013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1014 = trunc nuw i8 %1013 to i1
  br i1 %1014, label %1015, label %1019

1015:                                             ; preds = %1009
  %1016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1017 = call i32 @fileno(ptr noundef %1016) #9
  %1018 = call i32 @isatty(i32 noundef %1017) #9
  %.not244 = icmp eq i32 %1018, 0
  br i1 %.not244, label %1019, label %1020

1019:                                             ; preds = %1015, %1009
  br label %1020

1020:                                             ; preds = %1015, %1019
  %.str.5.sink695 = phi ptr [ @.str.5, %1019 ], [ @.str.2, %1015 ]
  store i32 %1010, ptr %543, align 4, !tbaa !5
  %1021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1022 = load i32, ptr @test_count, align 4, !tbaa !5
  %1023 = load i32, ptr %489, align 4, !tbaa !5
  %1024 = call ptr @s2n_strerror(i32 noundef %1023, ptr noundef nonnull @.str.4) #9
  %1025 = load i32, ptr %489, align 4, !tbaa !5
  %1026 = call ptr @s2n_strerror_debug(i32 noundef %1025, ptr noundef nonnull @.str.4) #9
  %1027 = load i32, ptr %543, align 4, !tbaa !5
  %1028 = call ptr @strerror(i32 noundef %1027) #9
  %1029 = load i32, ptr %543, align 4, !tbaa !5
  %1030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1021, ptr noundef nonnull %.str.5.sink695, i32 noundef %1022, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 333, ptr noundef %1024, ptr noundef %1026, ptr noundef %1028, i32 noundef %1029) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1031:                                             ; preds = %1005
  %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 = call i32 @waitpid(i32 noundef %760, ptr noundef nonnull %4, i32 noundef 0) #9
  %1035 = icmp eq i32 %1034, %760
  br i1 %1035, label %1058, label %1036

1036:                                             ; preds = %1031
  %1037 = load i32, ptr %543, align 4, !tbaa !5
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = call i32 @s2n_print_stacktrace(ptr noundef %1038) #9
  %1040 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1041 = trunc nuw i8 %1040 to i1
  br i1 %1041, label %1042, label %1046

1042:                                             ; preds = %1036
  %1043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1044 = call i32 @fileno(ptr noundef %1043) #9
  %1045 = call i32 @isatty(i32 noundef %1044) #9
  %.not245 = icmp eq i32 %1045, 0
  br i1 %.not245, label %1046, label %1047

1046:                                             ; preds = %1042, %1036
  br label %1047

1047:                                             ; preds = %1042, %1046
  %.str.5.sink704 = phi ptr [ @.str.5, %1046 ], [ @.str.2, %1042 ]
  store i32 %1037, ptr %543, align 4, !tbaa !5
  %1048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1049 = load i32, ptr @test_count, align 4, !tbaa !5
  %1050 = load i32, ptr %489, align 4, !tbaa !5
  %1051 = call ptr @s2n_strerror(i32 noundef %1050, ptr noundef nonnull @.str.4) #9
  %1052 = load i32, ptr %489, align 4, !tbaa !5
  %1053 = call ptr @s2n_strerror_debug(i32 noundef %1052, ptr noundef nonnull @.str.4) #9
  %1054 = load i32, ptr %543, align 4, !tbaa !5
  %1055 = call ptr @strerror(i32 noundef %1054) #9
  %1056 = load i32, ptr %543, align 4, !tbaa !5
  %1057 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1048, ptr noundef nonnull %.str.5.sink704, i32 noundef %1049, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 336, ptr noundef %1051, ptr noundef %1053, ptr noundef %1055, i32 noundef %1056) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1058:                                             ; preds = %1031
  %1059 = load i32, ptr @test_count, align 4, !tbaa !5
  %1060 = add nsw i32 %1059, 1
  store i32 %1060, ptr @test_count, align 4, !tbaa !5
  %1061 = load i32, ptr %4, align 4, !tbaa !5
  %1062 = icmp eq i32 %1061, 0
  br i1 %1062, label %1085, label %1063

1063:                                             ; preds = %1058
  %1064 = load i32, ptr %543, align 4, !tbaa !5
  %1065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1066 = call i32 @s2n_print_stacktrace(ptr noundef %1065) #9
  %1067 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1068 = trunc nuw i8 %1067 to i1
  br i1 %1068, label %1069, label %1073

1069:                                             ; preds = %1063
  %1070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1071 = call i32 @fileno(ptr noundef %1070) #9
  %1072 = call i32 @isatty(i32 noundef %1071) #9
  %.not246 = icmp eq i32 %1072, 0
  br i1 %.not246, label %1073, label %1074

1073:                                             ; preds = %1069, %1063
  br label %1074

1074:                                             ; preds = %1069, %1073
  %.str.5.sink713 = phi ptr [ @.str.5, %1073 ], [ @.str.2, %1069 ]
  store i32 %1064, ptr %543, align 4, !tbaa !5
  %1075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1076 = load i32, ptr @test_count, align 4, !tbaa !5
  %1077 = load i32, ptr %489, align 4, !tbaa !5
  %1078 = call ptr @s2n_strerror(i32 noundef %1077, ptr noundef nonnull @.str.4) #9
  %1079 = load i32, ptr %489, align 4, !tbaa !5
  %1080 = call ptr @s2n_strerror_debug(i32 noundef %1079, ptr noundef nonnull @.str.4) #9
  %1081 = load i32, ptr %543, align 4, !tbaa !5
  %1082 = call ptr @strerror(i32 noundef %1081) #9
  %1083 = load i32, ptr %543, align 4, !tbaa !5
  %1084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1075, ptr noundef nonnull %.str.5.sink713, i32 noundef %1076, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 337, ptr noundef %1078, ptr noundef %1080, ptr noundef %1082, i32 noundef %1083) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1085:                                             ; preds = %1058
  %1086 = add nsw i32 %1059, 2
  store i32 %1086, ptr @test_count, align 4, !tbaa !5
  %1087 = load i32, ptr %5, align 4, !tbaa !5
  %1088 = call i32 @close(i32 noundef %1087) #9
  %1089 = icmp eq i32 %1088, -1
  br i1 %1089, label %1090, label %1112

1090:                                             ; preds = %1085
  %1091 = load i32, ptr %543, align 4, !tbaa !5
  %1092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1093 = call i32 @s2n_print_stacktrace(ptr noundef %1092) #9
  %1094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1095 = trunc nuw i8 %1094 to i1
  br i1 %1095, label %1096, label %1100

1096:                                             ; preds = %1090
  %1097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1098 = call i32 @fileno(ptr noundef %1097) #9
  %1099 = call i32 @isatty(i32 noundef %1098) #9
  %.not320 = icmp eq i32 %1099, 0
  br i1 %.not320, label %1100, label %1101

1100:                                             ; preds = %1096, %1090
  br label %1101

1101:                                             ; preds = %1096, %1100
  %.str.5.sink722 = phi ptr [ @.str.5, %1100 ], [ @.str.2, %1096 ]
  store i32 %1091, ptr %543, align 4, !tbaa !5
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = load i32, ptr @test_count, align 4, !tbaa !5
  %1104 = load i32, ptr %489, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror(i32 noundef %1104, ptr noundef nonnull @.str.4) #9
  %1106 = load i32, ptr %489, align 4, !tbaa !5
  %1107 = call ptr @s2n_strerror_debug(i32 noundef %1106, ptr noundef nonnull @.str.4) #9
  %1108 = load i32, ptr %543, align 4, !tbaa !5
  %1109 = call ptr @strerror(i32 noundef %1108) #9
  %1110 = load i32, ptr %543, align 4, !tbaa !5
  %1111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1102, ptr noundef nonnull %.str.5.sink722, i32 noundef %1103, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 338, ptr noundef %1105, ptr noundef %1107, ptr noundef %1109, i32 noundef %1110) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1112:                                             ; preds = %1085
  %1113 = load i32, ptr @test_count, align 4, !tbaa !5
  %1114 = add nsw i32 %1113, 1
  store i32 %1114, ptr @test_count, align 4, !tbaa !5
  %1115 = call i32 @pipe(ptr noundef nonnull %5) #9
  %1116 = icmp eq i32 %1115, -1
  br i1 %1116, label %1117, label %1139

1117:                                             ; preds = %1112
  %1118 = load i32, ptr %543, align 4, !tbaa !5
  %1119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1120 = call i32 @s2n_print_stacktrace(ptr noundef %1119) #9
  %1121 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1122 = trunc nuw i8 %1121 to i1
  br i1 %1122, label %1123, label %1127

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

1127:                                             ; preds = %1123, %1117
  br label %1128

1128:                                             ; preds = %1123, %1127
  %.str.5.sink731 = phi ptr [ @.str.5, %1127 ], [ @.str.2, %1123 ]
  store i32 %1118, ptr %543, align 4, !tbaa !5
  %1129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1130 = load i32, ptr @test_count, align 4, !tbaa !5
  %1131 = load i32, ptr %489, align 4, !tbaa !5
  %1132 = call ptr @s2n_strerror(i32 noundef %1131, ptr noundef nonnull @.str.4) #9
  %1133 = load i32, ptr %489, align 4, !tbaa !5
  %1134 = call ptr @s2n_strerror_debug(i32 noundef %1133, ptr noundef nonnull @.str.4) #9
  %1135 = load i32, ptr %543, align 4, !tbaa !5
  %1136 = call ptr @strerror(i32 noundef %1135) #9
  %1137 = load i32, ptr %543, align 4, !tbaa !5
  %1138 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1129, ptr noundef nonnull %.str.5.sink731, i32 noundef %1130, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 343, ptr noundef %1132, ptr noundef %1134, ptr noundef %1136, i32 noundef %1137) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1139:                                             ; preds = %1112
  %1140 = load i32, ptr @test_count, align 4, !tbaa !5
  %1141 = add nsw i32 %1140, 1
  store i32 %1141, ptr @test_count, align 4, !tbaa !5
  %1142 = call i32 @s2n_connection_wipe(ptr noundef nonnull %125) #9
  %1143 = icmp eq i32 %1142, -1
  br i1 %1143, label %1144, label %1166

1144:                                             ; preds = %1139
  %1145 = load i32, ptr %543, align 4, !tbaa !5
  %1146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1147 = call i32 @s2n_print_stacktrace(ptr noundef %1146) #9
  %1148 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1149 = trunc nuw i8 %1148 to i1
  br i1 %1149, label %1150, label %1154

1150:                                             ; preds = %1144
  %1151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1152 = call i32 @fileno(ptr noundef %1151) #9
  %1153 = call i32 @isatty(i32 noundef %1152) #9
  %.not318 = icmp eq i32 %1153, 0
  br i1 %.not318, label %1154, label %1155

1154:                                             ; preds = %1150, %1144
  br label %1155

1155:                                             ; preds = %1150, %1154
  %.str.5.sink740 = phi ptr [ @.str.5, %1154 ], [ @.str.2, %1150 ]
  store i32 %1145, ptr %543, align 4, !tbaa !5
  %1156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1157 = load i32, ptr @test_count, align 4, !tbaa !5
  %1158 = load i32, ptr %489, align 4, !tbaa !5
  %1159 = call ptr @s2n_strerror(i32 noundef %1158, ptr noundef nonnull @.str.4) #9
  %1160 = load i32, ptr %489, align 4, !tbaa !5
  %1161 = call ptr @s2n_strerror_debug(i32 noundef %1160, ptr noundef nonnull @.str.4) #9
  %1162 = load i32, ptr %543, align 4, !tbaa !5
  %1163 = call ptr @strerror(i32 noundef %1162) #9
  %1164 = load i32, ptr %543, align 4, !tbaa !5
  %1165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1156, ptr noundef nonnull %.str.5.sink740, i32 noundef %1157, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 345, ptr noundef %1159, ptr noundef %1161, ptr noundef %1163, i32 noundef %1164) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1166:                                             ; preds = %1139
  %1167 = load i32, ptr @test_count, align 4, !tbaa !5
  %1168 = add nsw i32 %1167, 1
  store i32 %1168, ptr @test_count, align 4, !tbaa !5
  %1169 = load i32, ptr %5, align 4, !tbaa !5
  %1170 = call i32 @s2n_connection_set_read_fd(ptr noundef nonnull %125, i32 noundef %1169) #9
  %1171 = icmp eq i32 %1170, -1
  br i1 %1171, label %1172, label %1194

1172:                                             ; preds = %1166
  %1173 = load i32, ptr %543, align 4, !tbaa !5
  %1174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1175 = call i32 @s2n_print_stacktrace(ptr noundef %1174) #9
  %1176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1177 = trunc nuw i8 %1176 to i1
  br i1 %1177, label %1178, label %1182

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

1182:                                             ; preds = %1178, %1172
  br label %1183

1183:                                             ; preds = %1178, %1182
  %.str.5.sink749 = phi ptr [ @.str.5, %1182 ], [ @.str.2, %1178 ]
  store i32 %1173, ptr %543, align 4, !tbaa !5
  %1184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1185 = load i32, ptr @test_count, align 4, !tbaa !5
  %1186 = load i32, ptr %489, align 4, !tbaa !5
  %1187 = call ptr @s2n_strerror(i32 noundef %1186, ptr noundef nonnull @.str.4) #9
  %1188 = load i32, ptr %489, align 4, !tbaa !5
  %1189 = call ptr @s2n_strerror_debug(i32 noundef %1188, ptr noundef nonnull @.str.4) #9
  %1190 = load i32, ptr %543, align 4, !tbaa !5
  %1191 = call ptr @strerror(i32 noundef %1190) #9
  %1192 = load i32, ptr %543, align 4, !tbaa !5
  %1193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1184, ptr noundef nonnull %.str.5.sink749, i32 noundef %1185, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 348, ptr noundef %1187, ptr noundef %1189, ptr noundef %1191, i32 noundef %1192) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1194:                                             ; preds = %1166
  store i32 3, ptr %301, align 4, !tbaa !15
  store i32 1, ptr %302, align 8, !tbaa !42
  store i8 33, ptr %303, align 1, !tbaa !43
  store i8 33, ptr %304, align 2, !tbaa !44
  store i8 33, ptr %305, align 4, !tbaa !45
  %1195 = call i32 @fork() #9
  %1196 = icmp eq i32 %1195, 0
  %1197 = load i32, ptr @test_count, align 4, !tbaa !5
  %1198 = add nsw i32 %1197, 1
  store i32 %1198, ptr @test_count, align 4, !tbaa !5
  br i1 %1196, label %1199, label %1281

1199:                                             ; preds = %1194
  %1200 = load i32, ptr %5, align 4, !tbaa !5
  %1201 = call i32 @close(i32 noundef %1200) #9
  %1202 = icmp eq i32 %1201, -1
  br i1 %1202, label %1203, label %1225

1203:                                             ; preds = %1199
  %1204 = load i32, ptr %543, align 4, !tbaa !5
  %1205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1206 = call i32 @s2n_print_stacktrace(ptr noundef %1205) #9
  %1207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1208 = trunc nuw i8 %1207 to i1
  br i1 %1208, label %1209, label %1213

1209:                                             ; preds = %1203
  %1210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1211 = call i32 @fileno(ptr noundef %1210) #9
  %1212 = call i32 @isatty(i32 noundef %1211) #9
  %.not316 = icmp eq i32 %1212, 0
  br i1 %.not316, label %1213, label %1214

1213:                                             ; preds = %1209, %1203
  br label %1214

1214:                                             ; preds = %1209, %1213
  %.str.5.sink758 = phi ptr [ @.str.5, %1213 ], [ @.str.2, %1209 ]
  store i32 %1204, ptr %543, align 4, !tbaa !5
  %1215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1216 = load i32, ptr @test_count, align 4, !tbaa !5
  %1217 = load i32, ptr %489, align 4, !tbaa !5
  %1218 = call ptr @s2n_strerror(i32 noundef %1217, ptr noundef nonnull @.str.4) #9
  %1219 = load i32, ptr %489, align 4, !tbaa !5
  %1220 = call ptr @s2n_strerror_debug(i32 noundef %1219, ptr noundef nonnull @.str.4) #9
  %1221 = load i32, ptr %543, align 4, !tbaa !5
  %1222 = call ptr @strerror(i32 noundef %1221) #9
  %1223 = load i32, ptr %543, align 4, !tbaa !5
  %1224 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1215, ptr noundef nonnull %.str.5.sink758, i32 noundef %1216, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 361, ptr noundef %1218, ptr noundef %1220, ptr noundef %1222, i32 noundef %1223) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1225:                                             ; preds = %1199
  %1226 = load i32, ptr %400, align 4, !tbaa !5
  call void @send_messages(i32 noundef %1226, ptr noundef nonnull @server_hello_message, i32 noundef 74, ptr noundef nonnull @empty_certificate, i32 noundef 10)
  %1227 = load i32, ptr @test_count, align 4, !tbaa !5
  %1228 = add nsw i32 %1227, 1
  store i32 %1228, ptr @test_count, align 4, !tbaa !5
  %1229 = call i32 @s2n_connection_free(ptr noundef nonnull %125) #9
  %1230 = icmp eq i32 %1229, -1
  br i1 %1230, label %1231, label %1253

1231:                                             ; preds = %1225
  %1232 = load i32, ptr %543, align 4, !tbaa !5
  %1233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1234 = call i32 @s2n_print_stacktrace(ptr noundef %1233) #9
  %1235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1236 = trunc nuw i8 %1235 to i1
  br i1 %1236, label %1237, label %1241

1237:                                             ; preds = %1231
  %1238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1239 = call i32 @fileno(ptr noundef %1238) #9
  %1240 = call i32 @isatty(i32 noundef %1239) #9
  %.not315 = icmp eq i32 %1240, 0
  br i1 %.not315, label %1241, label %1242

1241:                                             ; preds = %1237, %1231
  br label %1242

1242:                                             ; preds = %1237, %1241
  %.str.5.sink767 = phi ptr [ @.str.5, %1241 ], [ @.str.2, %1237 ]
  store i32 %1232, ptr %543, align 4, !tbaa !5
  %1243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1244 = load i32, ptr @test_count, align 4, !tbaa !5
  %1245 = load i32, ptr %489, align 4, !tbaa !5
  %1246 = call ptr @s2n_strerror(i32 noundef %1245, ptr noundef nonnull @.str.4) #9
  %1247 = load i32, ptr %489, align 4, !tbaa !5
  %1248 = call ptr @s2n_strerror_debug(i32 noundef %1247, ptr noundef nonnull @.str.4) #9
  %1249 = load i32, ptr %543, align 4, !tbaa !5
  %1250 = call ptr @strerror(i32 noundef %1249) #9
  %1251 = load i32, ptr %543, align 4, !tbaa !5
  %1252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1243, ptr noundef nonnull %.str.5.sink767, i32 noundef %1244, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 365, ptr noundef %1246, ptr noundef %1248, ptr noundef %1250, i32 noundef %1251) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1253:                                             ; preds = %1225
  %1254 = load i32, ptr @test_count, align 4, !tbaa !5
  %1255 = add nsw i32 %1254, 1
  store i32 %1255, ptr @test_count, align 4, !tbaa !5
  %1256 = call i32 @s2n_config_free(ptr noundef %124) #9
  %1257 = icmp eq i32 %1256, -1
  br i1 %1257, label %1258, label %1280

1258:                                             ; preds = %1253
  %1259 = load i32, ptr %543, align 4, !tbaa !5
  %1260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1261 = call i32 @s2n_print_stacktrace(ptr noundef %1260) #9
  %1262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1263 = trunc nuw i8 %1262 to i1
  br i1 %1263, label %1264, label %1268

1264:                                             ; preds = %1258
  %1265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1266 = call i32 @fileno(ptr noundef %1265) #9
  %1267 = call i32 @isatty(i32 noundef %1266) #9
  %.not314 = icmp eq i32 %1267, 0
  br i1 %.not314, label %1268, label %1269

1268:                                             ; preds = %1264, %1258
  br label %1269

1269:                                             ; preds = %1264, %1268
  %.str.5.sink776 = phi ptr [ @.str.5, %1268 ], [ @.str.2, %1264 ]
  store i32 %1259, ptr %543, align 4, !tbaa !5
  %1270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1271 = load i32, ptr @test_count, align 4, !tbaa !5
  %1272 = load i32, ptr %489, align 4, !tbaa !5
  %1273 = call ptr @s2n_strerror(i32 noundef %1272, ptr noundef nonnull @.str.4) #9
  %1274 = load i32, ptr %489, align 4, !tbaa !5
  %1275 = call ptr @s2n_strerror_debug(i32 noundef %1274, ptr noundef nonnull @.str.4) #9
  %1276 = load i32, ptr %543, align 4, !tbaa !5
  %1277 = call ptr @strerror(i32 noundef %1276) #9
  %1278 = load i32, ptr %543, align 4, !tbaa !5
  %1279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1270, ptr noundef nonnull %.str.5.sink776, i32 noundef %1271, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 366, ptr noundef %1273, ptr noundef %1275, ptr noundef %1277, i32 noundef %1278) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1280:                                             ; preds = %1253
  call void @exit(i32 noundef 0) #12
  unreachable

1281:                                             ; preds = %1194
  %1282 = load i32, ptr %400, align 4, !tbaa !5
  %1283 = call i32 @close(i32 noundef %1282) #9
  %1284 = icmp eq i32 %1283, -1
  br i1 %1284, label %1285, label %1307

1285:                                             ; preds = %1281
  %1286 = load i32, ptr %543, align 4, !tbaa !5
  %1287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1288 = call i32 @s2n_print_stacktrace(ptr noundef %1287) #9
  %1289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1290 = trunc nuw i8 %1289 to i1
  br i1 %1290, label %1291, label %1295

1291:                                             ; preds = %1285
  %1292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1293 = call i32 @fileno(ptr noundef %1292) #9
  %1294 = call i32 @isatty(i32 noundef %1293) #9
  %.not313 = icmp eq i32 %1294, 0
  br i1 %.not313, label %1295, label %1296

1295:                                             ; preds = %1291, %1285
  br label %1296

1296:                                             ; preds = %1291, %1295
  %.str.5.sink785 = phi ptr [ @.str.5, %1295 ], [ @.str.2, %1291 ]
  store i32 %1286, ptr %543, align 4, !tbaa !5
  %1297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1298 = load i32, ptr @test_count, align 4, !tbaa !5
  %1299 = load i32, ptr %489, align 4, !tbaa !5
  %1300 = call ptr @s2n_strerror(i32 noundef %1299, ptr noundef nonnull @.str.4) #9
  %1301 = load i32, ptr %489, align 4, !tbaa !5
  %1302 = call ptr @s2n_strerror_debug(i32 noundef %1301, ptr noundef nonnull @.str.4) #9
  %1303 = load i32, ptr %543, align 4, !tbaa !5
  %1304 = call ptr @strerror(i32 noundef %1303) #9
  %1305 = load i32, ptr %543, align 4, !tbaa !5
  %1306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1297, ptr noundef nonnull %.str.5.sink785, i32 noundef %1298, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 371, ptr noundef %1300, ptr noundef %1302, ptr noundef %1304, i32 noundef %1305) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1307:                                             ; preds = %1281
  %1308 = load i32, ptr @test_count, align 4, !tbaa !5
  %1309 = add nsw i32 %1308, 1
  store i32 %1309, ptr @test_count, align 4, !tbaa !5
  %1310 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %125, i32 noundef 1) #9
  %1311 = icmp eq i32 %1310, -1
  br i1 %1311, label %1312, label %1334

1312:                                             ; preds = %1307
  %1313 = load i32, ptr %543, align 4, !tbaa !5
  %1314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1315 = call i32 @s2n_print_stacktrace(ptr noundef %1314) #9
  %1316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1317 = trunc nuw i8 %1316 to i1
  br i1 %1317, label %1318, label %1322

1318:                                             ; preds = %1312
  %1319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1320 = call i32 @fileno(ptr noundef %1319) #9
  %1321 = call i32 @isatty(i32 noundef %1320) #9
  %.not312 = icmp eq i32 %1321, 0
  br i1 %.not312, label %1322, label %1323

1322:                                             ; preds = %1318, %1312
  br label %1323

1323:                                             ; preds = %1318, %1322
  %.str.5.sink794 = phi ptr [ @.str.5, %1322 ], [ @.str.2, %1318 ]
  store i32 %1313, ptr %543, align 4, !tbaa !5
  %1324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1325 = load i32, ptr @test_count, align 4, !tbaa !5
  %1326 = load i32, ptr %489, align 4, !tbaa !5
  %1327 = call ptr @s2n_strerror(i32 noundef %1326, ptr noundef nonnull @.str.4) #9
  %1328 = load i32, ptr %489, align 4, !tbaa !5
  %1329 = call ptr @s2n_strerror_debug(i32 noundef %1328, ptr noundef nonnull @.str.4) #9
  %1330 = load i32, ptr %543, align 4, !tbaa !5
  %1331 = call ptr @strerror(i32 noundef %1330) #9
  %1332 = load i32, ptr %543, align 4, !tbaa !5
  %1333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1324, ptr noundef nonnull %.str.5.sink794, i32 noundef %1325, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 375, ptr noundef %1327, ptr noundef %1329, ptr noundef %1331, i32 noundef %1332) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1334:                                             ; preds = %1307
  %1335 = load i32, ptr @test_count, align 4, !tbaa !5
  %1336 = add nsw i32 %1335, 1
  store i32 %1336, ptr @test_count, align 4, !tbaa !5
  %1337 = call i32 @s2n_negotiate(ptr noundef nonnull %125, ptr noundef nonnull %3) #9
  %1338 = icmp eq i32 %1337, -1
  br i1 %1338, label %1361, label %1339

1339:                                             ; preds = %1334
  %1340 = load i32, ptr %543, align 4, !tbaa !5
  %1341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1342 = call i32 @s2n_print_stacktrace(ptr noundef %1341) #9
  %1343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1344 = trunc nuw i8 %1343 to i1
  br i1 %1344, label %1345, label %1349

1345:                                             ; preds = %1339
  %1346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1347 = call i32 @fileno(ptr noundef %1346) #9
  %1348 = call i32 @isatty(i32 noundef %1347) #9
  %.not247 = icmp eq i32 %1348, 0
  br i1 %.not247, label %1349, label %1350

1349:                                             ; preds = %1345, %1339
  br label %1350

1350:                                             ; preds = %1345, %1349
  %.str.5.sink803 = phi ptr [ @.str.5, %1349 ], [ @.str.2, %1345 ]
  store i32 %1340, ptr %543, align 4, !tbaa !5
  %1351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1352 = load i32, ptr @test_count, align 4, !tbaa !5
  %1353 = load i32, ptr %489, align 4, !tbaa !5
  %1354 = call ptr @s2n_strerror(i32 noundef %1353, ptr noundef nonnull @.str.4) #9
  %1355 = load i32, ptr %489, align 4, !tbaa !5
  %1356 = call ptr @s2n_strerror_debug(i32 noundef %1355, ptr noundef nonnull @.str.4) #9
  %1357 = load i32, ptr %543, align 4, !tbaa !5
  %1358 = call ptr @strerror(i32 noundef %1357) #9
  %1359 = load i32, ptr %543, align 4, !tbaa !5
  %1360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1351, ptr noundef nonnull %.str.5.sink803, i32 noundef %1352, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 376, ptr noundef %1354, ptr noundef %1356, ptr noundef %1358, i32 noundef %1359) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1361:                                             ; preds = %1334
  %1362 = load i32, ptr @test_count, align 4, !tbaa !5
  %1363 = add nsw i32 %1362, 1
  store i32 %1363, ptr @test_count, align 4, !tbaa !5
  %1364 = load i32, ptr %489, align 4, !tbaa !5
  %1365 = icmp eq i32 %1364, 0
  br i1 %1365, label %1366, label %1388

1366:                                             ; preds = %1361
  %1367 = load i32, ptr %543, align 4, !tbaa !5
  %1368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1369 = call i32 @s2n_print_stacktrace(ptr noundef %1368) #9
  %1370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1371 = trunc nuw i8 %1370 to i1
  br i1 %1371, label %1372, label %1376

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

1376:                                             ; preds = %1372, %1366
  br label %1377

1377:                                             ; preds = %1372, %1376
  %.str.5.sink812 = phi ptr [ @.str.5, %1376 ], [ @.str.2, %1372 ]
  store i32 %1367, ptr %543, align 4, !tbaa !5
  %1378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1379 = load i32, ptr @test_count, align 4, !tbaa !5
  %1380 = load i32, ptr %489, align 4, !tbaa !5
  %1381 = call ptr @s2n_strerror(i32 noundef %1380, ptr noundef nonnull @.str.4) #9
  %1382 = load i32, ptr %489, align 4, !tbaa !5
  %1383 = call ptr @s2n_strerror_debug(i32 noundef %1382, ptr noundef nonnull @.str.4) #9
  %1384 = load i32, ptr %543, align 4, !tbaa !5
  %1385 = call ptr @strerror(i32 noundef %1384) #9
  %1386 = load i32, ptr %543, align 4, !tbaa !5
  %1387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1378, ptr noundef nonnull %.str.5.sink812, i32 noundef %1379, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 376, ptr noundef %1381, ptr noundef %1383, ptr noundef %1385, i32 noundef %1386) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1388:                                             ; preds = %1361
  %1389 = add nsw i32 %1362, 2
  store i32 %1389, ptr @test_count, align 4, !tbaa !5
  %1390 = call ptr @s2n_strerror_debug(i32 noundef %1364, ptr noundef nonnull @.str.4) #9
  %1391 = icmp eq ptr %1390, null
  br i1 %1391, label %1392, label %1414

1392:                                             ; preds = %1388
  %1393 = load i32, ptr %543, align 4, !tbaa !5
  %1394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1395 = call i32 @s2n_print_stacktrace(ptr noundef %1394) #9
  %1396 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1397 = trunc nuw i8 %1396 to i1
  br i1 %1397, label %1398, label %1402

1398:                                             ; preds = %1392
  %1399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1400 = call i32 @fileno(ptr noundef %1399) #9
  %1401 = call i32 @isatty(i32 noundef %1400) #9
  %.not310 = icmp eq i32 %1401, 0
  br i1 %.not310, label %1402, label %1403

1402:                                             ; preds = %1398, %1392
  br label %1403

1403:                                             ; preds = %1398, %1402
  %.str.5.sink821 = phi ptr [ @.str.5, %1402 ], [ @.str.2, %1398 ]
  store i32 %1393, ptr %543, align 4, !tbaa !5
  %1404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1405 = load i32, ptr @test_count, align 4, !tbaa !5
  %1406 = load i32, ptr %489, align 4, !tbaa !5
  %1407 = call ptr @s2n_strerror(i32 noundef %1406, ptr noundef nonnull @.str.4) #9
  %1408 = load i32, ptr %489, align 4, !tbaa !5
  %1409 = call ptr @s2n_strerror_debug(i32 noundef %1408, ptr noundef nonnull @.str.4) #9
  %1410 = load i32, ptr %543, align 4, !tbaa !5
  %1411 = call ptr @strerror(i32 noundef %1410) #9
  %1412 = load i32, ptr %543, align 4, !tbaa !5
  %1413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1404, ptr noundef nonnull %.str.5.sink821, i32 noundef %1405, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 376, ptr noundef %1407, ptr noundef %1409, ptr noundef %1411, i32 noundef %1412) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1414:                                             ; preds = %1388
  store i32 0, ptr %489, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %543, align 4, !tbaa !5
  %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
  %bcmp248 = call i32 @bcmp(ptr noundef nonnull dereferenceable(32) %546, ptr noundef nonnull dereferenceable(32) @zero_to_thirty_one, i64 32)
  %1417 = icmp eq i32 %bcmp248, 0
  br i1 %1417, label %1440, label %1418

1418:                                             ; preds = %1414
  %1419 = load i32, ptr %543, align 4, !tbaa !5
  %1420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1421 = call i32 @s2n_print_stacktrace(ptr noundef %1420) #9
  %1422 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1423 = trunc nuw i8 %1422 to i1
  br i1 %1423, label %1424, label %1428

1424:                                             ; preds = %1418
  %1425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1426 = call i32 @fileno(ptr noundef %1425) #9
  %1427 = call i32 @isatty(i32 noundef %1426) #9
  %.not249 = icmp eq i32 %1427, 0
  br i1 %.not249, label %1428, label %1429

1428:                                             ; preds = %1424, %1418
  br label %1429

1429:                                             ; preds = %1424, %1428
  %.str.5.sink830 = phi ptr [ @.str.5, %1428 ], [ @.str.2, %1424 ]
  store i32 %1419, ptr %543, align 4, !tbaa !5
  %1430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1431 = load i32, ptr @test_count, align 4, !tbaa !5
  %1432 = load i32, ptr %489, align 4, !tbaa !5
  %1433 = call ptr @s2n_strerror(i32 noundef %1432, ptr noundef nonnull @.str.4) #9
  %1434 = load i32, ptr %489, align 4, !tbaa !5
  %1435 = call ptr @s2n_strerror_debug(i32 noundef %1434, ptr noundef nonnull @.str.4) #9
  %1436 = load i32, ptr %543, align 4, !tbaa !5
  %1437 = call ptr @strerror(i32 noundef %1436) #9
  %1438 = load i32, ptr %543, align 4, !tbaa !5
  %1439 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1430, ptr noundef nonnull %.str.5.sink830, i32 noundef %1431, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 379, ptr noundef %1433, ptr noundef %1435, ptr noundef %1437, i32 noundef %1438) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1440:                                             ; preds = %1414
  %1441 = add nsw i32 %1415, 2
  store i32 %1441, ptr @test_count, align 4, !tbaa !5
  %1442 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %125) #9
  %1443 = icmp eq i32 %1442, 2
  br i1 %1443, label %1466, label %1444

1444:                                             ; preds = %1440
  %1445 = load i32, ptr %543, align 4, !tbaa !5
  %1446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1447 = call i32 @s2n_print_stacktrace(ptr noundef %1446) #9
  %1448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1449 = trunc nuw i8 %1448 to i1
  br i1 %1449, label %1450, label %1454

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

1454:                                             ; preds = %1450, %1444
  br label %1455

1455:                                             ; preds = %1450, %1454
  %.str.5.sink839 = phi ptr [ @.str.5, %1454 ], [ @.str.2, %1450 ]
  store i32 %1445, ptr %543, align 4, !tbaa !5
  %1456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1457 = load i32, ptr @test_count, align 4, !tbaa !5
  %1458 = load i32, ptr %489, align 4, !tbaa !5
  %1459 = call ptr @s2n_strerror(i32 noundef %1458, ptr noundef nonnull @.str.4) #9
  %1460 = load i32, ptr %489, align 4, !tbaa !5
  %1461 = call ptr @s2n_strerror_debug(i32 noundef %1460, ptr noundef nonnull @.str.4) #9
  %1462 = load i32, ptr %543, align 4, !tbaa !5
  %1463 = call ptr @strerror(i32 noundef %1462) #9
  %1464 = load i32, ptr %543, align 4, !tbaa !5
  %1465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1456, ptr noundef nonnull %.str.5.sink839, i32 noundef %1457, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 382, ptr noundef %1459, ptr noundef %1461, ptr noundef %1463, i32 noundef %1464) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1466:                                             ; preds = %1440
  %1467 = load i32, ptr @test_count, align 4, !tbaa !5
  %1468 = add nsw i32 %1467, 1
  store i32 %1468, ptr @test_count, align 4, !tbaa !5
  %1469 = call i32 @waitpid(i32 noundef %1195, ptr noundef nonnull %4, i32 noundef 0) #9
  %1470 = icmp eq i32 %1469, %1195
  br i1 %1470, label %1493, label %1471

1471:                                             ; preds = %1466
  %1472 = load i32, ptr %543, align 4, !tbaa !5
  %1473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1474 = call i32 @s2n_print_stacktrace(ptr noundef %1473) #9
  %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 = call i32 @fileno(ptr noundef %1478) #9
  %1480 = call i32 @isatty(i32 noundef %1479) #9
  %.not251 = icmp eq i32 %1480, 0
  br i1 %.not251, label %1481, label %1482

1481:                                             ; preds = %1477, %1471
  br label %1482

1482:                                             ; preds = %1477, %1481
  %.str.5.sink848 = phi ptr [ @.str.5, %1481 ], [ @.str.2, %1477 ]
  store i32 %1472, ptr %543, 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 %489, align 4, !tbaa !5
  %1486 = call ptr @s2n_strerror(i32 noundef %1485, ptr noundef nonnull @.str.4) #9
  %1487 = load i32, ptr %489, align 4, !tbaa !5
  %1488 = call ptr @s2n_strerror_debug(i32 noundef %1487, ptr noundef nonnull @.str.4) #9
  %1489 = load i32, ptr %543, align 4, !tbaa !5
  %1490 = call ptr @strerror(i32 noundef %1489) #9
  %1491 = load i32, ptr %543, align 4, !tbaa !5
  %1492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1483, ptr noundef nonnull %.str.5.sink848, i32 noundef %1484, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 385, ptr noundef %1486, ptr noundef %1488, ptr noundef %1490, i32 noundef %1491) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1493:                                             ; preds = %1466
  %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 = load i32, ptr %4, align 4, !tbaa !5
  %1497 = icmp eq i32 %1496, 0
  br i1 %1497, label %1520, label %1498

1498:                                             ; preds = %1493
  %1499 = load i32, ptr %543, align 4, !tbaa !5
  %1500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1501 = call i32 @s2n_print_stacktrace(ptr noundef %1500) #9
  %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 = call i32 @fileno(ptr noundef %1505) #9
  %1507 = call i32 @isatty(i32 noundef %1506) #9
  %.not252 = icmp eq i32 %1507, 0
  br i1 %.not252, label %1508, label %1509

1508:                                             ; preds = %1504, %1498
  br label %1509

1509:                                             ; preds = %1504, %1508
  %.str.5.sink857 = phi ptr [ @.str.5, %1508 ], [ @.str.2, %1504 ]
  store i32 %1499, ptr %543, 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 %489, align 4, !tbaa !5
  %1513 = call ptr @s2n_strerror(i32 noundef %1512, ptr noundef nonnull @.str.4) #9
  %1514 = load i32, ptr %489, align 4, !tbaa !5
  %1515 = call ptr @s2n_strerror_debug(i32 noundef %1514, ptr noundef nonnull @.str.4) #9
  %1516 = load i32, ptr %543, align 4, !tbaa !5
  %1517 = call ptr @strerror(i32 noundef %1516) #9
  %1518 = load i32, ptr %543, align 4, !tbaa !5
  %1519 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1510, ptr noundef nonnull %.str.5.sink857, i32 noundef %1511, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 386, ptr noundef %1513, ptr noundef %1515, ptr noundef %1517, i32 noundef %1518) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1520:                                             ; preds = %1493
  %1521 = add nsw i32 %1494, 2
  store i32 %1521, ptr @test_count, align 4, !tbaa !5
  %1522 = load i32, ptr %5, align 4, !tbaa !5
  %1523 = call i32 @close(i32 noundef %1522) #9
  %1524 = icmp eq i32 %1523, -1
  br i1 %1524, label %1525, label %1547

1525:                                             ; preds = %1520
  %1526 = load i32, ptr %543, align 4, !tbaa !5
  %1527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1528 = call i32 @s2n_print_stacktrace(ptr noundef %1527) #9
  %1529 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1530 = trunc nuw i8 %1529 to i1
  br i1 %1530, label %1531, label %1535

1531:                                             ; preds = %1525
  %1532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1533 = call i32 @fileno(ptr noundef %1532) #9
  %1534 = call i32 @isatty(i32 noundef %1533) #9
  %.not309 = icmp eq i32 %1534, 0
  br i1 %.not309, label %1535, label %1536

1535:                                             ; preds = %1531, %1525
  br label %1536

1536:                                             ; preds = %1531, %1535
  %.str.5.sink866 = phi ptr [ @.str.5, %1535 ], [ @.str.2, %1531 ]
  store i32 %1526, ptr %543, align 4, !tbaa !5
  %1537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1538 = load i32, ptr @test_count, align 4, !tbaa !5
  %1539 = load i32, ptr %489, align 4, !tbaa !5
  %1540 = call ptr @s2n_strerror(i32 noundef %1539, ptr noundef nonnull @.str.4) #9
  %1541 = load i32, ptr %489, align 4, !tbaa !5
  %1542 = call ptr @s2n_strerror_debug(i32 noundef %1541, ptr noundef nonnull @.str.4) #9
  %1543 = load i32, ptr %543, align 4, !tbaa !5
  %1544 = call ptr @strerror(i32 noundef %1543) #9
  %1545 = load i32, ptr %543, align 4, !tbaa !5
  %1546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1537, ptr noundef nonnull %.str.5.sink866, i32 noundef %1538, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 387, ptr noundef %1540, ptr noundef %1542, ptr noundef %1544, i32 noundef %1545) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1547:                                             ; preds = %1520
  %1548 = load i32, ptr @test_count, align 4, !tbaa !5
  %1549 = add nsw i32 %1548, 1
  store i32 %1549, ptr @test_count, align 4, !tbaa !5
  %1550 = call i32 @pipe(ptr noundef nonnull %5) #9
  %1551 = icmp eq i32 %1550, -1
  br i1 %1551, label %1552, label %1574

1552:                                             ; preds = %1547
  %1553 = load i32, ptr %543, align 4, !tbaa !5
  %1554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1555 = call i32 @s2n_print_stacktrace(ptr noundef %1554) #9
  %1556 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1557 = trunc nuw i8 %1556 to i1
  br i1 %1557, label %1558, label %1562

1558:                                             ; preds = %1552
  %1559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1560 = call i32 @fileno(ptr noundef %1559) #9
  %1561 = call i32 @isatty(i32 noundef %1560) #9
  %.not308 = icmp eq i32 %1561, 0
  br i1 %.not308, label %1562, label %1563

1562:                                             ; preds = %1558, %1552
  br label %1563

1563:                                             ; preds = %1558, %1562
  %.str.5.sink875 = phi ptr [ @.str.5, %1562 ], [ @.str.2, %1558 ]
  store i32 %1553, ptr %543, align 4, !tbaa !5
  %1564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1565 = load i32, ptr @test_count, align 4, !tbaa !5
  %1566 = load i32, ptr %489, align 4, !tbaa !5
  %1567 = call ptr @s2n_strerror(i32 noundef %1566, ptr noundef nonnull @.str.4) #9
  %1568 = load i32, ptr %489, align 4, !tbaa !5
  %1569 = call ptr @s2n_strerror_debug(i32 noundef %1568, ptr noundef nonnull @.str.4) #9
  %1570 = load i32, ptr %543, align 4, !tbaa !5
  %1571 = call ptr @strerror(i32 noundef %1570) #9
  %1572 = load i32, ptr %543, align 4, !tbaa !5
  %1573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1564, ptr noundef nonnull %.str.5.sink875, i32 noundef %1565, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 392, ptr noundef %1567, ptr noundef %1569, ptr noundef %1571, i32 noundef %1572) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1574:                                             ; preds = %1547
  %1575 = load i32, ptr @test_count, align 4, !tbaa !5
  %1576 = add nsw i32 %1575, 1
  store i32 %1576, ptr @test_count, align 4, !tbaa !5
  %1577 = call i32 @s2n_connection_wipe(ptr noundef nonnull %125) #9
  %1578 = icmp eq i32 %1577, -1
  br i1 %1578, label %1579, label %1601

1579:                                             ; preds = %1574
  %1580 = load i32, ptr %543, align 4, !tbaa !5
  %1581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1582 = call i32 @s2n_print_stacktrace(ptr noundef %1581) #9
  %1583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1584 = trunc nuw i8 %1583 to i1
  br i1 %1584, label %1585, label %1589

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

1589:                                             ; preds = %1585, %1579
  br label %1590

1590:                                             ; preds = %1585, %1589
  %.str.5.sink884 = phi ptr [ @.str.5, %1589 ], [ @.str.2, %1585 ]
  store i32 %1580, ptr %543, align 4, !tbaa !5
  %1591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1592 = load i32, ptr @test_count, align 4, !tbaa !5
  %1593 = load i32, ptr %489, align 4, !tbaa !5
  %1594 = call ptr @s2n_strerror(i32 noundef %1593, ptr noundef nonnull @.str.4) #9
  %1595 = load i32, ptr %489, align 4, !tbaa !5
  %1596 = call ptr @s2n_strerror_debug(i32 noundef %1595, ptr noundef nonnull @.str.4) #9
  %1597 = load i32, ptr %543, align 4, !tbaa !5
  %1598 = call ptr @strerror(i32 noundef %1597) #9
  %1599 = load i32, ptr %543, align 4, !tbaa !5
  %1600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1591, ptr noundef nonnull %.str.5.sink884, i32 noundef %1592, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 394, ptr noundef %1594, ptr noundef %1596, ptr noundef %1598, i32 noundef %1599) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1601:                                             ; preds = %1574
  %1602 = load i32, ptr @test_count, align 4, !tbaa !5
  %1603 = add nsw i32 %1602, 1
  store i32 %1603, ptr @test_count, align 4, !tbaa !5
  %1604 = load i32, ptr %5, align 4, !tbaa !5
  %1605 = call i32 @s2n_connection_set_read_fd(ptr noundef nonnull %125, i32 noundef %1604) #9
  %1606 = icmp eq i32 %1605, -1
  br i1 %1606, label %1607, label %1629

1607:                                             ; preds = %1601
  %1608 = load i32, ptr %543, align 4, !tbaa !5
  %1609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1610 = call i32 @s2n_print_stacktrace(ptr noundef %1609) #9
  %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 = call i32 @fileno(ptr noundef %1614) #9
  %1616 = call i32 @isatty(i32 noundef %1615) #9
  %.not306 = icmp eq i32 %1616, 0
  br i1 %.not306, label %1617, label %1618

1617:                                             ; preds = %1613, %1607
  br label %1618

1618:                                             ; preds = %1613, %1617
  %.str.5.sink893 = phi ptr [ @.str.5, %1617 ], [ @.str.2, %1613 ]
  store i32 %1608, ptr %543, 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 %489, align 4, !tbaa !5
  %1622 = call ptr @s2n_strerror(i32 noundef %1621, ptr noundef nonnull @.str.4) #9
  %1623 = load i32, ptr %489, align 4, !tbaa !5
  %1624 = call ptr @s2n_strerror_debug(i32 noundef %1623, ptr noundef nonnull @.str.4) #9
  %1625 = load i32, ptr %543, align 4, !tbaa !5
  %1626 = call ptr @strerror(i32 noundef %1625) #9
  %1627 = load i32, ptr %543, align 4, !tbaa !5
  %1628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1619, ptr noundef nonnull %.str.5.sink893, i32 noundef %1620, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 397, ptr noundef %1622, ptr noundef %1624, ptr noundef %1626, i32 noundef %1627) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1629:                                             ; preds = %1601
  store i32 3, ptr %301, align 4, !tbaa !15
  store i32 1, ptr %302, align 8, !tbaa !42
  store i8 33, ptr %303, align 1, !tbaa !43
  store i8 33, ptr %304, align 2, !tbaa !44
  store i8 33, ptr %305, align 4, !tbaa !45
  %1630 = call i32 @fork() #9
  %1631 = icmp eq i32 %1630, 0
  %1632 = load i32, ptr @test_count, align 4, !tbaa !5
  %1633 = add nsw i32 %1632, 1
  store i32 %1633, ptr @test_count, align 4, !tbaa !5
  br i1 %1631, label %1634, label %1716

1634:                                             ; preds = %1629
  %1635 = load i32, ptr %5, align 4, !tbaa !5
  %1636 = call i32 @close(i32 noundef %1635) #9
  %1637 = icmp eq i32 %1636, -1
  br i1 %1637, label %1638, label %1660

1638:                                             ; preds = %1634
  %1639 = load i32, ptr %543, align 4, !tbaa !5
  %1640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1641 = call i32 @s2n_print_stacktrace(ptr noundef %1640) #9
  %1642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1643 = trunc nuw i8 %1642 to i1
  br i1 %1643, label %1644, label %1648

1644:                                             ; preds = %1638
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = call i32 @fileno(ptr noundef %1645) #9
  %1647 = call i32 @isatty(i32 noundef %1646) #9
  %.not305 = icmp eq i32 %1647, 0
  br i1 %.not305, label %1648, label %1649

1648:                                             ; preds = %1644, %1638
  br label %1649

1649:                                             ; preds = %1644, %1648
  %.str.5.sink902 = phi ptr [ @.str.5, %1648 ], [ @.str.2, %1644 ]
  store i32 %1639, ptr %543, align 4, !tbaa !5
  %1650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1651 = load i32, ptr @test_count, align 4, !tbaa !5
  %1652 = load i32, ptr %489, align 4, !tbaa !5
  %1653 = call ptr @s2n_strerror(i32 noundef %1652, ptr noundef nonnull @.str.4) #9
  %1654 = load i32, ptr %489, align 4, !tbaa !5
  %1655 = call ptr @s2n_strerror_debug(i32 noundef %1654, ptr noundef nonnull @.str.4) #9
  %1656 = load i32, ptr %543, align 4, !tbaa !5
  %1657 = call ptr @strerror(i32 noundef %1656) #9
  %1658 = load i32, ptr %543, align 4, !tbaa !5
  %1659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1650, ptr noundef nonnull %.str.5.sink902, i32 noundef %1651, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 410, ptr noundef %1653, ptr noundef %1655, ptr noundef %1657, i32 noundef %1658) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1660:                                             ; preds = %1634
  %1661 = load i32, ptr %400, align 4, !tbaa !5
  call void @send_messages(i32 noundef %1661, ptr noundef nonnull @server_hello_message, i32 noundef 74, ptr noundef nonnull @certificate_list_too_large, i32 noundef 10)
  %1662 = load i32, ptr @test_count, align 4, !tbaa !5
  %1663 = add nsw i32 %1662, 1
  store i32 %1663, ptr @test_count, align 4, !tbaa !5
  %1664 = call i32 @s2n_connection_free(ptr noundef nonnull %125) #9
  %1665 = icmp eq i32 %1664, -1
  br i1 %1665, label %1666, label %1688

1666:                                             ; preds = %1660
  %1667 = load i32, ptr %543, align 4, !tbaa !5
  %1668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1669 = call i32 @s2n_print_stacktrace(ptr noundef %1668) #9
  %1670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1671 = trunc nuw i8 %1670 to i1
  br i1 %1671, label %1672, label %1676

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

1676:                                             ; preds = %1672, %1666
  br label %1677

1677:                                             ; preds = %1672, %1676
  %.str.5.sink911 = phi ptr [ @.str.5, %1676 ], [ @.str.2, %1672 ]
  store i32 %1667, ptr %543, align 4, !tbaa !5
  %1678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1679 = load i32, ptr @test_count, align 4, !tbaa !5
  %1680 = load i32, ptr %489, align 4, !tbaa !5
  %1681 = call ptr @s2n_strerror(i32 noundef %1680, ptr noundef nonnull @.str.4) #9
  %1682 = load i32, ptr %489, align 4, !tbaa !5
  %1683 = call ptr @s2n_strerror_debug(i32 noundef %1682, ptr noundef nonnull @.str.4) #9
  %1684 = load i32, ptr %543, align 4, !tbaa !5
  %1685 = call ptr @strerror(i32 noundef %1684) #9
  %1686 = load i32, ptr %543, align 4, !tbaa !5
  %1687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1678, ptr noundef nonnull %.str.5.sink911, i32 noundef %1679, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 414, ptr noundef %1681, ptr noundef %1683, ptr noundef %1685, i32 noundef %1686) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1688:                                             ; preds = %1660
  %1689 = load i32, ptr @test_count, align 4, !tbaa !5
  %1690 = add nsw i32 %1689, 1
  store i32 %1690, ptr @test_count, align 4, !tbaa !5
  %1691 = call i32 @s2n_config_free(ptr noundef %124) #9
  %1692 = icmp eq i32 %1691, -1
  br i1 %1692, label %1693, label %1715

1693:                                             ; preds = %1688
  %1694 = load i32, ptr %543, align 4, !tbaa !5
  %1695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1696 = call i32 @s2n_print_stacktrace(ptr noundef %1695) #9
  %1697 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1698 = trunc nuw i8 %1697 to i1
  br i1 %1698, label %1699, label %1703

1699:                                             ; preds = %1693
  %1700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1701 = call i32 @fileno(ptr noundef %1700) #9
  %1702 = call i32 @isatty(i32 noundef %1701) #9
  %.not303 = icmp eq i32 %1702, 0
  br i1 %.not303, label %1703, label %1704

1703:                                             ; preds = %1699, %1693
  br label %1704

1704:                                             ; preds = %1699, %1703
  %.str.5.sink920 = phi ptr [ @.str.5, %1703 ], [ @.str.2, %1699 ]
  store i32 %1694, ptr %543, align 4, !tbaa !5
  %1705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1706 = load i32, ptr @test_count, align 4, !tbaa !5
  %1707 = load i32, ptr %489, align 4, !tbaa !5
  %1708 = call ptr @s2n_strerror(i32 noundef %1707, ptr noundef nonnull @.str.4) #9
  %1709 = load i32, ptr %489, align 4, !tbaa !5
  %1710 = call ptr @s2n_strerror_debug(i32 noundef %1709, ptr noundef nonnull @.str.4) #9
  %1711 = load i32, ptr %543, align 4, !tbaa !5
  %1712 = call ptr @strerror(i32 noundef %1711) #9
  %1713 = load i32, ptr %543, align 4, !tbaa !5
  %1714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1705, ptr noundef nonnull %.str.5.sink920, i32 noundef %1706, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 415, ptr noundef %1708, ptr noundef %1710, ptr noundef %1712, i32 noundef %1713) #11
  call void @exit(i32 noundef 1) #12
  unreachable

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

1716:                                             ; preds = %1629
  %1717 = load i32, ptr %400, align 4, !tbaa !5
  %1718 = call i32 @close(i32 noundef %1717) #9
  %1719 = icmp eq i32 %1718, -1
  br i1 %1719, label %1720, label %1742

1720:                                             ; preds = %1716
  %1721 = load i32, ptr %543, align 4, !tbaa !5
  %1722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1723 = call i32 @s2n_print_stacktrace(ptr noundef %1722) #9
  %1724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1725 = trunc nuw i8 %1724 to i1
  br i1 %1725, label %1726, label %1730

1726:                                             ; preds = %1720
  %1727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1728 = call i32 @fileno(ptr noundef %1727) #9
  %1729 = call i32 @isatty(i32 noundef %1728) #9
  %.not302 = icmp eq i32 %1729, 0
  br i1 %.not302, label %1730, label %1731

1730:                                             ; preds = %1726, %1720
  br label %1731

1731:                                             ; preds = %1726, %1730
  %.str.5.sink929 = phi ptr [ @.str.5, %1730 ], [ @.str.2, %1726 ]
  store i32 %1721, ptr %543, align 4, !tbaa !5
  %1732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1733 = load i32, ptr @test_count, align 4, !tbaa !5
  %1734 = load i32, ptr %489, align 4, !tbaa !5
  %1735 = call ptr @s2n_strerror(i32 noundef %1734, ptr noundef nonnull @.str.4) #9
  %1736 = load i32, ptr %489, align 4, !tbaa !5
  %1737 = call ptr @s2n_strerror_debug(i32 noundef %1736, ptr noundef nonnull @.str.4) #9
  %1738 = load i32, ptr %543, align 4, !tbaa !5
  %1739 = call ptr @strerror(i32 noundef %1738) #9
  %1740 = load i32, ptr %543, align 4, !tbaa !5
  %1741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1732, ptr noundef nonnull %.str.5.sink929, i32 noundef %1733, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 420, ptr noundef %1735, ptr noundef %1737, ptr noundef %1739, i32 noundef %1740) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1742:                                             ; preds = %1716
  %1743 = load i32, ptr @test_count, align 4, !tbaa !5
  %1744 = add nsw i32 %1743, 1
  store i32 %1744, ptr @test_count, align 4, !tbaa !5
  %1745 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %125, i32 noundef 1) #9
  %1746 = icmp eq i32 %1745, -1
  br i1 %1746, label %1747, label %1769

1747:                                             ; preds = %1742
  %1748 = load i32, ptr %543, align 4, !tbaa !5
  %1749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1750 = call i32 @s2n_print_stacktrace(ptr noundef %1749) #9
  %1751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1752 = trunc nuw i8 %1751 to i1
  br i1 %1752, label %1753, label %1757

1753:                                             ; preds = %1747
  %1754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1755 = call i32 @fileno(ptr noundef %1754) #9
  %1756 = call i32 @isatty(i32 noundef %1755) #9
  %.not301 = icmp eq i32 %1756, 0
  br i1 %.not301, label %1757, label %1758

1757:                                             ; preds = %1753, %1747
  br label %1758

1758:                                             ; preds = %1753, %1757
  %.str.5.sink938 = phi ptr [ @.str.5, %1757 ], [ @.str.2, %1753 ]
  store i32 %1748, ptr %543, align 4, !tbaa !5
  %1759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1760 = load i32, ptr @test_count, align 4, !tbaa !5
  %1761 = load i32, ptr %489, align 4, !tbaa !5
  %1762 = call ptr @s2n_strerror(i32 noundef %1761, ptr noundef nonnull @.str.4) #9
  %1763 = load i32, ptr %489, align 4, !tbaa !5
  %1764 = call ptr @s2n_strerror_debug(i32 noundef %1763, ptr noundef nonnull @.str.4) #9
  %1765 = load i32, ptr %543, align 4, !tbaa !5
  %1766 = call ptr @strerror(i32 noundef %1765) #9
  %1767 = load i32, ptr %543, align 4, !tbaa !5
  %1768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1759, ptr noundef nonnull %.str.5.sink938, i32 noundef %1760, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 424, ptr noundef %1762, ptr noundef %1764, ptr noundef %1766, i32 noundef %1767) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1769:                                             ; preds = %1742
  %1770 = load i32, ptr @test_count, align 4, !tbaa !5
  %1771 = add nsw i32 %1770, 1
  store i32 %1771, ptr @test_count, align 4, !tbaa !5
  %1772 = call i32 @s2n_negotiate(ptr noundef nonnull %125, ptr noundef nonnull %3) #9
  %1773 = icmp eq i32 %1772, -1
  br i1 %1773, label %1796, label %1774

1774:                                             ; preds = %1769
  %1775 = load i32, ptr %543, align 4, !tbaa !5
  %1776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1777 = call i32 @s2n_print_stacktrace(ptr noundef %1776) #9
  %1778 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1779 = trunc nuw i8 %1778 to i1
  br i1 %1779, label %1780, label %1784

1780:                                             ; preds = %1774
  %1781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1782 = call i32 @fileno(ptr noundef %1781) #9
  %1783 = call i32 @isatty(i32 noundef %1782) #9
  %.not253 = icmp eq i32 %1783, 0
  br i1 %.not253, label %1784, label %1785

1784:                                             ; preds = %1780, %1774
  br label %1785

1785:                                             ; preds = %1780, %1784
  %.str.5.sink947 = phi ptr [ @.str.5, %1784 ], [ @.str.2, %1780 ]
  store i32 %1775, ptr %543, align 4, !tbaa !5
  %1786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1787 = load i32, ptr @test_count, align 4, !tbaa !5
  %1788 = load i32, ptr %489, align 4, !tbaa !5
  %1789 = call ptr @s2n_strerror(i32 noundef %1788, ptr noundef nonnull @.str.4) #9
  %1790 = load i32, ptr %489, align 4, !tbaa !5
  %1791 = call ptr @s2n_strerror_debug(i32 noundef %1790, ptr noundef nonnull @.str.4) #9
  %1792 = load i32, ptr %543, align 4, !tbaa !5
  %1793 = call ptr @strerror(i32 noundef %1792) #9
  %1794 = load i32, ptr %543, align 4, !tbaa !5
  %1795 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1786, ptr noundef nonnull %.str.5.sink947, i32 noundef %1787, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 425, ptr noundef %1789, ptr noundef %1791, ptr noundef %1793, i32 noundef %1794) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1796:                                             ; preds = %1769
  %1797 = load i32, ptr @test_count, align 4, !tbaa !5
  %1798 = add nsw i32 %1797, 1
  store i32 %1798, ptr @test_count, align 4, !tbaa !5
  %1799 = load i32, ptr %489, align 4, !tbaa !5
  %1800 = icmp eq i32 %1799, 0
  br i1 %1800, label %1801, label %1823

1801:                                             ; preds = %1796
  %1802 = load i32, ptr %543, align 4, !tbaa !5
  %1803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1804 = call i32 @s2n_print_stacktrace(ptr noundef %1803) #9
  %1805 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1806 = trunc nuw i8 %1805 to i1
  br i1 %1806, label %1807, label %1811

1807:                                             ; preds = %1801
  %1808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1809 = call i32 @fileno(ptr noundef %1808) #9
  %1810 = call i32 @isatty(i32 noundef %1809) #9
  %.not300 = icmp eq i32 %1810, 0
  br i1 %.not300, label %1811, label %1812

1811:                                             ; preds = %1807, %1801
  br label %1812

1812:                                             ; preds = %1807, %1811
  %.str.5.sink956 = phi ptr [ @.str.5, %1811 ], [ @.str.2, %1807 ]
  store i32 %1802, ptr %543, align 4, !tbaa !5
  %1813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1814 = load i32, ptr @test_count, align 4, !tbaa !5
  %1815 = load i32, ptr %489, align 4, !tbaa !5
  %1816 = call ptr @s2n_strerror(i32 noundef %1815, ptr noundef nonnull @.str.4) #9
  %1817 = load i32, ptr %489, align 4, !tbaa !5
  %1818 = call ptr @s2n_strerror_debug(i32 noundef %1817, ptr noundef nonnull @.str.4) #9
  %1819 = load i32, ptr %543, align 4, !tbaa !5
  %1820 = call ptr @strerror(i32 noundef %1819) #9
  %1821 = load i32, ptr %543, align 4, !tbaa !5
  %1822 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1813, ptr noundef nonnull %.str.5.sink956, i32 noundef %1814, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 425, ptr noundef %1816, ptr noundef %1818, ptr noundef %1820, i32 noundef %1821) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1823:                                             ; preds = %1796
  %1824 = add nsw i32 %1797, 2
  store i32 %1824, ptr @test_count, align 4, !tbaa !5
  %1825 = call ptr @s2n_strerror_debug(i32 noundef %1799, ptr noundef nonnull @.str.4) #9
  %1826 = icmp eq ptr %1825, null
  br i1 %1826, label %1827, label %1849

1827:                                             ; preds = %1823
  %1828 = load i32, ptr %543, align 4, !tbaa !5
  %1829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1830 = call i32 @s2n_print_stacktrace(ptr noundef %1829) #9
  %1831 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1832 = trunc nuw i8 %1831 to i1
  br i1 %1832, label %1833, label %1837

1833:                                             ; preds = %1827
  %1834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1835 = call i32 @fileno(ptr noundef %1834) #9
  %1836 = call i32 @isatty(i32 noundef %1835) #9
  %.not299 = icmp eq i32 %1836, 0
  br i1 %.not299, label %1837, label %1838

1837:                                             ; preds = %1833, %1827
  br label %1838

1838:                                             ; preds = %1833, %1837
  %.str.5.sink965 = phi ptr [ @.str.5, %1837 ], [ @.str.2, %1833 ]
  store i32 %1828, ptr %543, align 4, !tbaa !5
  %1839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1840 = load i32, ptr @test_count, align 4, !tbaa !5
  %1841 = load i32, ptr %489, align 4, !tbaa !5
  %1842 = call ptr @s2n_strerror(i32 noundef %1841, ptr noundef nonnull @.str.4) #9
  %1843 = load i32, ptr %489, align 4, !tbaa !5
  %1844 = call ptr @s2n_strerror_debug(i32 noundef %1843, ptr noundef nonnull @.str.4) #9
  %1845 = load i32, ptr %543, align 4, !tbaa !5
  %1846 = call ptr @strerror(i32 noundef %1845) #9
  %1847 = load i32, ptr %543, align 4, !tbaa !5
  %1848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1839, ptr noundef nonnull %.str.5.sink965, i32 noundef %1840, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 425, ptr noundef %1842, ptr noundef %1844, ptr noundef %1846, i32 noundef %1847) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1849:                                             ; preds = %1823
  store i32 0, ptr %489, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %543, align 4, !tbaa !5
  %1850 = load i32, ptr @test_count, align 4, !tbaa !5
  %1851 = add nsw i32 %1850, 1
  store i32 %1851, ptr @test_count, align 4, !tbaa !5
  %bcmp254 = call i32 @bcmp(ptr noundef nonnull dereferenceable(32) %546, ptr noundef nonnull dereferenceable(32) @zero_to_thirty_one, i64 32)
  %1852 = icmp eq i32 %bcmp254, 0
  br i1 %1852, label %1875, label %1853

1853:                                             ; preds = %1849
  %1854 = load i32, ptr %543, align 4, !tbaa !5
  %1855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1856 = call i32 @s2n_print_stacktrace(ptr noundef %1855) #9
  %1857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1858 = trunc nuw i8 %1857 to i1
  br i1 %1858, label %1859, label %1863

1859:                                             ; preds = %1853
  %1860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1861 = call i32 @fileno(ptr noundef %1860) #9
  %1862 = call i32 @isatty(i32 noundef %1861) #9
  %.not255 = icmp eq i32 %1862, 0
  br i1 %.not255, label %1863, label %1864

1863:                                             ; preds = %1859, %1853
  br label %1864

1864:                                             ; preds = %1859, %1863
  %.str.5.sink974 = phi ptr [ @.str.5, %1863 ], [ @.str.2, %1859 ]
  store i32 %1854, ptr %543, align 4, !tbaa !5
  %1865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1866 = load i32, ptr @test_count, align 4, !tbaa !5
  %1867 = load i32, ptr %489, align 4, !tbaa !5
  %1868 = call ptr @s2n_strerror(i32 noundef %1867, ptr noundef nonnull @.str.4) #9
  %1869 = load i32, ptr %489, align 4, !tbaa !5
  %1870 = call ptr @s2n_strerror_debug(i32 noundef %1869, ptr noundef nonnull @.str.4) #9
  %1871 = load i32, ptr %543, align 4, !tbaa !5
  %1872 = call ptr @strerror(i32 noundef %1871) #9
  %1873 = load i32, ptr %543, align 4, !tbaa !5
  %1874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1865, ptr noundef nonnull %.str.5.sink974, i32 noundef %1866, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 428, ptr noundef %1868, ptr noundef %1870, ptr noundef %1872, i32 noundef %1873) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1875:                                             ; preds = %1849
  %1876 = add nsw i32 %1850, 2
  store i32 %1876, ptr @test_count, align 4, !tbaa !5
  %1877 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %125) #9
  %1878 = icmp eq i32 %1877, 2
  br i1 %1878, label %1901, label %1879

1879:                                             ; preds = %1875
  %1880 = load i32, ptr %543, align 4, !tbaa !5
  %1881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1882 = call i32 @s2n_print_stacktrace(ptr noundef %1881) #9
  %1883 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1884 = trunc nuw i8 %1883 to i1
  br i1 %1884, label %1885, label %1889

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

1889:                                             ; preds = %1885, %1879
  br label %1890

1890:                                             ; preds = %1885, %1889
  %.str.5.sink983 = phi ptr [ @.str.5, %1889 ], [ @.str.2, %1885 ]
  store i32 %1880, ptr %543, align 4, !tbaa !5
  %1891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1892 = load i32, ptr @test_count, align 4, !tbaa !5
  %1893 = load i32, ptr %489, align 4, !tbaa !5
  %1894 = call ptr @s2n_strerror(i32 noundef %1893, ptr noundef nonnull @.str.4) #9
  %1895 = load i32, ptr %489, align 4, !tbaa !5
  %1896 = call ptr @s2n_strerror_debug(i32 noundef %1895, ptr noundef nonnull @.str.4) #9
  %1897 = load i32, ptr %543, align 4, !tbaa !5
  %1898 = call ptr @strerror(i32 noundef %1897) #9
  %1899 = load i32, ptr %543, align 4, !tbaa !5
  %1900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1891, ptr noundef nonnull %.str.5.sink983, i32 noundef %1892, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 431, ptr noundef %1894, ptr noundef %1896, ptr noundef %1898, i32 noundef %1899) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1901:                                             ; preds = %1875
  %1902 = load i32, ptr @test_count, align 4, !tbaa !5
  %1903 = add nsw i32 %1902, 1
  store i32 %1903, ptr @test_count, align 4, !tbaa !5
  %1904 = call i32 @waitpid(i32 noundef %1630, ptr noundef nonnull %4, i32 noundef 0) #9
  %1905 = icmp eq i32 %1904, %1630
  br i1 %1905, label %1928, label %1906

1906:                                             ; preds = %1901
  %1907 = load i32, ptr %543, align 4, !tbaa !5
  %1908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1909 = call i32 @s2n_print_stacktrace(ptr noundef %1908) #9
  %1910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1911 = trunc nuw i8 %1910 to i1
  br i1 %1911, label %1912, label %1916

1912:                                             ; preds = %1906
  %1913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1914 = call i32 @fileno(ptr noundef %1913) #9
  %1915 = call i32 @isatty(i32 noundef %1914) #9
  %.not257 = icmp eq i32 %1915, 0
  br i1 %.not257, label %1916, label %1917

1916:                                             ; preds = %1912, %1906
  br label %1917

1917:                                             ; preds = %1912, %1916
  %.str.5.sink992 = phi ptr [ @.str.5, %1916 ], [ @.str.2, %1912 ]
  store i32 %1907, ptr %543, align 4, !tbaa !5
  %1918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1919 = load i32, ptr @test_count, align 4, !tbaa !5
  %1920 = load i32, ptr %489, align 4, !tbaa !5
  %1921 = call ptr @s2n_strerror(i32 noundef %1920, ptr noundef nonnull @.str.4) #9
  %1922 = load i32, ptr %489, align 4, !tbaa !5
  %1923 = call ptr @s2n_strerror_debug(i32 noundef %1922, ptr noundef nonnull @.str.4) #9
  %1924 = load i32, ptr %543, align 4, !tbaa !5
  %1925 = call ptr @strerror(i32 noundef %1924) #9
  %1926 = load i32, ptr %543, align 4, !tbaa !5
  %1927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1918, ptr noundef nonnull %.str.5.sink992, i32 noundef %1919, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 434, ptr noundef %1921, ptr noundef %1923, ptr noundef %1925, i32 noundef %1926) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1928:                                             ; preds = %1901
  %1929 = load i32, ptr @test_count, align 4, !tbaa !5
  %1930 = add nsw i32 %1929, 1
  store i32 %1930, ptr @test_count, align 4, !tbaa !5
  %1931 = load i32, ptr %4, align 4, !tbaa !5
  %1932 = icmp eq i32 %1931, 0
  br i1 %1932, label %1955, label %1933

1933:                                             ; preds = %1928
  %1934 = load i32, ptr %543, align 4, !tbaa !5
  %1935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1936 = call i32 @s2n_print_stacktrace(ptr noundef %1935) #9
  %1937 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1938 = trunc nuw i8 %1937 to i1
  br i1 %1938, label %1939, label %1943

1939:                                             ; preds = %1933
  %1940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1941 = call i32 @fileno(ptr noundef %1940) #9
  %1942 = call i32 @isatty(i32 noundef %1941) #9
  %.not258 = icmp eq i32 %1942, 0
  br i1 %.not258, label %1943, label %1944

1943:                                             ; preds = %1939, %1933
  br label %1944

1944:                                             ; preds = %1939, %1943
  %.str.5.sink1001 = phi ptr [ @.str.5, %1943 ], [ @.str.2, %1939 ]
  store i32 %1934, ptr %543, align 4, !tbaa !5
  %1945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1946 = load i32, ptr @test_count, align 4, !tbaa !5
  %1947 = load i32, ptr %489, align 4, !tbaa !5
  %1948 = call ptr @s2n_strerror(i32 noundef %1947, ptr noundef nonnull @.str.4) #9
  %1949 = load i32, ptr %489, align 4, !tbaa !5
  %1950 = call ptr @s2n_strerror_debug(i32 noundef %1949, ptr noundef nonnull @.str.4) #9
  %1951 = load i32, ptr %543, align 4, !tbaa !5
  %1952 = call ptr @strerror(i32 noundef %1951) #9
  %1953 = load i32, ptr %543, align 4, !tbaa !5
  %1954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1945, ptr noundef nonnull %.str.5.sink1001, i32 noundef %1946, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 435, ptr noundef %1948, ptr noundef %1950, ptr noundef %1952, i32 noundef %1953) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1955:                                             ; preds = %1928
  %1956 = add nsw i32 %1929, 2
  store i32 %1956, ptr @test_count, align 4, !tbaa !5
  %1957 = load i32, ptr %5, align 4, !tbaa !5
  %1958 = call i32 @close(i32 noundef %1957) #9
  %1959 = icmp eq i32 %1958, -1
  br i1 %1959, label %1960, label %1982

1960:                                             ; preds = %1955
  %1961 = load i32, ptr %543, align 4, !tbaa !5
  %1962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1963 = call i32 @s2n_print_stacktrace(ptr noundef %1962) #9
  %1964 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1965 = trunc nuw i8 %1964 to i1
  br i1 %1965, label %1966, label %1970

1966:                                             ; preds = %1960
  %1967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1968 = call i32 @fileno(ptr noundef %1967) #9
  %1969 = call i32 @isatty(i32 noundef %1968) #9
  %.not298 = icmp eq i32 %1969, 0
  br i1 %.not298, label %1970, label %1971

1970:                                             ; preds = %1966, %1960
  br label %1971

1971:                                             ; preds = %1966, %1970
  %.str.5.sink1010 = phi ptr [ @.str.5, %1970 ], [ @.str.2, %1966 ]
  store i32 %1961, ptr %543, align 4, !tbaa !5
  %1972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1973 = load i32, ptr @test_count, align 4, !tbaa !5
  %1974 = load i32, ptr %489, align 4, !tbaa !5
  %1975 = call ptr @s2n_strerror(i32 noundef %1974, ptr noundef nonnull @.str.4) #9
  %1976 = load i32, ptr %489, align 4, !tbaa !5
  %1977 = call ptr @s2n_strerror_debug(i32 noundef %1976, ptr noundef nonnull @.str.4) #9
  %1978 = load i32, ptr %543, align 4, !tbaa !5
  %1979 = call ptr @strerror(i32 noundef %1978) #9
  %1980 = load i32, ptr %543, align 4, !tbaa !5
  %1981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1972, ptr noundef nonnull %.str.5.sink1010, i32 noundef %1973, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 436, ptr noundef %1975, ptr noundef %1977, ptr noundef %1979, i32 noundef %1980) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1982:                                             ; preds = %1955
  %1983 = load i32, ptr @test_count, align 4, !tbaa !5
  %1984 = add nsw i32 %1983, 1
  store i32 %1984, ptr @test_count, align 4, !tbaa !5
  %1985 = call i32 @pipe(ptr noundef nonnull %5) #9
  %1986 = icmp eq i32 %1985, -1
  br i1 %1986, label %1987, label %2009

1987:                                             ; preds = %1982
  %1988 = load i32, ptr %543, align 4, !tbaa !5
  %1989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1990 = call i32 @s2n_print_stacktrace(ptr noundef %1989) #9
  %1991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1992 = trunc nuw i8 %1991 to i1
  br i1 %1992, label %1993, label %1997

1993:                                             ; preds = %1987
  %1994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1995 = call i32 @fileno(ptr noundef %1994) #9
  %1996 = call i32 @isatty(i32 noundef %1995) #9
  %.not297 = icmp eq i32 %1996, 0
  br i1 %.not297, label %1997, label %1998

1997:                                             ; preds = %1993, %1987
  br label %1998

1998:                                             ; preds = %1993, %1997
  %.str.5.sink1019 = phi ptr [ @.str.5, %1997 ], [ @.str.2, %1993 ]
  store i32 %1988, ptr %543, align 4, !tbaa !5
  %1999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2000 = load i32, ptr @test_count, align 4, !tbaa !5
  %2001 = load i32, ptr %489, align 4, !tbaa !5
  %2002 = call ptr @s2n_strerror(i32 noundef %2001, ptr noundef nonnull @.str.4) #9
  %2003 = load i32, ptr %489, align 4, !tbaa !5
  %2004 = call ptr @s2n_strerror_debug(i32 noundef %2003, ptr noundef nonnull @.str.4) #9
  %2005 = load i32, ptr %543, align 4, !tbaa !5
  %2006 = call ptr @strerror(i32 noundef %2005) #9
  %2007 = load i32, ptr %543, align 4, !tbaa !5
  %2008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1999, ptr noundef nonnull %.str.5.sink1019, i32 noundef %2000, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 441, ptr noundef %2002, ptr noundef %2004, ptr noundef %2006, i32 noundef %2007) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2009:                                             ; preds = %1982
  %2010 = load i32, ptr @test_count, align 4, !tbaa !5
  %2011 = add nsw i32 %2010, 1
  store i32 %2011, ptr @test_count, align 4, !tbaa !5
  %2012 = call i32 @s2n_connection_wipe(ptr noundef nonnull %125) #9
  %2013 = icmp eq i32 %2012, -1
  br i1 %2013, label %2014, label %2036

2014:                                             ; preds = %2009
  %2015 = load i32, ptr %543, align 4, !tbaa !5
  %2016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2017 = call i32 @s2n_print_stacktrace(ptr noundef %2016) #9
  %2018 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2019 = trunc nuw i8 %2018 to i1
  br i1 %2019, label %2020, label %2024

2020:                                             ; preds = %2014
  %2021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2022 = call i32 @fileno(ptr noundef %2021) #9
  %2023 = call i32 @isatty(i32 noundef %2022) #9
  %.not296 = icmp eq i32 %2023, 0
  br i1 %.not296, label %2024, label %2025

2024:                                             ; preds = %2020, %2014
  br label %2025

2025:                                             ; preds = %2020, %2024
  %.str.5.sink1028 = phi ptr [ @.str.5, %2024 ], [ @.str.2, %2020 ]
  store i32 %2015, ptr %543, align 4, !tbaa !5
  %2026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2027 = load i32, ptr @test_count, align 4, !tbaa !5
  %2028 = load i32, ptr %489, align 4, !tbaa !5
  %2029 = call ptr @s2n_strerror(i32 noundef %2028, ptr noundef nonnull @.str.4) #9
  %2030 = load i32, ptr %489, align 4, !tbaa !5
  %2031 = call ptr @s2n_strerror_debug(i32 noundef %2030, ptr noundef nonnull @.str.4) #9
  %2032 = load i32, ptr %543, align 4, !tbaa !5
  %2033 = call ptr @strerror(i32 noundef %2032) #9
  %2034 = load i32, ptr %543, align 4, !tbaa !5
  %2035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2026, ptr noundef nonnull %.str.5.sink1028, i32 noundef %2027, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 443, ptr noundef %2029, ptr noundef %2031, ptr noundef %2033, i32 noundef %2034) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2036:                                             ; preds = %2009
  %2037 = load i32, ptr @test_count, align 4, !tbaa !5
  %2038 = add nsw i32 %2037, 1
  store i32 %2038, ptr @test_count, align 4, !tbaa !5
  %2039 = load i32, ptr %5, align 4, !tbaa !5
  %2040 = call i32 @s2n_connection_set_read_fd(ptr noundef nonnull %125, i32 noundef %2039) #9
  %2041 = icmp eq i32 %2040, -1
  br i1 %2041, label %2042, label %2064

2042:                                             ; preds = %2036
  %2043 = load i32, ptr %543, align 4, !tbaa !5
  %2044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2045 = call i32 @s2n_print_stacktrace(ptr noundef %2044) #9
  %2046 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2047 = trunc nuw i8 %2046 to i1
  br i1 %2047, label %2048, label %2052

2048:                                             ; preds = %2042
  %2049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2050 = call i32 @fileno(ptr noundef %2049) #9
  %2051 = call i32 @isatty(i32 noundef %2050) #9
  %.not295 = icmp eq i32 %2051, 0
  br i1 %.not295, label %2052, label %2053

2052:                                             ; preds = %2048, %2042
  br label %2053

2053:                                             ; preds = %2048, %2052
  %.str.5.sink1037 = phi ptr [ @.str.5, %2052 ], [ @.str.2, %2048 ]
  store i32 %2043, ptr %543, align 4, !tbaa !5
  %2054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2055 = load i32, ptr @test_count, align 4, !tbaa !5
  %2056 = load i32, ptr %489, align 4, !tbaa !5
  %2057 = call ptr @s2n_strerror(i32 noundef %2056, ptr noundef nonnull @.str.4) #9
  %2058 = load i32, ptr %489, align 4, !tbaa !5
  %2059 = call ptr @s2n_strerror_debug(i32 noundef %2058, ptr noundef nonnull @.str.4) #9
  %2060 = load i32, ptr %543, align 4, !tbaa !5
  %2061 = call ptr @strerror(i32 noundef %2060) #9
  %2062 = load i32, ptr %543, align 4, !tbaa !5
  %2063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2054, ptr noundef nonnull %.str.5.sink1037, i32 noundef %2055, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 446, ptr noundef %2057, ptr noundef %2059, ptr noundef %2061, i32 noundef %2062) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2064:                                             ; preds = %2036
  store i32 3, ptr %301, align 4, !tbaa !15
  store i32 1, ptr %302, align 8, !tbaa !42
  store i8 33, ptr %303, align 1, !tbaa !43
  store i8 33, ptr %304, align 2, !tbaa !44
  store i8 33, ptr %305, align 4, !tbaa !45
  %2065 = call i32 @fork() #9
  %2066 = icmp eq i32 %2065, 0
  %2067 = load i32, ptr @test_count, align 4, !tbaa !5
  %2068 = add nsw i32 %2067, 1
  store i32 %2068, ptr @test_count, align 4, !tbaa !5
  br i1 %2066, label %2069, label %2151

2069:                                             ; preds = %2064
  %2070 = load i32, ptr %5, align 4, !tbaa !5
  %2071 = call i32 @close(i32 noundef %2070) #9
  %2072 = icmp eq i32 %2071, -1
  br i1 %2072, label %2073, label %2095

2073:                                             ; preds = %2069
  %2074 = load i32, ptr %543, align 4, !tbaa !5
  %2075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2076 = call i32 @s2n_print_stacktrace(ptr noundef %2075) #9
  %2077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2078 = trunc nuw i8 %2077 to i1
  br i1 %2078, label %2079, label %2083

2079:                                             ; preds = %2073
  %2080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2081 = call i32 @fileno(ptr noundef %2080) #9
  %2082 = call i32 @isatty(i32 noundef %2081) #9
  %.not294 = icmp eq i32 %2082, 0
  br i1 %.not294, label %2083, label %2084

2083:                                             ; preds = %2079, %2073
  br label %2084

2084:                                             ; preds = %2079, %2083
  %.str.5.sink1046 = phi ptr [ @.str.5, %2083 ], [ @.str.2, %2079 ]
  store i32 %2074, ptr %543, align 4, !tbaa !5
  %2085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2086 = load i32, ptr @test_count, align 4, !tbaa !5
  %2087 = load i32, ptr %489, align 4, !tbaa !5
  %2088 = call ptr @s2n_strerror(i32 noundef %2087, ptr noundef nonnull @.str.4) #9
  %2089 = load i32, ptr %489, align 4, !tbaa !5
  %2090 = call ptr @s2n_strerror_debug(i32 noundef %2089, ptr noundef nonnull @.str.4) #9
  %2091 = load i32, ptr %543, align 4, !tbaa !5
  %2092 = call ptr @strerror(i32 noundef %2091) #9
  %2093 = load i32, ptr %543, align 4, !tbaa !5
  %2094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2085, ptr noundef nonnull %.str.5.sink1046, i32 noundef %2086, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 459, ptr noundef %2088, ptr noundef %2090, ptr noundef %2092, i32 noundef %2093) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2095:                                             ; preds = %2069
  %2096 = load i32, ptr %400, align 4, !tbaa !5
  call void @send_messages(i32 noundef %2096, ptr noundef nonnull @server_hello_message, i32 noundef 74, ptr noundef nonnull @certificate_too_large, i32 noundef 10)
  %2097 = load i32, ptr @test_count, align 4, !tbaa !5
  %2098 = add nsw i32 %2097, 1
  store i32 %2098, ptr @test_count, align 4, !tbaa !5
  %2099 = call i32 @s2n_connection_free(ptr noundef nonnull %125) #9
  %2100 = icmp eq i32 %2099, -1
  br i1 %2100, label %2101, label %2123

2101:                                             ; preds = %2095
  %2102 = load i32, ptr %543, align 4, !tbaa !5
  %2103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2104 = call i32 @s2n_print_stacktrace(ptr noundef %2103) #9
  %2105 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2106 = trunc nuw i8 %2105 to i1
  br i1 %2106, label %2107, label %2111

2107:                                             ; preds = %2101
  %2108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2109 = call i32 @fileno(ptr noundef %2108) #9
  %2110 = call i32 @isatty(i32 noundef %2109) #9
  %.not293 = icmp eq i32 %2110, 0
  br i1 %.not293, label %2111, label %2112

2111:                                             ; preds = %2107, %2101
  br label %2112

2112:                                             ; preds = %2107, %2111
  %.str.5.sink1055 = phi ptr [ @.str.5, %2111 ], [ @.str.2, %2107 ]
  store i32 %2102, ptr %543, align 4, !tbaa !5
  %2113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2114 = load i32, ptr @test_count, align 4, !tbaa !5
  %2115 = load i32, ptr %489, align 4, !tbaa !5
  %2116 = call ptr @s2n_strerror(i32 noundef %2115, ptr noundef nonnull @.str.4) #9
  %2117 = load i32, ptr %489, align 4, !tbaa !5
  %2118 = call ptr @s2n_strerror_debug(i32 noundef %2117, ptr noundef nonnull @.str.4) #9
  %2119 = load i32, ptr %543, align 4, !tbaa !5
  %2120 = call ptr @strerror(i32 noundef %2119) #9
  %2121 = load i32, ptr %543, align 4, !tbaa !5
  %2122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2113, ptr noundef nonnull %.str.5.sink1055, i32 noundef %2114, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 463, ptr noundef %2116, ptr noundef %2118, ptr noundef %2120, i32 noundef %2121) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2123:                                             ; preds = %2095
  %2124 = load i32, ptr @test_count, align 4, !tbaa !5
  %2125 = add nsw i32 %2124, 1
  store i32 %2125, ptr @test_count, align 4, !tbaa !5
  %2126 = call i32 @s2n_config_free(ptr noundef %124) #9
  %2127 = icmp eq i32 %2126, -1
  br i1 %2127, label %2128, label %2150

2128:                                             ; preds = %2123
  %2129 = load i32, ptr %543, align 4, !tbaa !5
  %2130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2131 = call i32 @s2n_print_stacktrace(ptr noundef %2130) #9
  %2132 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2133 = trunc nuw i8 %2132 to i1
  br i1 %2133, label %2134, label %2138

2134:                                             ; preds = %2128
  %2135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2136 = call i32 @fileno(ptr noundef %2135) #9
  %2137 = call i32 @isatty(i32 noundef %2136) #9
  %.not292 = icmp eq i32 %2137, 0
  br i1 %.not292, label %2138, label %2139

2138:                                             ; preds = %2134, %2128
  br label %2139

2139:                                             ; preds = %2134, %2138
  %.str.5.sink1064 = phi ptr [ @.str.5, %2138 ], [ @.str.2, %2134 ]
  store i32 %2129, ptr %543, align 4, !tbaa !5
  %2140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2141 = load i32, ptr @test_count, align 4, !tbaa !5
  %2142 = load i32, ptr %489, align 4, !tbaa !5
  %2143 = call ptr @s2n_strerror(i32 noundef %2142, ptr noundef nonnull @.str.4) #9
  %2144 = load i32, ptr %489, align 4, !tbaa !5
  %2145 = call ptr @s2n_strerror_debug(i32 noundef %2144, ptr noundef nonnull @.str.4) #9
  %2146 = load i32, ptr %543, align 4, !tbaa !5
  %2147 = call ptr @strerror(i32 noundef %2146) #9
  %2148 = load i32, ptr %543, align 4, !tbaa !5
  %2149 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2140, ptr noundef nonnull %.str.5.sink1064, i32 noundef %2141, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 464, ptr noundef %2143, ptr noundef %2145, ptr noundef %2147, i32 noundef %2148) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2150:                                             ; preds = %2123
  call void @exit(i32 noundef 0) #12
  unreachable

2151:                                             ; preds = %2064
  %2152 = load i32, ptr %400, align 4, !tbaa !5
  %2153 = call i32 @close(i32 noundef %2152) #9
  %2154 = icmp eq i32 %2153, -1
  br i1 %2154, label %2155, label %2177

2155:                                             ; preds = %2151
  %2156 = load i32, ptr %543, align 4, !tbaa !5
  %2157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2158 = call i32 @s2n_print_stacktrace(ptr noundef %2157) #9
  %2159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2160 = trunc nuw i8 %2159 to i1
  br i1 %2160, label %2161, label %2165

2161:                                             ; preds = %2155
  %2162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2163 = call i32 @fileno(ptr noundef %2162) #9
  %2164 = call i32 @isatty(i32 noundef %2163) #9
  %.not291 = icmp eq i32 %2164, 0
  br i1 %.not291, label %2165, label %2166

2165:                                             ; preds = %2161, %2155
  br label %2166

2166:                                             ; preds = %2161, %2165
  %.str.5.sink1073 = phi ptr [ @.str.5, %2165 ], [ @.str.2, %2161 ]
  store i32 %2156, ptr %543, align 4, !tbaa !5
  %2167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2168 = load i32, ptr @test_count, align 4, !tbaa !5
  %2169 = load i32, ptr %489, align 4, !tbaa !5
  %2170 = call ptr @s2n_strerror(i32 noundef %2169, ptr noundef nonnull @.str.4) #9
  %2171 = load i32, ptr %489, align 4, !tbaa !5
  %2172 = call ptr @s2n_strerror_debug(i32 noundef %2171, ptr noundef nonnull @.str.4) #9
  %2173 = load i32, ptr %543, align 4, !tbaa !5
  %2174 = call ptr @strerror(i32 noundef %2173) #9
  %2175 = load i32, ptr %543, align 4, !tbaa !5
  %2176 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2167, ptr noundef nonnull %.str.5.sink1073, i32 noundef %2168, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 469, ptr noundef %2170, ptr noundef %2172, ptr noundef %2174, i32 noundef %2175) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2177:                                             ; preds = %2151
  %2178 = load i32, ptr @test_count, align 4, !tbaa !5
  %2179 = add nsw i32 %2178, 1
  store i32 %2179, ptr @test_count, align 4, !tbaa !5
  %2180 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %125, i32 noundef 1) #9
  %2181 = icmp eq i32 %2180, -1
  br i1 %2181, label %2182, label %2204

2182:                                             ; preds = %2177
  %2183 = load i32, ptr %543, align 4, !tbaa !5
  %2184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2185 = call i32 @s2n_print_stacktrace(ptr noundef %2184) #9
  %2186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2187 = trunc nuw i8 %2186 to i1
  br i1 %2187, label %2188, label %2192

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

2192:                                             ; preds = %2188, %2182
  br label %2193

2193:                                             ; preds = %2188, %2192
  %.str.5.sink1082 = phi ptr [ @.str.5, %2192 ], [ @.str.2, %2188 ]
  store i32 %2183, ptr %543, align 4, !tbaa !5
  %2194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2195 = load i32, ptr @test_count, align 4, !tbaa !5
  %2196 = load i32, ptr %489, align 4, !tbaa !5
  %2197 = call ptr @s2n_strerror(i32 noundef %2196, ptr noundef nonnull @.str.4) #9
  %2198 = load i32, ptr %489, align 4, !tbaa !5
  %2199 = call ptr @s2n_strerror_debug(i32 noundef %2198, ptr noundef nonnull @.str.4) #9
  %2200 = load i32, ptr %543, align 4, !tbaa !5
  %2201 = call ptr @strerror(i32 noundef %2200) #9
  %2202 = load i32, ptr %543, align 4, !tbaa !5
  %2203 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2194, ptr noundef nonnull %.str.5.sink1082, i32 noundef %2195, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 473, ptr noundef %2197, ptr noundef %2199, ptr noundef %2201, i32 noundef %2202) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2204:                                             ; preds = %2177
  %2205 = load i32, ptr @test_count, align 4, !tbaa !5
  %2206 = add nsw i32 %2205, 1
  store i32 %2206, ptr @test_count, align 4, !tbaa !5
  %2207 = call i32 @s2n_negotiate(ptr noundef nonnull %125, ptr noundef nonnull %3) #9
  %2208 = icmp eq i32 %2207, -1
  br i1 %2208, label %2231, label %2209

2209:                                             ; preds = %2204
  %2210 = load i32, ptr %543, align 4, !tbaa !5
  %2211 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2212 = call i32 @s2n_print_stacktrace(ptr noundef %2211) #9
  %2213 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2214 = trunc nuw i8 %2213 to i1
  br i1 %2214, label %2215, label %2219

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

2219:                                             ; preds = %2215, %2209
  br label %2220

2220:                                             ; preds = %2215, %2219
  %.str.5.sink1091 = phi ptr [ @.str.5, %2219 ], [ @.str.2, %2215 ]
  store i32 %2210, ptr %543, align 4, !tbaa !5
  %2221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2222 = load i32, ptr @test_count, align 4, !tbaa !5
  %2223 = load i32, ptr %489, align 4, !tbaa !5
  %2224 = call ptr @s2n_strerror(i32 noundef %2223, ptr noundef nonnull @.str.4) #9
  %2225 = load i32, ptr %489, align 4, !tbaa !5
  %2226 = call ptr @s2n_strerror_debug(i32 noundef %2225, ptr noundef nonnull @.str.4) #9
  %2227 = load i32, ptr %543, align 4, !tbaa !5
  %2228 = call ptr @strerror(i32 noundef %2227) #9
  %2229 = load i32, ptr %543, align 4, !tbaa !5
  %2230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2221, ptr noundef nonnull %.str.5.sink1091, i32 noundef %2222, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 474, ptr noundef %2224, ptr noundef %2226, ptr noundef %2228, i32 noundef %2229) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2231:                                             ; preds = %2204
  %2232 = load i32, ptr @test_count, align 4, !tbaa !5
  %2233 = add nsw i32 %2232, 1
  store i32 %2233, ptr @test_count, align 4, !tbaa !5
  %2234 = load i32, ptr %489, align 4, !tbaa !5
  %2235 = icmp eq i32 %2234, 0
  br i1 %2235, label %2236, label %2258

2236:                                             ; preds = %2231
  %2237 = load i32, ptr %543, align 4, !tbaa !5
  %2238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2239 = call i32 @s2n_print_stacktrace(ptr noundef %2238) #9
  %2240 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2241 = trunc nuw i8 %2240 to i1
  br i1 %2241, label %2242, label %2246

2242:                                             ; preds = %2236
  %2243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2244 = call i32 @fileno(ptr noundef %2243) #9
  %2245 = call i32 @isatty(i32 noundef %2244) #9
  %.not289 = icmp eq i32 %2245, 0
  br i1 %.not289, label %2246, label %2247

2246:                                             ; preds = %2242, %2236
  br label %2247

2247:                                             ; preds = %2242, %2246
  %.str.5.sink1100 = phi ptr [ @.str.5, %2246 ], [ @.str.2, %2242 ]
  store i32 %2237, ptr %543, align 4, !tbaa !5
  %2248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2249 = load i32, ptr @test_count, align 4, !tbaa !5
  %2250 = load i32, ptr %489, align 4, !tbaa !5
  %2251 = call ptr @s2n_strerror(i32 noundef %2250, ptr noundef nonnull @.str.4) #9
  %2252 = load i32, ptr %489, align 4, !tbaa !5
  %2253 = call ptr @s2n_strerror_debug(i32 noundef %2252, ptr noundef nonnull @.str.4) #9
  %2254 = load i32, ptr %543, align 4, !tbaa !5
  %2255 = call ptr @strerror(i32 noundef %2254) #9
  %2256 = load i32, ptr %543, align 4, !tbaa !5
  %2257 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2248, ptr noundef nonnull %.str.5.sink1100, i32 noundef %2249, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 474, ptr noundef %2251, ptr noundef %2253, ptr noundef %2255, i32 noundef %2256) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2258:                                             ; preds = %2231
  %2259 = add nsw i32 %2232, 2
  store i32 %2259, ptr @test_count, align 4, !tbaa !5
  %2260 = call ptr @s2n_strerror_debug(i32 noundef %2234, ptr noundef nonnull @.str.4) #9
  %2261 = icmp eq ptr %2260, null
  br i1 %2261, label %2262, label %2284

2262:                                             ; preds = %2258
  %2263 = load i32, ptr %543, align 4, !tbaa !5
  %2264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2265 = call i32 @s2n_print_stacktrace(ptr noundef %2264) #9
  %2266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2267 = trunc nuw i8 %2266 to i1
  br i1 %2267, label %2268, label %2272

2268:                                             ; preds = %2262
  %2269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2270 = call i32 @fileno(ptr noundef %2269) #9
  %2271 = call i32 @isatty(i32 noundef %2270) #9
  %.not288 = icmp eq i32 %2271, 0
  br i1 %.not288, label %2272, label %2273

2272:                                             ; preds = %2268, %2262
  br label %2273

2273:                                             ; preds = %2268, %2272
  %.str.5.sink1109 = phi ptr [ @.str.5, %2272 ], [ @.str.2, %2268 ]
  store i32 %2263, ptr %543, align 4, !tbaa !5
  %2274 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2275 = load i32, ptr @test_count, align 4, !tbaa !5
  %2276 = load i32, ptr %489, align 4, !tbaa !5
  %2277 = call ptr @s2n_strerror(i32 noundef %2276, ptr noundef nonnull @.str.4) #9
  %2278 = load i32, ptr %489, align 4, !tbaa !5
  %2279 = call ptr @s2n_strerror_debug(i32 noundef %2278, ptr noundef nonnull @.str.4) #9
  %2280 = load i32, ptr %543, align 4, !tbaa !5
  %2281 = call ptr @strerror(i32 noundef %2280) #9
  %2282 = load i32, ptr %543, align 4, !tbaa !5
  %2283 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2274, ptr noundef nonnull %.str.5.sink1109, i32 noundef %2275, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 474, ptr noundef %2277, ptr noundef %2279, ptr noundef %2281, i32 noundef %2282) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2284:                                             ; preds = %2258
  store i32 0, ptr %489, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %543, align 4, !tbaa !5
  %2285 = load i32, ptr @test_count, align 4, !tbaa !5
  %2286 = add nsw i32 %2285, 1
  store i32 %2286, ptr @test_count, align 4, !tbaa !5
  %bcmp260 = call i32 @bcmp(ptr noundef nonnull dereferenceable(32) %546, ptr noundef nonnull dereferenceable(32) @zero_to_thirty_one, i64 32)
  %2287 = icmp eq i32 %bcmp260, 0
  br i1 %2287, label %2310, label %2288

2288:                                             ; preds = %2284
  %2289 = load i32, ptr %543, align 4, !tbaa !5
  %2290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2291 = call i32 @s2n_print_stacktrace(ptr noundef %2290) #9
  %2292 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2293 = trunc nuw i8 %2292 to i1
  br i1 %2293, label %2294, label %2298

2294:                                             ; preds = %2288
  %2295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2296 = call i32 @fileno(ptr noundef %2295) #9
  %2297 = call i32 @isatty(i32 noundef %2296) #9
  %.not261 = icmp eq i32 %2297, 0
  br i1 %.not261, label %2298, label %2299

2298:                                             ; preds = %2294, %2288
  br label %2299

2299:                                             ; preds = %2294, %2298
  %.str.5.sink1118 = phi ptr [ @.str.5, %2298 ], [ @.str.2, %2294 ]
  store i32 %2289, ptr %543, align 4, !tbaa !5
  %2300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2301 = load i32, ptr @test_count, align 4, !tbaa !5
  %2302 = load i32, ptr %489, align 4, !tbaa !5
  %2303 = call ptr @s2n_strerror(i32 noundef %2302, ptr noundef nonnull @.str.4) #9
  %2304 = load i32, ptr %489, align 4, !tbaa !5
  %2305 = call ptr @s2n_strerror_debug(i32 noundef %2304, ptr noundef nonnull @.str.4) #9
  %2306 = load i32, ptr %543, align 4, !tbaa !5
  %2307 = call ptr @strerror(i32 noundef %2306) #9
  %2308 = load i32, ptr %543, align 4, !tbaa !5
  %2309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2300, ptr noundef nonnull %.str.5.sink1118, i32 noundef %2301, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 477, ptr noundef %2303, ptr noundef %2305, ptr noundef %2307, i32 noundef %2308) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2310:                                             ; preds = %2284
  %2311 = add nsw i32 %2285, 2
  store i32 %2311, ptr @test_count, align 4, !tbaa !5
  %2312 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %125) #9
  %2313 = icmp eq i32 %2312, 2
  br i1 %2313, label %2336, label %2314

2314:                                             ; preds = %2310
  %2315 = load i32, ptr %543, align 4, !tbaa !5
  %2316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2317 = call i32 @s2n_print_stacktrace(ptr noundef %2316) #9
  %2318 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2319 = trunc nuw i8 %2318 to i1
  br i1 %2319, label %2320, label %2324

2320:                                             ; preds = %2314
  %2321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2322 = call i32 @fileno(ptr noundef %2321) #9
  %2323 = call i32 @isatty(i32 noundef %2322) #9
  %.not262 = icmp eq i32 %2323, 0
  br i1 %.not262, label %2324, label %2325

2324:                                             ; preds = %2320, %2314
  br label %2325

2325:                                             ; preds = %2320, %2324
  %.str.5.sink1127 = phi ptr [ @.str.5, %2324 ], [ @.str.2, %2320 ]
  store i32 %2315, ptr %543, align 4, !tbaa !5
  %2326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2327 = load i32, ptr @test_count, align 4, !tbaa !5
  %2328 = load i32, ptr %489, align 4, !tbaa !5
  %2329 = call ptr @s2n_strerror(i32 noundef %2328, ptr noundef nonnull @.str.4) #9
  %2330 = load i32, ptr %489, align 4, !tbaa !5
  %2331 = call ptr @s2n_strerror_debug(i32 noundef %2330, ptr noundef nonnull @.str.4) #9
  %2332 = load i32, ptr %543, align 4, !tbaa !5
  %2333 = call ptr @strerror(i32 noundef %2332) #9
  %2334 = load i32, ptr %543, align 4, !tbaa !5
  %2335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2326, ptr noundef nonnull %.str.5.sink1127, i32 noundef %2327, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 480, ptr noundef %2329, ptr noundef %2331, ptr noundef %2333, i32 noundef %2334) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2336:                                             ; preds = %2310
  %2337 = load i32, ptr @test_count, align 4, !tbaa !5
  %2338 = add nsw i32 %2337, 1
  store i32 %2338, ptr @test_count, align 4, !tbaa !5
  %2339 = call i32 @waitpid(i32 noundef %2065, ptr noundef nonnull %4, i32 noundef 0) #9
  %2340 = icmp eq i32 %2339, %2065
  br i1 %2340, label %2363, label %2341

2341:                                             ; preds = %2336
  %2342 = load i32, ptr %543, align 4, !tbaa !5
  %2343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2344 = call i32 @s2n_print_stacktrace(ptr noundef %2343) #9
  %2345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2346 = trunc nuw i8 %2345 to i1
  br i1 %2346, label %2347, label %2351

2347:                                             ; preds = %2341
  %2348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2349 = call i32 @fileno(ptr noundef %2348) #9
  %2350 = call i32 @isatty(i32 noundef %2349) #9
  %.not263 = icmp eq i32 %2350, 0
  br i1 %.not263, label %2351, label %2352

2351:                                             ; preds = %2347, %2341
  br label %2352

2352:                                             ; preds = %2347, %2351
  %.str.5.sink1136 = phi ptr [ @.str.5, %2351 ], [ @.str.2, %2347 ]
  store i32 %2342, ptr %543, align 4, !tbaa !5
  %2353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2354 = load i32, ptr @test_count, align 4, !tbaa !5
  %2355 = load i32, ptr %489, align 4, !tbaa !5
  %2356 = call ptr @s2n_strerror(i32 noundef %2355, ptr noundef nonnull @.str.4) #9
  %2357 = load i32, ptr %489, align 4, !tbaa !5
  %2358 = call ptr @s2n_strerror_debug(i32 noundef %2357, ptr noundef nonnull @.str.4) #9
  %2359 = load i32, ptr %543, align 4, !tbaa !5
  %2360 = call ptr @strerror(i32 noundef %2359) #9
  %2361 = load i32, ptr %543, align 4, !tbaa !5
  %2362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2353, ptr noundef nonnull %.str.5.sink1136, i32 noundef %2354, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 483, ptr noundef %2356, ptr noundef %2358, ptr noundef %2360, i32 noundef %2361) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2363:                                             ; preds = %2336
  %2364 = load i32, ptr @test_count, align 4, !tbaa !5
  %2365 = add nsw i32 %2364, 1
  store i32 %2365, ptr @test_count, align 4, !tbaa !5
  %2366 = load i32, ptr %4, align 4, !tbaa !5
  %2367 = icmp eq i32 %2366, 0
  br i1 %2367, label %2390, label %2368

2368:                                             ; preds = %2363
  %2369 = load i32, ptr %543, align 4, !tbaa !5
  %2370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2371 = call i32 @s2n_print_stacktrace(ptr noundef %2370) #9
  %2372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2373 = trunc nuw i8 %2372 to i1
  br i1 %2373, label %2374, label %2378

2374:                                             ; preds = %2368
  %2375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2376 = call i32 @fileno(ptr noundef %2375) #9
  %2377 = call i32 @isatty(i32 noundef %2376) #9
  %.not264 = icmp eq i32 %2377, 0
  br i1 %.not264, label %2378, label %2379

2378:                                             ; preds = %2374, %2368
  br label %2379

2379:                                             ; preds = %2374, %2378
  %.str.5.sink1145 = phi ptr [ @.str.5, %2378 ], [ @.str.2, %2374 ]
  store i32 %2369, ptr %543, align 4, !tbaa !5
  %2380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2381 = load i32, ptr @test_count, align 4, !tbaa !5
  %2382 = load i32, ptr %489, align 4, !tbaa !5
  %2383 = call ptr @s2n_strerror(i32 noundef %2382, ptr noundef nonnull @.str.4) #9
  %2384 = load i32, ptr %489, align 4, !tbaa !5
  %2385 = call ptr @s2n_strerror_debug(i32 noundef %2384, ptr noundef nonnull @.str.4) #9
  %2386 = load i32, ptr %543, align 4, !tbaa !5
  %2387 = call ptr @strerror(i32 noundef %2386) #9
  %2388 = load i32, ptr %543, align 4, !tbaa !5
  %2389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2380, ptr noundef nonnull %.str.5.sink1145, i32 noundef %2381, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 484, ptr noundef %2383, ptr noundef %2385, ptr noundef %2387, i32 noundef %2388) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2390:                                             ; preds = %2363
  %2391 = add nsw i32 %2364, 2
  store i32 %2391, ptr @test_count, align 4, !tbaa !5
  %2392 = load i32, ptr %5, align 4, !tbaa !5
  %2393 = call i32 @close(i32 noundef %2392) #9
  %2394 = icmp eq i32 %2393, -1
  br i1 %2394, label %2395, label %2417

2395:                                             ; preds = %2390
  %2396 = load i32, ptr %543, align 4, !tbaa !5
  %2397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2398 = call i32 @s2n_print_stacktrace(ptr noundef %2397) #9
  %2399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2400 = trunc nuw i8 %2399 to i1
  br i1 %2400, label %2401, label %2405

2401:                                             ; preds = %2395
  %2402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2403 = call i32 @fileno(ptr noundef %2402) #9
  %2404 = call i32 @isatty(i32 noundef %2403) #9
  %.not287 = icmp eq i32 %2404, 0
  br i1 %.not287, label %2405, label %2406

2405:                                             ; preds = %2401, %2395
  br label %2406

2406:                                             ; preds = %2401, %2405
  %.str.5.sink1154 = phi ptr [ @.str.5, %2405 ], [ @.str.2, %2401 ]
  store i32 %2396, ptr %543, align 4, !tbaa !5
  %2407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2408 = load i32, ptr @test_count, align 4, !tbaa !5
  %2409 = load i32, ptr %489, align 4, !tbaa !5
  %2410 = call ptr @s2n_strerror(i32 noundef %2409, ptr noundef nonnull @.str.4) #9
  %2411 = load i32, ptr %489, align 4, !tbaa !5
  %2412 = call ptr @s2n_strerror_debug(i32 noundef %2411, ptr noundef nonnull @.str.4) #9
  %2413 = load i32, ptr %543, align 4, !tbaa !5
  %2414 = call ptr @strerror(i32 noundef %2413) #9
  %2415 = load i32, ptr %543, align 4, !tbaa !5
  %2416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2407, ptr noundef nonnull %.str.5.sink1154, i32 noundef %2408, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 485, ptr noundef %2410, ptr noundef %2412, ptr noundef %2414, i32 noundef %2415) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2417:                                             ; preds = %2390
  %2418 = load i32, ptr @test_count, align 4, !tbaa !5
  %2419 = add nsw i32 %2418, 1
  store i32 %2419, ptr @test_count, align 4, !tbaa !5
  %2420 = call i32 @pipe(ptr noundef nonnull %5) #9
  %2421 = icmp eq i32 %2420, -1
  br i1 %2421, label %2422, label %2444

2422:                                             ; preds = %2417
  %2423 = load i32, ptr %543, align 4, !tbaa !5
  %2424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2425 = call i32 @s2n_print_stacktrace(ptr noundef %2424) #9
  %2426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2427 = trunc nuw i8 %2426 to i1
  br i1 %2427, label %2428, label %2432

2428:                                             ; preds = %2422
  %2429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2430 = call i32 @fileno(ptr noundef %2429) #9
  %2431 = call i32 @isatty(i32 noundef %2430) #9
  %.not286 = icmp eq i32 %2431, 0
  br i1 %.not286, label %2432, label %2433

2432:                                             ; preds = %2428, %2422
  br label %2433

2433:                                             ; preds = %2428, %2432
  %.str.5.sink1163 = phi ptr [ @.str.5, %2432 ], [ @.str.2, %2428 ]
  store i32 %2423, ptr %543, align 4, !tbaa !5
  %2434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2435 = load i32, ptr @test_count, align 4, !tbaa !5
  %2436 = load i32, ptr %489, align 4, !tbaa !5
  %2437 = call ptr @s2n_strerror(i32 noundef %2436, ptr noundef nonnull @.str.4) #9
  %2438 = load i32, ptr %489, align 4, !tbaa !5
  %2439 = call ptr @s2n_strerror_debug(i32 noundef %2438, ptr noundef nonnull @.str.4) #9
  %2440 = load i32, ptr %543, align 4, !tbaa !5
  %2441 = call ptr @strerror(i32 noundef %2440) #9
  %2442 = load i32, ptr %543, align 4, !tbaa !5
  %2443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2434, ptr noundef nonnull %.str.5.sink1163, i32 noundef %2435, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 490, ptr noundef %2437, ptr noundef %2439, ptr noundef %2441, i32 noundef %2442) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2444:                                             ; preds = %2417
  %2445 = load i32, ptr @test_count, align 4, !tbaa !5
  %2446 = add nsw i32 %2445, 1
  store i32 %2446, ptr @test_count, align 4, !tbaa !5
  %2447 = call i32 @s2n_connection_wipe(ptr noundef nonnull %125) #9
  %2448 = icmp eq i32 %2447, -1
  br i1 %2448, label %2449, label %2471

2449:                                             ; preds = %2444
  %2450 = load i32, ptr %543, align 4, !tbaa !5
  %2451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2452 = call i32 @s2n_print_stacktrace(ptr noundef %2451) #9
  %2453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2454 = trunc nuw i8 %2453 to i1
  br i1 %2454, label %2455, label %2459

2455:                                             ; preds = %2449
  %2456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2457 = call i32 @fileno(ptr noundef %2456) #9
  %2458 = call i32 @isatty(i32 noundef %2457) #9
  %.not285 = icmp eq i32 %2458, 0
  br i1 %.not285, label %2459, label %2460

2459:                                             ; preds = %2455, %2449
  br label %2460

2460:                                             ; preds = %2455, %2459
  %.str.5.sink1172 = phi ptr [ @.str.5, %2459 ], [ @.str.2, %2455 ]
  store i32 %2450, ptr %543, align 4, !tbaa !5
  %2461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2462 = load i32, ptr @test_count, align 4, !tbaa !5
  %2463 = load i32, ptr %489, align 4, !tbaa !5
  %2464 = call ptr @s2n_strerror(i32 noundef %2463, ptr noundef nonnull @.str.4) #9
  %2465 = load i32, ptr %489, align 4, !tbaa !5
  %2466 = call ptr @s2n_strerror_debug(i32 noundef %2465, ptr noundef nonnull @.str.4) #9
  %2467 = load i32, ptr %543, align 4, !tbaa !5
  %2468 = call ptr @strerror(i32 noundef %2467) #9
  %2469 = load i32, ptr %543, align 4, !tbaa !5
  %2470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2461, ptr noundef nonnull %.str.5.sink1172, i32 noundef %2462, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 492, ptr noundef %2464, ptr noundef %2466, ptr noundef %2468, i32 noundef %2469) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2471:                                             ; preds = %2444
  %2472 = load i32, ptr @test_count, align 4, !tbaa !5
  %2473 = add nsw i32 %2472, 1
  store i32 %2473, ptr @test_count, align 4, !tbaa !5
  %2474 = load i32, ptr %5, align 4, !tbaa !5
  %2475 = call i32 @s2n_connection_set_read_fd(ptr noundef nonnull %125, i32 noundef %2474) #9
  %2476 = icmp eq i32 %2475, -1
  br i1 %2476, label %2477, label %2499

2477:                                             ; preds = %2471
  %2478 = load i32, ptr %543, align 4, !tbaa !5
  %2479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2480 = call i32 @s2n_print_stacktrace(ptr noundef %2479) #9
  %2481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2482 = trunc nuw i8 %2481 to i1
  br i1 %2482, label %2483, label %2487

2483:                                             ; preds = %2477
  %2484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2485 = call i32 @fileno(ptr noundef %2484) #9
  %2486 = call i32 @isatty(i32 noundef %2485) #9
  %.not284 = icmp eq i32 %2486, 0
  br i1 %.not284, label %2487, label %2488

2487:                                             ; preds = %2483, %2477
  br label %2488

2488:                                             ; preds = %2483, %2487
  %.str.5.sink1181 = phi ptr [ @.str.5, %2487 ], [ @.str.2, %2483 ]
  store i32 %2478, ptr %543, align 4, !tbaa !5
  %2489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2490 = load i32, ptr @test_count, align 4, !tbaa !5
  %2491 = load i32, ptr %489, align 4, !tbaa !5
  %2492 = call ptr @s2n_strerror(i32 noundef %2491, ptr noundef nonnull @.str.4) #9
  %2493 = load i32, ptr %489, align 4, !tbaa !5
  %2494 = call ptr @s2n_strerror_debug(i32 noundef %2493, ptr noundef nonnull @.str.4) #9
  %2495 = load i32, ptr %543, align 4, !tbaa !5
  %2496 = call ptr @strerror(i32 noundef %2495) #9
  %2497 = load i32, ptr %543, align 4, !tbaa !5
  %2498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2489, ptr noundef nonnull %.str.5.sink1181, i32 noundef %2490, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 495, ptr noundef %2492, ptr noundef %2494, ptr noundef %2496, i32 noundef %2497) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2499:                                             ; preds = %2471
  store i32 3, ptr %301, align 4, !tbaa !15
  store i32 1, ptr %302, align 8, !tbaa !42
  store i8 33, ptr %303, align 1, !tbaa !43
  store i8 33, ptr %304, align 2, !tbaa !44
  store i8 33, ptr %305, align 4, !tbaa !45
  %2500 = call i32 @fork() #9
  %2501 = icmp eq i32 %2500, 0
  %2502 = load i32, ptr @test_count, align 4, !tbaa !5
  %2503 = add nsw i32 %2502, 1
  store i32 %2503, ptr @test_count, align 4, !tbaa !5
  br i1 %2501, label %2504, label %2586

2504:                                             ; preds = %2499
  %2505 = load i32, ptr %5, align 4, !tbaa !5
  %2506 = call i32 @close(i32 noundef %2505) #9
  %2507 = icmp eq i32 %2506, -1
  br i1 %2507, label %2508, label %2530

2508:                                             ; preds = %2504
  %2509 = load i32, ptr %543, align 4, !tbaa !5
  %2510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2511 = call i32 @s2n_print_stacktrace(ptr noundef %2510) #9
  %2512 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2513 = trunc nuw i8 %2512 to i1
  br i1 %2513, label %2514, label %2518

2514:                                             ; preds = %2508
  %2515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2516 = call i32 @fileno(ptr noundef %2515) #9
  %2517 = call i32 @isatty(i32 noundef %2516) #9
  %.not283 = icmp eq i32 %2517, 0
  br i1 %.not283, label %2518, label %2519

2518:                                             ; preds = %2514, %2508
  br label %2519

2519:                                             ; preds = %2514, %2518
  %.str.5.sink1190 = phi ptr [ @.str.5, %2518 ], [ @.str.2, %2514 ]
  store i32 %2509, ptr %543, align 4, !tbaa !5
  %2520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2521 = load i32, ptr @test_count, align 4, !tbaa !5
  %2522 = load i32, ptr %489, align 4, !tbaa !5
  %2523 = call ptr @s2n_strerror(i32 noundef %2522, ptr noundef nonnull @.str.4) #9
  %2524 = load i32, ptr %489, align 4, !tbaa !5
  %2525 = call ptr @s2n_strerror_debug(i32 noundef %2524, ptr noundef nonnull @.str.4) #9
  %2526 = load i32, ptr %543, align 4, !tbaa !5
  %2527 = call ptr @strerror(i32 noundef %2526) #9
  %2528 = load i32, ptr %543, align 4, !tbaa !5
  %2529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2520, ptr noundef nonnull %.str.5.sink1190, i32 noundef %2521, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 508, ptr noundef %2523, ptr noundef %2525, ptr noundef %2527, i32 noundef %2528) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2530:                                             ; preds = %2504
  %2531 = load i32, ptr %400, align 4, !tbaa !5
  call void @send_messages(i32 noundef %2531, ptr noundef nonnull @server_hello_message, i32 noundef 74, ptr noundef nonnull @certificate_list_too_large, i32 noundef 10)
  %2532 = load i32, ptr @test_count, align 4, !tbaa !5
  %2533 = add nsw i32 %2532, 1
  store i32 %2533, ptr @test_count, align 4, !tbaa !5
  %2534 = call i32 @s2n_connection_free(ptr noundef nonnull %125) #9
  %2535 = icmp eq i32 %2534, -1
  br i1 %2535, label %2536, label %2558

2536:                                             ; preds = %2530
  %2537 = load i32, ptr %543, align 4, !tbaa !5
  %2538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2539 = call i32 @s2n_print_stacktrace(ptr noundef %2538) #9
  %2540 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2541 = trunc nuw i8 %2540 to i1
  br i1 %2541, label %2542, label %2546

2542:                                             ; preds = %2536
  %2543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2544 = call i32 @fileno(ptr noundef %2543) #9
  %2545 = call i32 @isatty(i32 noundef %2544) #9
  %.not282 = icmp eq i32 %2545, 0
  br i1 %.not282, label %2546, label %2547

2546:                                             ; preds = %2542, %2536
  br label %2547

2547:                                             ; preds = %2542, %2546
  %.str.5.sink1199 = phi ptr [ @.str.5, %2546 ], [ @.str.2, %2542 ]
  store i32 %2537, ptr %543, align 4, !tbaa !5
  %2548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2549 = load i32, ptr @test_count, align 4, !tbaa !5
  %2550 = load i32, ptr %489, align 4, !tbaa !5
  %2551 = call ptr @s2n_strerror(i32 noundef %2550, ptr noundef nonnull @.str.4) #9
  %2552 = load i32, ptr %489, align 4, !tbaa !5
  %2553 = call ptr @s2n_strerror_debug(i32 noundef %2552, ptr noundef nonnull @.str.4) #9
  %2554 = load i32, ptr %543, align 4, !tbaa !5
  %2555 = call ptr @strerror(i32 noundef %2554) #9
  %2556 = load i32, ptr %543, align 4, !tbaa !5
  %2557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2548, ptr noundef nonnull %.str.5.sink1199, i32 noundef %2549, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 512, ptr noundef %2551, ptr noundef %2553, ptr noundef %2555, i32 noundef %2556) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2558:                                             ; preds = %2530
  %2559 = load i32, ptr @test_count, align 4, !tbaa !5
  %2560 = add nsw i32 %2559, 1
  store i32 %2560, ptr @test_count, align 4, !tbaa !5
  %2561 = call i32 @s2n_config_free(ptr noundef %124) #9
  %2562 = icmp eq i32 %2561, -1
  br i1 %2562, label %2563, label %2585

2563:                                             ; preds = %2558
  %2564 = load i32, ptr %543, align 4, !tbaa !5
  %2565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2566 = call i32 @s2n_print_stacktrace(ptr noundef %2565) #9
  %2567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2568 = trunc nuw i8 %2567 to i1
  br i1 %2568, label %2569, label %2573

2569:                                             ; preds = %2563
  %2570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2571 = call i32 @fileno(ptr noundef %2570) #9
  %2572 = call i32 @isatty(i32 noundef %2571) #9
  %.not281 = icmp eq i32 %2572, 0
  br i1 %.not281, label %2573, label %2574

2573:                                             ; preds = %2569, %2563
  br label %2574

2574:                                             ; preds = %2569, %2573
  %.str.5.sink1208 = phi ptr [ @.str.5, %2573 ], [ @.str.2, %2569 ]
  store i32 %2564, ptr %543, align 4, !tbaa !5
  %2575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2576 = load i32, ptr @test_count, align 4, !tbaa !5
  %2577 = load i32, ptr %489, align 4, !tbaa !5
  %2578 = call ptr @s2n_strerror(i32 noundef %2577, ptr noundef nonnull @.str.4) #9
  %2579 = load i32, ptr %489, align 4, !tbaa !5
  %2580 = call ptr @s2n_strerror_debug(i32 noundef %2579, ptr noundef nonnull @.str.4) #9
  %2581 = load i32, ptr %543, align 4, !tbaa !5
  %2582 = call ptr @strerror(i32 noundef %2581) #9
  %2583 = load i32, ptr %543, align 4, !tbaa !5
  %2584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2575, ptr noundef nonnull %.str.5.sink1208, i32 noundef %2576, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 513, ptr noundef %2578, ptr noundef %2580, ptr noundef %2582, i32 noundef %2583) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2585:                                             ; preds = %2558
  call void @exit(i32 noundef 0) #12
  unreachable

2586:                                             ; preds = %2499
  %2587 = load i32, ptr %400, align 4, !tbaa !5
  %2588 = call i32 @close(i32 noundef %2587) #9
  %2589 = icmp eq i32 %2588, -1
  br i1 %2589, label %2590, label %2612

2590:                                             ; preds = %2586
  %2591 = load i32, ptr %543, align 4, !tbaa !5
  %2592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2593 = call i32 @s2n_print_stacktrace(ptr noundef %2592) #9
  %2594 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2595 = trunc nuw i8 %2594 to i1
  br i1 %2595, label %2596, label %2600

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

2600:                                             ; preds = %2596, %2590
  br label %2601

2601:                                             ; preds = %2596, %2600
  %.str.5.sink1217 = phi ptr [ @.str.5, %2600 ], [ @.str.2, %2596 ]
  store i32 %2591, ptr %543, align 4, !tbaa !5
  %2602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2603 = load i32, ptr @test_count, align 4, !tbaa !5
  %2604 = load i32, ptr %489, align 4, !tbaa !5
  %2605 = call ptr @s2n_strerror(i32 noundef %2604, ptr noundef nonnull @.str.4) #9
  %2606 = load i32, ptr %489, align 4, !tbaa !5
  %2607 = call ptr @s2n_strerror_debug(i32 noundef %2606, ptr noundef nonnull @.str.4) #9
  %2608 = load i32, ptr %543, align 4, !tbaa !5
  %2609 = call ptr @strerror(i32 noundef %2608) #9
  %2610 = load i32, ptr %543, align 4, !tbaa !5
  %2611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2602, ptr noundef nonnull %.str.5.sink1217, i32 noundef %2603, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 518, ptr noundef %2605, ptr noundef %2607, ptr noundef %2609, i32 noundef %2610) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2612:                                             ; preds = %2586
  %2613 = load i32, ptr @test_count, align 4, !tbaa !5
  %2614 = add nsw i32 %2613, 1
  store i32 %2614, ptr @test_count, align 4, !tbaa !5
  %2615 = call i32 @s2n_connection_set_blinding(ptr noundef nonnull %125, i32 noundef 1) #9
  %2616 = icmp eq i32 %2615, -1
  br i1 %2616, label %2617, label %2639

2617:                                             ; preds = %2612
  %2618 = load i32, ptr %543, align 4, !tbaa !5
  %2619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2620 = call i32 @s2n_print_stacktrace(ptr noundef %2619) #9
  %2621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2622 = trunc nuw i8 %2621 to i1
  br i1 %2622, label %2623, label %2627

2623:                                             ; preds = %2617
  %2624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2625 = call i32 @fileno(ptr noundef %2624) #9
  %2626 = call i32 @isatty(i32 noundef %2625) #9
  %.not279 = icmp eq i32 %2626, 0
  br i1 %.not279, label %2627, label %2628

2627:                                             ; preds = %2623, %2617
  br label %2628

2628:                                             ; preds = %2623, %2627
  %.str.5.sink1226 = phi ptr [ @.str.5, %2627 ], [ @.str.2, %2623 ]
  store i32 %2618, ptr %543, align 4, !tbaa !5
  %2629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2630 = load i32, ptr @test_count, align 4, !tbaa !5
  %2631 = load i32, ptr %489, align 4, !tbaa !5
  %2632 = call ptr @s2n_strerror(i32 noundef %2631, ptr noundef nonnull @.str.4) #9
  %2633 = load i32, ptr %489, align 4, !tbaa !5
  %2634 = call ptr @s2n_strerror_debug(i32 noundef %2633, ptr noundef nonnull @.str.4) #9
  %2635 = load i32, ptr %543, align 4, !tbaa !5
  %2636 = call ptr @strerror(i32 noundef %2635) #9
  %2637 = load i32, ptr %543, align 4, !tbaa !5
  %2638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2629, ptr noundef nonnull %.str.5.sink1226, i32 noundef %2630, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 522, ptr noundef %2632, ptr noundef %2634, ptr noundef %2636, i32 noundef %2637) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2639:                                             ; preds = %2612
  %2640 = load i32, ptr @test_count, align 4, !tbaa !5
  %2641 = add nsw i32 %2640, 1
  store i32 %2641, ptr @test_count, align 4, !tbaa !5
  %2642 = call i32 @s2n_negotiate(ptr noundef nonnull %125, ptr noundef nonnull %3) #9
  %2643 = icmp eq i32 %2642, -1
  br i1 %2643, label %2666, label %2644

2644:                                             ; preds = %2639
  %2645 = load i32, ptr %543, align 4, !tbaa !5
  %2646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2647 = call i32 @s2n_print_stacktrace(ptr noundef %2646) #9
  %2648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2649 = trunc nuw i8 %2648 to i1
  br i1 %2649, label %2650, label %2654

2650:                                             ; preds = %2644
  %2651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2652 = call i32 @fileno(ptr noundef %2651) #9
  %2653 = call i32 @isatty(i32 noundef %2652) #9
  %.not265 = icmp eq i32 %2653, 0
  br i1 %.not265, label %2654, label %2655

2654:                                             ; preds = %2650, %2644
  br label %2655

2655:                                             ; preds = %2650, %2654
  %.str.5.sink1235 = phi ptr [ @.str.5, %2654 ], [ @.str.2, %2650 ]
  store i32 %2645, ptr %543, align 4, !tbaa !5
  %2656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2657 = load i32, ptr @test_count, align 4, !tbaa !5
  %2658 = load i32, ptr %489, align 4, !tbaa !5
  %2659 = call ptr @s2n_strerror(i32 noundef %2658, ptr noundef nonnull @.str.4) #9
  %2660 = load i32, ptr %489, align 4, !tbaa !5
  %2661 = call ptr @s2n_strerror_debug(i32 noundef %2660, ptr noundef nonnull @.str.4) #9
  %2662 = load i32, ptr %543, align 4, !tbaa !5
  %2663 = call ptr @strerror(i32 noundef %2662) #9
  %2664 = load i32, ptr %543, align 4, !tbaa !5
  %2665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2656, ptr noundef nonnull %.str.5.sink1235, i32 noundef %2657, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 523, ptr noundef %2659, ptr noundef %2661, ptr noundef %2663, i32 noundef %2664) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2666:                                             ; preds = %2639
  %2667 = load i32, ptr @test_count, align 4, !tbaa !5
  %2668 = add nsw i32 %2667, 1
  store i32 %2668, ptr @test_count, align 4, !tbaa !5
  %2669 = load i32, ptr %489, align 4, !tbaa !5
  %2670 = icmp eq i32 %2669, 0
  br i1 %2670, label %2671, label %2693

2671:                                             ; preds = %2666
  %2672 = load i32, ptr %543, align 4, !tbaa !5
  %2673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2674 = call i32 @s2n_print_stacktrace(ptr noundef %2673) #9
  %2675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2676 = trunc nuw i8 %2675 to i1
  br i1 %2676, label %2677, label %2681

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

2681:                                             ; preds = %2677, %2671
  br label %2682

2682:                                             ; preds = %2677, %2681
  %.str.5.sink1244 = phi ptr [ @.str.5, %2681 ], [ @.str.2, %2677 ]
  store i32 %2672, ptr %543, align 4, !tbaa !5
  %2683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2684 = load i32, ptr @test_count, align 4, !tbaa !5
  %2685 = load i32, ptr %489, align 4, !tbaa !5
  %2686 = call ptr @s2n_strerror(i32 noundef %2685, ptr noundef nonnull @.str.4) #9
  %2687 = load i32, ptr %489, align 4, !tbaa !5
  %2688 = call ptr @s2n_strerror_debug(i32 noundef %2687, ptr noundef nonnull @.str.4) #9
  %2689 = load i32, ptr %543, align 4, !tbaa !5
  %2690 = call ptr @strerror(i32 noundef %2689) #9
  %2691 = load i32, ptr %543, align 4, !tbaa !5
  %2692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2683, ptr noundef nonnull %.str.5.sink1244, i32 noundef %2684, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 523, ptr noundef %2686, ptr noundef %2688, ptr noundef %2690, i32 noundef %2691) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2693:                                             ; preds = %2666
  %2694 = add nsw i32 %2667, 2
  store i32 %2694, ptr @test_count, align 4, !tbaa !5
  %2695 = call ptr @s2n_strerror_debug(i32 noundef %2669, ptr noundef nonnull @.str.4) #9
  %2696 = icmp eq ptr %2695, null
  br i1 %2696, label %2697, label %2719

2697:                                             ; preds = %2693
  %2698 = load i32, ptr %543, align 4, !tbaa !5
  %2699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2700 = call i32 @s2n_print_stacktrace(ptr noundef %2699) #9
  %2701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2702 = trunc nuw i8 %2701 to i1
  br i1 %2702, label %2703, label %2707

2703:                                             ; preds = %2697
  %2704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2705 = call i32 @fileno(ptr noundef %2704) #9
  %2706 = call i32 @isatty(i32 noundef %2705) #9
  %.not277 = icmp eq i32 %2706, 0
  br i1 %.not277, label %2707, label %2708

2707:                                             ; preds = %2703, %2697
  br label %2708

2708:                                             ; preds = %2703, %2707
  %.str.5.sink1253 = phi ptr [ @.str.5, %2707 ], [ @.str.2, %2703 ]
  store i32 %2698, ptr %543, align 4, !tbaa !5
  %2709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2710 = load i32, ptr @test_count, align 4, !tbaa !5
  %2711 = load i32, ptr %489, align 4, !tbaa !5
  %2712 = call ptr @s2n_strerror(i32 noundef %2711, ptr noundef nonnull @.str.4) #9
  %2713 = load i32, ptr %489, align 4, !tbaa !5
  %2714 = call ptr @s2n_strerror_debug(i32 noundef %2713, ptr noundef nonnull @.str.4) #9
  %2715 = load i32, ptr %543, align 4, !tbaa !5
  %2716 = call ptr @strerror(i32 noundef %2715) #9
  %2717 = load i32, ptr %543, align 4, !tbaa !5
  %2718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2709, ptr noundef nonnull %.str.5.sink1253, i32 noundef %2710, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 523, ptr noundef %2712, ptr noundef %2714, ptr noundef %2716, i32 noundef %2717) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2719:                                             ; preds = %2693
  store i32 0, ptr %489, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %543, align 4, !tbaa !5
  %2720 = load i32, ptr @test_count, align 4, !tbaa !5
  %2721 = add nsw i32 %2720, 1
  store i32 %2721, ptr @test_count, align 4, !tbaa !5
  %bcmp266 = call i32 @bcmp(ptr noundef nonnull dereferenceable(32) %546, ptr noundef nonnull dereferenceable(32) @zero_to_thirty_one, i64 32)
  %2722 = icmp eq i32 %bcmp266, 0
  br i1 %2722, label %2745, label %2723

2723:                                             ; preds = %2719
  %2724 = load i32, ptr %543, align 4, !tbaa !5
  %2725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2726 = call i32 @s2n_print_stacktrace(ptr noundef %2725) #9
  %2727 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2728 = trunc nuw i8 %2727 to i1
  br i1 %2728, label %2729, label %2733

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

2733:                                             ; preds = %2729, %2723
  br label %2734

2734:                                             ; preds = %2729, %2733
  %.str.5.sink1262 = phi ptr [ @.str.5, %2733 ], [ @.str.2, %2729 ]
  store i32 %2724, ptr %543, align 4, !tbaa !5
  %2735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2736 = load i32, ptr @test_count, align 4, !tbaa !5
  %2737 = load i32, ptr %489, align 4, !tbaa !5
  %2738 = call ptr @s2n_strerror(i32 noundef %2737, ptr noundef nonnull @.str.4) #9
  %2739 = load i32, ptr %489, align 4, !tbaa !5
  %2740 = call ptr @s2n_strerror_debug(i32 noundef %2739, ptr noundef nonnull @.str.4) #9
  %2741 = load i32, ptr %543, align 4, !tbaa !5
  %2742 = call ptr @strerror(i32 noundef %2741) #9
  %2743 = load i32, ptr %543, align 4, !tbaa !5
  %2744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2735, ptr noundef nonnull %.str.5.sink1262, i32 noundef %2736, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 526, ptr noundef %2738, ptr noundef %2740, ptr noundef %2742, i32 noundef %2743) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2745:                                             ; preds = %2719
  %2746 = add nsw i32 %2720, 2
  store i32 %2746, ptr @test_count, align 4, !tbaa !5
  %2747 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %125) #9
  %2748 = icmp eq i32 %2747, 2
  br i1 %2748, label %2771, label %2749

2749:                                             ; preds = %2745
  %2750 = load i32, ptr %543, align 4, !tbaa !5
  %2751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2752 = call i32 @s2n_print_stacktrace(ptr noundef %2751) #9
  %2753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2754 = trunc nuw i8 %2753 to i1
  br i1 %2754, label %2755, label %2759

2755:                                             ; preds = %2749
  %2756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2757 = call i32 @fileno(ptr noundef %2756) #9
  %2758 = call i32 @isatty(i32 noundef %2757) #9
  %.not268 = icmp eq i32 %2758, 0
  br i1 %.not268, label %2759, label %2760

2759:                                             ; preds = %2755, %2749
  br label %2760

2760:                                             ; preds = %2755, %2759
  %.str.5.sink1271 = phi ptr [ @.str.5, %2759 ], [ @.str.2, %2755 ]
  store i32 %2750, ptr %543, align 4, !tbaa !5
  %2761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2762 = load i32, ptr @test_count, align 4, !tbaa !5
  %2763 = load i32, ptr %489, align 4, !tbaa !5
  %2764 = call ptr @s2n_strerror(i32 noundef %2763, ptr noundef nonnull @.str.4) #9
  %2765 = load i32, ptr %489, align 4, !tbaa !5
  %2766 = call ptr @s2n_strerror_debug(i32 noundef %2765, ptr noundef nonnull @.str.4) #9
  %2767 = load i32, ptr %543, align 4, !tbaa !5
  %2768 = call ptr @strerror(i32 noundef %2767) #9
  %2769 = load i32, ptr %543, align 4, !tbaa !5
  %2770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2761, ptr noundef nonnull %.str.5.sink1271, i32 noundef %2762, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 529, ptr noundef %2764, ptr noundef %2766, ptr noundef %2768, i32 noundef %2769) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2771:                                             ; preds = %2745
  %2772 = load i32, ptr @test_count, align 4, !tbaa !5
  %2773 = add nsw i32 %2772, 1
  store i32 %2773, ptr @test_count, align 4, !tbaa !5
  %2774 = call i32 @waitpid(i32 noundef %2500, ptr noundef nonnull %4, i32 noundef 0) #9
  %2775 = icmp eq i32 %2774, %2500
  br i1 %2775, label %2798, label %2776

2776:                                             ; preds = %2771
  %2777 = load i32, ptr %543, align 4, !tbaa !5
  %2778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2779 = call i32 @s2n_print_stacktrace(ptr noundef %2778) #9
  %2780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2781 = trunc nuw i8 %2780 to i1
  br i1 %2781, label %2782, label %2786

2782:                                             ; preds = %2776
  %2783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2784 = call i32 @fileno(ptr noundef %2783) #9
  %2785 = call i32 @isatty(i32 noundef %2784) #9
  %.not269 = icmp eq i32 %2785, 0
  br i1 %.not269, label %2786, label %2787

2786:                                             ; preds = %2782, %2776
  br label %2787

2787:                                             ; preds = %2782, %2786
  %.str.5.sink1280 = phi ptr [ @.str.5, %2786 ], [ @.str.2, %2782 ]
  store i32 %2777, ptr %543, align 4, !tbaa !5
  %2788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2789 = load i32, ptr @test_count, align 4, !tbaa !5
  %2790 = load i32, ptr %489, align 4, !tbaa !5
  %2791 = call ptr @s2n_strerror(i32 noundef %2790, ptr noundef nonnull @.str.4) #9
  %2792 = load i32, ptr %489, align 4, !tbaa !5
  %2793 = call ptr @s2n_strerror_debug(i32 noundef %2792, ptr noundef nonnull @.str.4) #9
  %2794 = load i32, ptr %543, align 4, !tbaa !5
  %2795 = call ptr @strerror(i32 noundef %2794) #9
  %2796 = load i32, ptr %543, align 4, !tbaa !5
  %2797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2788, ptr noundef nonnull %.str.5.sink1280, i32 noundef %2789, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 532, ptr noundef %2791, ptr noundef %2793, ptr noundef %2795, i32 noundef %2796) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2798:                                             ; preds = %2771
  %2799 = load i32, ptr @test_count, align 4, !tbaa !5
  %2800 = add nsw i32 %2799, 1
  store i32 %2800, ptr @test_count, align 4, !tbaa !5
  %2801 = load i32, ptr %4, align 4, !tbaa !5
  %2802 = icmp eq i32 %2801, 0
  br i1 %2802, label %2825, label %2803

2803:                                             ; preds = %2798
  %2804 = load i32, ptr %543, align 4, !tbaa !5
  %2805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2806 = call i32 @s2n_print_stacktrace(ptr noundef %2805) #9
  %2807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2808 = trunc nuw i8 %2807 to i1
  br i1 %2808, label %2809, label %2813

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

2813:                                             ; preds = %2809, %2803
  br label %2814

2814:                                             ; preds = %2809, %2813
  %.str.5.sink1289 = phi ptr [ @.str.5, %2813 ], [ @.str.2, %2809 ]
  store i32 %2804, ptr %543, align 4, !tbaa !5
  %2815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2816 = load i32, ptr @test_count, align 4, !tbaa !5
  %2817 = load i32, ptr %489, align 4, !tbaa !5
  %2818 = call ptr @s2n_strerror(i32 noundef %2817, ptr noundef nonnull @.str.4) #9
  %2819 = load i32, ptr %489, align 4, !tbaa !5
  %2820 = call ptr @s2n_strerror_debug(i32 noundef %2819, ptr noundef nonnull @.str.4) #9
  %2821 = load i32, ptr %543, align 4, !tbaa !5
  %2822 = call ptr @strerror(i32 noundef %2821) #9
  %2823 = load i32, ptr %543, align 4, !tbaa !5
  %2824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2815, ptr noundef nonnull %.str.5.sink1289, i32 noundef %2816, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 533, ptr noundef %2818, ptr noundef %2820, ptr noundef %2822, i32 noundef %2823) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2825:                                             ; preds = %2798
  %2826 = add nsw i32 %2799, 2
  store i32 %2826, ptr @test_count, align 4, !tbaa !5
  %2827 = load i32, ptr %5, align 4, !tbaa !5
  %2828 = call i32 @close(i32 noundef %2827) #9
  %2829 = icmp eq i32 %2828, -1
  br i1 %2829, label %2830, label %2852

2830:                                             ; preds = %2825
  %2831 = load i32, ptr %543, align 4, !tbaa !5
  %2832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2833 = call i32 @s2n_print_stacktrace(ptr noundef %2832) #9
  %2834 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2835 = trunc nuw i8 %2834 to i1
  br i1 %2835, label %2836, label %2840

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

2840:                                             ; preds = %2836, %2830
  br label %2841

2841:                                             ; preds = %2836, %2840
  %.str.5.sink1298 = phi ptr [ @.str.5, %2840 ], [ @.str.2, %2836 ]
  store i32 %2831, ptr %543, align 4, !tbaa !5
  %2842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2843 = load i32, ptr @test_count, align 4, !tbaa !5
  %2844 = load i32, ptr %489, align 4, !tbaa !5
  %2845 = call ptr @s2n_strerror(i32 noundef %2844, ptr noundef nonnull @.str.4) #9
  %2846 = load i32, ptr %489, align 4, !tbaa !5
  %2847 = call ptr @s2n_strerror_debug(i32 noundef %2846, ptr noundef nonnull @.str.4) #9
  %2848 = load i32, ptr %543, align 4, !tbaa !5
  %2849 = call ptr @strerror(i32 noundef %2848) #9
  %2850 = load i32, ptr %543, align 4, !tbaa !5
  %2851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2842, ptr noundef nonnull %.str.5.sink1298, i32 noundef %2843, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 534, ptr noundef %2845, ptr noundef %2847, ptr noundef %2849, i32 noundef %2850) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2852:                                             ; preds = %2825
  %2853 = call i32 @s2n_cleanup() #9
  %2854 = icmp eq i32 %2853, -1
  br i1 %2854, label %2855, label %2877

2855:                                             ; preds = %2852
  %2856 = load i32, ptr %543, align 4, !tbaa !5
  %2857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2858 = call i32 @s2n_print_stacktrace(ptr noundef %2857) #9
  %2859 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2860 = trunc nuw i8 %2859 to i1
  br i1 %2860, label %2861, label %2865

2861:                                             ; preds = %2855
  %2862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2863 = call i32 @fileno(ptr noundef %2862) #9
  %2864 = call i32 @isatty(i32 noundef %2863) #9
  %.not275 = icmp eq i32 %2864, 0
  br i1 %.not275, label %2865, label %2866

2865:                                             ; preds = %2861, %2855
  br label %2866

2866:                                             ; preds = %2861, %2865
  %.str.5.sink1307 = phi ptr [ @.str.5, %2865 ], [ @.str.2, %2861 ]
  store i32 %2856, ptr %543, align 4, !tbaa !5
  %2867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2868 = load i32, ptr @test_count, align 4, !tbaa !5
  %2869 = load i32, ptr %489, align 4, !tbaa !5
  %2870 = call ptr @s2n_strerror(i32 noundef %2869, ptr noundef nonnull @.str.4) #9
  %2871 = load i32, ptr %489, align 4, !tbaa !5
  %2872 = call ptr @s2n_strerror_debug(i32 noundef %2871, ptr noundef nonnull @.str.4) #9
  %2873 = load i32, ptr %543, align 4, !tbaa !5
  %2874 = call ptr @strerror(i32 noundef %2873) #9
  %2875 = load i32, ptr %543, align 4, !tbaa !5
  %2876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2867, ptr noundef nonnull %.str.5.sink1307, i32 noundef %2868, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 536, ptr noundef %2870, ptr noundef %2872, ptr noundef %2874, i32 noundef %2875) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2877:                                             ; preds = %2852
  %2878 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %2879 = icmp eq i32 %2878, -1
  br i1 %2879, label %2880, label %2902

2880:                                             ; preds = %2877
  %2881 = load i32, ptr %543, align 4, !tbaa !5
  %2882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2883 = call i32 @s2n_print_stacktrace(ptr noundef %2882) #9
  %2884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2885 = trunc nuw i8 %2884 to i1
  br i1 %2885, label %2886, label %2890

2886:                                             ; preds = %2880
  %2887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2888 = call i32 @fileno(ptr noundef %2887) #9
  %2889 = call i32 @isatty(i32 noundef %2888) #9
  %.not274 = icmp eq i32 %2889, 0
  br i1 %.not274, label %2890, label %2891

2890:                                             ; preds = %2886, %2880
  br label %2891

2891:                                             ; preds = %2886, %2890
  %.str.5.sink1316 = phi ptr [ @.str.5, %2890 ], [ @.str.2, %2886 ]
  store i32 %2881, ptr %543, align 4, !tbaa !5
  %2892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2893 = load i32, ptr @test_count, align 4, !tbaa !5
  %2894 = load i32, ptr %489, align 4, !tbaa !5
  %2895 = call ptr @s2n_strerror(i32 noundef %2894, ptr noundef nonnull @.str.4) #9
  %2896 = load i32, ptr %489, align 4, !tbaa !5
  %2897 = call ptr @s2n_strerror_debug(i32 noundef %2896, ptr noundef nonnull @.str.4) #9
  %2898 = load i32, ptr %543, align 4, !tbaa !5
  %2899 = call ptr @strerror(i32 noundef %2898) #9
  %2900 = load i32, ptr %543, align 4, !tbaa !5
  %2901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2892, ptr noundef nonnull %.str.5.sink1316, i32 noundef %2893, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 536, ptr noundef %2895, ptr noundef %2897, ptr noundef %2899, i32 noundef %2900) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2902:                                             ; preds = %2877
  %2903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2904 = trunc nuw i8 %2903 to i1
  br i1 %2904, label %2905, label %2916

2905:                                             ; preds = %2902
  %2906 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2907 = call i32 @fileno(ptr noundef %2906) #9
  %2908 = call i32 @isatty(i32 noundef %2907) #9
  %.not271 = icmp eq i32 %2908, 0
  br i1 %.not271, label %2916, label %2909

2909:                                             ; preds = %2905
  %2910 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not273 = icmp eq i32 %2910, 0
  %2911 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not273, label %2914, label %2912

2912:                                             ; preds = %2909
  %2913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2911, ptr noundef nonnull @.str.31, i32 noundef %2910) #9
  br label %2923

2914:                                             ; preds = %2909
  %2915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2911, ptr noundef nonnull @.str.32) #9
  br label %2923

2916:                                             ; preds = %2905, %2902
  %2917 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not272 = icmp eq i32 %2917, 0
  %2918 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not272, label %2921, label %2919

2919:                                             ; preds = %2916
  %2920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2918, ptr noundef nonnull @.str.33, i32 noundef %2917) #9
  br label %2923

2921:                                             ; preds = %2916
  %2922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2918, ptr noundef nonnull @.str.34) #9
  br label %2923

2923:                                             ; preds = %2919, %2921, %2912, %2914
  %2924 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  %2925 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %6) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #9
  ret i32 0
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #3

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #3

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 #4

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #3

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_disable_x509_verification(ptr noundef) local_unnamed_addr #2

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

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

; Function Attrs: nounwind
declare i32 @pipe(ptr noundef) local_unnamed_addr #5

declare i32 @s2n_connection_wipe(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_read_fd(ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: nofree nounwind
declare i32 @fork() local_unnamed_addr #3

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_negotiate(ptr noundef, ptr noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_conn_get_current_message_type(ptr noundef) local_unnamed_addr #2

declare i32 @waitpid(i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #8

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 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
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 = { 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 #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nofree nounwind willreturn memory(argmem: read) }
attributes #9 = { nounwind }
attributes #10 = { nounwind willreturn memory(none) }
attributes #11 = { cold nounwind }
attributes #12 = { 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, !6, i64 2176}
!43 = !{!16, !7, i64 219}
!44 = !{!16, !7, i64 218}
!45 = !{!16, !7, i64 220}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass