; LLVM IR from aws/s2n-tls :: tests/unit (s2n_fragmentation_coalescing_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_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
@zero_to_thirty_one = external dso_local global [32 x i8], align 16
@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 [92 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 [60 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

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

declare i32 @close(i32 noundef) #2

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

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

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

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

; 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 ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca [2 x i32], align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %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
  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 8, ptr %6) #8
  store ptr null, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #8
  store ptr null, ptr %7, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #8
  store i32 0, ptr %9, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #8
  store i32 0, ptr %10, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  br label %101

101:                                              ; preds = %2
  br label %102

102:                                              ; preds = %101
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %103 = load ptr, ptr @stdout, align 8, !tbaa !9
  %104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %103, ptr noundef @.str, ptr noundef @.str.1) #8
  %105 = load ptr, ptr @stdout, align 8, !tbaa !9
  %106 = call i32 @fflush(ptr noundef %105)
  br label %107

107:                                              ; preds = %102
  %108 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %109 = icmp eq i32 %108, -1
  br i1 %109, label %110, label %163

110:                                              ; preds = %107
  br label %111

111:                                              ; preds = %110
  br label %112

112:                                              ; preds = %111
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  %113 = call ptr @__errno_location() #9
  %114 = load i32, ptr %113, align 4, !tbaa !5
  store i32 %114, ptr %12, align 4, !tbaa !5
  %115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %116 = call i32 @s2n_print_stacktrace(ptr noundef %115)
  %117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %118 = trunc i8 %117 to i1
  br i1 %118, label %119, label %141

119:                                              ; preds = %112
  %120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %121 = call i32 @fileno(ptr noundef %120) #8
  %122 = call i32 @isatty(i32 noundef %121) #8
  %123 = icmp ne i32 %122, 0
  br i1 %123, label %124, label %141

124:                                              ; preds = %119
  %125 = load i32, ptr %12, align 4, !tbaa !5
  %126 = call ptr @__errno_location() #9
  store i32 %125, ptr %126, align 4, !tbaa !5
  %127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %128 = load i32, ptr @test_count, align 4, !tbaa !5
  %129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %130 = load i32, ptr %129, align 4, !tbaa !5
  %131 = call ptr @s2n_strerror(i32 noundef %130, ptr noundef @.str.4)
  %132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %133 = load i32, ptr %132, align 4, !tbaa !5
  %134 = call ptr @s2n_strerror_debug(i32 noundef %133, ptr noundef @.str.4)
  %135 = call ptr @__errno_location() #9
  %136 = load i32, ptr %135, align 4, !tbaa !5
  %137 = call ptr @strerror(i32 noundef %136) #8
  %138 = call ptr @__errno_location() #9
  %139 = load i32, ptr %138, align 4, !tbaa !5
  %140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %127, ptr noundef @.str.2, i32 noundef %128, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 400, ptr noundef %131, ptr noundef %134, ptr noundef %137, i32 noundef %139) #8
  br label %158

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

158:                                              ; preds = %141, %124
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  br label %159

159:                                              ; preds = %158
  br label %160

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

161:                                              ; No predecessors!
  br label %162

162:                                              ; preds = %161
  br label %163

163:                                              ; preds = %162, %107
  br label %164

164:                                              ; preds = %163
  br label %165

165:                                              ; preds = %164
  br label %166

166:                                              ; preds = %165
  %167 = load i32, ptr @test_count, align 4, !tbaa !5
  %168 = add nsw i32 %167, 1
  store i32 %168, ptr @test_count, align 4, !tbaa !5
  %169 = call i32 @s2n_enable_atexit()
  %170 = icmp eq i32 %169, -1
  br i1 %170, label %171, label %224

171:                                              ; preds = %166
  br label %172

172:                                              ; preds = %171
  br label %173

173:                                              ; preds = %172
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #8
  %174 = call ptr @__errno_location() #9
  %175 = load i32, ptr %174, align 4, !tbaa !5
  store i32 %175, ptr %13, align 4, !tbaa !5
  %176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %177 = call i32 @s2n_print_stacktrace(ptr noundef %176)
  %178 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %179 = trunc i8 %178 to i1
  br i1 %179, label %180, label %202

180:                                              ; preds = %173
  %181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %182 = call i32 @fileno(ptr noundef %181) #8
  %183 = call i32 @isatty(i32 noundef %182) #8
  %184 = icmp ne i32 %183, 0
  br i1 %184, label %185, label %202

185:                                              ; preds = %180
  %186 = load i32, ptr %13, align 4, !tbaa !5
  %187 = call ptr @__errno_location() #9
  store i32 %186, ptr %187, align 4, !tbaa !5
  %188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %189 = load i32, ptr @test_count, align 4, !tbaa !5
  %190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %191 = load i32, ptr %190, align 4, !tbaa !5
  %192 = call ptr @s2n_strerror(i32 noundef %191, ptr noundef @.str.4)
  %193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %194 = load i32, ptr %193, align 4, !tbaa !5
  %195 = call ptr @s2n_strerror_debug(i32 noundef %194, ptr noundef @.str.4)
  %196 = call ptr @__errno_location() #9
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = call ptr @strerror(i32 noundef %197) #8
  %199 = call ptr @__errno_location() #9
  %200 = load i32, ptr %199, align 4, !tbaa !5
  %201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %188, ptr noundef @.str.2, i32 noundef %189, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 400, ptr noundef %192, ptr noundef %195, ptr noundef %198, i32 noundef %200) #8
  br label %219

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

219:                                              ; preds = %202, %185
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  br label %220

220:                                              ; preds = %219
  br label %221

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

222:                                              ; No predecessors!
  br label %223

223:                                              ; preds = %222
  br label %224

224:                                              ; preds = %223, %166
  br label %225

225:                                              ; preds = %224
  br label %226

226:                                              ; preds = %225
  br label %227

227:                                              ; preds = %226
  br label %228

228:                                              ; preds = %227
  br label %229

229:                                              ; preds = %228
  %230 = call i32 @s2n_init()
  %231 = icmp eq i32 %230, -1
  br i1 %231, label %232, label %285

232:                                              ; preds = %229
  br label %233

233:                                              ; preds = %232
  br label %234

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

241:                                              ; preds = %234
  %242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %243 = call i32 @fileno(ptr noundef %242) #8
  %244 = call i32 @isatty(i32 noundef %243) #8
  %245 = icmp ne i32 %244, 0
  br i1 %245, label %246, label %263

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

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

280:                                              ; preds = %263, %246
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  br label %281

281:                                              ; preds = %280
  br label %282

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

283:                                              ; No predecessors!
  br label %284

284:                                              ; preds = %283
  br label %285

285:                                              ; preds = %284, %229
  br label %286

286:                                              ; preds = %285
  br label %287

287:                                              ; preds = %286
  br label %288

288:                                              ; preds = %287
  br label %289

289:                                              ; preds = %288
  br label %290

290:                                              ; preds = %289
  %291 = load i32, ptr @test_count, align 4, !tbaa !5
  %292 = add nsw i32 %291, 1
  store i32 %292, ptr @test_count, align 4, !tbaa !5
  %293 = call i32 (...) @s2n_disable_tls13_in_test()
  %294 = icmp eq i32 %293, -1
  br i1 %294, label %295, label %348

295:                                              ; preds = %290
  br label %296

296:                                              ; preds = %295
  br label %297

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

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

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

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

343:                                              ; preds = %326, %309
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  br label %344

344:                                              ; preds = %343
  br label %345

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

346:                                              ; No predecessors!
  br label %347

347:                                              ; preds = %346
  br label %348

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

349:                                              ; preds = %348
  br label %350

350:                                              ; preds = %349
  br label %351

351:                                              ; preds = %350
  %352 = load i32, ptr @test_count, align 4, !tbaa !5
  %353 = add nsw i32 %352, 1
  store i32 %353, ptr @test_count, align 4, !tbaa !5
  %354 = call ptr @s2n_config_new()
  store ptr %354, ptr %7, align 8, !tbaa !9
  %355 = icmp eq ptr %354, null
  br i1 %355, label %356, label %409

356:                                              ; preds = %351
  br label %357

357:                                              ; preds = %356
  br label %358

358:                                              ; preds = %357
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  %359 = call ptr @__errno_location() #9
  %360 = load i32, ptr %359, align 4, !tbaa !5
  store i32 %360, ptr %16, align 4, !tbaa !5
  %361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %362 = call i32 @s2n_print_stacktrace(ptr noundef %361)
  %363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %364 = trunc i8 %363 to i1
  br i1 %364, label %365, label %387

365:                                              ; preds = %358
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = call i32 @fileno(ptr noundef %366) #8
  %368 = call i32 @isatty(i32 noundef %367) #8
  %369 = icmp ne i32 %368, 0
  br i1 %369, label %370, label %387

370:                                              ; preds = %365
  %371 = load i32, ptr %16, align 4, !tbaa !5
  %372 = call ptr @__errno_location() #9
  store i32 %371, ptr %372, align 4, !tbaa !5
  %373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %374 = load i32, ptr @test_count, align 4, !tbaa !5
  %375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %376 = load i32, ptr %375, align 4, !tbaa !5
  %377 = call ptr @s2n_strerror(i32 noundef %376, ptr noundef @.str.4)
  %378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %379 = load i32, ptr %378, align 4, !tbaa !5
  %380 = call ptr @s2n_strerror_debug(i32 noundef %379, ptr noundef @.str.4)
  %381 = call ptr @__errno_location() #9
  %382 = load i32, ptr %381, align 4, !tbaa !5
  %383 = call ptr @strerror(i32 noundef %382) #8
  %384 = call ptr @__errno_location() #9
  %385 = load i32, ptr %384, align 4, !tbaa !5
  %386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %373, ptr noundef @.str.2, i32 noundef %374, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 403, ptr noundef %377, ptr noundef %380, ptr noundef %383, i32 noundef %385) #8
  br label %404

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

404:                                              ; preds = %387, %370
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  br label %405

405:                                              ; preds = %404
  br label %406

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

407:                                              ; No predecessors!
  br label %408

408:                                              ; preds = %407
  br label %409

409:                                              ; preds = %408, %351
  br label %410

410:                                              ; preds = %409
  br label %411

411:                                              ; preds = %410
  br label %412

412:                                              ; preds = %411
  %413 = load i32, ptr @test_count, align 4, !tbaa !5
  %414 = add nsw i32 %413, 1
  store i32 %414, ptr @test_count, align 4, !tbaa !5
  %415 = load ptr, ptr %7, align 8, !tbaa !9
  %416 = call i32 @s2n_config_disable_x509_verification(ptr noundef %415)
  %417 = icmp eq i32 %416, -1
  br i1 %417, label %418, label %471

418:                                              ; preds = %412
  br label %419

419:                                              ; preds = %418
  br label %420

420:                                              ; preds = %419
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  %421 = call ptr @__errno_location() #9
  %422 = load i32, ptr %421, align 4, !tbaa !5
  store i32 %422, ptr %17, align 4, !tbaa !5
  %423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %424 = call i32 @s2n_print_stacktrace(ptr noundef %423)
  %425 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %426 = trunc i8 %425 to i1
  br i1 %426, label %427, label %449

427:                                              ; preds = %420
  %428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %429 = call i32 @fileno(ptr noundef %428) #8
  %430 = call i32 @isatty(i32 noundef %429) #8
  %431 = icmp ne i32 %430, 0
  br i1 %431, label %432, label %449

432:                                              ; preds = %427
  %433 = load i32, ptr %17, align 4, !tbaa !5
  %434 = call ptr @__errno_location() #9
  store i32 %433, ptr %434, align 4, !tbaa !5
  %435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %436 = load i32, ptr @test_count, align 4, !tbaa !5
  %437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %438 = load i32, ptr %437, align 4, !tbaa !5
  %439 = call ptr @s2n_strerror(i32 noundef %438, ptr noundef @.str.4)
  %440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %441 = load i32, ptr %440, align 4, !tbaa !5
  %442 = call ptr @s2n_strerror_debug(i32 noundef %441, ptr noundef @.str.4)
  %443 = call ptr @__errno_location() #9
  %444 = load i32, ptr %443, align 4, !tbaa !5
  %445 = call ptr @strerror(i32 noundef %444) #8
  %446 = call ptr @__errno_location() #9
  %447 = load i32, ptr %446, align 4, !tbaa !5
  %448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %435, ptr noundef @.str.2, i32 noundef %436, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 404, ptr noundef %439, ptr noundef %442, ptr noundef %445, i32 noundef %447) #8
  br label %466

449:                                              ; preds = %427, %420
  %450 = load i32, ptr %17, align 4, !tbaa !5
  %451 = call ptr @__errno_location() #9
  store i32 %450, ptr %451, align 4, !tbaa !5
  %452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %453 = load i32, ptr @test_count, align 4, !tbaa !5
  %454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %455 = load i32, ptr %454, align 4, !tbaa !5
  %456 = call ptr @s2n_strerror(i32 noundef %455, ptr noundef @.str.4)
  %457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %458 = load i32, ptr %457, align 4, !tbaa !5
  %459 = call ptr @s2n_strerror_debug(i32 noundef %458, ptr noundef @.str.4)
  %460 = call ptr @__errno_location() #9
  %461 = load i32, ptr %460, align 4, !tbaa !5
  %462 = call ptr @strerror(i32 noundef %461) #8
  %463 = call ptr @__errno_location() #9
  %464 = load i32, ptr %463, align 4, !tbaa !5
  %465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %452, ptr noundef @.str.5, i32 noundef %453, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 404, ptr noundef %456, ptr noundef %459, ptr noundef %462, i32 noundef %464) #8
  br label %466

466:                                              ; preds = %449, %432
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  br label %467

467:                                              ; preds = %466
  br label %468

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

469:                                              ; No predecessors!
  br label %470

470:                                              ; preds = %469
  br label %471

471:                                              ; preds = %470, %412
  br label %472

472:                                              ; preds = %471
  br label %473

473:                                              ; preds = %472
  br label %474

474:                                              ; preds = %473
  %475 = load i32, ptr @test_count, align 4, !tbaa !5
  %476 = add nsw i32 %475, 1
  store i32 %476, ptr @test_count, align 4, !tbaa !5
  %477 = load ptr, ptr %7, align 8, !tbaa !9
  %478 = call i32 @s2n_config_set_check_stapled_ocsp_response(ptr noundef %477, i8 noundef zeroext 0)
  %479 = icmp eq i32 %478, -1
  br i1 %479, label %480, label %533

480:                                              ; preds = %474
  br label %481

481:                                              ; preds = %480
  br label %482

482:                                              ; preds = %481
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #8
  %483 = call ptr @__errno_location() #9
  %484 = load i32, ptr %483, align 4, !tbaa !5
  store i32 %484, ptr %18, align 4, !tbaa !5
  %485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %486 = call i32 @s2n_print_stacktrace(ptr noundef %485)
  %487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %488 = trunc i8 %487 to i1
  br i1 %488, label %489, label %511

489:                                              ; preds = %482
  %490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %491 = call i32 @fileno(ptr noundef %490) #8
  %492 = call i32 @isatty(i32 noundef %491) #8
  %493 = icmp ne i32 %492, 0
  br i1 %493, label %494, label %511

494:                                              ; preds = %489
  %495 = load i32, ptr %18, align 4, !tbaa !5
  %496 = call ptr @__errno_location() #9
  store i32 %495, ptr %496, align 4, !tbaa !5
  %497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %498 = load i32, ptr @test_count, align 4, !tbaa !5
  %499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %500 = load i32, ptr %499, align 4, !tbaa !5
  %501 = call ptr @s2n_strerror(i32 noundef %500, ptr noundef @.str.4)
  %502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %503 = load i32, ptr %502, align 4, !tbaa !5
  %504 = call ptr @s2n_strerror_debug(i32 noundef %503, ptr noundef @.str.4)
  %505 = call ptr @__errno_location() #9
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = call ptr @strerror(i32 noundef %506) #8
  %508 = call ptr @__errno_location() #9
  %509 = load i32, ptr %508, align 4, !tbaa !5
  %510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %497, ptr noundef @.str.2, i32 noundef %498, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 405, ptr noundef %501, ptr noundef %504, ptr noundef %507, i32 noundef %509) #8
  br label %528

511:                                              ; preds = %489, %482
  %512 = load i32, ptr %18, align 4, !tbaa !5
  %513 = call ptr @__errno_location() #9
  store i32 %512, ptr %513, align 4, !tbaa !5
  %514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %515 = load i32, ptr @test_count, align 4, !tbaa !5
  %516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %517 = load i32, ptr %516, align 4, !tbaa !5
  %518 = call ptr @s2n_strerror(i32 noundef %517, ptr noundef @.str.4)
  %519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %520 = load i32, ptr %519, align 4, !tbaa !5
  %521 = call ptr @s2n_strerror_debug(i32 noundef %520, ptr noundef @.str.4)
  %522 = call ptr @__errno_location() #9
  %523 = load i32, ptr %522, align 4, !tbaa !5
  %524 = call ptr @strerror(i32 noundef %523) #8
  %525 = call ptr @__errno_location() #9
  %526 = load i32, ptr %525, align 4, !tbaa !5
  %527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %514, ptr noundef @.str.5, i32 noundef %515, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 405, ptr noundef %518, ptr noundef %521, ptr noundef %524, i32 noundef %526) #8
  br label %528

528:                                              ; preds = %511, %494
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  br label %529

529:                                              ; preds = %528
  br label %530

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

531:                                              ; No predecessors!
  br label %532

532:                                              ; preds = %531
  br label %533

533:                                              ; preds = %532, %474
  br label %534

534:                                              ; preds = %533
  br label %535

535:                                              ; preds = %534
  br label %536

536:                                              ; preds = %535
  %537 = load i32, ptr @test_count, align 4, !tbaa !5
  %538 = add nsw i32 %537, 1
  store i32 %538, ptr @test_count, align 4, !tbaa !5
  %539 = load ptr, ptr %7, align 8, !tbaa !9
  %540 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %539, ptr noundef @.str.12)
  %541 = icmp eq i32 %540, -1
  br i1 %541, label %542, label %595

542:                                              ; preds = %536
  br label %543

543:                                              ; preds = %542
  br label %544

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

551:                                              ; preds = %544
  %552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %553 = call i32 @fileno(ptr noundef %552) #8
  %554 = call i32 @isatty(i32 noundef %553) #8
  %555 = icmp ne i32 %554, 0
  br i1 %555, label %556, label %573

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

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

590:                                              ; preds = %573, %556
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %591

591:                                              ; preds = %590
  br label %592

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

593:                                              ; No predecessors!
  br label %594

594:                                              ; preds = %593
  br label %595

595:                                              ; preds = %594, %536
  br label %596

596:                                              ; preds = %595
  br label %597

597:                                              ; preds = %596
  br label %598

598:                                              ; preds = %597
  %599 = load i32, ptr @test_count, align 4, !tbaa !5
  %600 = add nsw i32 %599, 1
  store i32 %600, ptr @test_count, align 4, !tbaa !5
  %601 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %601, ptr %6, align 8, !tbaa !9
  %602 = icmp eq ptr %601, null
  br i1 %602, label %603, label %656

603:                                              ; preds = %598
  br label %604

604:                                              ; preds = %603
  br label %605

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

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

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

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

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

652:                                              ; preds = %651
  br label %653

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

654:                                              ; No predecessors!
  br label %655

655:                                              ; preds = %654
  br label %656

656:                                              ; preds = %655, %598
  br label %657

657:                                              ; preds = %656
  br label %658

658:                                              ; preds = %657
  br label %659

659:                                              ; preds = %658
  %660 = load i32, ptr @test_count, align 4, !tbaa !5
  %661 = add nsw i32 %660, 1
  store i32 %661, ptr @test_count, align 4, !tbaa !5
  %662 = load ptr, ptr %6, align 8, !tbaa !9
  %663 = load ptr, ptr %7, align 8, !tbaa !9
  %664 = call i32 @s2n_connection_set_config(ptr noundef %662, ptr noundef %663)
  %665 = icmp eq i32 %664, -1
  br i1 %665, label %666, label %719

666:                                              ; preds = %659
  br label %667

667:                                              ; preds = %666
  br label %668

668:                                              ; preds = %667
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #8
  %669 = call ptr @__errno_location() #9
  %670 = load i32, ptr %669, align 4, !tbaa !5
  store i32 %670, ptr %21, align 4, !tbaa !5
  %671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %672 = call i32 @s2n_print_stacktrace(ptr noundef %671)
  %673 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %674 = trunc i8 %673 to i1
  br i1 %674, label %675, label %697

675:                                              ; preds = %668
  %676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %677 = call i32 @fileno(ptr noundef %676) #8
  %678 = call i32 @isatty(i32 noundef %677) #8
  %679 = icmp ne i32 %678, 0
  br i1 %679, label %680, label %697

680:                                              ; preds = %675
  %681 = load i32, ptr %21, align 4, !tbaa !5
  %682 = call ptr @__errno_location() #9
  store i32 %681, ptr %682, align 4, !tbaa !5
  %683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %684 = load i32, ptr @test_count, align 4, !tbaa !5
  %685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %686 = load i32, ptr %685, align 4, !tbaa !5
  %687 = call ptr @s2n_strerror(i32 noundef %686, ptr noundef @.str.4)
  %688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %689 = load i32, ptr %688, align 4, !tbaa !5
  %690 = call ptr @s2n_strerror_debug(i32 noundef %689, ptr noundef @.str.4)
  %691 = call ptr @__errno_location() #9
  %692 = load i32, ptr %691, align 4, !tbaa !5
  %693 = call ptr @strerror(i32 noundef %692) #8
  %694 = call ptr @__errno_location() #9
  %695 = load i32, ptr %694, align 4, !tbaa !5
  %696 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %683, ptr noundef @.str.2, i32 noundef %684, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 410, ptr noundef %687, ptr noundef %690, ptr noundef %693, i32 noundef %695) #8
  br label %714

697:                                              ; preds = %675, %668
  %698 = load i32, ptr %21, align 4, !tbaa !5
  %699 = call ptr @__errno_location() #9
  store i32 %698, ptr %699, align 4, !tbaa !5
  %700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %701 = load i32, ptr @test_count, align 4, !tbaa !5
  %702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %703 = load i32, ptr %702, align 4, !tbaa !5
  %704 = call ptr @s2n_strerror(i32 noundef %703, ptr noundef @.str.4)
  %705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %706 = load i32, ptr %705, align 4, !tbaa !5
  %707 = call ptr @s2n_strerror_debug(i32 noundef %706, ptr noundef @.str.4)
  %708 = call ptr @__errno_location() #9
  %709 = load i32, ptr %708, align 4, !tbaa !5
  %710 = call ptr @strerror(i32 noundef %709) #8
  %711 = call ptr @__errno_location() #9
  %712 = load i32, ptr %711, align 4, !tbaa !5
  %713 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %700, ptr noundef @.str.5, i32 noundef %701, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 410, ptr noundef %704, ptr noundef %707, ptr noundef %710, i32 noundef %712) #8
  br label %714

714:                                              ; preds = %697, %680
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #8
  br label %715

715:                                              ; preds = %714
  br label %716

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

717:                                              ; No predecessors!
  br label %718

718:                                              ; preds = %717
  br label %719

719:                                              ; preds = %718, %659
  br label %720

720:                                              ; preds = %719
  br label %721

721:                                              ; preds = %720
  %722 = load ptr, ptr %6, align 8, !tbaa !9
  %723 = getelementptr inbounds %struct.s2n_connection, ptr %722, i32 0, i32 22
  store i8 33, ptr %723, align 1, !tbaa !15
  %724 = load ptr, ptr %6, align 8, !tbaa !9
  %725 = getelementptr inbounds %struct.s2n_connection, ptr %724, i32 0, i32 21
  store i8 33, ptr %725, align 2, !tbaa !42
  %726 = load ptr, ptr %6, align 8, !tbaa !9
  %727 = getelementptr inbounds %struct.s2n_connection, ptr %726, i32 0, i32 23
  store i8 33, ptr %727, align 4, !tbaa !43
  br label %728

728:                                              ; preds = %721
  %729 = load i32, ptr @test_count, align 4, !tbaa !5
  %730 = add nsw i32 %729, 1
  store i32 %730, ptr @test_count, align 4, !tbaa !5
  %731 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %732 = call i32 @pipe(ptr noundef %731) #8
  %733 = icmp eq i32 %732, -1
  br i1 %733, label %734, label %787

734:                                              ; preds = %728
  br label %735

735:                                              ; preds = %734
  br label %736

736:                                              ; preds = %735
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  %737 = call ptr @__errno_location() #9
  %738 = load i32, ptr %737, align 4, !tbaa !5
  store i32 %738, ptr %22, align 4, !tbaa !5
  %739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %740 = call i32 @s2n_print_stacktrace(ptr noundef %739)
  %741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %742 = trunc i8 %741 to i1
  br i1 %742, label %743, label %765

743:                                              ; preds = %736
  %744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %745 = call i32 @fileno(ptr noundef %744) #8
  %746 = call i32 @isatty(i32 noundef %745) #8
  %747 = icmp ne i32 %746, 0
  br i1 %747, label %748, label %765

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

765:                                              ; preds = %743, %736
  %766 = load i32, ptr %22, align 4, !tbaa !5
  %767 = call ptr @__errno_location() #9
  store i32 %766, ptr %767, align 4, !tbaa !5
  %768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %769 = load i32, ptr @test_count, align 4, !tbaa !5
  %770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %771 = load i32, ptr %770, align 4, !tbaa !5
  %772 = call ptr @s2n_strerror(i32 noundef %771, ptr noundef @.str.4)
  %773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %774 = load i32, ptr %773, align 4, !tbaa !5
  %775 = call ptr @s2n_strerror_debug(i32 noundef %774, ptr noundef @.str.4)
  %776 = call ptr @__errno_location() #9
  %777 = load i32, ptr %776, align 4, !tbaa !5
  %778 = call ptr @strerror(i32 noundef %777) #8
  %779 = call ptr @__errno_location() #9
  %780 = load i32, ptr %779, align 4, !tbaa !5
  %781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %768, ptr noundef @.str.5, i32 noundef %769, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 417, ptr noundef %772, ptr noundef %775, ptr noundef %778, i32 noundef %780) #8
  br label %782

782:                                              ; preds = %765, %748
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %783

783:                                              ; preds = %782
  br label %784

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

785:                                              ; No predecessors!
  br label %786

786:                                              ; preds = %785
  br label %787

787:                                              ; preds = %786, %728
  br label %788

788:                                              ; preds = %787
  br label %789

789:                                              ; preds = %788
  br label %790

790:                                              ; preds = %789
  %791 = load i32, ptr @test_count, align 4, !tbaa !5
  %792 = add nsw i32 %791, 1
  store i32 %792, ptr @test_count, align 4, !tbaa !5
  %793 = load ptr, ptr %6, align 8, !tbaa !9
  %794 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %795 = load i32, ptr %794, align 4, !tbaa !5
  %796 = call i32 @s2n_connection_set_read_fd(ptr noundef %793, i32 noundef %795)
  %797 = icmp eq i32 %796, -1
  br i1 %797, label %798, label %851

798:                                              ; preds = %790
  br label %799

799:                                              ; preds = %798
  br label %800

800:                                              ; preds = %799
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  %801 = call ptr @__errno_location() #9
  %802 = load i32, ptr %801, align 4, !tbaa !5
  store i32 %802, ptr %23, align 4, !tbaa !5
  %803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %804 = call i32 @s2n_print_stacktrace(ptr noundef %803)
  %805 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %806 = trunc i8 %805 to i1
  br i1 %806, label %807, label %829

807:                                              ; preds = %800
  %808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %809 = call i32 @fileno(ptr noundef %808) #8
  %810 = call i32 @isatty(i32 noundef %809) #8
  %811 = icmp ne i32 %810, 0
  br i1 %811, label %812, label %829

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

829:                                              ; preds = %807, %800
  %830 = load i32, ptr %23, align 4, !tbaa !5
  %831 = call ptr @__errno_location() #9
  store i32 %830, ptr %831, align 4, !tbaa !5
  %832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %833 = load i32, ptr @test_count, align 4, !tbaa !5
  %834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %835 = load i32, ptr %834, align 4, !tbaa !5
  %836 = call ptr @s2n_strerror(i32 noundef %835, ptr noundef @.str.4)
  %837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %838 = load i32, ptr %837, align 4, !tbaa !5
  %839 = call ptr @s2n_strerror_debug(i32 noundef %838, ptr noundef @.str.4)
  %840 = call ptr @__errno_location() #9
  %841 = load i32, ptr %840, align 4, !tbaa !5
  %842 = call ptr @strerror(i32 noundef %841) #8
  %843 = call ptr @__errno_location() #9
  %844 = load i32, ptr %843, align 4, !tbaa !5
  %845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %832, ptr noundef @.str.5, i32 noundef %833, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 420, ptr noundef %836, ptr noundef %839, ptr noundef %842, i32 noundef %844) #8
  br label %846

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

847:                                              ; preds = %846
  br label %848

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

849:                                              ; No predecessors!
  br label %850

850:                                              ; preds = %849
  br label %851

851:                                              ; preds = %850, %790
  br label %852

852:                                              ; preds = %851
  br label %853

853:                                              ; preds = %852
  %854 = load ptr, ptr %6, align 8, !tbaa !9
  %855 = getelementptr inbounds %struct.s2n_connection, ptr %854, i32 0, i32 52
  %856 = getelementptr inbounds %struct.s2n_handshake, ptr %855, i32 0, i32 6
  store i32 3, ptr %856, align 4, !tbaa !44
  %857 = load ptr, ptr %6, align 8, !tbaa !9
  %858 = getelementptr inbounds %struct.s2n_connection, ptr %857, i32 0, i32 52
  %859 = getelementptr inbounds %struct.s2n_handshake, ptr %858, i32 0, i32 7
  store i32 1, ptr %859, align 8, !tbaa !45
  %860 = call i32 @fork() #8
  store i32 %860, ptr %10, align 4, !tbaa !5
  %861 = load i32, ptr %10, align 4, !tbaa !5
  %862 = icmp eq i32 %861, 0
  br i1 %862, label %863, label %1053

863:                                              ; preds = %853
  br label %864

864:                                              ; preds = %863
  %865 = load i32, ptr @test_count, align 4, !tbaa !5
  %866 = add nsw i32 %865, 1
  store i32 %866, ptr @test_count, align 4, !tbaa !5
  %867 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %868 = load i32, ptr %867, align 4, !tbaa !5
  %869 = call i32 @close(i32 noundef %868)
  %870 = icmp eq i32 %869, -1
  br i1 %870, label %871, label %924

871:                                              ; preds = %864
  br label %872

872:                                              ; preds = %871
  br label %873

873:                                              ; preds = %872
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #8
  %874 = call ptr @__errno_location() #9
  %875 = load i32, ptr %874, align 4, !tbaa !5
  store i32 %875, ptr %24, align 4, !tbaa !5
  %876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %877 = call i32 @s2n_print_stacktrace(ptr noundef %876)
  %878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %879 = trunc i8 %878 to i1
  br i1 %879, label %880, label %902

880:                                              ; preds = %873
  %881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %882 = call i32 @fileno(ptr noundef %881) #8
  %883 = call i32 @isatty(i32 noundef %882) #8
  %884 = icmp ne i32 %883, 0
  br i1 %884, label %885, label %902

885:                                              ; preds = %880
  %886 = load i32, ptr %24, align 4, !tbaa !5
  %887 = call ptr @__errno_location() #9
  store i32 %886, ptr %887, align 4, !tbaa !5
  %888 = load ptr, ptr @stderr, align 8, !tbaa !9
  %889 = load i32, ptr @test_count, align 4, !tbaa !5
  %890 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %891 = load i32, ptr %890, align 4, !tbaa !5
  %892 = call ptr @s2n_strerror(i32 noundef %891, ptr noundef @.str.4)
  %893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %894 = load i32, ptr %893, align 4, !tbaa !5
  %895 = call ptr @s2n_strerror_debug(i32 noundef %894, ptr noundef @.str.4)
  %896 = call ptr @__errno_location() #9
  %897 = load i32, ptr %896, align 4, !tbaa !5
  %898 = call ptr @strerror(i32 noundef %897) #8
  %899 = call ptr @__errno_location() #9
  %900 = load i32, ptr %899, align 4, !tbaa !5
  %901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %888, ptr noundef @.str.2, i32 noundef %889, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 430, ptr noundef %892, ptr noundef %895, ptr noundef %898, i32 noundef %900) #8
  br label %919

902:                                              ; preds = %880, %873
  %903 = load i32, ptr %24, align 4, !tbaa !5
  %904 = call ptr @__errno_location() #9
  store i32 %903, ptr %904, align 4, !tbaa !5
  %905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %906 = load i32, ptr @test_count, align 4, !tbaa !5
  %907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %908 = load i32, ptr %907, align 4, !tbaa !5
  %909 = call ptr @s2n_strerror(i32 noundef %908, ptr noundef @.str.4)
  %910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %911 = load i32, ptr %910, align 4, !tbaa !5
  %912 = call ptr @s2n_strerror_debug(i32 noundef %911, ptr noundef @.str.4)
  %913 = call ptr @__errno_location() #9
  %914 = load i32, ptr %913, align 4, !tbaa !5
  %915 = call ptr @strerror(i32 noundef %914) #8
  %916 = call ptr @__errno_location() #9
  %917 = load i32, ptr %916, align 4, !tbaa !5
  %918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %905, ptr noundef @.str.5, i32 noundef %906, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 430, ptr noundef %909, ptr noundef %912, ptr noundef %915, i32 noundef %917) #8
  br label %919

919:                                              ; preds = %902, %885
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  br label %920

920:                                              ; preds = %919
  br label %921

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

922:                                              ; No predecessors!
  br label %923

923:                                              ; preds = %922
  br label %924

924:                                              ; preds = %923, %864
  br label %925

925:                                              ; preds = %924
  br label %926

926:                                              ; preds = %925
  %927 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 1
  %928 = load i32, ptr %927, align 4, !tbaa !5
  call void @fragmented_message(i32 noundef %928)
  br label %929

929:                                              ; preds = %926
  %930 = load i32, ptr @test_count, align 4, !tbaa !5
  %931 = add nsw i32 %930, 1
  store i32 %931, ptr @test_count, align 4, !tbaa !5
  %932 = load ptr, ptr %7, align 8, !tbaa !9
  %933 = call i32 @s2n_config_free(ptr noundef %932)
  %934 = icmp eq i32 %933, -1
  br i1 %934, label %935, label %988

935:                                              ; preds = %929
  br label %936

936:                                              ; preds = %935
  br label %937

937:                                              ; preds = %936
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #8
  %938 = call ptr @__errno_location() #9
  %939 = load i32, ptr %938, align 4, !tbaa !5
  store i32 %939, ptr %25, align 4, !tbaa !5
  %940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %941 = call i32 @s2n_print_stacktrace(ptr noundef %940)
  %942 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %943 = trunc i8 %942 to i1
  br i1 %943, label %944, label %966

944:                                              ; preds = %937
  %945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %946 = call i32 @fileno(ptr noundef %945) #8
  %947 = call i32 @isatty(i32 noundef %946) #8
  %948 = icmp ne i32 %947, 0
  br i1 %948, label %949, label %966

949:                                              ; preds = %944
  %950 = load i32, ptr %25, align 4, !tbaa !5
  %951 = call ptr @__errno_location() #9
  store i32 %950, ptr %951, align 4, !tbaa !5
  %952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %953 = load i32, ptr @test_count, align 4, !tbaa !5
  %954 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %955 = load i32, ptr %954, align 4, !tbaa !5
  %956 = call ptr @s2n_strerror(i32 noundef %955, ptr noundef @.str.4)
  %957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %958 = load i32, ptr %957, align 4, !tbaa !5
  %959 = call ptr @s2n_strerror_debug(i32 noundef %958, ptr noundef @.str.4)
  %960 = call ptr @__errno_location() #9
  %961 = load i32, ptr %960, align 4, !tbaa !5
  %962 = call ptr @strerror(i32 noundef %961) #8
  %963 = call ptr @__errno_location() #9
  %964 = load i32, ptr %963, align 4, !tbaa !5
  %965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %952, ptr noundef @.str.2, i32 noundef %953, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 434, ptr noundef %956, ptr noundef %959, ptr noundef %962, i32 noundef %964) #8
  br label %983

966:                                              ; preds = %944, %937
  %967 = load i32, ptr %25, align 4, !tbaa !5
  %968 = call ptr @__errno_location() #9
  store i32 %967, ptr %968, align 4, !tbaa !5
  %969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %970 = load i32, ptr @test_count, align 4, !tbaa !5
  %971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %972 = load i32, ptr %971, align 4, !tbaa !5
  %973 = call ptr @s2n_strerror(i32 noundef %972, ptr noundef @.str.4)
  %974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %975 = load i32, ptr %974, align 4, !tbaa !5
  %976 = call ptr @s2n_strerror_debug(i32 noundef %975, ptr noundef @.str.4)
  %977 = call ptr @__errno_location() #9
  %978 = load i32, ptr %977, align 4, !tbaa !5
  %979 = call ptr @strerror(i32 noundef %978) #8
  %980 = call ptr @__errno_location() #9
  %981 = load i32, ptr %980, align 4, !tbaa !5
  %982 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %969, ptr noundef @.str.5, i32 noundef %970, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 434, ptr noundef %973, ptr noundef %976, ptr noundef %979, i32 noundef %981) #8
  br label %983

983:                                              ; preds = %966, %949
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  br label %984

984:                                              ; preds = %983
  br label %985

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

986:                                              ; No predecessors!
  br label %987

987:                                              ; preds = %986
  br label %988

988:                                              ; preds = %987, %929
  br label %989

989:                                              ; preds = %988
  br label %990

990:                                              ; preds = %989
  br label %991

991:                                              ; preds = %990
  %992 = load i32, ptr @test_count, align 4, !tbaa !5
  %993 = add nsw i32 %992, 1
  store i32 %993, ptr @test_count, align 4, !tbaa !5
  %994 = load ptr, ptr %6, align 8, !tbaa !9
  %995 = call i32 @s2n_connection_free(ptr noundef %994)
  %996 = icmp eq i32 %995, -1
  br i1 %996, label %997, label %1050

997:                                              ; preds = %991
  br label %998

998:                                              ; preds = %997
  br label %999

999:                                              ; preds = %998
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #8
  %1000 = call ptr @__errno_location() #9
  %1001 = load i32, ptr %1000, align 4, !tbaa !5
  store i32 %1001, ptr %26, align 4, !tbaa !5
  %1002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1003 = call i32 @s2n_print_stacktrace(ptr noundef %1002)
  %1004 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1005 = trunc i8 %1004 to i1
  br i1 %1005, label %1006, label %1028

1006:                                             ; preds = %999
  %1007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1008 = call i32 @fileno(ptr noundef %1007) #8
  %1009 = call i32 @isatty(i32 noundef %1008) #8
  %1010 = icmp ne i32 %1009, 0
  br i1 %1010, label %1011, label %1028

1011:                                             ; preds = %1006
  %1012 = load i32, ptr %26, align 4, !tbaa !5
  %1013 = call ptr @__errno_location() #9
  store i32 %1012, ptr %1013, align 4, !tbaa !5
  %1014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1015 = load i32, ptr @test_count, align 4, !tbaa !5
  %1016 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1017 = load i32, ptr %1016, align 4, !tbaa !5
  %1018 = call ptr @s2n_strerror(i32 noundef %1017, ptr noundef @.str.4)
  %1019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = call ptr @s2n_strerror_debug(i32 noundef %1020, ptr noundef @.str.4)
  %1022 = call ptr @__errno_location() #9
  %1023 = load i32, ptr %1022, align 4, !tbaa !5
  %1024 = call ptr @strerror(i32 noundef %1023) #8
  %1025 = call ptr @__errno_location() #9
  %1026 = load i32, ptr %1025, align 4, !tbaa !5
  %1027 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1014, ptr noundef @.str.2, i32 noundef %1015, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 435, ptr noundef %1018, ptr noundef %1021, ptr noundef %1024, i32 noundef %1026) #8
  br label %1045

1028:                                             ; preds = %1006, %999
  %1029 = load i32, ptr %26, align 4, !tbaa !5
  %1030 = call ptr @__errno_location() #9
  store i32 %1029, ptr %1030, align 4, !tbaa !5
  %1031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1032 = load i32, ptr @test_count, align 4, !tbaa !5
  %1033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1034 = load i32, ptr %1033, align 4, !tbaa !5
  %1035 = call ptr @s2n_strerror(i32 noundef %1034, ptr noundef @.str.4)
  %1036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1037 = load i32, ptr %1036, align 4, !tbaa !5
  %1038 = call ptr @s2n_strerror_debug(i32 noundef %1037, ptr noundef @.str.4)
  %1039 = call ptr @__errno_location() #9
  %1040 = load i32, ptr %1039, align 4, !tbaa !5
  %1041 = call ptr @strerror(i32 noundef %1040) #8
  %1042 = call ptr @__errno_location() #9
  %1043 = load i32, ptr %1042, align 4, !tbaa !5
  %1044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1031, ptr noundef @.str.5, i32 noundef %1032, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 435, ptr noundef %1035, ptr noundef %1038, ptr noundef %1041, i32 noundef %1043) #8
  br label %1045

1045:                                             ; preds = %1028, %1011
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  br label %1046

1046:                                             ; preds = %1045
  br label %1047

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

1048:                                             ; No predecessors!
  br label %1049

1049:                                             ; preds = %1048
  br label %1050

1050:                                             ; preds = %1049, %991
  br label %1051

1051:                                             ; preds = %1050
  br label %1052

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

1053:                                             ; preds = %853
  br label %1054

1054:                                             ; preds = %1053
  %1055 = load i32, ptr @test_count, align 4, !tbaa !5
  %1056 = add nsw i32 %1055, 1
  store i32 %1056, ptr @test_count, align 4, !tbaa !5
  %1057 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 1
  %1058 = load i32, ptr %1057, align 4, !tbaa !5
  %1059 = call i32 @close(i32 noundef %1058)
  %1060 = icmp eq i32 %1059, -1
  br i1 %1060, label %1061, label %1114

1061:                                             ; preds = %1054
  br label %1062

1062:                                             ; preds = %1061
  br label %1063

1063:                                             ; preds = %1062
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  %1064 = call ptr @__errno_location() #9
  %1065 = load i32, ptr %1064, align 4, !tbaa !5
  store i32 %1065, ptr %27, align 4, !tbaa !5
  %1066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1067 = call i32 @s2n_print_stacktrace(ptr noundef %1066)
  %1068 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1069 = trunc i8 %1068 to i1
  br i1 %1069, label %1070, label %1092

1070:                                             ; preds = %1063
  %1071 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1072 = call i32 @fileno(ptr noundef %1071) #8
  %1073 = call i32 @isatty(i32 noundef %1072) #8
  %1074 = icmp ne i32 %1073, 0
  br i1 %1074, label %1075, label %1092

1075:                                             ; preds = %1070
  %1076 = load i32, ptr %27, align 4, !tbaa !5
  %1077 = call ptr @__errno_location() #9
  store i32 %1076, ptr %1077, align 4, !tbaa !5
  %1078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1079 = load i32, ptr @test_count, align 4, !tbaa !5
  %1080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1081 = load i32, ptr %1080, align 4, !tbaa !5
  %1082 = call ptr @s2n_strerror(i32 noundef %1081, ptr noundef @.str.4)
  %1083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1084 = load i32, ptr %1083, align 4, !tbaa !5
  %1085 = call ptr @s2n_strerror_debug(i32 noundef %1084, ptr noundef @.str.4)
  %1086 = call ptr @__errno_location() #9
  %1087 = load i32, ptr %1086, align 4, !tbaa !5
  %1088 = call ptr @strerror(i32 noundef %1087) #8
  %1089 = call ptr @__errno_location() #9
  %1090 = load i32, ptr %1089, align 4, !tbaa !5
  %1091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1078, ptr noundef @.str.2, i32 noundef %1079, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 440, ptr noundef %1082, ptr noundef %1085, ptr noundef %1088, i32 noundef %1090) #8
  br label %1109

1092:                                             ; preds = %1070, %1063
  %1093 = load i32, ptr %27, align 4, !tbaa !5
  %1094 = call ptr @__errno_location() #9
  store i32 %1093, ptr %1094, align 4, !tbaa !5
  %1095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1096 = load i32, ptr @test_count, align 4, !tbaa !5
  %1097 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1098 = load i32, ptr %1097, align 4, !tbaa !5
  %1099 = call ptr @s2n_strerror(i32 noundef %1098, ptr noundef @.str.4)
  %1100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1101 = load i32, ptr %1100, align 4, !tbaa !5
  %1102 = call ptr @s2n_strerror_debug(i32 noundef %1101, ptr noundef @.str.4)
  %1103 = call ptr @__errno_location() #9
  %1104 = load i32, ptr %1103, align 4, !tbaa !5
  %1105 = call ptr @strerror(i32 noundef %1104) #8
  %1106 = call ptr @__errno_location() #9
  %1107 = load i32, ptr %1106, align 4, !tbaa !5
  %1108 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1095, ptr noundef @.str.5, i32 noundef %1096, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 440, ptr noundef %1099, ptr noundef %1102, ptr noundef %1105, i32 noundef %1107) #8
  br label %1109

1109:                                             ; preds = %1092, %1075
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %1110

1110:                                             ; preds = %1109
  br label %1111

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

1112:                                             ; No predecessors!
  br label %1113

1113:                                             ; preds = %1112
  br label %1114

1114:                                             ; preds = %1113, %1054
  br label %1115

1115:                                             ; preds = %1114
  br label %1116

1116:                                             ; preds = %1115
  br label %1117

1117:                                             ; preds = %1116
  br label %1118

1118:                                             ; preds = %1117
  %1119 = load i32, ptr @test_count, align 4, !tbaa !5
  %1120 = add nsw i32 %1119, 1
  store i32 %1120, ptr @test_count, align 4, !tbaa !5
  %1121 = load ptr, ptr %6, align 8, !tbaa !9
  %1122 = call i32 @s2n_negotiate(ptr noundef %1121, ptr noundef %8)
  %1123 = icmp eq i32 %1122, -1
  br i1 %1123, label %1177, label %1124

1124:                                             ; preds = %1118
  br label %1125

1125:                                             ; preds = %1124
  br label %1126

1126:                                             ; preds = %1125
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #8
  %1127 = call ptr @__errno_location() #9
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  store i32 %1128, ptr %28, align 4, !tbaa !5
  %1129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1130 = call i32 @s2n_print_stacktrace(ptr noundef %1129)
  %1131 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1132 = trunc i8 %1131 to i1
  br i1 %1132, label %1133, label %1155

1133:                                             ; preds = %1126
  %1134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1135 = call i32 @fileno(ptr noundef %1134) #8
  %1136 = call i32 @isatty(i32 noundef %1135) #8
  %1137 = icmp ne i32 %1136, 0
  br i1 %1137, label %1138, label %1155

1138:                                             ; preds = %1133
  %1139 = load i32, ptr %28, align 4, !tbaa !5
  %1140 = call ptr @__errno_location() #9
  store i32 %1139, ptr %1140, align 4, !tbaa !5
  %1141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1142 = load i32, ptr @test_count, align 4, !tbaa !5
  %1143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1144 = load i32, ptr %1143, align 4, !tbaa !5
  %1145 = call ptr @s2n_strerror(i32 noundef %1144, ptr noundef @.str.4)
  %1146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1147 = load i32, ptr %1146, align 4, !tbaa !5
  %1148 = call ptr @s2n_strerror_debug(i32 noundef %1147, ptr noundef @.str.4)
  %1149 = call ptr @__errno_location() #9
  %1150 = load i32, ptr %1149, align 4, !tbaa !5
  %1151 = call ptr @strerror(i32 noundef %1150) #8
  %1152 = call ptr @__errno_location() #9
  %1153 = load i32, ptr %1152, align 4, !tbaa !5
  %1154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1141, ptr noundef @.str.2, i32 noundef %1142, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 443, ptr noundef %1145, ptr noundef %1148, ptr noundef %1151, i32 noundef %1153) #8
  br label %1172

1155:                                             ; preds = %1133, %1126
  %1156 = load i32, ptr %28, align 4, !tbaa !5
  %1157 = call ptr @__errno_location() #9
  store i32 %1156, ptr %1157, align 4, !tbaa !5
  %1158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1159 = load i32, ptr @test_count, align 4, !tbaa !5
  %1160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1161 = load i32, ptr %1160, align 4, !tbaa !5
  %1162 = call ptr @s2n_strerror(i32 noundef %1161, ptr noundef @.str.4)
  %1163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1164 = load i32, ptr %1163, align 4, !tbaa !5
  %1165 = call ptr @s2n_strerror_debug(i32 noundef %1164, ptr noundef @.str.4)
  %1166 = call ptr @__errno_location() #9
  %1167 = load i32, ptr %1166, align 4, !tbaa !5
  %1168 = call ptr @strerror(i32 noundef %1167) #8
  %1169 = call ptr @__errno_location() #9
  %1170 = load i32, ptr %1169, align 4, !tbaa !5
  %1171 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1158, ptr noundef @.str.5, i32 noundef %1159, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 443, ptr noundef %1162, ptr noundef %1165, ptr noundef %1168, i32 noundef %1170) #8
  br label %1172

1172:                                             ; preds = %1155, %1138
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %1173

1173:                                             ; preds = %1172
  br label %1174

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

1175:                                             ; No predecessors!
  br label %1176

1176:                                             ; preds = %1175
  br label %1177

1177:                                             ; preds = %1176, %1118
  br label %1178

1178:                                             ; preds = %1177
  br label %1179

1179:                                             ; preds = %1178
  br label %1180

1180:                                             ; preds = %1179
  %1181 = load i32, ptr @test_count, align 4, !tbaa !5
  %1182 = add nsw i32 %1181, 1
  store i32 %1182, 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 = icmp eq i32 %1184, 0
  br i1 %1185, label %1186, label %1239

1186:                                             ; preds = %1180
  br label %1187

1187:                                             ; preds = %1186
  br label %1188

1188:                                             ; preds = %1187
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  %1189 = call ptr @__errno_location() #9
  %1190 = load i32, ptr %1189, align 4, !tbaa !5
  store i32 %1190, ptr %29, align 4, !tbaa !5
  %1191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1192 = call i32 @s2n_print_stacktrace(ptr noundef %1191)
  %1193 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1194 = trunc i8 %1193 to i1
  br i1 %1194, label %1195, label %1217

1195:                                             ; preds = %1188
  %1196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1197 = call i32 @fileno(ptr noundef %1196) #8
  %1198 = call i32 @isatty(i32 noundef %1197) #8
  %1199 = icmp ne i32 %1198, 0
  br i1 %1199, label %1200, label %1217

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

1217:                                             ; preds = %1195, %1188
  %1218 = load i32, ptr %29, align 4, !tbaa !5
  %1219 = call ptr @__errno_location() #9
  store i32 %1218, ptr %1219, align 4, !tbaa !5
  %1220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1221 = load i32, ptr @test_count, align 4, !tbaa !5
  %1222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1223 = load i32, ptr %1222, align 4, !tbaa !5
  %1224 = call ptr @s2n_strerror(i32 noundef %1223, ptr noundef @.str.4)
  %1225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1226 = load i32, ptr %1225, align 4, !tbaa !5
  %1227 = call ptr @s2n_strerror_debug(i32 noundef %1226, ptr noundef @.str.4)
  %1228 = call ptr @__errno_location() #9
  %1229 = load i32, ptr %1228, align 4, !tbaa !5
  %1230 = call ptr @strerror(i32 noundef %1229) #8
  %1231 = call ptr @__errno_location() #9
  %1232 = load i32, ptr %1231, align 4, !tbaa !5
  %1233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1220, ptr noundef @.str.5, i32 noundef %1221, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 443, ptr noundef %1224, ptr noundef %1227, ptr noundef %1230, i32 noundef %1232) #8
  br label %1234

1234:                                             ; preds = %1217, %1200
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %1235

1235:                                             ; preds = %1234
  br label %1236

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

1237:                                             ; No predecessors!
  br label %1238

1238:                                             ; preds = %1237
  br label %1239

1239:                                             ; preds = %1238, %1180
  br label %1240

1240:                                             ; preds = %1239
  br label %1241

1241:                                             ; preds = %1240
  br label %1242

1242:                                             ; preds = %1241
  %1243 = load i32, ptr @test_count, align 4, !tbaa !5
  %1244 = add nsw i32 %1243, 1
  store i32 %1244, ptr @test_count, align 4, !tbaa !5
  %1245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1246 = load i32, ptr %1245, align 4, !tbaa !5
  %1247 = call ptr @s2n_strerror_debug(i32 noundef %1246, ptr noundef @.str.4)
  %1248 = icmp eq ptr %1247, null
  br i1 %1248, label %1249, label %1302

1249:                                             ; preds = %1242
  br label %1250

1250:                                             ; preds = %1249
  br label %1251

1251:                                             ; preds = %1250
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #8
  %1252 = call ptr @__errno_location() #9
  %1253 = load i32, ptr %1252, align 4, !tbaa !5
  store i32 %1253, ptr %30, align 4, !tbaa !5
  %1254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1255 = call i32 @s2n_print_stacktrace(ptr noundef %1254)
  %1256 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1257 = trunc i8 %1256 to i1
  br i1 %1257, label %1258, label %1280

1258:                                             ; preds = %1251
  %1259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1260 = call i32 @fileno(ptr noundef %1259) #8
  %1261 = call i32 @isatty(i32 noundef %1260) #8
  %1262 = icmp ne i32 %1261, 0
  br i1 %1262, label %1263, label %1280

1263:                                             ; preds = %1258
  %1264 = load i32, ptr %30, align 4, !tbaa !5
  %1265 = call ptr @__errno_location() #9
  store i32 %1264, ptr %1265, align 4, !tbaa !5
  %1266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1267 = load i32, ptr @test_count, align 4, !tbaa !5
  %1268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1269 = load i32, ptr %1268, align 4, !tbaa !5
  %1270 = call ptr @s2n_strerror(i32 noundef %1269, ptr noundef @.str.4)
  %1271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1272 = load i32, ptr %1271, align 4, !tbaa !5
  %1273 = call ptr @s2n_strerror_debug(i32 noundef %1272, ptr noundef @.str.4)
  %1274 = call ptr @__errno_location() #9
  %1275 = load i32, ptr %1274, align 4, !tbaa !5
  %1276 = call ptr @strerror(i32 noundef %1275) #8
  %1277 = call ptr @__errno_location() #9
  %1278 = load i32, ptr %1277, align 4, !tbaa !5
  %1279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1266, ptr noundef @.str.2, i32 noundef %1267, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 443, ptr noundef %1270, ptr noundef %1273, ptr noundef %1276, i32 noundef %1278) #8
  br label %1297

1280:                                             ; preds = %1258, %1251
  %1281 = load i32, ptr %30, align 4, !tbaa !5
  %1282 = call ptr @__errno_location() #9
  store i32 %1281, ptr %1282, align 4, !tbaa !5
  %1283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1284 = load i32, ptr @test_count, align 4, !tbaa !5
  %1285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1286 = load i32, ptr %1285, align 4, !tbaa !5
  %1287 = call ptr @s2n_strerror(i32 noundef %1286, ptr noundef @.str.4)
  %1288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1289 = load i32, ptr %1288, align 4, !tbaa !5
  %1290 = call ptr @s2n_strerror_debug(i32 noundef %1289, ptr noundef @.str.4)
  %1291 = call ptr @__errno_location() #9
  %1292 = load i32, ptr %1291, align 4, !tbaa !5
  %1293 = call ptr @strerror(i32 noundef %1292) #8
  %1294 = call ptr @__errno_location() #9
  %1295 = load i32, ptr %1294, align 4, !tbaa !5
  %1296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1283, ptr noundef @.str.5, i32 noundef %1284, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 443, ptr noundef %1287, ptr noundef %1290, ptr noundef %1293, i32 noundef %1295) #8
  br label %1297

1297:                                             ; preds = %1280, %1263
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #8
  br label %1298

1298:                                             ; preds = %1297
  br label %1299

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

1300:                                             ; No predecessors!
  br label %1301

1301:                                             ; preds = %1300
  br label %1302

1302:                                             ; preds = %1301, %1242
  br label %1303

1303:                                             ; preds = %1302
  br label %1304

1304:                                             ; preds = %1303
  br label %1305

1305:                                             ; preds = %1304
  %1306 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1306, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1307 = call ptr @__errno_location() #9
  store i32 0, ptr %1307, align 4, !tbaa !5
  br label %1308

1308:                                             ; preds = %1305
  br label %1309

1309:                                             ; preds = %1308
  br label %1310

1310:                                             ; preds = %1309
  br label %1311

1311:                                             ; preds = %1310
  br label %1312

1312:                                             ; preds = %1311
  %1313 = load i32, ptr @test_count, align 4, !tbaa !5
  %1314 = add nsw i32 %1313, 1
  store i32 %1314, ptr @test_count, align 4, !tbaa !5
  %1315 = load ptr, ptr %6, align 8, !tbaa !9
  %1316 = getelementptr inbounds %struct.s2n_connection, ptr %1315, i32 0, i32 32
  %1317 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %1316, i32 0, i32 13
  %1318 = getelementptr inbounds [32 x i8], ptr %1317, i64 0, i64 0
  %1319 = call i32 @memcmp(ptr noundef %1318, ptr noundef @zero_to_thirty_one, i64 noundef 32) #11
  %1320 = icmp eq i32 %1319, 0
  br i1 %1320, label %1374, label %1321

1321:                                             ; preds = %1312
  br label %1322

1322:                                             ; preds = %1321
  br label %1323

1323:                                             ; preds = %1322
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #8
  %1324 = call ptr @__errno_location() #9
  %1325 = load i32, ptr %1324, align 4, !tbaa !5
  store i32 %1325, ptr %31, align 4, !tbaa !5
  %1326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1327 = call i32 @s2n_print_stacktrace(ptr noundef %1326)
  %1328 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1329 = trunc i8 %1328 to i1
  br i1 %1329, label %1330, label %1352

1330:                                             ; preds = %1323
  %1331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1332 = call i32 @fileno(ptr noundef %1331) #8
  %1333 = call i32 @isatty(i32 noundef %1332) #8
  %1334 = icmp ne i32 %1333, 0
  br i1 %1334, label %1335, label %1352

1335:                                             ; preds = %1330
  %1336 = load i32, ptr %31, align 4, !tbaa !5
  %1337 = call ptr @__errno_location() #9
  store i32 %1336, ptr %1337, align 4, !tbaa !5
  %1338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1339 = load i32, ptr @test_count, align 4, !tbaa !5
  %1340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1341 = load i32, ptr %1340, align 4, !tbaa !5
  %1342 = call ptr @s2n_strerror(i32 noundef %1341, ptr noundef @.str.4)
  %1343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1344 = load i32, ptr %1343, align 4, !tbaa !5
  %1345 = call ptr @s2n_strerror_debug(i32 noundef %1344, ptr noundef @.str.4)
  %1346 = call ptr @__errno_location() #9
  %1347 = load i32, ptr %1346, align 4, !tbaa !5
  %1348 = call ptr @strerror(i32 noundef %1347) #8
  %1349 = call ptr @__errno_location() #9
  %1350 = load i32, ptr %1349, align 4, !tbaa !5
  %1351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1338, ptr noundef @.str.2, i32 noundef %1339, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 446, ptr noundef %1342, ptr noundef %1345, ptr noundef %1348, i32 noundef %1350) #8
  br label %1369

1352:                                             ; preds = %1330, %1323
  %1353 = load i32, ptr %31, align 4, !tbaa !5
  %1354 = call ptr @__errno_location() #9
  store i32 %1353, ptr %1354, align 4, !tbaa !5
  %1355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1356 = load i32, ptr @test_count, align 4, !tbaa !5
  %1357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1358 = load i32, ptr %1357, align 4, !tbaa !5
  %1359 = call ptr @s2n_strerror(i32 noundef %1358, ptr noundef @.str.4)
  %1360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1361 = load i32, ptr %1360, align 4, !tbaa !5
  %1362 = call ptr @s2n_strerror_debug(i32 noundef %1361, ptr noundef @.str.4)
  %1363 = call ptr @__errno_location() #9
  %1364 = load i32, ptr %1363, align 4, !tbaa !5
  %1365 = call ptr @strerror(i32 noundef %1364) #8
  %1366 = call ptr @__errno_location() #9
  %1367 = load i32, ptr %1366, align 4, !tbaa !5
  %1368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1355, ptr noundef @.str.5, i32 noundef %1356, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 446, ptr noundef %1359, ptr noundef %1362, ptr noundef %1365, i32 noundef %1367) #8
  br label %1369

1369:                                             ; preds = %1352, %1335
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #8
  br label %1370

1370:                                             ; preds = %1369
  br label %1371

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

1372:                                             ; No predecessors!
  br label %1373

1373:                                             ; preds = %1372
  br label %1374

1374:                                             ; preds = %1373, %1312
  br label %1375

1375:                                             ; preds = %1374
  br label %1376

1376:                                             ; preds = %1375
  br label %1377

1377:                                             ; preds = %1376
  %1378 = load i32, ptr @test_count, align 4, !tbaa !5
  %1379 = add nsw i32 %1378, 1
  store i32 %1379, ptr @test_count, align 4, !tbaa !5
  %1380 = load ptr, ptr %6, align 8, !tbaa !9
  %1381 = call i32 @s2n_conn_get_current_message_type(ptr noundef %1380)
  %1382 = icmp eq i32 %1381, 2
  br i1 %1382, label %1436, label %1383

1383:                                             ; preds = %1377
  br label %1384

1384:                                             ; preds = %1383
  br label %1385

1385:                                             ; preds = %1384
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #8
  %1386 = call ptr @__errno_location() #9
  %1387 = load i32, ptr %1386, align 4, !tbaa !5
  store i32 %1387, ptr %32, align 4, !tbaa !5
  %1388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1389 = call i32 @s2n_print_stacktrace(ptr noundef %1388)
  %1390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1391 = trunc i8 %1390 to i1
  br i1 %1391, label %1392, label %1414

1392:                                             ; preds = %1385
  %1393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1394 = call i32 @fileno(ptr noundef %1393) #8
  %1395 = call i32 @isatty(i32 noundef %1394) #8
  %1396 = icmp ne i32 %1395, 0
  br i1 %1396, label %1397, label %1414

1397:                                             ; preds = %1392
  %1398 = load i32, ptr %32, align 4, !tbaa !5
  %1399 = call ptr @__errno_location() #9
  store i32 %1398, ptr %1399, align 4, !tbaa !5
  %1400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1401 = load i32, ptr @test_count, align 4, !tbaa !5
  %1402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1403 = load i32, ptr %1402, align 4, !tbaa !5
  %1404 = call ptr @s2n_strerror(i32 noundef %1403, ptr noundef @.str.4)
  %1405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1406 = load i32, ptr %1405, align 4, !tbaa !5
  %1407 = call ptr @s2n_strerror_debug(i32 noundef %1406, ptr noundef @.str.4)
  %1408 = call ptr @__errno_location() #9
  %1409 = load i32, ptr %1408, align 4, !tbaa !5
  %1410 = call ptr @strerror(i32 noundef %1409) #8
  %1411 = call ptr @__errno_location() #9
  %1412 = load i32, ptr %1411, align 4, !tbaa !5
  %1413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1400, ptr noundef @.str.2, i32 noundef %1401, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 449, ptr noundef %1404, ptr noundef %1407, ptr noundef %1410, i32 noundef %1412) #8
  br label %1431

1414:                                             ; preds = %1392, %1385
  %1415 = load i32, ptr %32, align 4, !tbaa !5
  %1416 = call ptr @__errno_location() #9
  store i32 %1415, ptr %1416, align 4, !tbaa !5
  %1417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1418 = load i32, ptr @test_count, align 4, !tbaa !5
  %1419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1420 = load i32, ptr %1419, align 4, !tbaa !5
  %1421 = call ptr @s2n_strerror(i32 noundef %1420, ptr noundef @.str.4)
  %1422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1423 = load i32, ptr %1422, align 4, !tbaa !5
  %1424 = call ptr @s2n_strerror_debug(i32 noundef %1423, ptr noundef @.str.4)
  %1425 = call ptr @__errno_location() #9
  %1426 = load i32, ptr %1425, align 4, !tbaa !5
  %1427 = call ptr @strerror(i32 noundef %1426) #8
  %1428 = call ptr @__errno_location() #9
  %1429 = load i32, ptr %1428, align 4, !tbaa !5
  %1430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1417, ptr noundef @.str.5, i32 noundef %1418, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 449, ptr noundef %1421, ptr noundef %1424, ptr noundef %1427, i32 noundef %1429) #8
  br label %1431

1431:                                             ; preds = %1414, %1397
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %1432

1432:                                             ; preds = %1431
  br label %1433

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

1434:                                             ; No predecessors!
  br label %1435

1435:                                             ; preds = %1434
  br label %1436

1436:                                             ; preds = %1435, %1377
  br label %1437

1437:                                             ; preds = %1436
  br label %1438

1438:                                             ; preds = %1437
  br label %1439

1439:                                             ; preds = %1438
  %1440 = load i32, ptr @test_count, align 4, !tbaa !5
  %1441 = add nsw i32 %1440, 1
  store i32 %1441, ptr @test_count, align 4, !tbaa !5
  %1442 = load i32, ptr %10, align 4, !tbaa !5
  %1443 = call i32 @waitpid(i32 noundef %1442, ptr noundef %9, i32 noundef 0)
  %1444 = load i32, ptr %10, align 4, !tbaa !5
  %1445 = icmp eq i32 %1443, %1444
  br i1 %1445, label %1499, label %1446

1446:                                             ; preds = %1439
  br label %1447

1447:                                             ; preds = %1446
  br label %1448

1448:                                             ; preds = %1447
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #8
  %1449 = call ptr @__errno_location() #9
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  store i32 %1450, ptr %33, align 4, !tbaa !5
  %1451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1452 = call i32 @s2n_print_stacktrace(ptr noundef %1451)
  %1453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1454 = trunc i8 %1453 to i1
  br i1 %1454, label %1455, label %1477

1455:                                             ; preds = %1448
  %1456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1457 = call i32 @fileno(ptr noundef %1456) #8
  %1458 = call i32 @isatty(i32 noundef %1457) #8
  %1459 = icmp ne i32 %1458, 0
  br i1 %1459, label %1460, label %1477

1460:                                             ; preds = %1455
  %1461 = load i32, ptr %33, align 4, !tbaa !5
  %1462 = call ptr @__errno_location() #9
  store i32 %1461, ptr %1462, align 4, !tbaa !5
  %1463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1464 = load i32, ptr @test_count, align 4, !tbaa !5
  %1465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1466 = load i32, ptr %1465, align 4, !tbaa !5
  %1467 = call ptr @s2n_strerror(i32 noundef %1466, ptr noundef @.str.4)
  %1468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1469 = load i32, ptr %1468, align 4, !tbaa !5
  %1470 = call ptr @s2n_strerror_debug(i32 noundef %1469, ptr noundef @.str.4)
  %1471 = call ptr @__errno_location() #9
  %1472 = load i32, ptr %1471, align 4, !tbaa !5
  %1473 = call ptr @strerror(i32 noundef %1472) #8
  %1474 = call ptr @__errno_location() #9
  %1475 = load i32, ptr %1474, align 4, !tbaa !5
  %1476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1463, ptr noundef @.str.2, i32 noundef %1464, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 452, ptr noundef %1467, ptr noundef %1470, ptr noundef %1473, i32 noundef %1475) #8
  br label %1494

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

1494:                                             ; preds = %1477, %1460
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #8
  br label %1495

1495:                                             ; preds = %1494
  br label %1496

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

1497:                                             ; No predecessors!
  br label %1498

1498:                                             ; preds = %1497
  br label %1499

1499:                                             ; preds = %1498, %1439
  br label %1500

1500:                                             ; preds = %1499
  br label %1501

1501:                                             ; preds = %1500
  br label %1502

1502:                                             ; preds = %1501
  %1503 = load i32, ptr @test_count, align 4, !tbaa !5
  %1504 = add nsw i32 %1503, 1
  store i32 %1504, ptr @test_count, align 4, !tbaa !5
  %1505 = load i32, ptr %9, align 4, !tbaa !5
  %1506 = icmp eq i32 %1505, 0
  br i1 %1506, label %1560, label %1507

1507:                                             ; preds = %1502
  br label %1508

1508:                                             ; preds = %1507
  br label %1509

1509:                                             ; preds = %1508
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  %1510 = call ptr @__errno_location() #9
  %1511 = load i32, ptr %1510, align 4, !tbaa !5
  store i32 %1511, ptr %34, align 4, !tbaa !5
  %1512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1513 = call i32 @s2n_print_stacktrace(ptr noundef %1512)
  %1514 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1515 = trunc i8 %1514 to i1
  br i1 %1515, label %1516, label %1538

1516:                                             ; preds = %1509
  %1517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1518 = call i32 @fileno(ptr noundef %1517) #8
  %1519 = call i32 @isatty(i32 noundef %1518) #8
  %1520 = icmp ne i32 %1519, 0
  br i1 %1520, label %1521, label %1538

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

1538:                                             ; preds = %1516, %1509
  %1539 = load i32, ptr %34, align 4, !tbaa !5
  %1540 = call ptr @__errno_location() #9
  store i32 %1539, ptr %1540, align 4, !tbaa !5
  %1541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1542 = load i32, ptr @test_count, align 4, !tbaa !5
  %1543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1544 = load i32, ptr %1543, align 4, !tbaa !5
  %1545 = call ptr @s2n_strerror(i32 noundef %1544, ptr noundef @.str.4)
  %1546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1547 = load i32, ptr %1546, align 4, !tbaa !5
  %1548 = call ptr @s2n_strerror_debug(i32 noundef %1547, ptr noundef @.str.4)
  %1549 = call ptr @__errno_location() #9
  %1550 = load i32, ptr %1549, align 4, !tbaa !5
  %1551 = call ptr @strerror(i32 noundef %1550) #8
  %1552 = call ptr @__errno_location() #9
  %1553 = load i32, ptr %1552, align 4, !tbaa !5
  %1554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1541, ptr noundef @.str.5, i32 noundef %1542, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 453, ptr noundef %1545, ptr noundef %1548, ptr noundef %1551, i32 noundef %1553) #8
  br label %1555

1555:                                             ; preds = %1538, %1521
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  br label %1556

1556:                                             ; preds = %1555
  br label %1557

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

1558:                                             ; No predecessors!
  br label %1559

1559:                                             ; preds = %1558
  br label %1560

1560:                                             ; preds = %1559, %1502
  br label %1561

1561:                                             ; preds = %1560
  br label %1562

1562:                                             ; preds = %1561
  br label %1563

1563:                                             ; preds = %1562
  %1564 = load i32, ptr @test_count, align 4, !tbaa !5
  %1565 = add nsw i32 %1564, 1
  store i32 %1565, ptr @test_count, align 4, !tbaa !5
  %1566 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %1567 = load i32, ptr %1566, align 4, !tbaa !5
  %1568 = call i32 @close(i32 noundef %1567)
  %1569 = icmp eq i32 %1568, -1
  br i1 %1569, label %1570, label %1623

1570:                                             ; preds = %1563
  br label %1571

1571:                                             ; preds = %1570
  br label %1572

1572:                                             ; preds = %1571
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  %1573 = call ptr @__errno_location() #9
  %1574 = load i32, ptr %1573, align 4, !tbaa !5
  store i32 %1574, ptr %35, align 4, !tbaa !5
  %1575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1576 = call i32 @s2n_print_stacktrace(ptr noundef %1575)
  %1577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1578 = trunc i8 %1577 to i1
  br i1 %1578, label %1579, label %1601

1579:                                             ; preds = %1572
  %1580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1581 = call i32 @fileno(ptr noundef %1580) #8
  %1582 = call i32 @isatty(i32 noundef %1581) #8
  %1583 = icmp ne i32 %1582, 0
  br i1 %1583, label %1584, label %1601

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

1601:                                             ; preds = %1579, %1572
  %1602 = load i32, ptr %35, align 4, !tbaa !5
  %1603 = call ptr @__errno_location() #9
  store i32 %1602, ptr %1603, align 4, !tbaa !5
  %1604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1605 = load i32, ptr @test_count, align 4, !tbaa !5
  %1606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1607 = load i32, ptr %1606, align 4, !tbaa !5
  %1608 = call ptr @s2n_strerror(i32 noundef %1607, ptr noundef @.str.4)
  %1609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1610 = load i32, ptr %1609, align 4, !tbaa !5
  %1611 = call ptr @s2n_strerror_debug(i32 noundef %1610, ptr noundef @.str.4)
  %1612 = call ptr @__errno_location() #9
  %1613 = load i32, ptr %1612, align 4, !tbaa !5
  %1614 = call ptr @strerror(i32 noundef %1613) #8
  %1615 = call ptr @__errno_location() #9
  %1616 = load i32, ptr %1615, align 4, !tbaa !5
  %1617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1604, ptr noundef @.str.5, i32 noundef %1605, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 454, ptr noundef %1608, ptr noundef %1611, ptr noundef %1614, i32 noundef %1616) #8
  br label %1618

1618:                                             ; preds = %1601, %1584
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  br label %1619

1619:                                             ; preds = %1618
  br label %1620

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

1621:                                             ; No predecessors!
  br label %1622

1622:                                             ; preds = %1621
  br label %1623

1623:                                             ; preds = %1622, %1563
  br label %1624

1624:                                             ; preds = %1623
  br label %1625

1625:                                             ; preds = %1624
  br label %1626

1626:                                             ; preds = %1625
  %1627 = load i32, ptr @test_count, align 4, !tbaa !5
  %1628 = add nsw i32 %1627, 1
  store i32 %1628, ptr @test_count, align 4, !tbaa !5
  %1629 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %1630 = call i32 @pipe(ptr noundef %1629) #8
  %1631 = icmp eq i32 %1630, -1
  br i1 %1631, label %1632, label %1685

1632:                                             ; preds = %1626
  br label %1633

1633:                                             ; preds = %1632
  br label %1634

1634:                                             ; preds = %1633
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  %1635 = call ptr @__errno_location() #9
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  store i32 %1636, ptr %36, align 4, !tbaa !5
  %1637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1638 = call i32 @s2n_print_stacktrace(ptr noundef %1637)
  %1639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1640 = trunc i8 %1639 to i1
  br i1 %1640, label %1641, label %1663

1641:                                             ; preds = %1634
  %1642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1643 = call i32 @fileno(ptr noundef %1642) #8
  %1644 = call i32 @isatty(i32 noundef %1643) #8
  %1645 = icmp ne i32 %1644, 0
  br i1 %1645, label %1646, label %1663

1646:                                             ; preds = %1641
  %1647 = load i32, ptr %36, align 4, !tbaa !5
  %1648 = call ptr @__errno_location() #9
  store i32 %1647, ptr %1648, align 4, !tbaa !5
  %1649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1650 = load i32, ptr @test_count, align 4, !tbaa !5
  %1651 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1652 = load i32, ptr %1651, align 4, !tbaa !5
  %1653 = call ptr @s2n_strerror(i32 noundef %1652, ptr noundef @.str.4)
  %1654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1655 = load i32, ptr %1654, align 4, !tbaa !5
  %1656 = call ptr @s2n_strerror_debug(i32 noundef %1655, ptr noundef @.str.4)
  %1657 = call ptr @__errno_location() #9
  %1658 = load i32, ptr %1657, align 4, !tbaa !5
  %1659 = call ptr @strerror(i32 noundef %1658) #8
  %1660 = call ptr @__errno_location() #9
  %1661 = load i32, ptr %1660, align 4, !tbaa !5
  %1662 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1649, ptr noundef @.str.2, i32 noundef %1650, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 457, ptr noundef %1653, ptr noundef %1656, ptr noundef %1659, i32 noundef %1661) #8
  br label %1680

1663:                                             ; preds = %1641, %1634
  %1664 = load i32, ptr %36, align 4, !tbaa !5
  %1665 = call ptr @__errno_location() #9
  store i32 %1664, ptr %1665, align 4, !tbaa !5
  %1666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1667 = load i32, ptr @test_count, align 4, !tbaa !5
  %1668 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1669 = load i32, ptr %1668, align 4, !tbaa !5
  %1670 = call ptr @s2n_strerror(i32 noundef %1669, ptr noundef @.str.4)
  %1671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1672 = load i32, ptr %1671, align 4, !tbaa !5
  %1673 = call ptr @s2n_strerror_debug(i32 noundef %1672, ptr noundef @.str.4)
  %1674 = call ptr @__errno_location() #9
  %1675 = load i32, ptr %1674, align 4, !tbaa !5
  %1676 = call ptr @strerror(i32 noundef %1675) #8
  %1677 = call ptr @__errno_location() #9
  %1678 = load i32, ptr %1677, align 4, !tbaa !5
  %1679 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1666, ptr noundef @.str.5, i32 noundef %1667, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 457, ptr noundef %1670, ptr noundef %1673, ptr noundef %1676, i32 noundef %1678) #8
  br label %1680

1680:                                             ; preds = %1663, %1646
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %1681

1681:                                             ; preds = %1680
  br label %1682

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

1683:                                             ; No predecessors!
  br label %1684

1684:                                             ; preds = %1683
  br label %1685

1685:                                             ; preds = %1684, %1626
  br label %1686

1686:                                             ; preds = %1685
  br label %1687

1687:                                             ; preds = %1686
  br label %1688

1688:                                             ; preds = %1687
  %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 = load ptr, ptr %6, align 8, !tbaa !9
  %1692 = call i32 @s2n_connection_wipe(ptr noundef %1691)
  %1693 = icmp eq i32 %1692, -1
  br i1 %1693, label %1694, label %1747

1694:                                             ; preds = %1688
  br label %1695

1695:                                             ; preds = %1694
  br label %1696

1696:                                             ; preds = %1695
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  %1697 = call ptr @__errno_location() #9
  %1698 = load i32, ptr %1697, align 4, !tbaa !5
  store i32 %1698, ptr %37, align 4, !tbaa !5
  %1699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1700 = call i32 @s2n_print_stacktrace(ptr noundef %1699)
  %1701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1702 = trunc i8 %1701 to i1
  br i1 %1702, label %1703, label %1725

1703:                                             ; preds = %1696
  %1704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1705 = call i32 @fileno(ptr noundef %1704) #8
  %1706 = call i32 @isatty(i32 noundef %1705) #8
  %1707 = icmp ne i32 %1706, 0
  br i1 %1707, label %1708, label %1725

1708:                                             ; preds = %1703
  %1709 = load i32, ptr %37, align 4, !tbaa !5
  %1710 = call ptr @__errno_location() #9
  store i32 %1709, ptr %1710, align 4, !tbaa !5
  %1711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1712 = load i32, ptr @test_count, align 4, !tbaa !5
  %1713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1714 = load i32, ptr %1713, align 4, !tbaa !5
  %1715 = call ptr @s2n_strerror(i32 noundef %1714, ptr noundef @.str.4)
  %1716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1717 = load i32, ptr %1716, align 4, !tbaa !5
  %1718 = call ptr @s2n_strerror_debug(i32 noundef %1717, ptr noundef @.str.4)
  %1719 = call ptr @__errno_location() #9
  %1720 = load i32, ptr %1719, align 4, !tbaa !5
  %1721 = call ptr @strerror(i32 noundef %1720) #8
  %1722 = call ptr @__errno_location() #9
  %1723 = load i32, ptr %1722, align 4, !tbaa !5
  %1724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1711, ptr noundef @.str.2, i32 noundef %1712, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 460, ptr noundef %1715, ptr noundef %1718, ptr noundef %1721, i32 noundef %1723) #8
  br label %1742

1725:                                             ; preds = %1703, %1696
  %1726 = load i32, ptr %37, align 4, !tbaa !5
  %1727 = call ptr @__errno_location() #9
  store i32 %1726, ptr %1727, align 4, !tbaa !5
  %1728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1729 = load i32, ptr @test_count, align 4, !tbaa !5
  %1730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1731 = load i32, ptr %1730, align 4, !tbaa !5
  %1732 = call ptr @s2n_strerror(i32 noundef %1731, ptr noundef @.str.4)
  %1733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1734 = load i32, ptr %1733, align 4, !tbaa !5
  %1735 = call ptr @s2n_strerror_debug(i32 noundef %1734, ptr noundef @.str.4)
  %1736 = call ptr @__errno_location() #9
  %1737 = load i32, ptr %1736, align 4, !tbaa !5
  %1738 = call ptr @strerror(i32 noundef %1737) #8
  %1739 = call ptr @__errno_location() #9
  %1740 = load i32, ptr %1739, align 4, !tbaa !5
  %1741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1728, ptr noundef @.str.5, i32 noundef %1729, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 460, ptr noundef %1732, ptr noundef %1735, ptr noundef %1738, i32 noundef %1740) #8
  br label %1742

1742:                                             ; preds = %1725, %1708
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  br label %1743

1743:                                             ; preds = %1742
  br label %1744

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

1745:                                             ; No predecessors!
  br label %1746

1746:                                             ; preds = %1745
  br label %1747

1747:                                             ; preds = %1746, %1688
  br label %1748

1748:                                             ; preds = %1747
  br label %1749

1749:                                             ; preds = %1748
  %1750 = load ptr, ptr %6, align 8, !tbaa !9
  %1751 = getelementptr inbounds %struct.s2n_connection, ptr %1750, i32 0, i32 22
  store i8 33, ptr %1751, align 1, !tbaa !15
  %1752 = load ptr, ptr %6, align 8, !tbaa !9
  %1753 = getelementptr inbounds %struct.s2n_connection, ptr %1752, i32 0, i32 21
  store i8 33, ptr %1753, align 2, !tbaa !42
  %1754 = load ptr, ptr %6, align 8, !tbaa !9
  %1755 = getelementptr inbounds %struct.s2n_connection, ptr %1754, i32 0, i32 23
  store i8 33, ptr %1755, align 4, !tbaa !43
  br label %1756

1756:                                             ; preds = %1749
  %1757 = load i32, ptr @test_count, align 4, !tbaa !5
  %1758 = add nsw i32 %1757, 1
  store i32 %1758, ptr @test_count, align 4, !tbaa !5
  %1759 = load ptr, ptr %6, align 8, !tbaa !9
  %1760 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %1761 = load i32, ptr %1760, align 4, !tbaa !5
  %1762 = call i32 @s2n_connection_set_read_fd(ptr noundef %1759, i32 noundef %1761)
  %1763 = icmp eq i32 %1762, -1
  br i1 %1763, label %1764, label %1817

1764:                                             ; preds = %1756
  br label %1765

1765:                                             ; preds = %1764
  br label %1766

1766:                                             ; preds = %1765
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #8
  %1767 = call ptr @__errno_location() #9
  %1768 = load i32, ptr %1767, align 4, !tbaa !5
  store i32 %1768, ptr %38, align 4, !tbaa !5
  %1769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1770 = call i32 @s2n_print_stacktrace(ptr noundef %1769)
  %1771 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1772 = trunc i8 %1771 to i1
  br i1 %1772, label %1773, label %1795

1773:                                             ; preds = %1766
  %1774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1775 = call i32 @fileno(ptr noundef %1774) #8
  %1776 = call i32 @isatty(i32 noundef %1775) #8
  %1777 = icmp ne i32 %1776, 0
  br i1 %1777, label %1778, label %1795

1778:                                             ; preds = %1773
  %1779 = load i32, ptr %38, align 4, !tbaa !5
  %1780 = call ptr @__errno_location() #9
  store i32 %1779, ptr %1780, align 4, !tbaa !5
  %1781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1782 = load i32, ptr @test_count, align 4, !tbaa !5
  %1783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1784 = load i32, ptr %1783, align 4, !tbaa !5
  %1785 = call ptr @s2n_strerror(i32 noundef %1784, ptr noundef @.str.4)
  %1786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1787 = load i32, ptr %1786, align 4, !tbaa !5
  %1788 = call ptr @s2n_strerror_debug(i32 noundef %1787, ptr noundef @.str.4)
  %1789 = call ptr @__errno_location() #9
  %1790 = load i32, ptr %1789, align 4, !tbaa !5
  %1791 = call ptr @strerror(i32 noundef %1790) #8
  %1792 = call ptr @__errno_location() #9
  %1793 = load i32, ptr %1792, align 4, !tbaa !5
  %1794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1781, ptr noundef @.str.2, i32 noundef %1782, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 466, ptr noundef %1785, ptr noundef %1788, ptr noundef %1791, i32 noundef %1793) #8
  br label %1812

1795:                                             ; preds = %1773, %1766
  %1796 = load i32, ptr %38, align 4, !tbaa !5
  %1797 = call ptr @__errno_location() #9
  store i32 %1796, ptr %1797, align 4, !tbaa !5
  %1798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1799 = load i32, ptr @test_count, align 4, !tbaa !5
  %1800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1801 = load i32, ptr %1800, align 4, !tbaa !5
  %1802 = call ptr @s2n_strerror(i32 noundef %1801, ptr noundef @.str.4)
  %1803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1804 = load i32, ptr %1803, align 4, !tbaa !5
  %1805 = call ptr @s2n_strerror_debug(i32 noundef %1804, ptr noundef @.str.4)
  %1806 = call ptr @__errno_location() #9
  %1807 = load i32, ptr %1806, align 4, !tbaa !5
  %1808 = call ptr @strerror(i32 noundef %1807) #8
  %1809 = call ptr @__errno_location() #9
  %1810 = load i32, ptr %1809, align 4, !tbaa !5
  %1811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1798, ptr noundef @.str.5, i32 noundef %1799, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 466, ptr noundef %1802, ptr noundef %1805, ptr noundef %1808, i32 noundef %1810) #8
  br label %1812

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

1813:                                             ; preds = %1812
  br label %1814

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

1815:                                             ; No predecessors!
  br label %1816

1816:                                             ; preds = %1815
  br label %1817

1817:                                             ; preds = %1816, %1756
  br label %1818

1818:                                             ; preds = %1817
  br label %1819

1819:                                             ; preds = %1818
  %1820 = load ptr, ptr %6, align 8, !tbaa !9
  %1821 = getelementptr inbounds %struct.s2n_connection, ptr %1820, i32 0, i32 52
  %1822 = getelementptr inbounds %struct.s2n_handshake, ptr %1821, i32 0, i32 6
  store i32 3, ptr %1822, align 4, !tbaa !44
  %1823 = load ptr, ptr %6, align 8, !tbaa !9
  %1824 = getelementptr inbounds %struct.s2n_connection, ptr %1823, i32 0, i32 52
  %1825 = getelementptr inbounds %struct.s2n_handshake, ptr %1824, i32 0, i32 7
  store i32 1, ptr %1825, align 8, !tbaa !45
  %1826 = call i32 @fork() #8
  store i32 %1826, ptr %10, align 4, !tbaa !5
  %1827 = load i32, ptr %10, align 4, !tbaa !5
  %1828 = icmp eq i32 %1827, 0
  br i1 %1828, label %1829, label %2019

1829:                                             ; preds = %1819
  br label %1830

1830:                                             ; preds = %1829
  %1831 = load i32, ptr @test_count, align 4, !tbaa !5
  %1832 = add nsw i32 %1831, 1
  store i32 %1832, ptr @test_count, align 4, !tbaa !5
  %1833 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %1834 = load i32, ptr %1833, align 4, !tbaa !5
  %1835 = call i32 @close(i32 noundef %1834)
  %1836 = icmp eq i32 %1835, -1
  br i1 %1836, label %1837, label %1890

1837:                                             ; preds = %1830
  br label %1838

1838:                                             ; preds = %1837
  br label %1839

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

1846:                                             ; preds = %1839
  %1847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1848 = call i32 @fileno(ptr noundef %1847) #8
  %1849 = call i32 @isatty(i32 noundef %1848) #8
  %1850 = icmp ne i32 %1849, 0
  br i1 %1850, label %1851, label %1868

1851:                                             ; preds = %1846
  %1852 = load i32, ptr %39, align 4, !tbaa !5
  %1853 = call ptr @__errno_location() #9
  store i32 %1852, ptr %1853, align 4, !tbaa !5
  %1854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1855 = load i32, ptr @test_count, align 4, !tbaa !5
  %1856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1857 = load i32, ptr %1856, align 4, !tbaa !5
  %1858 = call ptr @s2n_strerror(i32 noundef %1857, ptr noundef @.str.4)
  %1859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1860 = load i32, ptr %1859, align 4, !tbaa !5
  %1861 = call ptr @s2n_strerror_debug(i32 noundef %1860, ptr noundef @.str.4)
  %1862 = call ptr @__errno_location() #9
  %1863 = load i32, ptr %1862, align 4, !tbaa !5
  %1864 = call ptr @strerror(i32 noundef %1863) #8
  %1865 = call ptr @__errno_location() #9
  %1866 = load i32, ptr %1865, align 4, !tbaa !5
  %1867 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1854, ptr noundef @.str.2, i32 noundef %1855, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 476, ptr noundef %1858, ptr noundef %1861, ptr noundef %1864, i32 noundef %1866) #8
  br label %1885

1868:                                             ; preds = %1846, %1839
  %1869 = load i32, ptr %39, align 4, !tbaa !5
  %1870 = call ptr @__errno_location() #9
  store i32 %1869, ptr %1870, align 4, !tbaa !5
  %1871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1872 = load i32, ptr @test_count, align 4, !tbaa !5
  %1873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1874 = load i32, ptr %1873, align 4, !tbaa !5
  %1875 = call ptr @s2n_strerror(i32 noundef %1874, ptr noundef @.str.4)
  %1876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1877 = load i32, ptr %1876, align 4, !tbaa !5
  %1878 = call ptr @s2n_strerror_debug(i32 noundef %1877, ptr noundef @.str.4)
  %1879 = call ptr @__errno_location() #9
  %1880 = load i32, ptr %1879, align 4, !tbaa !5
  %1881 = call ptr @strerror(i32 noundef %1880) #8
  %1882 = call ptr @__errno_location() #9
  %1883 = load i32, ptr %1882, align 4, !tbaa !5
  %1884 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1871, ptr noundef @.str.5, i32 noundef %1872, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 476, ptr noundef %1875, ptr noundef %1878, ptr noundef %1881, i32 noundef %1883) #8
  br label %1885

1885:                                             ; preds = %1868, %1851
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  br label %1886

1886:                                             ; preds = %1885
  br label %1887

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

1888:                                             ; No predecessors!
  br label %1889

1889:                                             ; preds = %1888
  br label %1890

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

1891:                                             ; preds = %1890
  br label %1892

1892:                                             ; preds = %1891
  %1893 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 1
  %1894 = load i32, ptr %1893, align 4, !tbaa !5
  call void @coalesced_message(i32 noundef %1894)
  br label %1895

1895:                                             ; preds = %1892
  %1896 = load i32, ptr @test_count, align 4, !tbaa !5
  %1897 = add nsw i32 %1896, 1
  store i32 %1897, ptr @test_count, align 4, !tbaa !5
  %1898 = load ptr, ptr %6, align 8, !tbaa !9
  %1899 = call i32 @s2n_connection_free(ptr noundef %1898)
  %1900 = icmp eq i32 %1899, -1
  br i1 %1900, label %1901, label %1954

1901:                                             ; preds = %1895
  br label %1902

1902:                                             ; preds = %1901
  br label %1903

1903:                                             ; preds = %1902
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #8
  %1904 = call ptr @__errno_location() #9
  %1905 = load i32, ptr %1904, align 4, !tbaa !5
  store i32 %1905, ptr %40, align 4, !tbaa !5
  %1906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1907 = call i32 @s2n_print_stacktrace(ptr noundef %1906)
  %1908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1909 = trunc i8 %1908 to i1
  br i1 %1909, label %1910, label %1932

1910:                                             ; preds = %1903
  %1911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1912 = call i32 @fileno(ptr noundef %1911) #8
  %1913 = call i32 @isatty(i32 noundef %1912) #8
  %1914 = icmp ne i32 %1913, 0
  br i1 %1914, label %1915, label %1932

1915:                                             ; preds = %1910
  %1916 = load i32, ptr %40, align 4, !tbaa !5
  %1917 = call ptr @__errno_location() #9
  store i32 %1916, ptr %1917, align 4, !tbaa !5
  %1918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1919 = load i32, ptr @test_count, align 4, !tbaa !5
  %1920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1921 = load i32, ptr %1920, align 4, !tbaa !5
  %1922 = call ptr @s2n_strerror(i32 noundef %1921, ptr noundef @.str.4)
  %1923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1924 = load i32, ptr %1923, align 4, !tbaa !5
  %1925 = call ptr @s2n_strerror_debug(i32 noundef %1924, ptr noundef @.str.4)
  %1926 = call ptr @__errno_location() #9
  %1927 = load i32, ptr %1926, align 4, !tbaa !5
  %1928 = call ptr @strerror(i32 noundef %1927) #8
  %1929 = call ptr @__errno_location() #9
  %1930 = load i32, ptr %1929, align 4, !tbaa !5
  %1931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1918, ptr noundef @.str.2, i32 noundef %1919, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 480, ptr noundef %1922, ptr noundef %1925, ptr noundef %1928, i32 noundef %1930) #8
  br label %1949

1932:                                             ; preds = %1910, %1903
  %1933 = load i32, ptr %40, align 4, !tbaa !5
  %1934 = call ptr @__errno_location() #9
  store i32 %1933, ptr %1934, align 4, !tbaa !5
  %1935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1936 = load i32, ptr @test_count, align 4, !tbaa !5
  %1937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1938 = load i32, ptr %1937, align 4, !tbaa !5
  %1939 = call ptr @s2n_strerror(i32 noundef %1938, ptr noundef @.str.4)
  %1940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1941 = load i32, ptr %1940, align 4, !tbaa !5
  %1942 = call ptr @s2n_strerror_debug(i32 noundef %1941, ptr noundef @.str.4)
  %1943 = call ptr @__errno_location() #9
  %1944 = load i32, ptr %1943, align 4, !tbaa !5
  %1945 = call ptr @strerror(i32 noundef %1944) #8
  %1946 = call ptr @__errno_location() #9
  %1947 = load i32, ptr %1946, align 4, !tbaa !5
  %1948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1935, ptr noundef @.str.5, i32 noundef %1936, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 480, ptr noundef %1939, ptr noundef %1942, ptr noundef %1945, i32 noundef %1947) #8
  br label %1949

1949:                                             ; preds = %1932, %1915
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %1950

1950:                                             ; preds = %1949
  br label %1951

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

1952:                                             ; No predecessors!
  br label %1953

1953:                                             ; preds = %1952
  br label %1954

1954:                                             ; preds = %1953, %1895
  br label %1955

1955:                                             ; preds = %1954
  br label %1956

1956:                                             ; preds = %1955
  br label %1957

1957:                                             ; preds = %1956
  %1958 = load i32, ptr @test_count, align 4, !tbaa !5
  %1959 = add nsw i32 %1958, 1
  store i32 %1959, ptr @test_count, align 4, !tbaa !5
  %1960 = load ptr, ptr %7, align 8, !tbaa !9
  %1961 = call i32 @s2n_config_free(ptr noundef %1960)
  %1962 = icmp eq i32 %1961, -1
  br i1 %1962, label %1963, label %2016

1963:                                             ; preds = %1957
  br label %1964

1964:                                             ; preds = %1963
  br label %1965

1965:                                             ; preds = %1964
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #8
  %1966 = call ptr @__errno_location() #9
  %1967 = load i32, ptr %1966, align 4, !tbaa !5
  store i32 %1967, ptr %41, align 4, !tbaa !5
  %1968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1969 = call i32 @s2n_print_stacktrace(ptr noundef %1968)
  %1970 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1971 = trunc i8 %1970 to i1
  br i1 %1971, label %1972, label %1994

1972:                                             ; preds = %1965
  %1973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1974 = call i32 @fileno(ptr noundef %1973) #8
  %1975 = call i32 @isatty(i32 noundef %1974) #8
  %1976 = icmp ne i32 %1975, 0
  br i1 %1976, label %1977, label %1994

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

1994:                                             ; preds = %1972, %1965
  %1995 = load i32, ptr %41, align 4, !tbaa !5
  %1996 = call ptr @__errno_location() #9
  store i32 %1995, ptr %1996, align 4, !tbaa !5
  %1997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1998 = load i32, ptr @test_count, align 4, !tbaa !5
  %1999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2000 = load i32, ptr %1999, align 4, !tbaa !5
  %2001 = call ptr @s2n_strerror(i32 noundef %2000, ptr noundef @.str.4)
  %2002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2003 = load i32, ptr %2002, align 4, !tbaa !5
  %2004 = call ptr @s2n_strerror_debug(i32 noundef %2003, ptr noundef @.str.4)
  %2005 = call ptr @__errno_location() #9
  %2006 = load i32, ptr %2005, align 4, !tbaa !5
  %2007 = call ptr @strerror(i32 noundef %2006) #8
  %2008 = call ptr @__errno_location() #9
  %2009 = load i32, ptr %2008, align 4, !tbaa !5
  %2010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1997, ptr noundef @.str.5, i32 noundef %1998, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 481, ptr noundef %2001, ptr noundef %2004, ptr noundef %2007, i32 noundef %2009) #8
  br label %2011

2011:                                             ; preds = %1994, %1977
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  br label %2012

2012:                                             ; preds = %2011
  br label %2013

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

2014:                                             ; No predecessors!
  br label %2015

2015:                                             ; preds = %2014
  br label %2016

2016:                                             ; preds = %2015, %1957
  br label %2017

2017:                                             ; preds = %2016
  br label %2018

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

2019:                                             ; preds = %1819
  br label %2020

2020:                                             ; preds = %2019
  %2021 = load i32, ptr @test_count, align 4, !tbaa !5
  %2022 = add nsw i32 %2021, 1
  store i32 %2022, ptr @test_count, align 4, !tbaa !5
  %2023 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 1
  %2024 = load i32, ptr %2023, align 4, !tbaa !5
  %2025 = call i32 @close(i32 noundef %2024)
  %2026 = icmp eq i32 %2025, -1
  br i1 %2026, label %2027, label %2080

2027:                                             ; preds = %2020
  br label %2028

2028:                                             ; preds = %2027
  br label %2029

2029:                                             ; preds = %2028
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #8
  %2030 = call ptr @__errno_location() #9
  %2031 = load i32, ptr %2030, align 4, !tbaa !5
  store i32 %2031, ptr %42, align 4, !tbaa !5
  %2032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2033 = call i32 @s2n_print_stacktrace(ptr noundef %2032)
  %2034 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2035 = trunc i8 %2034 to i1
  br i1 %2035, label %2036, label %2058

2036:                                             ; preds = %2029
  %2037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2038 = call i32 @fileno(ptr noundef %2037) #8
  %2039 = call i32 @isatty(i32 noundef %2038) #8
  %2040 = icmp ne i32 %2039, 0
  br i1 %2040, label %2041, label %2058

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

2058:                                             ; preds = %2036, %2029
  %2059 = load i32, ptr %42, align 4, !tbaa !5
  %2060 = call ptr @__errno_location() #9
  store i32 %2059, ptr %2060, align 4, !tbaa !5
  %2061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2062 = load i32, ptr @test_count, align 4, !tbaa !5
  %2063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2064 = load i32, ptr %2063, align 4, !tbaa !5
  %2065 = call ptr @s2n_strerror(i32 noundef %2064, ptr noundef @.str.4)
  %2066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2067 = load i32, ptr %2066, align 4, !tbaa !5
  %2068 = call ptr @s2n_strerror_debug(i32 noundef %2067, ptr noundef @.str.4)
  %2069 = call ptr @__errno_location() #9
  %2070 = load i32, ptr %2069, align 4, !tbaa !5
  %2071 = call ptr @strerror(i32 noundef %2070) #8
  %2072 = call ptr @__errno_location() #9
  %2073 = load i32, ptr %2072, align 4, !tbaa !5
  %2074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2061, ptr noundef @.str.5, i32 noundef %2062, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 486, ptr noundef %2065, ptr noundef %2068, ptr noundef %2071, i32 noundef %2073) #8
  br label %2075

2075:                                             ; preds = %2058, %2041
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #8
  br label %2076

2076:                                             ; preds = %2075
  br label %2077

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

2078:                                             ; No predecessors!
  br label %2079

2079:                                             ; preds = %2078
  br label %2080

2080:                                             ; preds = %2079, %2020
  br label %2081

2081:                                             ; preds = %2080
  br label %2082

2082:                                             ; preds = %2081
  br label %2083

2083:                                             ; preds = %2082
  br label %2084

2084:                                             ; preds = %2083
  %2085 = load i32, ptr @test_count, align 4, !tbaa !5
  %2086 = add nsw i32 %2085, 1
  store i32 %2086, ptr @test_count, align 4, !tbaa !5
  %2087 = load ptr, ptr %6, align 8, !tbaa !9
  %2088 = call i32 @s2n_negotiate(ptr noundef %2087, ptr noundef %8)
  %2089 = icmp eq i32 %2088, -1
  br i1 %2089, label %2143, label %2090

2090:                                             ; preds = %2084
  br label %2091

2091:                                             ; preds = %2090
  br label %2092

2092:                                             ; preds = %2091
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #8
  %2093 = call ptr @__errno_location() #9
  %2094 = load i32, ptr %2093, align 4, !tbaa !5
  store i32 %2094, ptr %43, align 4, !tbaa !5
  %2095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2096 = call i32 @s2n_print_stacktrace(ptr noundef %2095)
  %2097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2098 = trunc i8 %2097 to i1
  br i1 %2098, label %2099, label %2121

2099:                                             ; preds = %2092
  %2100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2101 = call i32 @fileno(ptr noundef %2100) #8
  %2102 = call i32 @isatty(i32 noundef %2101) #8
  %2103 = icmp ne i32 %2102, 0
  br i1 %2103, label %2104, label %2121

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

2121:                                             ; preds = %2099, %2092
  %2122 = load i32, ptr %43, align 4, !tbaa !5
  %2123 = call ptr @__errno_location() #9
  store i32 %2122, ptr %2123, align 4, !tbaa !5
  %2124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2125 = load i32, ptr @test_count, align 4, !tbaa !5
  %2126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2127 = load i32, ptr %2126, align 4, !tbaa !5
  %2128 = call ptr @s2n_strerror(i32 noundef %2127, ptr noundef @.str.4)
  %2129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2130 = load i32, ptr %2129, align 4, !tbaa !5
  %2131 = call ptr @s2n_strerror_debug(i32 noundef %2130, ptr noundef @.str.4)
  %2132 = call ptr @__errno_location() #9
  %2133 = load i32, ptr %2132, align 4, !tbaa !5
  %2134 = call ptr @strerror(i32 noundef %2133) #8
  %2135 = call ptr @__errno_location() #9
  %2136 = load i32, ptr %2135, align 4, !tbaa !5
  %2137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2124, ptr noundef @.str.5, i32 noundef %2125, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 489, ptr noundef %2128, ptr noundef %2131, ptr noundef %2134, i32 noundef %2136) #8
  br label %2138

2138:                                             ; preds = %2121, %2104
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  br label %2139

2139:                                             ; preds = %2138
  br label %2140

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

2141:                                             ; No predecessors!
  br label %2142

2142:                                             ; preds = %2141
  br label %2143

2143:                                             ; preds = %2142, %2084
  br label %2144

2144:                                             ; preds = %2143
  br label %2145

2145:                                             ; preds = %2144
  br label %2146

2146:                                             ; preds = %2145
  %2147 = load i32, ptr @test_count, align 4, !tbaa !5
  %2148 = add nsw i32 %2147, 1
  store i32 %2148, 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 = icmp eq i32 %2150, 0
  br i1 %2151, label %2152, label %2205

2152:                                             ; preds = %2146
  br label %2153

2153:                                             ; preds = %2152
  br label %2154

2154:                                             ; preds = %2153
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #8
  %2155 = call ptr @__errno_location() #9
  %2156 = load i32, ptr %2155, align 4, !tbaa !5
  store i32 %2156, ptr %44, align 4, !tbaa !5
  %2157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2158 = call i32 @s2n_print_stacktrace(ptr noundef %2157)
  %2159 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2160 = trunc i8 %2159 to i1
  br i1 %2160, label %2161, label %2183

2161:                                             ; preds = %2154
  %2162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2163 = call i32 @fileno(ptr noundef %2162) #8
  %2164 = call i32 @isatty(i32 noundef %2163) #8
  %2165 = icmp ne i32 %2164, 0
  br i1 %2165, label %2166, label %2183

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

2183:                                             ; preds = %2161, %2154
  %2184 = load i32, ptr %44, align 4, !tbaa !5
  %2185 = call ptr @__errno_location() #9
  store i32 %2184, ptr %2185, align 4, !tbaa !5
  %2186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2187 = load i32, ptr @test_count, align 4, !tbaa !5
  %2188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2189 = load i32, ptr %2188, align 4, !tbaa !5
  %2190 = call ptr @s2n_strerror(i32 noundef %2189, ptr noundef @.str.4)
  %2191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2192 = load i32, ptr %2191, align 4, !tbaa !5
  %2193 = call ptr @s2n_strerror_debug(i32 noundef %2192, ptr noundef @.str.4)
  %2194 = call ptr @__errno_location() #9
  %2195 = load i32, ptr %2194, align 4, !tbaa !5
  %2196 = call ptr @strerror(i32 noundef %2195) #8
  %2197 = call ptr @__errno_location() #9
  %2198 = load i32, ptr %2197, align 4, !tbaa !5
  %2199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2186, ptr noundef @.str.5, i32 noundef %2187, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 489, ptr noundef %2190, ptr noundef %2193, ptr noundef %2196, i32 noundef %2198) #8
  br label %2200

2200:                                             ; preds = %2183, %2166
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #8
  br label %2201

2201:                                             ; preds = %2200
  br label %2202

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

2203:                                             ; No predecessors!
  br label %2204

2204:                                             ; preds = %2203
  br label %2205

2205:                                             ; preds = %2204, %2146
  br label %2206

2206:                                             ; preds = %2205
  br label %2207

2207:                                             ; preds = %2206
  br label %2208

2208:                                             ; preds = %2207
  %2209 = load i32, ptr @test_count, align 4, !tbaa !5
  %2210 = add nsw i32 %2209, 1
  store i32 %2210, 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_debug(i32 noundef %2212, ptr noundef @.str.4)
  %2214 = icmp eq ptr %2213, null
  br i1 %2214, label %2215, label %2268

2215:                                             ; preds = %2208
  br label %2216

2216:                                             ; preds = %2215
  br label %2217

2217:                                             ; preds = %2216
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  %2218 = call ptr @__errno_location() #9
  %2219 = load i32, ptr %2218, align 4, !tbaa !5
  store i32 %2219, ptr %45, align 4, !tbaa !5
  %2220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2221 = call i32 @s2n_print_stacktrace(ptr noundef %2220)
  %2222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2223 = trunc i8 %2222 to i1
  br i1 %2223, label %2224, label %2246

2224:                                             ; preds = %2217
  %2225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2226 = call i32 @fileno(ptr noundef %2225) #8
  %2227 = call i32 @isatty(i32 noundef %2226) #8
  %2228 = icmp ne i32 %2227, 0
  br i1 %2228, label %2229, label %2246

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

2246:                                             ; preds = %2224, %2217
  %2247 = load i32, ptr %45, align 4, !tbaa !5
  %2248 = call ptr @__errno_location() #9
  store i32 %2247, ptr %2248, align 4, !tbaa !5
  %2249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2250 = load i32, ptr @test_count, align 4, !tbaa !5
  %2251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2252 = load i32, ptr %2251, align 4, !tbaa !5
  %2253 = call ptr @s2n_strerror(i32 noundef %2252, ptr noundef @.str.4)
  %2254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2255 = load i32, ptr %2254, align 4, !tbaa !5
  %2256 = call ptr @s2n_strerror_debug(i32 noundef %2255, ptr noundef @.str.4)
  %2257 = call ptr @__errno_location() #9
  %2258 = load i32, ptr %2257, align 4, !tbaa !5
  %2259 = call ptr @strerror(i32 noundef %2258) #8
  %2260 = call ptr @__errno_location() #9
  %2261 = load i32, ptr %2260, align 4, !tbaa !5
  %2262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2249, ptr noundef @.str.5, i32 noundef %2250, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 489, ptr noundef %2253, ptr noundef %2256, ptr noundef %2259, i32 noundef %2261) #8
  br label %2263

2263:                                             ; preds = %2246, %2229
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  br label %2264

2264:                                             ; preds = %2263
  br label %2265

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

2266:                                             ; No predecessors!
  br label %2267

2267:                                             ; preds = %2266
  br label %2268

2268:                                             ; preds = %2267, %2208
  br label %2269

2269:                                             ; preds = %2268
  br label %2270

2270:                                             ; preds = %2269
  br label %2271

2271:                                             ; preds = %2270
  %2272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2272, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2273 = call ptr @__errno_location() #9
  store i32 0, ptr %2273, align 4, !tbaa !5
  br label %2274

2274:                                             ; preds = %2271
  br label %2275

2275:                                             ; preds = %2274
  br label %2276

2276:                                             ; preds = %2275
  br label %2277

2277:                                             ; preds = %2276
  br label %2278

2278:                                             ; preds = %2277
  %2279 = load i32, ptr @test_count, align 4, !tbaa !5
  %2280 = add nsw i32 %2279, 1
  store i32 %2280, ptr @test_count, align 4, !tbaa !5
  %2281 = load ptr, ptr %6, align 8, !tbaa !9
  %2282 = getelementptr inbounds %struct.s2n_connection, ptr %2281, i32 0, i32 32
  %2283 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %2282, i32 0, i32 13
  %2284 = getelementptr inbounds [32 x i8], ptr %2283, i64 0, i64 0
  %2285 = call i32 @memcmp(ptr noundef %2284, ptr noundef @zero_to_thirty_one, i64 noundef 32) #11
  %2286 = icmp eq i32 %2285, 0
  br i1 %2286, label %2340, label %2287

2287:                                             ; preds = %2278
  br label %2288

2288:                                             ; preds = %2287
  br label %2289

2289:                                             ; preds = %2288
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #8
  %2290 = call ptr @__errno_location() #9
  %2291 = load i32, ptr %2290, align 4, !tbaa !5
  store i32 %2291, ptr %46, align 4, !tbaa !5
  %2292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2293 = call i32 @s2n_print_stacktrace(ptr noundef %2292)
  %2294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2295 = trunc i8 %2294 to i1
  br i1 %2295, label %2296, label %2318

2296:                                             ; preds = %2289
  %2297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2298 = call i32 @fileno(ptr noundef %2297) #8
  %2299 = call i32 @isatty(i32 noundef %2298) #8
  %2300 = icmp ne i32 %2299, 0
  br i1 %2300, label %2301, label %2318

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

2318:                                             ; preds = %2296, %2289
  %2319 = load i32, ptr %46, align 4, !tbaa !5
  %2320 = call ptr @__errno_location() #9
  store i32 %2319, ptr %2320, align 4, !tbaa !5
  %2321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2322 = load i32, ptr @test_count, align 4, !tbaa !5
  %2323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2324 = load i32, ptr %2323, align 4, !tbaa !5
  %2325 = call ptr @s2n_strerror(i32 noundef %2324, ptr noundef @.str.4)
  %2326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2327 = load i32, ptr %2326, align 4, !tbaa !5
  %2328 = call ptr @s2n_strerror_debug(i32 noundef %2327, ptr noundef @.str.4)
  %2329 = call ptr @__errno_location() #9
  %2330 = load i32, ptr %2329, align 4, !tbaa !5
  %2331 = call ptr @strerror(i32 noundef %2330) #8
  %2332 = call ptr @__errno_location() #9
  %2333 = load i32, ptr %2332, align 4, !tbaa !5
  %2334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2321, ptr noundef @.str.5, i32 noundef %2322, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 492, ptr noundef %2325, ptr noundef %2328, ptr noundef %2331, i32 noundef %2333) #8
  br label %2335

2335:                                             ; preds = %2318, %2301
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #8
  br label %2336

2336:                                             ; preds = %2335
  br label %2337

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

2338:                                             ; No predecessors!
  br label %2339

2339:                                             ; preds = %2338
  br label %2340

2340:                                             ; preds = %2339, %2278
  br label %2341

2341:                                             ; preds = %2340
  br label %2342

2342:                                             ; preds = %2341
  br label %2343

2343:                                             ; preds = %2342
  %2344 = load i32, ptr @test_count, align 4, !tbaa !5
  %2345 = add nsw i32 %2344, 1
  store i32 %2345, ptr @test_count, align 4, !tbaa !5
  %2346 = load ptr, ptr %6, align 8, !tbaa !9
  %2347 = call i32 @s2n_conn_get_current_message_type(ptr noundef %2346)
  %2348 = icmp eq i32 %2347, 7
  br i1 %2348, label %2402, label %2349

2349:                                             ; preds = %2343
  br label %2350

2350:                                             ; preds = %2349
  br label %2351

2351:                                             ; preds = %2350
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  %2352 = call ptr @__errno_location() #9
  %2353 = load i32, ptr %2352, align 4, !tbaa !5
  store i32 %2353, ptr %47, align 4, !tbaa !5
  %2354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2355 = call i32 @s2n_print_stacktrace(ptr noundef %2354)
  %2356 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2357 = trunc i8 %2356 to i1
  br i1 %2357, label %2358, label %2380

2358:                                             ; preds = %2351
  %2359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2360 = call i32 @fileno(ptr noundef %2359) #8
  %2361 = call i32 @isatty(i32 noundef %2360) #8
  %2362 = icmp ne i32 %2361, 0
  br i1 %2362, label %2363, label %2380

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

2380:                                             ; preds = %2358, %2351
  %2381 = load i32, ptr %47, align 4, !tbaa !5
  %2382 = call ptr @__errno_location() #9
  store i32 %2381, ptr %2382, align 4, !tbaa !5
  %2383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2384 = load i32, ptr @test_count, align 4, !tbaa !5
  %2385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2386 = load i32, ptr %2385, align 4, !tbaa !5
  %2387 = call ptr @s2n_strerror(i32 noundef %2386, ptr noundef @.str.4)
  %2388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2389 = load i32, ptr %2388, align 4, !tbaa !5
  %2390 = call ptr @s2n_strerror_debug(i32 noundef %2389, ptr noundef @.str.4)
  %2391 = call ptr @__errno_location() #9
  %2392 = load i32, ptr %2391, align 4, !tbaa !5
  %2393 = call ptr @strerror(i32 noundef %2392) #8
  %2394 = call ptr @__errno_location() #9
  %2395 = load i32, ptr %2394, align 4, !tbaa !5
  %2396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2383, ptr noundef @.str.5, i32 noundef %2384, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 495, ptr noundef %2387, ptr noundef %2390, ptr noundef %2393, i32 noundef %2395) #8
  br label %2397

2397:                                             ; preds = %2380, %2363
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  br label %2398

2398:                                             ; preds = %2397
  br label %2399

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

2400:                                             ; No predecessors!
  br label %2401

2401:                                             ; preds = %2400
  br label %2402

2402:                                             ; preds = %2401, %2343
  br label %2403

2403:                                             ; preds = %2402
  br label %2404

2404:                                             ; preds = %2403
  br label %2405

2405:                                             ; preds = %2404
  %2406 = load i32, ptr @test_count, align 4, !tbaa !5
  %2407 = add nsw i32 %2406, 1
  store i32 %2407, ptr @test_count, align 4, !tbaa !5
  %2408 = load i32, ptr %10, align 4, !tbaa !5
  %2409 = call i32 @waitpid(i32 noundef %2408, ptr noundef %9, i32 noundef 0)
  %2410 = load i32, ptr %10, align 4, !tbaa !5
  %2411 = icmp eq i32 %2409, %2410
  br i1 %2411, label %2465, label %2412

2412:                                             ; preds = %2405
  br label %2413

2413:                                             ; preds = %2412
  br label %2414

2414:                                             ; preds = %2413
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  %2415 = call ptr @__errno_location() #9
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  store i32 %2416, ptr %48, align 4, !tbaa !5
  %2417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2418 = call i32 @s2n_print_stacktrace(ptr noundef %2417)
  %2419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2420 = trunc i8 %2419 to i1
  br i1 %2420, label %2421, label %2443

2421:                                             ; preds = %2414
  %2422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2423 = call i32 @fileno(ptr noundef %2422) #8
  %2424 = call i32 @isatty(i32 noundef %2423) #8
  %2425 = icmp ne i32 %2424, 0
  br i1 %2425, label %2426, label %2443

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

2443:                                             ; preds = %2421, %2414
  %2444 = load i32, ptr %48, align 4, !tbaa !5
  %2445 = call ptr @__errno_location() #9
  store i32 %2444, ptr %2445, align 4, !tbaa !5
  %2446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2447 = load i32, ptr @test_count, align 4, !tbaa !5
  %2448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2449 = load i32, ptr %2448, align 4, !tbaa !5
  %2450 = call ptr @s2n_strerror(i32 noundef %2449, ptr noundef @.str.4)
  %2451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2452 = load i32, ptr %2451, align 4, !tbaa !5
  %2453 = call ptr @s2n_strerror_debug(i32 noundef %2452, ptr noundef @.str.4)
  %2454 = call ptr @__errno_location() #9
  %2455 = load i32, ptr %2454, align 4, !tbaa !5
  %2456 = call ptr @strerror(i32 noundef %2455) #8
  %2457 = call ptr @__errno_location() #9
  %2458 = load i32, ptr %2457, align 4, !tbaa !5
  %2459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2446, ptr noundef @.str.5, i32 noundef %2447, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 498, ptr noundef %2450, ptr noundef %2453, ptr noundef %2456, i32 noundef %2458) #8
  br label %2460

2460:                                             ; preds = %2443, %2426
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  br label %2461

2461:                                             ; preds = %2460
  br label %2462

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

2463:                                             ; No predecessors!
  br label %2464

2464:                                             ; preds = %2463
  br label %2465

2465:                                             ; preds = %2464, %2405
  br label %2466

2466:                                             ; preds = %2465
  br label %2467

2467:                                             ; preds = %2466
  br label %2468

2468:                                             ; preds = %2467
  %2469 = load i32, ptr @test_count, align 4, !tbaa !5
  %2470 = add nsw i32 %2469, 1
  store i32 %2470, ptr @test_count, align 4, !tbaa !5
  %2471 = load i32, ptr %9, align 4, !tbaa !5
  %2472 = icmp eq i32 %2471, 0
  br i1 %2472, label %2526, label %2473

2473:                                             ; preds = %2468
  br label %2474

2474:                                             ; preds = %2473
  br label %2475

2475:                                             ; preds = %2474
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #8
  %2476 = call ptr @__errno_location() #9
  %2477 = load i32, ptr %2476, align 4, !tbaa !5
  store i32 %2477, ptr %49, align 4, !tbaa !5
  %2478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2479 = call i32 @s2n_print_stacktrace(ptr noundef %2478)
  %2480 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2481 = trunc i8 %2480 to i1
  br i1 %2481, label %2482, label %2504

2482:                                             ; preds = %2475
  %2483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2484 = call i32 @fileno(ptr noundef %2483) #8
  %2485 = call i32 @isatty(i32 noundef %2484) #8
  %2486 = icmp ne i32 %2485, 0
  br i1 %2486, label %2487, label %2504

2487:                                             ; preds = %2482
  %2488 = load i32, ptr %49, align 4, !tbaa !5
  %2489 = call ptr @__errno_location() #9
  store i32 %2488, ptr %2489, align 4, !tbaa !5
  %2490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2491 = load i32, ptr @test_count, align 4, !tbaa !5
  %2492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2493 = load i32, ptr %2492, align 4, !tbaa !5
  %2494 = call ptr @s2n_strerror(i32 noundef %2493, ptr noundef @.str.4)
  %2495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2496 = load i32, ptr %2495, align 4, !tbaa !5
  %2497 = call ptr @s2n_strerror_debug(i32 noundef %2496, ptr noundef @.str.4)
  %2498 = call ptr @__errno_location() #9
  %2499 = load i32, ptr %2498, align 4, !tbaa !5
  %2500 = call ptr @strerror(i32 noundef %2499) #8
  %2501 = call ptr @__errno_location() #9
  %2502 = load i32, ptr %2501, align 4, !tbaa !5
  %2503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2490, ptr noundef @.str.2, i32 noundef %2491, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 499, ptr noundef %2494, ptr noundef %2497, ptr noundef %2500, i32 noundef %2502) #8
  br label %2521

2504:                                             ; preds = %2482, %2475
  %2505 = load i32, ptr %49, align 4, !tbaa !5
  %2506 = call ptr @__errno_location() #9
  store i32 %2505, ptr %2506, align 4, !tbaa !5
  %2507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2508 = load i32, ptr @test_count, align 4, !tbaa !5
  %2509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2510 = load i32, ptr %2509, align 4, !tbaa !5
  %2511 = call ptr @s2n_strerror(i32 noundef %2510, ptr noundef @.str.4)
  %2512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2513 = load i32, ptr %2512, align 4, !tbaa !5
  %2514 = call ptr @s2n_strerror_debug(i32 noundef %2513, ptr noundef @.str.4)
  %2515 = call ptr @__errno_location() #9
  %2516 = load i32, ptr %2515, align 4, !tbaa !5
  %2517 = call ptr @strerror(i32 noundef %2516) #8
  %2518 = call ptr @__errno_location() #9
  %2519 = load i32, ptr %2518, align 4, !tbaa !5
  %2520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2507, ptr noundef @.str.5, i32 noundef %2508, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 499, ptr noundef %2511, ptr noundef %2514, ptr noundef %2517, i32 noundef %2519) #8
  br label %2521

2521:                                             ; preds = %2504, %2487
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #8
  br label %2522

2522:                                             ; preds = %2521
  br label %2523

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

2524:                                             ; No predecessors!
  br label %2525

2525:                                             ; preds = %2524
  br label %2526

2526:                                             ; preds = %2525, %2468
  br label %2527

2527:                                             ; preds = %2526
  br label %2528

2528:                                             ; preds = %2527
  br label %2529

2529:                                             ; preds = %2528
  %2530 = load i32, ptr @test_count, align 4, !tbaa !5
  %2531 = add nsw i32 %2530, 1
  store i32 %2531, ptr @test_count, align 4, !tbaa !5
  %2532 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %2533 = load i32, ptr %2532, align 4, !tbaa !5
  %2534 = call i32 @close(i32 noundef %2533)
  %2535 = icmp eq i32 %2534, -1
  br i1 %2535, label %2536, label %2589

2536:                                             ; preds = %2529
  br label %2537

2537:                                             ; preds = %2536
  br label %2538

2538:                                             ; preds = %2537
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #8
  %2539 = call ptr @__errno_location() #9
  %2540 = load i32, ptr %2539, align 4, !tbaa !5
  store i32 %2540, ptr %50, align 4, !tbaa !5
  %2541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2542 = call i32 @s2n_print_stacktrace(ptr noundef %2541)
  %2543 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2544 = trunc i8 %2543 to i1
  br i1 %2544, label %2545, label %2567

2545:                                             ; preds = %2538
  %2546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2547 = call i32 @fileno(ptr noundef %2546) #8
  %2548 = call i32 @isatty(i32 noundef %2547) #8
  %2549 = icmp ne i32 %2548, 0
  br i1 %2549, label %2550, label %2567

2550:                                             ; preds = %2545
  %2551 = load i32, ptr %50, align 4, !tbaa !5
  %2552 = call ptr @__errno_location() #9
  store i32 %2551, ptr %2552, align 4, !tbaa !5
  %2553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2554 = load i32, ptr @test_count, align 4, !tbaa !5
  %2555 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2556 = load i32, ptr %2555, align 4, !tbaa !5
  %2557 = call ptr @s2n_strerror(i32 noundef %2556, ptr noundef @.str.4)
  %2558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2559 = load i32, ptr %2558, align 4, !tbaa !5
  %2560 = call ptr @s2n_strerror_debug(i32 noundef %2559, ptr noundef @.str.4)
  %2561 = call ptr @__errno_location() #9
  %2562 = load i32, ptr %2561, align 4, !tbaa !5
  %2563 = call ptr @strerror(i32 noundef %2562) #8
  %2564 = call ptr @__errno_location() #9
  %2565 = load i32, ptr %2564, align 4, !tbaa !5
  %2566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2553, ptr noundef @.str.2, i32 noundef %2554, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 500, ptr noundef %2557, ptr noundef %2560, ptr noundef %2563, i32 noundef %2565) #8
  br label %2584

2567:                                             ; preds = %2545, %2538
  %2568 = load i32, ptr %50, align 4, !tbaa !5
  %2569 = call ptr @__errno_location() #9
  store i32 %2568, ptr %2569, align 4, !tbaa !5
  %2570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2571 = load i32, ptr @test_count, align 4, !tbaa !5
  %2572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2573 = load i32, ptr %2572, align 4, !tbaa !5
  %2574 = call ptr @s2n_strerror(i32 noundef %2573, ptr noundef @.str.4)
  %2575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2576 = load i32, ptr %2575, align 4, !tbaa !5
  %2577 = call ptr @s2n_strerror_debug(i32 noundef %2576, ptr noundef @.str.4)
  %2578 = call ptr @__errno_location() #9
  %2579 = load i32, ptr %2578, align 4, !tbaa !5
  %2580 = call ptr @strerror(i32 noundef %2579) #8
  %2581 = call ptr @__errno_location() #9
  %2582 = load i32, ptr %2581, align 4, !tbaa !5
  %2583 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2570, ptr noundef @.str.5, i32 noundef %2571, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 500, ptr noundef %2574, ptr noundef %2577, ptr noundef %2580, i32 noundef %2582) #8
  br label %2584

2584:                                             ; preds = %2567, %2550
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #8
  br label %2585

2585:                                             ; preds = %2584
  br label %2586

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

2587:                                             ; No predecessors!
  br label %2588

2588:                                             ; preds = %2587
  br label %2589

2589:                                             ; preds = %2588, %2529
  br label %2590

2590:                                             ; preds = %2589
  br label %2591

2591:                                             ; preds = %2590
  br label %2592

2592:                                             ; preds = %2591
  %2593 = load i32, ptr @test_count, align 4, !tbaa !5
  %2594 = add nsw i32 %2593, 1
  store i32 %2594, ptr @test_count, align 4, !tbaa !5
  %2595 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %2596 = call i32 @pipe(ptr noundef %2595) #8
  %2597 = icmp eq i32 %2596, -1
  br i1 %2597, label %2598, label %2651

2598:                                             ; preds = %2592
  br label %2599

2599:                                             ; preds = %2598
  br label %2600

2600:                                             ; preds = %2599
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  %2601 = call ptr @__errno_location() #9
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  store i32 %2602, ptr %51, align 4, !tbaa !5
  %2603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2604 = call i32 @s2n_print_stacktrace(ptr noundef %2603)
  %2605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2606 = trunc i8 %2605 to i1
  br i1 %2606, label %2607, label %2629

2607:                                             ; preds = %2600
  %2608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2609 = call i32 @fileno(ptr noundef %2608) #8
  %2610 = call i32 @isatty(i32 noundef %2609) #8
  %2611 = icmp ne i32 %2610, 0
  br i1 %2611, label %2612, label %2629

2612:                                             ; preds = %2607
  %2613 = load i32, ptr %51, align 4, !tbaa !5
  %2614 = call ptr @__errno_location() #9
  store i32 %2613, ptr %2614, align 4, !tbaa !5
  %2615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2616 = load i32, ptr @test_count, align 4, !tbaa !5
  %2617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2618 = load i32, ptr %2617, align 4, !tbaa !5
  %2619 = call ptr @s2n_strerror(i32 noundef %2618, ptr noundef @.str.4)
  %2620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2621 = load i32, ptr %2620, align 4, !tbaa !5
  %2622 = call ptr @s2n_strerror_debug(i32 noundef %2621, ptr noundef @.str.4)
  %2623 = call ptr @__errno_location() #9
  %2624 = load i32, ptr %2623, align 4, !tbaa !5
  %2625 = call ptr @strerror(i32 noundef %2624) #8
  %2626 = call ptr @__errno_location() #9
  %2627 = load i32, ptr %2626, align 4, !tbaa !5
  %2628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2615, ptr noundef @.str.2, i32 noundef %2616, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 503, ptr noundef %2619, ptr noundef %2622, ptr noundef %2625, i32 noundef %2627) #8
  br label %2646

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

2646:                                             ; preds = %2629, %2612
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  br label %2647

2647:                                             ; preds = %2646
  br label %2648

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

2649:                                             ; No predecessors!
  br label %2650

2650:                                             ; preds = %2649
  br label %2651

2651:                                             ; preds = %2650, %2592
  br label %2652

2652:                                             ; preds = %2651
  br label %2653

2653:                                             ; preds = %2652
  br label %2654

2654:                                             ; preds = %2653
  %2655 = load i32, ptr @test_count, align 4, !tbaa !5
  %2656 = add nsw i32 %2655, 1
  store i32 %2656, ptr @test_count, align 4, !tbaa !5
  %2657 = load ptr, ptr %6, align 8, !tbaa !9
  %2658 = call i32 @s2n_connection_wipe(ptr noundef %2657)
  %2659 = icmp eq i32 %2658, -1
  br i1 %2659, label %2660, label %2713

2660:                                             ; preds = %2654
  br label %2661

2661:                                             ; preds = %2660
  br label %2662

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

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

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

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

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

2709:                                             ; preds = %2708
  br label %2710

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

2711:                                             ; No predecessors!
  br label %2712

2712:                                             ; preds = %2711
  br label %2713

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

2714:                                             ; preds = %2713
  br label %2715

2715:                                             ; preds = %2714
  %2716 = load ptr, ptr %6, align 8, !tbaa !9
  %2717 = getelementptr inbounds %struct.s2n_connection, ptr %2716, i32 0, i32 22
  store i8 33, ptr %2717, align 1, !tbaa !15
  %2718 = load ptr, ptr %6, align 8, !tbaa !9
  %2719 = getelementptr inbounds %struct.s2n_connection, ptr %2718, i32 0, i32 21
  store i8 33, ptr %2719, align 2, !tbaa !42
  %2720 = load ptr, ptr %6, align 8, !tbaa !9
  %2721 = getelementptr inbounds %struct.s2n_connection, ptr %2720, i32 0, i32 23
  store i8 33, ptr %2721, align 4, !tbaa !43
  br label %2722

2722:                                             ; preds = %2715
  %2723 = load i32, ptr @test_count, align 4, !tbaa !5
  %2724 = add nsw i32 %2723, 1
  store i32 %2724, ptr @test_count, align 4, !tbaa !5
  %2725 = load ptr, ptr %6, align 8, !tbaa !9
  %2726 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %2727 = load i32, ptr %2726, align 4, !tbaa !5
  %2728 = call i32 @s2n_connection_set_read_fd(ptr noundef %2725, i32 noundef %2727)
  %2729 = icmp eq i32 %2728, -1
  br i1 %2729, label %2730, label %2783

2730:                                             ; preds = %2722
  br label %2731

2731:                                             ; preds = %2730
  br label %2732

2732:                                             ; preds = %2731
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #8
  %2733 = call ptr @__errno_location() #9
  %2734 = load i32, ptr %2733, align 4, !tbaa !5
  store i32 %2734, ptr %53, align 4, !tbaa !5
  %2735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2736 = call i32 @s2n_print_stacktrace(ptr noundef %2735)
  %2737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2738 = trunc i8 %2737 to i1
  br i1 %2738, label %2739, label %2761

2739:                                             ; preds = %2732
  %2740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2741 = call i32 @fileno(ptr noundef %2740) #8
  %2742 = call i32 @isatty(i32 noundef %2741) #8
  %2743 = icmp ne i32 %2742, 0
  br i1 %2743, label %2744, label %2761

2744:                                             ; preds = %2739
  %2745 = load i32, ptr %53, align 4, !tbaa !5
  %2746 = call ptr @__errno_location() #9
  store i32 %2745, ptr %2746, align 4, !tbaa !5
  %2747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2748 = load i32, ptr @test_count, align 4, !tbaa !5
  %2749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2750 = load i32, ptr %2749, align 4, !tbaa !5
  %2751 = call ptr @s2n_strerror(i32 noundef %2750, ptr noundef @.str.4)
  %2752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2753 = load i32, ptr %2752, align 4, !tbaa !5
  %2754 = call ptr @s2n_strerror_debug(i32 noundef %2753, ptr noundef @.str.4)
  %2755 = call ptr @__errno_location() #9
  %2756 = load i32, ptr %2755, align 4, !tbaa !5
  %2757 = call ptr @strerror(i32 noundef %2756) #8
  %2758 = call ptr @__errno_location() #9
  %2759 = load i32, ptr %2758, align 4, !tbaa !5
  %2760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2747, ptr noundef @.str.2, i32 noundef %2748, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 512, ptr noundef %2751, ptr noundef %2754, ptr noundef %2757, i32 noundef %2759) #8
  br label %2778

2761:                                             ; preds = %2739, %2732
  %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.5, i32 noundef %2765, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 512, ptr noundef %2768, ptr noundef %2771, ptr noundef %2774, i32 noundef %2776) #8
  br label %2778

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

2779:                                             ; preds = %2778
  br label %2780

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

2781:                                             ; No predecessors!
  br label %2782

2782:                                             ; preds = %2781
  br label %2783

2783:                                             ; preds = %2782, %2722
  br label %2784

2784:                                             ; preds = %2783
  br label %2785

2785:                                             ; preds = %2784
  %2786 = load ptr, ptr %6, align 8, !tbaa !9
  %2787 = getelementptr inbounds %struct.s2n_connection, ptr %2786, i32 0, i32 52
  %2788 = getelementptr inbounds %struct.s2n_handshake, ptr %2787, i32 0, i32 6
  store i32 3, ptr %2788, align 4, !tbaa !44
  %2789 = load ptr, ptr %6, align 8, !tbaa !9
  %2790 = getelementptr inbounds %struct.s2n_connection, ptr %2789, i32 0, i32 52
  %2791 = getelementptr inbounds %struct.s2n_handshake, ptr %2790, i32 0, i32 7
  store i32 1, ptr %2791, align 8, !tbaa !45
  %2792 = call i32 @fork() #8
  store i32 %2792, ptr %10, align 4, !tbaa !5
  %2793 = load i32, ptr %10, align 4, !tbaa !5
  %2794 = icmp eq i32 %2793, 0
  br i1 %2794, label %2795, label %2985

2795:                                             ; preds = %2785
  br label %2796

2796:                                             ; preds = %2795
  %2797 = load i32, ptr @test_count, align 4, !tbaa !5
  %2798 = add nsw i32 %2797, 1
  store i32 %2798, ptr @test_count, align 4, !tbaa !5
  %2799 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %2800 = load i32, ptr %2799, align 4, !tbaa !5
  %2801 = call i32 @close(i32 noundef %2800)
  %2802 = icmp eq i32 %2801, -1
  br i1 %2802, label %2803, label %2856

2803:                                             ; preds = %2796
  br label %2804

2804:                                             ; preds = %2803
  br label %2805

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

2812:                                             ; preds = %2805
  %2813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2814 = call i32 @fileno(ptr noundef %2813) #8
  %2815 = call i32 @isatty(i32 noundef %2814) #8
  %2816 = icmp ne i32 %2815, 0
  br i1 %2816, label %2817, label %2834

2817:                                             ; preds = %2812
  %2818 = load i32, ptr %54, align 4, !tbaa !5
  %2819 = call ptr @__errno_location() #9
  store i32 %2818, ptr %2819, align 4, !tbaa !5
  %2820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2821 = load i32, ptr @test_count, align 4, !tbaa !5
  %2822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2823 = load i32, ptr %2822, align 4, !tbaa !5
  %2824 = call ptr @s2n_strerror(i32 noundef %2823, ptr noundef @.str.4)
  %2825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2826 = load i32, ptr %2825, align 4, !tbaa !5
  %2827 = call ptr @s2n_strerror_debug(i32 noundef %2826, ptr noundef @.str.4)
  %2828 = call ptr @__errno_location() #9
  %2829 = load i32, ptr %2828, align 4, !tbaa !5
  %2830 = call ptr @strerror(i32 noundef %2829) #8
  %2831 = call ptr @__errno_location() #9
  %2832 = load i32, ptr %2831, align 4, !tbaa !5
  %2833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2820, ptr noundef @.str.2, i32 noundef %2821, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 522, ptr noundef %2824, ptr noundef %2827, ptr noundef %2830, i32 noundef %2832) #8
  br label %2851

2834:                                             ; preds = %2812, %2805
  %2835 = load i32, ptr %54, align 4, !tbaa !5
  %2836 = call ptr @__errno_location() #9
  store i32 %2835, ptr %2836, align 4, !tbaa !5
  %2837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2838 = load i32, ptr @test_count, align 4, !tbaa !5
  %2839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2840 = load i32, ptr %2839, align 4, !tbaa !5
  %2841 = call ptr @s2n_strerror(i32 noundef %2840, ptr noundef @.str.4)
  %2842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2843 = load i32, ptr %2842, align 4, !tbaa !5
  %2844 = call ptr @s2n_strerror_debug(i32 noundef %2843, ptr noundef @.str.4)
  %2845 = call ptr @__errno_location() #9
  %2846 = load i32, ptr %2845, align 4, !tbaa !5
  %2847 = call ptr @strerror(i32 noundef %2846) #8
  %2848 = call ptr @__errno_location() #9
  %2849 = load i32, ptr %2848, align 4, !tbaa !5
  %2850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2837, ptr noundef @.str.5, i32 noundef %2838, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 522, ptr noundef %2841, ptr noundef %2844, ptr noundef %2847, i32 noundef %2849) #8
  br label %2851

2851:                                             ; preds = %2834, %2817
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  br label %2852

2852:                                             ; preds = %2851
  br label %2853

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

2854:                                             ; No predecessors!
  br label %2855

2855:                                             ; preds = %2854
  br label %2856

2856:                                             ; preds = %2855, %2796
  br label %2857

2857:                                             ; preds = %2856
  br label %2858

2858:                                             ; preds = %2857
  %2859 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 1
  %2860 = load i32, ptr %2859, align 4, !tbaa !5
  call void @interleaved_message(i32 noundef %2860)
  br label %2861

2861:                                             ; preds = %2858
  %2862 = load i32, ptr @test_count, align 4, !tbaa !5
  %2863 = add nsw i32 %2862, 1
  store i32 %2863, ptr @test_count, align 4, !tbaa !5
  %2864 = load ptr, ptr %6, align 8, !tbaa !9
  %2865 = call i32 @s2n_connection_free(ptr noundef %2864)
  %2866 = icmp eq i32 %2865, -1
  br i1 %2866, label %2867, label %2920

2867:                                             ; preds = %2861
  br label %2868

2868:                                             ; preds = %2867
  br label %2869

2869:                                             ; preds = %2868
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #8
  %2870 = call ptr @__errno_location() #9
  %2871 = load i32, ptr %2870, align 4, !tbaa !5
  store i32 %2871, ptr %55, align 4, !tbaa !5
  %2872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2873 = call i32 @s2n_print_stacktrace(ptr noundef %2872)
  %2874 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2875 = trunc i8 %2874 to i1
  br i1 %2875, label %2876, label %2898

2876:                                             ; preds = %2869
  %2877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2878 = call i32 @fileno(ptr noundef %2877) #8
  %2879 = call i32 @isatty(i32 noundef %2878) #8
  %2880 = icmp ne i32 %2879, 0
  br i1 %2880, label %2881, label %2898

2881:                                             ; preds = %2876
  %2882 = load i32, ptr %55, align 4, !tbaa !5
  %2883 = call ptr @__errno_location() #9
  store i32 %2882, ptr %2883, align 4, !tbaa !5
  %2884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2885 = load i32, ptr @test_count, align 4, !tbaa !5
  %2886 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2887 = load i32, ptr %2886, align 4, !tbaa !5
  %2888 = call ptr @s2n_strerror(i32 noundef %2887, ptr noundef @.str.4)
  %2889 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2890 = load i32, ptr %2889, align 4, !tbaa !5
  %2891 = call ptr @s2n_strerror_debug(i32 noundef %2890, ptr noundef @.str.4)
  %2892 = call ptr @__errno_location() #9
  %2893 = load i32, ptr %2892, align 4, !tbaa !5
  %2894 = call ptr @strerror(i32 noundef %2893) #8
  %2895 = call ptr @__errno_location() #9
  %2896 = load i32, ptr %2895, align 4, !tbaa !5
  %2897 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2884, ptr noundef @.str.2, i32 noundef %2885, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 526, ptr noundef %2888, ptr noundef %2891, ptr noundef %2894, i32 noundef %2896) #8
  br label %2915

2898:                                             ; preds = %2876, %2869
  %2899 = load i32, ptr %55, align 4, !tbaa !5
  %2900 = call ptr @__errno_location() #9
  store i32 %2899, ptr %2900, align 4, !tbaa !5
  %2901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2902 = load i32, ptr @test_count, align 4, !tbaa !5
  %2903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2904 = load i32, ptr %2903, align 4, !tbaa !5
  %2905 = call ptr @s2n_strerror(i32 noundef %2904, ptr noundef @.str.4)
  %2906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2907 = load i32, ptr %2906, align 4, !tbaa !5
  %2908 = call ptr @s2n_strerror_debug(i32 noundef %2907, ptr noundef @.str.4)
  %2909 = call ptr @__errno_location() #9
  %2910 = load i32, ptr %2909, align 4, !tbaa !5
  %2911 = call ptr @strerror(i32 noundef %2910) #8
  %2912 = call ptr @__errno_location() #9
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  %2914 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2901, ptr noundef @.str.5, i32 noundef %2902, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 526, ptr noundef %2905, ptr noundef %2908, ptr noundef %2911, i32 noundef %2913) #8
  br label %2915

2915:                                             ; preds = %2898, %2881
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #8
  br label %2916

2916:                                             ; preds = %2915
  br label %2917

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

2918:                                             ; No predecessors!
  br label %2919

2919:                                             ; preds = %2918
  br label %2920

2920:                                             ; preds = %2919, %2861
  br label %2921

2921:                                             ; preds = %2920
  br label %2922

2922:                                             ; preds = %2921
  br label %2923

2923:                                             ; preds = %2922
  %2924 = load i32, ptr @test_count, align 4, !tbaa !5
  %2925 = add nsw i32 %2924, 1
  store i32 %2925, ptr @test_count, align 4, !tbaa !5
  %2926 = load ptr, ptr %7, align 8, !tbaa !9
  %2927 = call i32 @s2n_config_free(ptr noundef %2926)
  %2928 = icmp eq i32 %2927, -1
  br i1 %2928, label %2929, label %2982

2929:                                             ; preds = %2923
  br label %2930

2930:                                             ; preds = %2929
  br label %2931

2931:                                             ; preds = %2930
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #8
  %2932 = call ptr @__errno_location() #9
  %2933 = load i32, ptr %2932, align 4, !tbaa !5
  store i32 %2933, ptr %56, align 4, !tbaa !5
  %2934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2935 = call i32 @s2n_print_stacktrace(ptr noundef %2934)
  %2936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2937 = trunc i8 %2936 to i1
  br i1 %2937, label %2938, label %2960

2938:                                             ; preds = %2931
  %2939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2940 = call i32 @fileno(ptr noundef %2939) #8
  %2941 = call i32 @isatty(i32 noundef %2940) #8
  %2942 = icmp ne i32 %2941, 0
  br i1 %2942, label %2943, label %2960

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

2960:                                             ; preds = %2938, %2931
  %2961 = load i32, ptr %56, align 4, !tbaa !5
  %2962 = call ptr @__errno_location() #9
  store i32 %2961, ptr %2962, align 4, !tbaa !5
  %2963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2964 = load i32, ptr @test_count, align 4, !tbaa !5
  %2965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2966 = load i32, ptr %2965, align 4, !tbaa !5
  %2967 = call ptr @s2n_strerror(i32 noundef %2966, ptr noundef @.str.4)
  %2968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2969 = load i32, ptr %2968, align 4, !tbaa !5
  %2970 = call ptr @s2n_strerror_debug(i32 noundef %2969, ptr noundef @.str.4)
  %2971 = call ptr @__errno_location() #9
  %2972 = load i32, ptr %2971, align 4, !tbaa !5
  %2973 = call ptr @strerror(i32 noundef %2972) #8
  %2974 = call ptr @__errno_location() #9
  %2975 = load i32, ptr %2974, align 4, !tbaa !5
  %2976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2963, ptr noundef @.str.5, i32 noundef %2964, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 527, ptr noundef %2967, ptr noundef %2970, ptr noundef %2973, i32 noundef %2975) #8
  br label %2977

2977:                                             ; preds = %2960, %2943
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  br label %2978

2978:                                             ; preds = %2977
  br label %2979

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

2980:                                             ; No predecessors!
  br label %2981

2981:                                             ; preds = %2980
  br label %2982

2982:                                             ; preds = %2981, %2923
  br label %2983

2983:                                             ; preds = %2982
  br label %2984

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

2985:                                             ; preds = %2785
  br label %2986

2986:                                             ; preds = %2985
  %2987 = load i32, ptr @test_count, align 4, !tbaa !5
  %2988 = add nsw i32 %2987, 1
  store i32 %2988, ptr @test_count, align 4, !tbaa !5
  %2989 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 1
  %2990 = load i32, ptr %2989, align 4, !tbaa !5
  %2991 = call i32 @close(i32 noundef %2990)
  %2992 = icmp eq i32 %2991, -1
  br i1 %2992, label %2993, label %3046

2993:                                             ; preds = %2986
  br label %2994

2994:                                             ; preds = %2993
  br label %2995

2995:                                             ; preds = %2994
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #8
  %2996 = call ptr @__errno_location() #9
  %2997 = load i32, ptr %2996, align 4, !tbaa !5
  store i32 %2997, ptr %57, align 4, !tbaa !5
  %2998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2999 = call i32 @s2n_print_stacktrace(ptr noundef %2998)
  %3000 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3001 = trunc i8 %3000 to i1
  br i1 %3001, label %3002, label %3024

3002:                                             ; preds = %2995
  %3003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3004 = call i32 @fileno(ptr noundef %3003) #8
  %3005 = call i32 @isatty(i32 noundef %3004) #8
  %3006 = icmp ne i32 %3005, 0
  br i1 %3006, label %3007, label %3024

3007:                                             ; preds = %3002
  %3008 = load i32, ptr %57, align 4, !tbaa !5
  %3009 = call ptr @__errno_location() #9
  store i32 %3008, ptr %3009, align 4, !tbaa !5
  %3010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3011 = load i32, ptr @test_count, align 4, !tbaa !5
  %3012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3013 = load i32, ptr %3012, align 4, !tbaa !5
  %3014 = call ptr @s2n_strerror(i32 noundef %3013, ptr noundef @.str.4)
  %3015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3016 = load i32, ptr %3015, align 4, !tbaa !5
  %3017 = call ptr @s2n_strerror_debug(i32 noundef %3016, ptr noundef @.str.4)
  %3018 = call ptr @__errno_location() #9
  %3019 = load i32, ptr %3018, align 4, !tbaa !5
  %3020 = call ptr @strerror(i32 noundef %3019) #8
  %3021 = call ptr @__errno_location() #9
  %3022 = load i32, ptr %3021, align 4, !tbaa !5
  %3023 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3010, ptr noundef @.str.2, i32 noundef %3011, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 532, ptr noundef %3014, ptr noundef %3017, ptr noundef %3020, i32 noundef %3022) #8
  br label %3041

3024:                                             ; preds = %3002, %2995
  %3025 = load i32, ptr %57, align 4, !tbaa !5
  %3026 = call ptr @__errno_location() #9
  store i32 %3025, ptr %3026, align 4, !tbaa !5
  %3027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3028 = load i32, ptr @test_count, align 4, !tbaa !5
  %3029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3030 = load i32, ptr %3029, align 4, !tbaa !5
  %3031 = call ptr @s2n_strerror(i32 noundef %3030, ptr noundef @.str.4)
  %3032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3033 = load i32, ptr %3032, align 4, !tbaa !5
  %3034 = call ptr @s2n_strerror_debug(i32 noundef %3033, ptr noundef @.str.4)
  %3035 = call ptr @__errno_location() #9
  %3036 = load i32, ptr %3035, align 4, !tbaa !5
  %3037 = call ptr @strerror(i32 noundef %3036) #8
  %3038 = call ptr @__errno_location() #9
  %3039 = load i32, ptr %3038, align 4, !tbaa !5
  %3040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3027, ptr noundef @.str.5, i32 noundef %3028, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 532, ptr noundef %3031, ptr noundef %3034, ptr noundef %3037, i32 noundef %3039) #8
  br label %3041

3041:                                             ; preds = %3024, %3007
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #8
  br label %3042

3042:                                             ; preds = %3041
  br label %3043

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

3044:                                             ; No predecessors!
  br label %3045

3045:                                             ; preds = %3044
  br label %3046

3046:                                             ; preds = %3045, %2986
  br label %3047

3047:                                             ; preds = %3046
  br label %3048

3048:                                             ; preds = %3047
  br label %3049

3049:                                             ; preds = %3048
  br label %3050

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

3056:                                             ; preds = %3050
  br label %3057

3057:                                             ; preds = %3056
  br label %3058

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

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

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

3087:                                             ; preds = %3065, %3058
  %3088 = load i32, ptr %58, align 4, !tbaa !5
  %3089 = call ptr @__errno_location() #9
  store i32 %3088, ptr %3089, align 4, !tbaa !5
  %3090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3091 = load i32, ptr @test_count, align 4, !tbaa !5
  %3092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3093 = load i32, ptr %3092, align 4, !tbaa !5
  %3094 = call ptr @s2n_strerror(i32 noundef %3093, ptr noundef @.str.4)
  %3095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3096 = load i32, ptr %3095, align 4, !tbaa !5
  %3097 = call ptr @s2n_strerror_debug(i32 noundef %3096, ptr noundef @.str.4)
  %3098 = call ptr @__errno_location() #9
  %3099 = load i32, ptr %3098, align 4, !tbaa !5
  %3100 = call ptr @strerror(i32 noundef %3099) #8
  %3101 = call ptr @__errno_location() #9
  %3102 = load i32, ptr %3101, align 4, !tbaa !5
  %3103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3090, ptr noundef @.str.5, i32 noundef %3091, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 535, ptr noundef %3094, ptr noundef %3097, ptr noundef %3100, i32 noundef %3102) #8
  br label %3104

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

3105:                                             ; preds = %3104
  br label %3106

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

3107:                                             ; No predecessors!
  br label %3108

3108:                                             ; preds = %3107
  br label %3109

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

3110:                                             ; preds = %3109
  br label %3111

3111:                                             ; preds = %3110
  br label %3112

3112:                                             ; preds = %3111
  %3113 = load i32, ptr @test_count, align 4, !tbaa !5
  %3114 = add nsw i32 %3113, 1
  store i32 %3114, ptr @test_count, align 4, !tbaa !5
  %3115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3116 = load i32, ptr %3115, align 4, !tbaa !5
  %3117 = icmp eq i32 %3116, 0
  br i1 %3117, label %3118, label %3171

3118:                                             ; preds = %3112
  br label %3119

3119:                                             ; preds = %3118
  br label %3120

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

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

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

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

3166:                                             ; preds = %3149, %3132
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #8
  br label %3167

3167:                                             ; preds = %3166
  br label %3168

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

3169:                                             ; No predecessors!
  br label %3170

3170:                                             ; preds = %3169
  br label %3171

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

3172:                                             ; preds = %3171
  br label %3173

3173:                                             ; preds = %3172
  br label %3174

3174:                                             ; preds = %3173
  %3175 = load i32, ptr @test_count, align 4, !tbaa !5
  %3176 = add nsw i32 %3175, 1
  store i32 %3176, 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_debug(i32 noundef %3178, ptr noundef @.str.4)
  %3180 = icmp eq ptr %3179, null
  br i1 %3180, label %3181, label %3234

3181:                                             ; preds = %3174
  br label %3182

3182:                                             ; preds = %3181
  br label %3183

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

3190:                                             ; preds = %3183
  %3191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3192 = call i32 @fileno(ptr noundef %3191) #8
  %3193 = call i32 @isatty(i32 noundef %3192) #8
  %3194 = icmp ne i32 %3193, 0
  br i1 %3194, label %3195, label %3212

3195:                                             ; preds = %3190
  %3196 = load i32, ptr %60, align 4, !tbaa !5
  %3197 = call ptr @__errno_location() #9
  store i32 %3196, ptr %3197, align 4, !tbaa !5
  %3198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3199 = load i32, 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 = call ptr @s2n_strerror(i32 noundef %3201, ptr noundef @.str.4)
  %3203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3204 = load i32, ptr %3203, align 4, !tbaa !5
  %3205 = call ptr @s2n_strerror_debug(i32 noundef %3204, ptr noundef @.str.4)
  %3206 = call ptr @__errno_location() #9
  %3207 = load i32, ptr %3206, align 4, !tbaa !5
  %3208 = call ptr @strerror(i32 noundef %3207) #8
  %3209 = call ptr @__errno_location() #9
  %3210 = load i32, ptr %3209, align 4, !tbaa !5
  %3211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3198, ptr noundef @.str.2, i32 noundef %3199, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 535, ptr noundef %3202, ptr noundef %3205, ptr noundef %3208, i32 noundef %3210) #8
  br label %3229

3212:                                             ; preds = %3190, %3183
  %3213 = load i32, ptr %60, align 4, !tbaa !5
  %3214 = call ptr @__errno_location() #9
  store i32 %3213, ptr %3214, align 4, !tbaa !5
  %3215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3216 = load i32, ptr @test_count, align 4, !tbaa !5
  %3217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3218 = load i32, ptr %3217, align 4, !tbaa !5
  %3219 = call ptr @s2n_strerror(i32 noundef %3218, ptr noundef @.str.4)
  %3220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3221 = load i32, ptr %3220, align 4, !tbaa !5
  %3222 = call ptr @s2n_strerror_debug(i32 noundef %3221, ptr noundef @.str.4)
  %3223 = call ptr @__errno_location() #9
  %3224 = load i32, ptr %3223, align 4, !tbaa !5
  %3225 = call ptr @strerror(i32 noundef %3224) #8
  %3226 = call ptr @__errno_location() #9
  %3227 = load i32, ptr %3226, align 4, !tbaa !5
  %3228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3215, ptr noundef @.str.5, i32 noundef %3216, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 535, ptr noundef %3219, ptr noundef %3222, ptr noundef %3225, i32 noundef %3227) #8
  br label %3229

3229:                                             ; preds = %3212, %3195
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #8
  br label %3230

3230:                                             ; preds = %3229
  br label %3231

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

3232:                                             ; No predecessors!
  br label %3233

3233:                                             ; preds = %3232
  br label %3234

3234:                                             ; preds = %3233, %3174
  br label %3235

3235:                                             ; preds = %3234
  br label %3236

3236:                                             ; preds = %3235
  br label %3237

3237:                                             ; preds = %3236
  %3238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3238, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3239 = call ptr @__errno_location() #9
  store i32 0, ptr %3239, align 4, !tbaa !5
  br label %3240

3240:                                             ; preds = %3237
  br label %3241

3241:                                             ; preds = %3240
  br label %3242

3242:                                             ; preds = %3241
  br label %3243

3243:                                             ; preds = %3242
  br label %3244

3244:                                             ; preds = %3243
  %3245 = load i32, ptr @test_count, align 4, !tbaa !5
  %3246 = add nsw i32 %3245, 1
  store i32 %3246, ptr @test_count, align 4, !tbaa !5
  %3247 = load ptr, ptr %6, align 8, !tbaa !9
  %3248 = getelementptr inbounds %struct.s2n_connection, ptr %3247, i32 0, i32 32
  %3249 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %3248, i32 0, i32 13
  %3250 = getelementptr inbounds [32 x i8], ptr %3249, i64 0, i64 0
  %3251 = call i32 @memcmp(ptr noundef %3250, ptr noundef @zero_to_thirty_one, i64 noundef 32) #11
  %3252 = icmp eq i32 %3251, 0
  br i1 %3252, label %3306, label %3253

3253:                                             ; preds = %3244
  br label %3254

3254:                                             ; preds = %3253
  br label %3255

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

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

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

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

3301:                                             ; preds = %3284, %3267
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #8
  br label %3302

3302:                                             ; preds = %3301
  br label %3303

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

3304:                                             ; No predecessors!
  br label %3305

3305:                                             ; preds = %3304
  br label %3306

3306:                                             ; preds = %3305, %3244
  br label %3307

3307:                                             ; preds = %3306
  br label %3308

3308:                                             ; preds = %3307
  br label %3309

3309:                                             ; preds = %3308
  %3310 = load i32, ptr @test_count, align 4, !tbaa !5
  %3311 = add nsw i32 %3310, 1
  store i32 %3311, ptr @test_count, align 4, !tbaa !5
  %3312 = load ptr, ptr %6, align 8, !tbaa !9
  %3313 = call i32 @s2n_conn_get_current_message_type(ptr noundef %3312)
  %3314 = icmp eq i32 %3313, 2
  br i1 %3314, label %3368, label %3315

3315:                                             ; preds = %3309
  br label %3316

3316:                                             ; preds = %3315
  br label %3317

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

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

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

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

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

3364:                                             ; preds = %3363
  br label %3365

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

3366:                                             ; No predecessors!
  br label %3367

3367:                                             ; preds = %3366
  br label %3368

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

3369:                                             ; preds = %3368
  br label %3370

3370:                                             ; preds = %3369
  br label %3371

3371:                                             ; preds = %3370
  %3372 = load i32, ptr @test_count, align 4, !tbaa !5
  %3373 = add nsw i32 %3372, 1
  store i32 %3373, ptr @test_count, align 4, !tbaa !5
  %3374 = load i32, ptr %10, align 4, !tbaa !5
  %3375 = call i32 @waitpid(i32 noundef %3374, ptr noundef %9, i32 noundef 0)
  %3376 = load i32, ptr %10, align 4, !tbaa !5
  %3377 = icmp eq i32 %3375, %3376
  br i1 %3377, label %3431, label %3378

3378:                                             ; preds = %3371
  br label %3379

3379:                                             ; preds = %3378
  br label %3380

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

3387:                                             ; preds = %3380
  %3388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3389 = call i32 @fileno(ptr noundef %3388) #8
  %3390 = call i32 @isatty(i32 noundef %3389) #8
  %3391 = icmp ne i32 %3390, 0
  br i1 %3391, label %3392, label %3409

3392:                                             ; preds = %3387
  %3393 = load i32, ptr %63, align 4, !tbaa !5
  %3394 = call ptr @__errno_location() #9
  store i32 %3393, ptr %3394, align 4, !tbaa !5
  %3395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3396 = load i32, ptr @test_count, align 4, !tbaa !5
  %3397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3398 = load i32, ptr %3397, align 4, !tbaa !5
  %3399 = call ptr @s2n_strerror(i32 noundef %3398, ptr noundef @.str.4)
  %3400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3401 = load i32, ptr %3400, align 4, !tbaa !5
  %3402 = call ptr @s2n_strerror_debug(i32 noundef %3401, ptr noundef @.str.4)
  %3403 = call ptr @__errno_location() #9
  %3404 = load i32, ptr %3403, align 4, !tbaa !5
  %3405 = call ptr @strerror(i32 noundef %3404) #8
  %3406 = call ptr @__errno_location() #9
  %3407 = load i32, ptr %3406, align 4, !tbaa !5
  %3408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3395, ptr noundef @.str.2, i32 noundef %3396, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 544, ptr noundef %3399, ptr noundef %3402, ptr noundef %3405, i32 noundef %3407) #8
  br label %3426

3409:                                             ; preds = %3387, %3380
  %3410 = load i32, ptr %63, align 4, !tbaa !5
  %3411 = call ptr @__errno_location() #9
  store i32 %3410, ptr %3411, align 4, !tbaa !5
  %3412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3413 = load i32, ptr @test_count, align 4, !tbaa !5
  %3414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3415 = load i32, ptr %3414, align 4, !tbaa !5
  %3416 = call ptr @s2n_strerror(i32 noundef %3415, ptr noundef @.str.4)
  %3417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3418 = load i32, ptr %3417, align 4, !tbaa !5
  %3419 = call ptr @s2n_strerror_debug(i32 noundef %3418, ptr noundef @.str.4)
  %3420 = call ptr @__errno_location() #9
  %3421 = load i32, ptr %3420, align 4, !tbaa !5
  %3422 = call ptr @strerror(i32 noundef %3421) #8
  %3423 = call ptr @__errno_location() #9
  %3424 = load i32, ptr %3423, align 4, !tbaa !5
  %3425 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3412, ptr noundef @.str.5, i32 noundef %3413, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 544, ptr noundef %3416, ptr noundef %3419, ptr noundef %3422, i32 noundef %3424) #8
  br label %3426

3426:                                             ; preds = %3409, %3392
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #8
  br label %3427

3427:                                             ; preds = %3426
  br label %3428

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

3429:                                             ; No predecessors!
  br label %3430

3430:                                             ; preds = %3429
  br label %3431

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

3432:                                             ; preds = %3431
  br label %3433

3433:                                             ; preds = %3432
  br label %3434

3434:                                             ; preds = %3433
  %3435 = load i32, ptr @test_count, align 4, !tbaa !5
  %3436 = add nsw i32 %3435, 1
  store i32 %3436, ptr @test_count, align 4, !tbaa !5
  %3437 = load i32, ptr %9, align 4, !tbaa !5
  %3438 = icmp eq i32 %3437, 0
  br i1 %3438, label %3492, label %3439

3439:                                             ; preds = %3434
  br label %3440

3440:                                             ; preds = %3439
  br label %3441

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

3448:                                             ; preds = %3441
  %3449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3450 = call i32 @fileno(ptr noundef %3449) #8
  %3451 = call i32 @isatty(i32 noundef %3450) #8
  %3452 = icmp ne i32 %3451, 0
  br i1 %3452, label %3453, label %3470

3453:                                             ; preds = %3448
  %3454 = load i32, ptr %64, align 4, !tbaa !5
  %3455 = call ptr @__errno_location() #9
  store i32 %3454, ptr %3455, align 4, !tbaa !5
  %3456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3457 = load i32, ptr @test_count, align 4, !tbaa !5
  %3458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3459 = load i32, ptr %3458, align 4, !tbaa !5
  %3460 = call ptr @s2n_strerror(i32 noundef %3459, ptr noundef @.str.4)
  %3461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3462 = load i32, ptr %3461, align 4, !tbaa !5
  %3463 = call ptr @s2n_strerror_debug(i32 noundef %3462, ptr noundef @.str.4)
  %3464 = call ptr @__errno_location() #9
  %3465 = load i32, ptr %3464, align 4, !tbaa !5
  %3466 = call ptr @strerror(i32 noundef %3465) #8
  %3467 = call ptr @__errno_location() #9
  %3468 = load i32, ptr %3467, align 4, !tbaa !5
  %3469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3456, ptr noundef @.str.2, i32 noundef %3457, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 545, ptr noundef %3460, ptr noundef %3463, ptr noundef %3466, i32 noundef %3468) #8
  br label %3487

3470:                                             ; preds = %3448, %3441
  %3471 = load i32, ptr %64, align 4, !tbaa !5
  %3472 = call ptr @__errno_location() #9
  store i32 %3471, ptr %3472, align 4, !tbaa !5
  %3473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3474 = load i32, ptr @test_count, align 4, !tbaa !5
  %3475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3476 = load i32, ptr %3475, align 4, !tbaa !5
  %3477 = call ptr @s2n_strerror(i32 noundef %3476, ptr noundef @.str.4)
  %3478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3479 = load i32, ptr %3478, align 4, !tbaa !5
  %3480 = call ptr @s2n_strerror_debug(i32 noundef %3479, ptr noundef @.str.4)
  %3481 = call ptr @__errno_location() #9
  %3482 = load i32, ptr %3481, align 4, !tbaa !5
  %3483 = call ptr @strerror(i32 noundef %3482) #8
  %3484 = call ptr @__errno_location() #9
  %3485 = load i32, ptr %3484, align 4, !tbaa !5
  %3486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3473, ptr noundef @.str.5, i32 noundef %3474, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 545, ptr noundef %3477, ptr noundef %3480, ptr noundef %3483, i32 noundef %3485) #8
  br label %3487

3487:                                             ; preds = %3470, %3453
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #8
  br label %3488

3488:                                             ; preds = %3487
  br label %3489

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

3490:                                             ; No predecessors!
  br label %3491

3491:                                             ; preds = %3490
  br label %3492

3492:                                             ; preds = %3491, %3434
  br label %3493

3493:                                             ; preds = %3492
  br label %3494

3494:                                             ; preds = %3493
  br label %3495

3495:                                             ; preds = %3494
  %3496 = load i32, ptr @test_count, align 4, !tbaa !5
  %3497 = add nsw i32 %3496, 1
  store i32 %3497, ptr @test_count, align 4, !tbaa !5
  %3498 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %3499 = load i32, ptr %3498, align 4, !tbaa !5
  %3500 = call i32 @close(i32 noundef %3499)
  %3501 = icmp eq i32 %3500, -1
  br i1 %3501, label %3502, label %3555

3502:                                             ; preds = %3495
  br label %3503

3503:                                             ; preds = %3502
  br label %3504

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

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

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

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

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

3551:                                             ; preds = %3550
  br label %3552

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

3553:                                             ; No predecessors!
  br label %3554

3554:                                             ; preds = %3553
  br label %3555

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

3556:                                             ; preds = %3555
  br label %3557

3557:                                             ; preds = %3556
  br label %3558

3558:                                             ; preds = %3557
  %3559 = load i32, ptr @test_count, align 4, !tbaa !5
  %3560 = add nsw i32 %3559, 1
  store i32 %3560, ptr @test_count, align 4, !tbaa !5
  %3561 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %3562 = call i32 @pipe(ptr noundef %3561) #8
  %3563 = icmp eq i32 %3562, -1
  br i1 %3563, label %3564, label %3617

3564:                                             ; preds = %3558
  br label %3565

3565:                                             ; preds = %3564
  br label %3566

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

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

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

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

3612:                                             ; preds = %3595, %3578
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #8
  br label %3613

3613:                                             ; preds = %3612
  br label %3614

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

3615:                                             ; No predecessors!
  br label %3616

3616:                                             ; preds = %3615
  br label %3617

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

3618:                                             ; preds = %3617
  br label %3619

3619:                                             ; preds = %3618
  br label %3620

3620:                                             ; preds = %3619
  %3621 = load i32, ptr @test_count, align 4, !tbaa !5
  %3622 = add nsw i32 %3621, 1
  store i32 %3622, ptr @test_count, align 4, !tbaa !5
  %3623 = load ptr, ptr %6, align 8, !tbaa !9
  %3624 = call i32 @s2n_connection_wipe(ptr noundef %3623)
  %3625 = icmp eq i32 %3624, -1
  br i1 %3625, label %3626, label %3679

3626:                                             ; preds = %3620
  br label %3627

3627:                                             ; preds = %3626
  br label %3628

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

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

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

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

3674:                                             ; preds = %3657, %3640
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #8
  br label %3675

3675:                                             ; preds = %3674
  br label %3676

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

3677:                                             ; No predecessors!
  br label %3678

3678:                                             ; preds = %3677
  br label %3679

3679:                                             ; preds = %3678, %3620
  br label %3680

3680:                                             ; preds = %3679
  br label %3681

3681:                                             ; preds = %3680
  %3682 = load ptr, ptr %6, align 8, !tbaa !9
  %3683 = getelementptr inbounds %struct.s2n_connection, ptr %3682, i32 0, i32 22
  store i8 33, ptr %3683, align 1, !tbaa !15
  %3684 = load ptr, ptr %6, align 8, !tbaa !9
  %3685 = getelementptr inbounds %struct.s2n_connection, ptr %3684, i32 0, i32 21
  store i8 33, ptr %3685, align 2, !tbaa !42
  %3686 = load ptr, ptr %6, align 8, !tbaa !9
  %3687 = getelementptr inbounds %struct.s2n_connection, ptr %3686, i32 0, i32 23
  store i8 33, ptr %3687, align 4, !tbaa !43
  br label %3688

3688:                                             ; preds = %3681
  %3689 = load i32, ptr @test_count, align 4, !tbaa !5
  %3690 = add nsw i32 %3689, 1
  store i32 %3690, ptr @test_count, align 4, !tbaa !5
  %3691 = load ptr, ptr %6, align 8, !tbaa !9
  %3692 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %3693 = load i32, ptr %3692, align 4, !tbaa !5
  %3694 = call i32 @s2n_connection_set_read_fd(ptr noundef %3691, i32 noundef %3693)
  %3695 = icmp eq i32 %3694, -1
  br i1 %3695, label %3696, label %3749

3696:                                             ; preds = %3688
  br label %3697

3697:                                             ; preds = %3696
  br label %3698

3698:                                             ; preds = %3697
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #8
  %3699 = call ptr @__errno_location() #9
  %3700 = load i32, ptr %3699, align 4, !tbaa !5
  store i32 %3700, ptr %68, align 4, !tbaa !5
  %3701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3702 = call i32 @s2n_print_stacktrace(ptr noundef %3701)
  %3703 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3704 = trunc i8 %3703 to i1
  br i1 %3704, label %3705, label %3727

3705:                                             ; preds = %3698
  %3706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3707 = call i32 @fileno(ptr noundef %3706) #8
  %3708 = call i32 @isatty(i32 noundef %3707) #8
  %3709 = icmp ne i32 %3708, 0
  br i1 %3709, label %3710, label %3727

3710:                                             ; preds = %3705
  %3711 = load i32, ptr %68, align 4, !tbaa !5
  %3712 = call ptr @__errno_location() #9
  store i32 %3711, ptr %3712, align 4, !tbaa !5
  %3713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3714 = load i32, ptr @test_count, align 4, !tbaa !5
  %3715 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3716 = load i32, ptr %3715, align 4, !tbaa !5
  %3717 = call ptr @s2n_strerror(i32 noundef %3716, ptr noundef @.str.4)
  %3718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3719 = load i32, ptr %3718, align 4, !tbaa !5
  %3720 = call ptr @s2n_strerror_debug(i32 noundef %3719, ptr noundef @.str.4)
  %3721 = call ptr @__errno_location() #9
  %3722 = load i32, ptr %3721, align 4, !tbaa !5
  %3723 = call ptr @strerror(i32 noundef %3722) #8
  %3724 = call ptr @__errno_location() #9
  %3725 = load i32, ptr %3724, align 4, !tbaa !5
  %3726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3713, ptr noundef @.str.2, i32 noundef %3714, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 558, ptr noundef %3717, ptr noundef %3720, ptr noundef %3723, i32 noundef %3725) #8
  br label %3744

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

3744:                                             ; preds = %3727, %3710
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #8
  br label %3745

3745:                                             ; preds = %3744
  br label %3746

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

3747:                                             ; No predecessors!
  br label %3748

3748:                                             ; preds = %3747
  br label %3749

3749:                                             ; preds = %3748, %3688
  br label %3750

3750:                                             ; preds = %3749
  br label %3751

3751:                                             ; preds = %3750
  %3752 = load ptr, ptr %6, align 8, !tbaa !9
  %3753 = getelementptr inbounds %struct.s2n_connection, ptr %3752, i32 0, i32 52
  %3754 = getelementptr inbounds %struct.s2n_handshake, ptr %3753, i32 0, i32 6
  store i32 3, ptr %3754, align 4, !tbaa !44
  %3755 = load ptr, ptr %6, align 8, !tbaa !9
  %3756 = getelementptr inbounds %struct.s2n_connection, ptr %3755, i32 0, i32 52
  %3757 = getelementptr inbounds %struct.s2n_handshake, ptr %3756, i32 0, i32 7
  store i32 1, ptr %3757, align 8, !tbaa !45
  %3758 = call i32 @fork() #8
  store i32 %3758, ptr %10, align 4, !tbaa !5
  %3759 = load i32, ptr %10, align 4, !tbaa !5
  %3760 = icmp eq i32 %3759, 0
  br i1 %3760, label %3761, label %3951

3761:                                             ; preds = %3751
  br label %3762

3762:                                             ; preds = %3761
  %3763 = load i32, ptr @test_count, align 4, !tbaa !5
  %3764 = add nsw i32 %3763, 1
  store i32 %3764, ptr @test_count, align 4, !tbaa !5
  %3765 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %3766 = load i32, ptr %3765, align 4, !tbaa !5
  %3767 = call i32 @close(i32 noundef %3766)
  %3768 = icmp eq i32 %3767, -1
  br i1 %3768, label %3769, label %3822

3769:                                             ; preds = %3762
  br label %3770

3770:                                             ; preds = %3769
  br label %3771

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

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

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

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

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

3818:                                             ; preds = %3817
  br label %3819

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

3820:                                             ; No predecessors!
  br label %3821

3821:                                             ; preds = %3820
  br label %3822

3822:                                             ; preds = %3821, %3762
  br label %3823

3823:                                             ; preds = %3822
  br label %3824

3824:                                             ; preds = %3823
  %3825 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 1
  %3826 = load i32, ptr %3825, align 4, !tbaa !5
  call void @interleaved_fragmented_warning_alert(i32 noundef %3826)
  br label %3827

3827:                                             ; preds = %3824
  %3828 = load i32, ptr @test_count, align 4, !tbaa !5
  %3829 = add nsw i32 %3828, 1
  store i32 %3829, ptr @test_count, align 4, !tbaa !5
  %3830 = load ptr, ptr %6, align 8, !tbaa !9
  %3831 = call i32 @s2n_connection_free(ptr noundef %3830)
  %3832 = icmp eq i32 %3831, -1
  br i1 %3832, label %3833, label %3886

3833:                                             ; preds = %3827
  br label %3834

3834:                                             ; preds = %3833
  br label %3835

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

3842:                                             ; preds = %3835
  %3843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3844 = call i32 @fileno(ptr noundef %3843) #8
  %3845 = call i32 @isatty(i32 noundef %3844) #8
  %3846 = icmp ne i32 %3845, 0
  br i1 %3846, label %3847, label %3864

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

3864:                                             ; preds = %3842, %3835
  %3865 = load i32, ptr %70, align 4, !tbaa !5
  %3866 = call ptr @__errno_location() #9
  store i32 %3865, ptr %3866, align 4, !tbaa !5
  %3867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3868 = load i32, ptr @test_count, align 4, !tbaa !5
  %3869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3870 = load i32, ptr %3869, align 4, !tbaa !5
  %3871 = call ptr @s2n_strerror(i32 noundef %3870, ptr noundef @.str.4)
  %3872 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3873 = load i32, ptr %3872, align 4, !tbaa !5
  %3874 = call ptr @s2n_strerror_debug(i32 noundef %3873, ptr noundef @.str.4)
  %3875 = call ptr @__errno_location() #9
  %3876 = load i32, ptr %3875, align 4, !tbaa !5
  %3877 = call ptr @strerror(i32 noundef %3876) #8
  %3878 = call ptr @__errno_location() #9
  %3879 = load i32, ptr %3878, align 4, !tbaa !5
  %3880 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3867, ptr noundef @.str.5, i32 noundef %3868, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 572, ptr noundef %3871, ptr noundef %3874, ptr noundef %3877, i32 noundef %3879) #8
  br label %3881

3881:                                             ; preds = %3864, %3847
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #8
  br label %3882

3882:                                             ; preds = %3881
  br label %3883

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

3884:                                             ; No predecessors!
  br label %3885

3885:                                             ; preds = %3884
  br label %3886

3886:                                             ; preds = %3885, %3827
  br label %3887

3887:                                             ; preds = %3886
  br label %3888

3888:                                             ; preds = %3887
  br label %3889

3889:                                             ; preds = %3888
  %3890 = load i32, ptr @test_count, align 4, !tbaa !5
  %3891 = add nsw i32 %3890, 1
  store i32 %3891, ptr @test_count, align 4, !tbaa !5
  %3892 = load ptr, ptr %7, align 8, !tbaa !9
  %3893 = call i32 @s2n_config_free(ptr noundef %3892)
  %3894 = icmp eq i32 %3893, -1
  br i1 %3894, label %3895, label %3948

3895:                                             ; preds = %3889
  br label %3896

3896:                                             ; preds = %3895
  br label %3897

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

3904:                                             ; preds = %3897
  %3905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3906 = call i32 @fileno(ptr noundef %3905) #8
  %3907 = call i32 @isatty(i32 noundef %3906) #8
  %3908 = icmp ne i32 %3907, 0
  br i1 %3908, label %3909, label %3926

3909:                                             ; preds = %3904
  %3910 = load i32, ptr %71, align 4, !tbaa !5
  %3911 = call ptr @__errno_location() #9
  store i32 %3910, ptr %3911, align 4, !tbaa !5
  %3912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3913 = load i32, ptr @test_count, align 4, !tbaa !5
  %3914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3915 = load i32, ptr %3914, align 4, !tbaa !5
  %3916 = call ptr @s2n_strerror(i32 noundef %3915, ptr noundef @.str.4)
  %3917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3918 = load i32, ptr %3917, align 4, !tbaa !5
  %3919 = call ptr @s2n_strerror_debug(i32 noundef %3918, ptr noundef @.str.4)
  %3920 = call ptr @__errno_location() #9
  %3921 = load i32, ptr %3920, align 4, !tbaa !5
  %3922 = call ptr @strerror(i32 noundef %3921) #8
  %3923 = call ptr @__errno_location() #9
  %3924 = load i32, ptr %3923, align 4, !tbaa !5
  %3925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3912, ptr noundef @.str.2, i32 noundef %3913, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 573, ptr noundef %3916, ptr noundef %3919, ptr noundef %3922, i32 noundef %3924) #8
  br label %3943

3926:                                             ; preds = %3904, %3897
  %3927 = load i32, ptr %71, align 4, !tbaa !5
  %3928 = call ptr @__errno_location() #9
  store i32 %3927, ptr %3928, align 4, !tbaa !5
  %3929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3930 = load i32, ptr @test_count, align 4, !tbaa !5
  %3931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3932 = load i32, ptr %3931, align 4, !tbaa !5
  %3933 = call ptr @s2n_strerror(i32 noundef %3932, ptr noundef @.str.4)
  %3934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3935 = load i32, ptr %3934, align 4, !tbaa !5
  %3936 = call ptr @s2n_strerror_debug(i32 noundef %3935, ptr noundef @.str.4)
  %3937 = call ptr @__errno_location() #9
  %3938 = load i32, ptr %3937, align 4, !tbaa !5
  %3939 = call ptr @strerror(i32 noundef %3938) #8
  %3940 = call ptr @__errno_location() #9
  %3941 = load i32, ptr %3940, align 4, !tbaa !5
  %3942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3929, ptr noundef @.str.5, i32 noundef %3930, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 573, ptr noundef %3933, ptr noundef %3936, ptr noundef %3939, i32 noundef %3941) #8
  br label %3943

3943:                                             ; preds = %3926, %3909
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #8
  br label %3944

3944:                                             ; preds = %3943
  br label %3945

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

3946:                                             ; No predecessors!
  br label %3947

3947:                                             ; preds = %3946
  br label %3948

3948:                                             ; preds = %3947, %3889
  br label %3949

3949:                                             ; preds = %3948
  br label %3950

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

3951:                                             ; preds = %3751
  br label %3952

3952:                                             ; preds = %3951
  %3953 = load i32, ptr @test_count, align 4, !tbaa !5
  %3954 = add nsw i32 %3953, 1
  store i32 %3954, ptr @test_count, align 4, !tbaa !5
  %3955 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 1
  %3956 = load i32, ptr %3955, align 4, !tbaa !5
  %3957 = call i32 @close(i32 noundef %3956)
  %3958 = icmp eq i32 %3957, -1
  br i1 %3958, label %3959, label %4012

3959:                                             ; preds = %3952
  br label %3960

3960:                                             ; preds = %3959
  br label %3961

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

3968:                                             ; preds = %3961
  %3969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3970 = call i32 @fileno(ptr noundef %3969) #8
  %3971 = call i32 @isatty(i32 noundef %3970) #8
  %3972 = icmp ne i32 %3971, 0
  br i1 %3972, label %3973, label %3990

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

3990:                                             ; preds = %3968, %3961
  %3991 = load i32, ptr %72, align 4, !tbaa !5
  %3992 = call ptr @__errno_location() #9
  store i32 %3991, ptr %3992, align 4, !tbaa !5
  %3993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3994 = load i32, ptr @test_count, align 4, !tbaa !5
  %3995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3996 = load i32, ptr %3995, align 4, !tbaa !5
  %3997 = call ptr @s2n_strerror(i32 noundef %3996, ptr noundef @.str.4)
  %3998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3999 = load i32, ptr %3998, align 4, !tbaa !5
  %4000 = call ptr @s2n_strerror_debug(i32 noundef %3999, ptr noundef @.str.4)
  %4001 = call ptr @__errno_location() #9
  %4002 = load i32, ptr %4001, align 4, !tbaa !5
  %4003 = call ptr @strerror(i32 noundef %4002) #8
  %4004 = call ptr @__errno_location() #9
  %4005 = load i32, ptr %4004, align 4, !tbaa !5
  %4006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3993, ptr noundef @.str.5, i32 noundef %3994, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 578, ptr noundef %3997, ptr noundef %4000, ptr noundef %4003, i32 noundef %4005) #8
  br label %4007

4007:                                             ; preds = %3990, %3973
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #8
  br label %4008

4008:                                             ; preds = %4007
  br label %4009

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

4010:                                             ; No predecessors!
  br label %4011

4011:                                             ; preds = %4010
  br label %4012

4012:                                             ; preds = %4011, %3952
  br label %4013

4013:                                             ; preds = %4012
  br label %4014

4014:                                             ; preds = %4013
  br label %4015

4015:                                             ; preds = %4014
  br label %4016

4016:                                             ; preds = %4015
  %4017 = load i32, ptr @test_count, align 4, !tbaa !5
  %4018 = add nsw i32 %4017, 1
  store i32 %4018, ptr @test_count, align 4, !tbaa !5
  %4019 = load ptr, ptr %6, align 8, !tbaa !9
  %4020 = call i32 @s2n_negotiate(ptr noundef %4019, ptr noundef %8)
  %4021 = icmp eq i32 %4020, -1
  br i1 %4021, label %4075, label %4022

4022:                                             ; preds = %4016
  br label %4023

4023:                                             ; preds = %4022
  br label %4024

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

4031:                                             ; preds = %4024
  %4032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4033 = call i32 @fileno(ptr noundef %4032) #8
  %4034 = call i32 @isatty(i32 noundef %4033) #8
  %4035 = icmp ne i32 %4034, 0
  br i1 %4035, label %4036, label %4053

4036:                                             ; preds = %4031
  %4037 = load i32, ptr %73, align 4, !tbaa !5
  %4038 = call ptr @__errno_location() #9
  store i32 %4037, ptr %4038, align 4, !tbaa !5
  %4039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4040 = load i32, ptr @test_count, align 4, !tbaa !5
  %4041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4042 = load i32, ptr %4041, align 4, !tbaa !5
  %4043 = call ptr @s2n_strerror(i32 noundef %4042, ptr noundef @.str.4)
  %4044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4045 = load i32, ptr %4044, align 4, !tbaa !5
  %4046 = call ptr @s2n_strerror_debug(i32 noundef %4045, ptr noundef @.str.4)
  %4047 = call ptr @__errno_location() #9
  %4048 = load i32, ptr %4047, align 4, !tbaa !5
  %4049 = call ptr @strerror(i32 noundef %4048) #8
  %4050 = call ptr @__errno_location() #9
  %4051 = load i32, ptr %4050, align 4, !tbaa !5
  %4052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4039, ptr noundef @.str.2, i32 noundef %4040, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 581, ptr noundef %4043, ptr noundef %4046, ptr noundef %4049, i32 noundef %4051) #8
  br label %4070

4053:                                             ; preds = %4031, %4024
  %4054 = load i32, ptr %73, align 4, !tbaa !5
  %4055 = call ptr @__errno_location() #9
  store i32 %4054, ptr %4055, align 4, !tbaa !5
  %4056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4057 = load i32, ptr @test_count, align 4, !tbaa !5
  %4058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4059 = load i32, ptr %4058, align 4, !tbaa !5
  %4060 = call ptr @s2n_strerror(i32 noundef %4059, ptr noundef @.str.4)
  %4061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4062 = load i32, ptr %4061, align 4, !tbaa !5
  %4063 = call ptr @s2n_strerror_debug(i32 noundef %4062, ptr noundef @.str.4)
  %4064 = call ptr @__errno_location() #9
  %4065 = load i32, ptr %4064, align 4, !tbaa !5
  %4066 = call ptr @strerror(i32 noundef %4065) #8
  %4067 = call ptr @__errno_location() #9
  %4068 = load i32, ptr %4067, align 4, !tbaa !5
  %4069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4056, ptr noundef @.str.5, i32 noundef %4057, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 581, ptr noundef %4060, ptr noundef %4063, ptr noundef %4066, i32 noundef %4068) #8
  br label %4070

4070:                                             ; preds = %4053, %4036
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #8
  br label %4071

4071:                                             ; preds = %4070
  br label %4072

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

4073:                                             ; No predecessors!
  br label %4074

4074:                                             ; preds = %4073
  br label %4075

4075:                                             ; preds = %4074, %4016
  br label %4076

4076:                                             ; preds = %4075
  br label %4077

4077:                                             ; preds = %4076
  br label %4078

4078:                                             ; preds = %4077
  %4079 = load i32, ptr @test_count, align 4, !tbaa !5
  %4080 = add nsw i32 %4079, 1
  store i32 %4080, ptr @test_count, align 4, !tbaa !5
  %4081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4082 = load i32, ptr %4081, align 4, !tbaa !5
  %4083 = icmp eq i32 %4082, 0
  br i1 %4083, label %4084, label %4137

4084:                                             ; preds = %4078
  br label %4085

4085:                                             ; preds = %4084
  br label %4086

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

4093:                                             ; preds = %4086
  %4094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4095 = call i32 @fileno(ptr noundef %4094) #8
  %4096 = call i32 @isatty(i32 noundef %4095) #8
  %4097 = icmp ne i32 %4096, 0
  br i1 %4097, label %4098, label %4115

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

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

4132:                                             ; preds = %4115, %4098
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #8
  br label %4133

4133:                                             ; preds = %4132
  br label %4134

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

4135:                                             ; No predecessors!
  br label %4136

4136:                                             ; preds = %4135
  br label %4137

4137:                                             ; preds = %4136, %4078
  br label %4138

4138:                                             ; preds = %4137
  br label %4139

4139:                                             ; preds = %4138
  br label %4140

4140:                                             ; preds = %4139
  %4141 = load i32, ptr @test_count, align 4, !tbaa !5
  %4142 = add nsw i32 %4141, 1
  store i32 %4142, ptr @test_count, align 4, !tbaa !5
  %4143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4144 = load i32, ptr %4143, align 4, !tbaa !5
  %4145 = call ptr @s2n_strerror_debug(i32 noundef %4144, ptr noundef @.str.4)
  %4146 = icmp eq ptr %4145, null
  br i1 %4146, label %4147, label %4200

4147:                                             ; preds = %4140
  br label %4148

4148:                                             ; preds = %4147
  br label %4149

4149:                                             ; preds = %4148
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #8
  %4150 = call ptr @__errno_location() #9
  %4151 = load i32, ptr %4150, align 4, !tbaa !5
  store i32 %4151, ptr %75, align 4, !tbaa !5
  %4152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4153 = call i32 @s2n_print_stacktrace(ptr noundef %4152)
  %4154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4155 = trunc i8 %4154 to i1
  br i1 %4155, label %4156, label %4178

4156:                                             ; preds = %4149
  %4157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4158 = call i32 @fileno(ptr noundef %4157) #8
  %4159 = call i32 @isatty(i32 noundef %4158) #8
  %4160 = icmp ne i32 %4159, 0
  br i1 %4160, label %4161, label %4178

4161:                                             ; preds = %4156
  %4162 = load i32, ptr %75, align 4, !tbaa !5
  %4163 = call ptr @__errno_location() #9
  store i32 %4162, ptr %4163, align 4, !tbaa !5
  %4164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4165 = load i32, ptr @test_count, align 4, !tbaa !5
  %4166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4167 = load i32, ptr %4166, align 4, !tbaa !5
  %4168 = call ptr @s2n_strerror(i32 noundef %4167, ptr noundef @.str.4)
  %4169 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4170 = load i32, ptr %4169, align 4, !tbaa !5
  %4171 = call ptr @s2n_strerror_debug(i32 noundef %4170, ptr noundef @.str.4)
  %4172 = call ptr @__errno_location() #9
  %4173 = load i32, ptr %4172, align 4, !tbaa !5
  %4174 = call ptr @strerror(i32 noundef %4173) #8
  %4175 = call ptr @__errno_location() #9
  %4176 = load i32, ptr %4175, align 4, !tbaa !5
  %4177 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4164, ptr noundef @.str.2, i32 noundef %4165, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 581, ptr noundef %4168, ptr noundef %4171, ptr noundef %4174, i32 noundef %4176) #8
  br label %4195

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

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

4196:                                             ; preds = %4195
  br label %4197

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

4198:                                             ; No predecessors!
  br label %4199

4199:                                             ; preds = %4198
  br label %4200

4200:                                             ; preds = %4199, %4140
  br label %4201

4201:                                             ; preds = %4200
  br label %4202

4202:                                             ; preds = %4201
  br label %4203

4203:                                             ; preds = %4202
  %4204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4204, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4205 = call ptr @__errno_location() #9
  store i32 0, ptr %4205, align 4, !tbaa !5
  br label %4206

4206:                                             ; preds = %4203
  br label %4207

4207:                                             ; preds = %4206
  br label %4208

4208:                                             ; preds = %4207
  br label %4209

4209:                                             ; preds = %4208
  br label %4210

4210:                                             ; preds = %4209
  %4211 = load i32, ptr @test_count, align 4, !tbaa !5
  %4212 = add nsw i32 %4211, 1
  store i32 %4212, ptr @test_count, align 4, !tbaa !5
  %4213 = load ptr, ptr %6, align 8, !tbaa !9
  %4214 = getelementptr inbounds %struct.s2n_connection, ptr %4213, i32 0, i32 32
  %4215 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %4214, i32 0, i32 13
  %4216 = getelementptr inbounds [32 x i8], ptr %4215, i64 0, i64 0
  %4217 = call i32 @memcmp(ptr noundef %4216, ptr noundef @zero_to_thirty_one, i64 noundef 32) #11
  %4218 = icmp eq i32 %4217, 0
  br i1 %4218, label %4219, label %4272

4219:                                             ; preds = %4210
  br label %4220

4220:                                             ; preds = %4219
  br label %4221

4221:                                             ; preds = %4220
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #8
  %4222 = call ptr @__errno_location() #9
  %4223 = load i32, ptr %4222, align 4, !tbaa !5
  store i32 %4223, ptr %76, align 4, !tbaa !5
  %4224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4225 = call i32 @s2n_print_stacktrace(ptr noundef %4224)
  %4226 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4227 = trunc i8 %4226 to i1
  br i1 %4227, label %4228, label %4250

4228:                                             ; preds = %4221
  %4229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4230 = call i32 @fileno(ptr noundef %4229) #8
  %4231 = call i32 @isatty(i32 noundef %4230) #8
  %4232 = icmp ne i32 %4231, 0
  br i1 %4232, label %4233, label %4250

4233:                                             ; preds = %4228
  %4234 = load i32, ptr %76, align 4, !tbaa !5
  %4235 = call ptr @__errno_location() #9
  store i32 %4234, ptr %4235, align 4, !tbaa !5
  %4236 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4237 = load i32, ptr @test_count, align 4, !tbaa !5
  %4238 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4239 = load i32, ptr %4238, align 4, !tbaa !5
  %4240 = call ptr @s2n_strerror(i32 noundef %4239, ptr noundef @.str.4)
  %4241 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4242 = load i32, ptr %4241, align 4, !tbaa !5
  %4243 = call ptr @s2n_strerror_debug(i32 noundef %4242, ptr noundef @.str.4)
  %4244 = call ptr @__errno_location() #9
  %4245 = load i32, ptr %4244, align 4, !tbaa !5
  %4246 = call ptr @strerror(i32 noundef %4245) #8
  %4247 = call ptr @__errno_location() #9
  %4248 = load i32, ptr %4247, align 4, !tbaa !5
  %4249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4236, ptr noundef @.str.2, i32 noundef %4237, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 584, ptr noundef %4240, ptr noundef %4243, ptr noundef %4246, i32 noundef %4248) #8
  br label %4267

4250:                                             ; preds = %4228, %4221
  %4251 = load i32, ptr %76, align 4, !tbaa !5
  %4252 = call ptr @__errno_location() #9
  store i32 %4251, ptr %4252, align 4, !tbaa !5
  %4253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4254 = load i32, ptr @test_count, align 4, !tbaa !5
  %4255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4256 = load i32, ptr %4255, align 4, !tbaa !5
  %4257 = call ptr @s2n_strerror(i32 noundef %4256, ptr noundef @.str.4)
  %4258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4259 = load i32, ptr %4258, align 4, !tbaa !5
  %4260 = call ptr @s2n_strerror_debug(i32 noundef %4259, ptr noundef @.str.4)
  %4261 = call ptr @__errno_location() #9
  %4262 = load i32, ptr %4261, align 4, !tbaa !5
  %4263 = call ptr @strerror(i32 noundef %4262) #8
  %4264 = call ptr @__errno_location() #9
  %4265 = load i32, ptr %4264, align 4, !tbaa !5
  %4266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4253, ptr noundef @.str.5, i32 noundef %4254, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 584, ptr noundef %4257, ptr noundef %4260, ptr noundef %4263, i32 noundef %4265) #8
  br label %4267

4267:                                             ; preds = %4250, %4233
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #8
  br label %4268

4268:                                             ; preds = %4267
  br label %4269

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

4270:                                             ; No predecessors!
  br label %4271

4271:                                             ; preds = %4270
  br label %4272

4272:                                             ; preds = %4271, %4210
  br label %4273

4273:                                             ; preds = %4272
  br label %4274

4274:                                             ; preds = %4273
  br label %4275

4275:                                             ; preds = %4274
  %4276 = load i32, ptr @test_count, align 4, !tbaa !5
  %4277 = add nsw i32 %4276, 1
  store i32 %4277, ptr @test_count, align 4, !tbaa !5
  %4278 = load ptr, ptr %6, align 8, !tbaa !9
  %4279 = call i32 @s2n_conn_get_current_message_type(ptr noundef %4278)
  %4280 = icmp eq i32 %4279, 1
  br i1 %4280, label %4334, label %4281

4281:                                             ; preds = %4275
  br label %4282

4282:                                             ; preds = %4281
  br label %4283

4283:                                             ; preds = %4282
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #8
  %4284 = call ptr @__errno_location() #9
  %4285 = load i32, ptr %4284, align 4, !tbaa !5
  store i32 %4285, ptr %77, align 4, !tbaa !5
  %4286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4287 = call i32 @s2n_print_stacktrace(ptr noundef %4286)
  %4288 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4289 = trunc i8 %4288 to i1
  br i1 %4289, label %4290, label %4312

4290:                                             ; preds = %4283
  %4291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4292 = call i32 @fileno(ptr noundef %4291) #8
  %4293 = call i32 @isatty(i32 noundef %4292) #8
  %4294 = icmp ne i32 %4293, 0
  br i1 %4294, label %4295, label %4312

4295:                                             ; preds = %4290
  %4296 = load i32, ptr %77, align 4, !tbaa !5
  %4297 = call ptr @__errno_location() #9
  store i32 %4296, ptr %4297, align 4, !tbaa !5
  %4298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4299 = load i32, ptr @test_count, align 4, !tbaa !5
  %4300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4301 = load i32, ptr %4300, align 4, !tbaa !5
  %4302 = call ptr @s2n_strerror(i32 noundef %4301, ptr noundef @.str.4)
  %4303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4304 = load i32, ptr %4303, align 4, !tbaa !5
  %4305 = call ptr @s2n_strerror_debug(i32 noundef %4304, ptr noundef @.str.4)
  %4306 = call ptr @__errno_location() #9
  %4307 = load i32, ptr %4306, align 4, !tbaa !5
  %4308 = call ptr @strerror(i32 noundef %4307) #8
  %4309 = call ptr @__errno_location() #9
  %4310 = load i32, ptr %4309, align 4, !tbaa !5
  %4311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4298, ptr noundef @.str.2, i32 noundef %4299, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 587, ptr noundef %4302, ptr noundef %4305, ptr noundef %4308, i32 noundef %4310) #8
  br label %4329

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

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

4330:                                             ; preds = %4329
  br label %4331

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

4332:                                             ; No predecessors!
  br label %4333

4333:                                             ; preds = %4332
  br label %4334

4334:                                             ; preds = %4333, %4275
  br label %4335

4335:                                             ; preds = %4334
  br label %4336

4336:                                             ; preds = %4335
  br label %4337

4337:                                             ; preds = %4336
  %4338 = load i32, ptr @test_count, align 4, !tbaa !5
  %4339 = add nsw i32 %4338, 1
  store i32 %4339, ptr @test_count, align 4, !tbaa !5
  %4340 = load i32, ptr %10, align 4, !tbaa !5
  %4341 = call i32 @waitpid(i32 noundef %4340, ptr noundef %9, i32 noundef 0)
  %4342 = load i32, ptr %10, align 4, !tbaa !5
  %4343 = icmp eq i32 %4341, %4342
  br i1 %4343, label %4397, label %4344

4344:                                             ; preds = %4337
  br label %4345

4345:                                             ; preds = %4344
  br label %4346

4346:                                             ; preds = %4345
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #8
  %4347 = call ptr @__errno_location() #9
  %4348 = load i32, ptr %4347, align 4, !tbaa !5
  store i32 %4348, ptr %78, align 4, !tbaa !5
  %4349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4350 = call i32 @s2n_print_stacktrace(ptr noundef %4349)
  %4351 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4352 = trunc i8 %4351 to i1
  br i1 %4352, label %4353, label %4375

4353:                                             ; preds = %4346
  %4354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4355 = call i32 @fileno(ptr noundef %4354) #8
  %4356 = call i32 @isatty(i32 noundef %4355) #8
  %4357 = icmp ne i32 %4356, 0
  br i1 %4357, label %4358, label %4375

4358:                                             ; preds = %4353
  %4359 = load i32, ptr %78, align 4, !tbaa !5
  %4360 = call ptr @__errno_location() #9
  store i32 %4359, ptr %4360, align 4, !tbaa !5
  %4361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4362 = load i32, ptr @test_count, align 4, !tbaa !5
  %4363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4364 = load i32, ptr %4363, align 4, !tbaa !5
  %4365 = call ptr @s2n_strerror(i32 noundef %4364, ptr noundef @.str.4)
  %4366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4367 = load i32, ptr %4366, align 4, !tbaa !5
  %4368 = call ptr @s2n_strerror_debug(i32 noundef %4367, ptr noundef @.str.4)
  %4369 = call ptr @__errno_location() #9
  %4370 = load i32, ptr %4369, align 4, !tbaa !5
  %4371 = call ptr @strerror(i32 noundef %4370) #8
  %4372 = call ptr @__errno_location() #9
  %4373 = load i32, ptr %4372, align 4, !tbaa !5
  %4374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4361, ptr noundef @.str.2, i32 noundef %4362, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 590, ptr noundef %4365, ptr noundef %4368, ptr noundef %4371, i32 noundef %4373) #8
  br label %4392

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

4392:                                             ; preds = %4375, %4358
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #8
  br label %4393

4393:                                             ; preds = %4392
  br label %4394

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

4395:                                             ; No predecessors!
  br label %4396

4396:                                             ; preds = %4395
  br label %4397

4397:                                             ; preds = %4396, %4337
  br label %4398

4398:                                             ; preds = %4397
  br label %4399

4399:                                             ; preds = %4398
  br label %4400

4400:                                             ; preds = %4399
  %4401 = load i32, ptr @test_count, align 4, !tbaa !5
  %4402 = add nsw i32 %4401, 1
  store i32 %4402, ptr @test_count, align 4, !tbaa !5
  %4403 = load i32, ptr %9, align 4, !tbaa !5
  %4404 = icmp eq i32 %4403, 0
  br i1 %4404, label %4458, label %4405

4405:                                             ; preds = %4400
  br label %4406

4406:                                             ; preds = %4405
  br label %4407

4407:                                             ; preds = %4406
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #8
  %4408 = call ptr @__errno_location() #9
  %4409 = load i32, ptr %4408, align 4, !tbaa !5
  store i32 %4409, ptr %79, align 4, !tbaa !5
  %4410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4411 = call i32 @s2n_print_stacktrace(ptr noundef %4410)
  %4412 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4413 = trunc i8 %4412 to i1
  br i1 %4413, label %4414, label %4436

4414:                                             ; preds = %4407
  %4415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4416 = call i32 @fileno(ptr noundef %4415) #8
  %4417 = call i32 @isatty(i32 noundef %4416) #8
  %4418 = icmp ne i32 %4417, 0
  br i1 %4418, label %4419, label %4436

4419:                                             ; preds = %4414
  %4420 = load i32, ptr %79, align 4, !tbaa !5
  %4421 = call ptr @__errno_location() #9
  store i32 %4420, ptr %4421, align 4, !tbaa !5
  %4422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4423 = load i32, ptr @test_count, align 4, !tbaa !5
  %4424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4425 = load i32, ptr %4424, align 4, !tbaa !5
  %4426 = call ptr @s2n_strerror(i32 noundef %4425, ptr noundef @.str.4)
  %4427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4428 = load i32, ptr %4427, align 4, !tbaa !5
  %4429 = call ptr @s2n_strerror_debug(i32 noundef %4428, ptr noundef @.str.4)
  %4430 = call ptr @__errno_location() #9
  %4431 = load i32, ptr %4430, align 4, !tbaa !5
  %4432 = call ptr @strerror(i32 noundef %4431) #8
  %4433 = call ptr @__errno_location() #9
  %4434 = load i32, ptr %4433, align 4, !tbaa !5
  %4435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4422, ptr noundef @.str.2, i32 noundef %4423, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 591, ptr noundef %4426, ptr noundef %4429, ptr noundef %4432, i32 noundef %4434) #8
  br label %4453

4436:                                             ; preds = %4414, %4407
  %4437 = load i32, ptr %79, align 4, !tbaa !5
  %4438 = call ptr @__errno_location() #9
  store i32 %4437, ptr %4438, align 4, !tbaa !5
  %4439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4440 = load i32, ptr @test_count, align 4, !tbaa !5
  %4441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4442 = load i32, ptr %4441, align 4, !tbaa !5
  %4443 = call ptr @s2n_strerror(i32 noundef %4442, ptr noundef @.str.4)
  %4444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4445 = load i32, ptr %4444, align 4, !tbaa !5
  %4446 = call ptr @s2n_strerror_debug(i32 noundef %4445, ptr noundef @.str.4)
  %4447 = call ptr @__errno_location() #9
  %4448 = load i32, ptr %4447, align 4, !tbaa !5
  %4449 = call ptr @strerror(i32 noundef %4448) #8
  %4450 = call ptr @__errno_location() #9
  %4451 = load i32, ptr %4450, align 4, !tbaa !5
  %4452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4439, ptr noundef @.str.5, i32 noundef %4440, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 591, ptr noundef %4443, ptr noundef %4446, ptr noundef %4449, i32 noundef %4451) #8
  br label %4453

4453:                                             ; preds = %4436, %4419
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #8
  br label %4454

4454:                                             ; preds = %4453
  br label %4455

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

4456:                                             ; No predecessors!
  br label %4457

4457:                                             ; preds = %4456
  br label %4458

4458:                                             ; preds = %4457, %4400
  br label %4459

4459:                                             ; preds = %4458
  br label %4460

4460:                                             ; preds = %4459
  br label %4461

4461:                                             ; preds = %4460
  %4462 = load i32, ptr @test_count, align 4, !tbaa !5
  %4463 = add nsw i32 %4462, 1
  store i32 %4463, ptr @test_count, align 4, !tbaa !5
  %4464 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %4465 = load i32, ptr %4464, align 4, !tbaa !5
  %4466 = call i32 @close(i32 noundef %4465)
  %4467 = icmp eq i32 %4466, -1
  br i1 %4467, label %4468, label %4521

4468:                                             ; preds = %4461
  br label %4469

4469:                                             ; preds = %4468
  br label %4470

4470:                                             ; preds = %4469
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #8
  %4471 = call ptr @__errno_location() #9
  %4472 = load i32, ptr %4471, align 4, !tbaa !5
  store i32 %4472, ptr %80, align 4, !tbaa !5
  %4473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4474 = call i32 @s2n_print_stacktrace(ptr noundef %4473)
  %4475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4476 = trunc i8 %4475 to i1
  br i1 %4476, label %4477, label %4499

4477:                                             ; preds = %4470
  %4478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4479 = call i32 @fileno(ptr noundef %4478) #8
  %4480 = call i32 @isatty(i32 noundef %4479) #8
  %4481 = icmp ne i32 %4480, 0
  br i1 %4481, label %4482, label %4499

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

4499:                                             ; preds = %4477, %4470
  %4500 = load i32, ptr %80, align 4, !tbaa !5
  %4501 = call ptr @__errno_location() #9
  store i32 %4500, ptr %4501, align 4, !tbaa !5
  %4502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4503 = load i32, ptr @test_count, align 4, !tbaa !5
  %4504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4505 = load i32, ptr %4504, align 4, !tbaa !5
  %4506 = call ptr @s2n_strerror(i32 noundef %4505, ptr noundef @.str.4)
  %4507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4508 = load i32, ptr %4507, align 4, !tbaa !5
  %4509 = call ptr @s2n_strerror_debug(i32 noundef %4508, ptr noundef @.str.4)
  %4510 = call ptr @__errno_location() #9
  %4511 = load i32, ptr %4510, align 4, !tbaa !5
  %4512 = call ptr @strerror(i32 noundef %4511) #8
  %4513 = call ptr @__errno_location() #9
  %4514 = load i32, ptr %4513, align 4, !tbaa !5
  %4515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4502, ptr noundef @.str.5, i32 noundef %4503, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 592, ptr noundef %4506, ptr noundef %4509, ptr noundef %4512, i32 noundef %4514) #8
  br label %4516

4516:                                             ; preds = %4499, %4482
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #8
  br label %4517

4517:                                             ; preds = %4516
  br label %4518

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

4519:                                             ; No predecessors!
  br label %4520

4520:                                             ; preds = %4519
  br label %4521

4521:                                             ; preds = %4520, %4461
  br label %4522

4522:                                             ; preds = %4521
  br label %4523

4523:                                             ; preds = %4522
  br label %4524

4524:                                             ; preds = %4523
  %4525 = load i32, ptr @test_count, align 4, !tbaa !5
  %4526 = add nsw i32 %4525, 1
  store i32 %4526, ptr @test_count, align 4, !tbaa !5
  %4527 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %4528 = call i32 @pipe(ptr noundef %4527) #8
  %4529 = icmp eq i32 %4528, -1
  br i1 %4529, label %4530, label %4583

4530:                                             ; preds = %4524
  br label %4531

4531:                                             ; preds = %4530
  br label %4532

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

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

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

4561:                                             ; preds = %4539, %4532
  %4562 = load i32, ptr %81, align 4, !tbaa !5
  %4563 = call ptr @__errno_location() #9
  store i32 %4562, ptr %4563, align 4, !tbaa !5
  %4564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4565 = load i32, ptr @test_count, align 4, !tbaa !5
  %4566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4567 = load i32, ptr %4566, align 4, !tbaa !5
  %4568 = call ptr @s2n_strerror(i32 noundef %4567, ptr noundef @.str.4)
  %4569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4570 = load i32, ptr %4569, align 4, !tbaa !5
  %4571 = call ptr @s2n_strerror_debug(i32 noundef %4570, ptr noundef @.str.4)
  %4572 = call ptr @__errno_location() #9
  %4573 = load i32, ptr %4572, align 4, !tbaa !5
  %4574 = call ptr @strerror(i32 noundef %4573) #8
  %4575 = call ptr @__errno_location() #9
  %4576 = load i32, ptr %4575, align 4, !tbaa !5
  %4577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4564, ptr noundef @.str.5, i32 noundef %4565, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 595, ptr noundef %4568, ptr noundef %4571, ptr noundef %4574, i32 noundef %4576) #8
  br label %4578

4578:                                             ; preds = %4561, %4544
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #8
  br label %4579

4579:                                             ; preds = %4578
  br label %4580

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

4581:                                             ; No predecessors!
  br label %4582

4582:                                             ; preds = %4581
  br label %4583

4583:                                             ; preds = %4582, %4524
  br label %4584

4584:                                             ; preds = %4583
  br label %4585

4585:                                             ; preds = %4584
  br label %4586

4586:                                             ; preds = %4585
  %4587 = load i32, ptr @test_count, align 4, !tbaa !5
  %4588 = add nsw i32 %4587, 1
  store i32 %4588, ptr @test_count, align 4, !tbaa !5
  %4589 = load ptr, ptr %6, align 8, !tbaa !9
  %4590 = call i32 @s2n_connection_wipe(ptr noundef %4589)
  %4591 = icmp eq i32 %4590, -1
  br i1 %4591, label %4592, label %4645

4592:                                             ; preds = %4586
  br label %4593

4593:                                             ; preds = %4592
  br label %4594

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

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

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

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

4640:                                             ; preds = %4623, %4606
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #8
  br label %4641

4641:                                             ; preds = %4640
  br label %4642

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

4643:                                             ; No predecessors!
  br label %4644

4644:                                             ; preds = %4643
  br label %4645

4645:                                             ; preds = %4644, %4586
  br label %4646

4646:                                             ; preds = %4645
  br label %4647

4647:                                             ; preds = %4646
  %4648 = load ptr, ptr %6, align 8, !tbaa !9
  %4649 = getelementptr inbounds %struct.s2n_connection, ptr %4648, i32 0, i32 22
  store i8 33, ptr %4649, align 1, !tbaa !15
  %4650 = load ptr, ptr %6, align 8, !tbaa !9
  %4651 = getelementptr inbounds %struct.s2n_connection, ptr %4650, i32 0, i32 21
  store i8 33, ptr %4651, align 2, !tbaa !42
  %4652 = load ptr, ptr %6, align 8, !tbaa !9
  %4653 = getelementptr inbounds %struct.s2n_connection, ptr %4652, i32 0, i32 23
  store i8 33, ptr %4653, align 4, !tbaa !43
  br label %4654

4654:                                             ; preds = %4647
  %4655 = load i32, ptr @test_count, align 4, !tbaa !5
  %4656 = add nsw i32 %4655, 1
  store i32 %4656, ptr @test_count, align 4, !tbaa !5
  %4657 = load ptr, ptr %6, align 8, !tbaa !9
  %4658 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %4659 = load i32, ptr %4658, align 4, !tbaa !5
  %4660 = call i32 @s2n_connection_set_read_fd(ptr noundef %4657, i32 noundef %4659)
  %4661 = icmp eq i32 %4660, -1
  br i1 %4661, label %4662, label %4715

4662:                                             ; preds = %4654
  br label %4663

4663:                                             ; preds = %4662
  br label %4664

4664:                                             ; preds = %4663
  call void @llvm.lifetime.start.p0(i64 4, ptr %83) #8
  %4665 = call ptr @__errno_location() #9
  %4666 = load i32, ptr %4665, align 4, !tbaa !5
  store i32 %4666, ptr %83, align 4, !tbaa !5
  %4667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4668 = call i32 @s2n_print_stacktrace(ptr noundef %4667)
  %4669 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4670 = trunc i8 %4669 to i1
  br i1 %4670, label %4671, label %4693

4671:                                             ; preds = %4664
  %4672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4673 = call i32 @fileno(ptr noundef %4672) #8
  %4674 = call i32 @isatty(i32 noundef %4673) #8
  %4675 = icmp ne i32 %4674, 0
  br i1 %4675, label %4676, label %4693

4676:                                             ; preds = %4671
  %4677 = load i32, ptr %83, align 4, !tbaa !5
  %4678 = call ptr @__errno_location() #9
  store i32 %4677, ptr %4678, align 4, !tbaa !5
  %4679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4680 = load i32, ptr @test_count, align 4, !tbaa !5
  %4681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4682 = load i32, ptr %4681, align 4, !tbaa !5
  %4683 = call ptr @s2n_strerror(i32 noundef %4682, ptr noundef @.str.4)
  %4684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4685 = load i32, ptr %4684, align 4, !tbaa !5
  %4686 = call ptr @s2n_strerror_debug(i32 noundef %4685, ptr noundef @.str.4)
  %4687 = call ptr @__errno_location() #9
  %4688 = load i32, ptr %4687, align 4, !tbaa !5
  %4689 = call ptr @strerror(i32 noundef %4688) #8
  %4690 = call ptr @__errno_location() #9
  %4691 = load i32, ptr %4690, align 4, !tbaa !5
  %4692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4679, ptr noundef @.str.2, i32 noundef %4680, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 604, ptr noundef %4683, ptr noundef %4686, ptr noundef %4689, i32 noundef %4691) #8
  br label %4710

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

4710:                                             ; preds = %4693, %4676
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #8
  br label %4711

4711:                                             ; preds = %4710
  br label %4712

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

4713:                                             ; No predecessors!
  br label %4714

4714:                                             ; preds = %4713
  br label %4715

4715:                                             ; preds = %4714, %4654
  br label %4716

4716:                                             ; preds = %4715
  br label %4717

4717:                                             ; preds = %4716
  %4718 = load ptr, ptr %6, align 8, !tbaa !9
  %4719 = getelementptr inbounds %struct.s2n_connection, ptr %4718, i32 0, i32 52
  %4720 = getelementptr inbounds %struct.s2n_handshake, ptr %4719, i32 0, i32 6
  store i32 3, ptr %4720, align 4, !tbaa !44
  %4721 = load ptr, ptr %6, align 8, !tbaa !9
  %4722 = getelementptr inbounds %struct.s2n_connection, ptr %4721, i32 0, i32 52
  %4723 = getelementptr inbounds %struct.s2n_handshake, ptr %4722, i32 0, i32 7
  store i32 1, ptr %4723, align 8, !tbaa !45
  %4724 = call i32 @fork() #8
  store i32 %4724, ptr %10, align 4, !tbaa !5
  %4725 = load i32, ptr %10, align 4, !tbaa !5
  %4726 = icmp eq i32 %4725, 0
  br i1 %4726, label %4727, label %4917

4727:                                             ; preds = %4717
  br label %4728

4728:                                             ; preds = %4727
  %4729 = load i32, ptr @test_count, align 4, !tbaa !5
  %4730 = add nsw i32 %4729, 1
  store i32 %4730, ptr @test_count, align 4, !tbaa !5
  %4731 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %4732 = load i32, ptr %4731, align 4, !tbaa !5
  %4733 = call i32 @close(i32 noundef %4732)
  %4734 = icmp eq i32 %4733, -1
  br i1 %4734, label %4735, label %4788

4735:                                             ; preds = %4728
  br label %4736

4736:                                             ; preds = %4735
  br label %4737

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

4744:                                             ; preds = %4737
  %4745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4746 = call i32 @fileno(ptr noundef %4745) #8
  %4747 = call i32 @isatty(i32 noundef %4746) #8
  %4748 = icmp ne i32 %4747, 0
  br i1 %4748, label %4749, label %4766

4749:                                             ; preds = %4744
  %4750 = load i32, ptr %84, align 4, !tbaa !5
  %4751 = call ptr @__errno_location() #9
  store i32 %4750, ptr %4751, align 4, !tbaa !5
  %4752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4753 = load i32, ptr @test_count, align 4, !tbaa !5
  %4754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4755 = load i32, ptr %4754, align 4, !tbaa !5
  %4756 = call ptr @s2n_strerror(i32 noundef %4755, ptr noundef @.str.4)
  %4757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4758 = load i32, ptr %4757, align 4, !tbaa !5
  %4759 = call ptr @s2n_strerror_debug(i32 noundef %4758, ptr noundef @.str.4)
  %4760 = call ptr @__errno_location() #9
  %4761 = load i32, ptr %4760, align 4, !tbaa !5
  %4762 = call ptr @strerror(i32 noundef %4761) #8
  %4763 = call ptr @__errno_location() #9
  %4764 = load i32, ptr %4763, align 4, !tbaa !5
  %4765 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4752, ptr noundef @.str.2, i32 noundef %4753, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 614, ptr noundef %4756, ptr noundef %4759, ptr noundef %4762, i32 noundef %4764) #8
  br label %4783

4766:                                             ; preds = %4744, %4737
  %4767 = load i32, ptr %84, align 4, !tbaa !5
  %4768 = call ptr @__errno_location() #9
  store i32 %4767, ptr %4768, align 4, !tbaa !5
  %4769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4770 = load i32, ptr @test_count, align 4, !tbaa !5
  %4771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4772 = load i32, ptr %4771, align 4, !tbaa !5
  %4773 = call ptr @s2n_strerror(i32 noundef %4772, ptr noundef @.str.4)
  %4774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4775 = load i32, ptr %4774, align 4, !tbaa !5
  %4776 = call ptr @s2n_strerror_debug(i32 noundef %4775, ptr noundef @.str.4)
  %4777 = call ptr @__errno_location() #9
  %4778 = load i32, ptr %4777, align 4, !tbaa !5
  %4779 = call ptr @strerror(i32 noundef %4778) #8
  %4780 = call ptr @__errno_location() #9
  %4781 = load i32, ptr %4780, align 4, !tbaa !5
  %4782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4769, ptr noundef @.str.5, i32 noundef %4770, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 614, ptr noundef %4773, ptr noundef %4776, ptr noundef %4779, i32 noundef %4781) #8
  br label %4783

4783:                                             ; preds = %4766, %4749
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #8
  br label %4784

4784:                                             ; preds = %4783
  br label %4785

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

4786:                                             ; No predecessors!
  br label %4787

4787:                                             ; preds = %4786
  br label %4788

4788:                                             ; preds = %4787, %4728
  br label %4789

4789:                                             ; preds = %4788
  br label %4790

4790:                                             ; preds = %4789
  %4791 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 1
  %4792 = load i32, ptr %4791, align 4, !tbaa !5
  call void @interleaved_fragmented_fatal_alert(i32 noundef %4792)
  br label %4793

4793:                                             ; preds = %4790
  %4794 = load i32, ptr @test_count, align 4, !tbaa !5
  %4795 = add nsw i32 %4794, 1
  store i32 %4795, ptr @test_count, align 4, !tbaa !5
  %4796 = load ptr, ptr %6, align 8, !tbaa !9
  %4797 = call i32 @s2n_connection_free(ptr noundef %4796)
  %4798 = icmp eq i32 %4797, -1
  br i1 %4798, label %4799, label %4852

4799:                                             ; preds = %4793
  br label %4800

4800:                                             ; preds = %4799
  br label %4801

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

4808:                                             ; preds = %4801
  %4809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4810 = call i32 @fileno(ptr noundef %4809) #8
  %4811 = call i32 @isatty(i32 noundef %4810) #8
  %4812 = icmp ne i32 %4811, 0
  br i1 %4812, label %4813, label %4830

4813:                                             ; preds = %4808
  %4814 = load i32, ptr %85, align 4, !tbaa !5
  %4815 = call ptr @__errno_location() #9
  store i32 %4814, ptr %4815, align 4, !tbaa !5
  %4816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4817 = load i32, ptr @test_count, align 4, !tbaa !5
  %4818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4819 = load i32, ptr %4818, align 4, !tbaa !5
  %4820 = call ptr @s2n_strerror(i32 noundef %4819, ptr noundef @.str.4)
  %4821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4822 = load i32, ptr %4821, align 4, !tbaa !5
  %4823 = call ptr @s2n_strerror_debug(i32 noundef %4822, ptr noundef @.str.4)
  %4824 = call ptr @__errno_location() #9
  %4825 = load i32, ptr %4824, align 4, !tbaa !5
  %4826 = call ptr @strerror(i32 noundef %4825) #8
  %4827 = call ptr @__errno_location() #9
  %4828 = load i32, ptr %4827, align 4, !tbaa !5
  %4829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4816, ptr noundef @.str.2, i32 noundef %4817, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 618, ptr noundef %4820, ptr noundef %4823, ptr noundef %4826, i32 noundef %4828) #8
  br label %4847

4830:                                             ; preds = %4808, %4801
  %4831 = load i32, ptr %85, align 4, !tbaa !5
  %4832 = call ptr @__errno_location() #9
  store i32 %4831, ptr %4832, align 4, !tbaa !5
  %4833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4834 = load i32, ptr @test_count, align 4, !tbaa !5
  %4835 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4836 = load i32, ptr %4835, align 4, !tbaa !5
  %4837 = call ptr @s2n_strerror(i32 noundef %4836, ptr noundef @.str.4)
  %4838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4839 = load i32, ptr %4838, align 4, !tbaa !5
  %4840 = call ptr @s2n_strerror_debug(i32 noundef %4839, ptr noundef @.str.4)
  %4841 = call ptr @__errno_location() #9
  %4842 = load i32, ptr %4841, align 4, !tbaa !5
  %4843 = call ptr @strerror(i32 noundef %4842) #8
  %4844 = call ptr @__errno_location() #9
  %4845 = load i32, ptr %4844, align 4, !tbaa !5
  %4846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4833, ptr noundef @.str.5, i32 noundef %4834, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 618, ptr noundef %4837, ptr noundef %4840, ptr noundef %4843, i32 noundef %4845) #8
  br label %4847

4847:                                             ; preds = %4830, %4813
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #8
  br label %4848

4848:                                             ; preds = %4847
  br label %4849

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

4850:                                             ; No predecessors!
  br label %4851

4851:                                             ; preds = %4850
  br label %4852

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

4853:                                             ; preds = %4852
  br label %4854

4854:                                             ; preds = %4853
  br label %4855

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

4861:                                             ; preds = %4855
  br label %4862

4862:                                             ; preds = %4861
  br label %4863

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

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

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

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

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

4910:                                             ; preds = %4909
  br label %4911

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

4912:                                             ; No predecessors!
  br label %4913

4913:                                             ; preds = %4912
  br label %4914

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

4915:                                             ; preds = %4914
  br label %4916

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

4917:                                             ; preds = %4717
  br label %4918

4918:                                             ; preds = %4917
  %4919 = load i32, ptr @test_count, align 4, !tbaa !5
  %4920 = add nsw i32 %4919, 1
  store i32 %4920, ptr @test_count, align 4, !tbaa !5
  %4921 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 1
  %4922 = load i32, ptr %4921, align 4, !tbaa !5
  %4923 = call i32 @close(i32 noundef %4922)
  %4924 = icmp eq i32 %4923, -1
  br i1 %4924, label %4925, label %4978

4925:                                             ; preds = %4918
  br label %4926

4926:                                             ; preds = %4925
  br label %4927

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

4934:                                             ; preds = %4927
  %4935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4936 = call i32 @fileno(ptr noundef %4935) #8
  %4937 = call i32 @isatty(i32 noundef %4936) #8
  %4938 = icmp ne i32 %4937, 0
  br i1 %4938, label %4939, label %4956

4939:                                             ; preds = %4934
  %4940 = load i32, ptr %87, align 4, !tbaa !5
  %4941 = call ptr @__errno_location() #9
  store i32 %4940, ptr %4941, align 4, !tbaa !5
  %4942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4943 = load i32, ptr @test_count, align 4, !tbaa !5
  %4944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4945 = load i32, ptr %4944, align 4, !tbaa !5
  %4946 = call ptr @s2n_strerror(i32 noundef %4945, ptr noundef @.str.4)
  %4947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4948 = load i32, ptr %4947, align 4, !tbaa !5
  %4949 = call ptr @s2n_strerror_debug(i32 noundef %4948, ptr noundef @.str.4)
  %4950 = call ptr @__errno_location() #9
  %4951 = load i32, ptr %4950, align 4, !tbaa !5
  %4952 = call ptr @strerror(i32 noundef %4951) #8
  %4953 = call ptr @__errno_location() #9
  %4954 = load i32, ptr %4953, align 4, !tbaa !5
  %4955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4942, ptr noundef @.str.2, i32 noundef %4943, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 624, ptr noundef %4946, ptr noundef %4949, ptr noundef %4952, i32 noundef %4954) #8
  br label %4973

4956:                                             ; preds = %4934, %4927
  %4957 = load i32, ptr %87, align 4, !tbaa !5
  %4958 = call ptr @__errno_location() #9
  store i32 %4957, ptr %4958, align 4, !tbaa !5
  %4959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4960 = load i32, ptr @test_count, align 4, !tbaa !5
  %4961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4962 = load i32, ptr %4961, align 4, !tbaa !5
  %4963 = call ptr @s2n_strerror(i32 noundef %4962, ptr noundef @.str.4)
  %4964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4965 = load i32, ptr %4964, align 4, !tbaa !5
  %4966 = call ptr @s2n_strerror_debug(i32 noundef %4965, ptr noundef @.str.4)
  %4967 = call ptr @__errno_location() #9
  %4968 = load i32, ptr %4967, align 4, !tbaa !5
  %4969 = call ptr @strerror(i32 noundef %4968) #8
  %4970 = call ptr @__errno_location() #9
  %4971 = load i32, ptr %4970, align 4, !tbaa !5
  %4972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4959, ptr noundef @.str.5, i32 noundef %4960, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 624, ptr noundef %4963, ptr noundef %4966, ptr noundef %4969, i32 noundef %4971) #8
  br label %4973

4973:                                             ; preds = %4956, %4939
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #8
  br label %4974

4974:                                             ; preds = %4973
  br label %4975

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

4976:                                             ; No predecessors!
  br label %4977

4977:                                             ; preds = %4976
  br label %4978

4978:                                             ; preds = %4977, %4918
  br label %4979

4979:                                             ; preds = %4978
  br label %4980

4980:                                             ; preds = %4979
  br label %4981

4981:                                             ; preds = %4980
  br label %4982

4982:                                             ; preds = %4981
  %4983 = load i32, ptr @test_count, align 4, !tbaa !5
  %4984 = add nsw i32 %4983, 1
  store i32 %4984, ptr @test_count, align 4, !tbaa !5
  %4985 = load ptr, ptr %6, align 8, !tbaa !9
  %4986 = call i32 @s2n_negotiate(ptr noundef %4985, ptr noundef %8)
  %4987 = icmp eq i32 %4986, -1
  br i1 %4987, label %5041, label %4988

4988:                                             ; preds = %4982
  br label %4989

4989:                                             ; preds = %4988
  br label %4990

4990:                                             ; preds = %4989
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #8
  %4991 = call ptr @__errno_location() #9
  %4992 = load i32, ptr %4991, align 4, !tbaa !5
  store i32 %4992, ptr %88, align 4, !tbaa !5
  %4993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4994 = call i32 @s2n_print_stacktrace(ptr noundef %4993)
  %4995 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4996 = trunc i8 %4995 to i1
  br i1 %4996, label %4997, label %5019

4997:                                             ; preds = %4990
  %4998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4999 = call i32 @fileno(ptr noundef %4998) #8
  %5000 = call i32 @isatty(i32 noundef %4999) #8
  %5001 = icmp ne i32 %5000, 0
  br i1 %5001, label %5002, label %5019

5002:                                             ; preds = %4997
  %5003 = load i32, ptr %88, align 4, !tbaa !5
  %5004 = call ptr @__errno_location() #9
  store i32 %5003, ptr %5004, align 4, !tbaa !5
  %5005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5006 = load i32, ptr @test_count, align 4, !tbaa !5
  %5007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5008 = load i32, ptr %5007, align 4, !tbaa !5
  %5009 = call ptr @s2n_strerror(i32 noundef %5008, ptr noundef @.str.4)
  %5010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5011 = load i32, ptr %5010, align 4, !tbaa !5
  %5012 = call ptr @s2n_strerror_debug(i32 noundef %5011, ptr noundef @.str.4)
  %5013 = call ptr @__errno_location() #9
  %5014 = load i32, ptr %5013, align 4, !tbaa !5
  %5015 = call ptr @strerror(i32 noundef %5014) #8
  %5016 = call ptr @__errno_location() #9
  %5017 = load i32, ptr %5016, align 4, !tbaa !5
  %5018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5005, ptr noundef @.str.2, i32 noundef %5006, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 627, ptr noundef %5009, ptr noundef %5012, ptr noundef %5015, i32 noundef %5017) #8
  br label %5036

5019:                                             ; preds = %4997, %4990
  %5020 = load i32, ptr %88, align 4, !tbaa !5
  %5021 = call ptr @__errno_location() #9
  store i32 %5020, ptr %5021, align 4, !tbaa !5
  %5022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5023 = load i32, ptr @test_count, align 4, !tbaa !5
  %5024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5025 = load i32, ptr %5024, align 4, !tbaa !5
  %5026 = call ptr @s2n_strerror(i32 noundef %5025, ptr noundef @.str.4)
  %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_debug(i32 noundef %5028, ptr noundef @.str.4)
  %5030 = call ptr @__errno_location() #9
  %5031 = load i32, ptr %5030, align 4, !tbaa !5
  %5032 = call ptr @strerror(i32 noundef %5031) #8
  %5033 = call ptr @__errno_location() #9
  %5034 = load i32, ptr %5033, align 4, !tbaa !5
  %5035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5022, ptr noundef @.str.5, i32 noundef %5023, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 627, ptr noundef %5026, ptr noundef %5029, ptr noundef %5032, i32 noundef %5034) #8
  br label %5036

5036:                                             ; preds = %5019, %5002
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #8
  br label %5037

5037:                                             ; preds = %5036
  br label %5038

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

5039:                                             ; No predecessors!
  br label %5040

5040:                                             ; preds = %5039
  br label %5041

5041:                                             ; preds = %5040, %4982
  br label %5042

5042:                                             ; preds = %5041
  br label %5043

5043:                                             ; preds = %5042
  br label %5044

5044:                                             ; preds = %5043
  %5045 = load i32, ptr @test_count, align 4, !tbaa !5
  %5046 = add nsw i32 %5045, 1
  store i32 %5046, ptr @test_count, align 4, !tbaa !5
  %5047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5048 = load i32, ptr %5047, align 4, !tbaa !5
  %5049 = icmp eq i32 %5048, 0
  br i1 %5049, label %5050, label %5103

5050:                                             ; preds = %5044
  br label %5051

5051:                                             ; preds = %5050
  br label %5052

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

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

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

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

5098:                                             ; preds = %5081, %5064
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #8
  br label %5099

5099:                                             ; preds = %5098
  br label %5100

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

5101:                                             ; No predecessors!
  br label %5102

5102:                                             ; preds = %5101
  br label %5103

5103:                                             ; preds = %5102, %5044
  br label %5104

5104:                                             ; preds = %5103
  br label %5105

5105:                                             ; preds = %5104
  br label %5106

5106:                                             ; preds = %5105
  %5107 = load i32, ptr @test_count, align 4, !tbaa !5
  %5108 = add nsw i32 %5107, 1
  store i32 %5108, ptr @test_count, align 4, !tbaa !5
  %5109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5110 = load i32, ptr %5109, align 4, !tbaa !5
  %5111 = call ptr @s2n_strerror_debug(i32 noundef %5110, ptr noundef @.str.4)
  %5112 = icmp eq ptr %5111, null
  br i1 %5112, label %5113, label %5166

5113:                                             ; preds = %5106
  br label %5114

5114:                                             ; preds = %5113
  br label %5115

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

5122:                                             ; preds = %5115
  %5123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5124 = call i32 @fileno(ptr noundef %5123) #8
  %5125 = call i32 @isatty(i32 noundef %5124) #8
  %5126 = icmp ne i32 %5125, 0
  br i1 %5126, label %5127, label %5144

5127:                                             ; preds = %5122
  %5128 = load i32, ptr %90, align 4, !tbaa !5
  %5129 = call ptr @__errno_location() #9
  store i32 %5128, ptr %5129, align 4, !tbaa !5
  %5130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5131 = load i32, ptr @test_count, align 4, !tbaa !5
  %5132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5133 = load i32, ptr %5132, align 4, !tbaa !5
  %5134 = call ptr @s2n_strerror(i32 noundef %5133, ptr noundef @.str.4)
  %5135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5136 = load i32, ptr %5135, align 4, !tbaa !5
  %5137 = call ptr @s2n_strerror_debug(i32 noundef %5136, ptr noundef @.str.4)
  %5138 = call ptr @__errno_location() #9
  %5139 = load i32, ptr %5138, align 4, !tbaa !5
  %5140 = call ptr @strerror(i32 noundef %5139) #8
  %5141 = call ptr @__errno_location() #9
  %5142 = load i32, ptr %5141, align 4, !tbaa !5
  %5143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5130, ptr noundef @.str.2, i32 noundef %5131, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 627, ptr noundef %5134, ptr noundef %5137, ptr noundef %5140, i32 noundef %5142) #8
  br label %5161

5144:                                             ; preds = %5122, %5115
  %5145 = load i32, ptr %90, align 4, !tbaa !5
  %5146 = call ptr @__errno_location() #9
  store i32 %5145, ptr %5146, align 4, !tbaa !5
  %5147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5148 = load i32, ptr @test_count, align 4, !tbaa !5
  %5149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5150 = load i32, ptr %5149, align 4, !tbaa !5
  %5151 = call ptr @s2n_strerror(i32 noundef %5150, ptr noundef @.str.4)
  %5152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5153 = load i32, ptr %5152, align 4, !tbaa !5
  %5154 = call ptr @s2n_strerror_debug(i32 noundef %5153, ptr noundef @.str.4)
  %5155 = call ptr @__errno_location() #9
  %5156 = load i32, ptr %5155, align 4, !tbaa !5
  %5157 = call ptr @strerror(i32 noundef %5156) #8
  %5158 = call ptr @__errno_location() #9
  %5159 = load i32, ptr %5158, align 4, !tbaa !5
  %5160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5147, ptr noundef @.str.5, i32 noundef %5148, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 627, ptr noundef %5151, ptr noundef %5154, ptr noundef %5157, i32 noundef %5159) #8
  br label %5161

5161:                                             ; preds = %5144, %5127
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #8
  br label %5162

5162:                                             ; preds = %5161
  br label %5163

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

5164:                                             ; No predecessors!
  br label %5165

5165:                                             ; preds = %5164
  br label %5166

5166:                                             ; preds = %5165, %5106
  br label %5167

5167:                                             ; preds = %5166
  br label %5168

5168:                                             ; preds = %5167
  br label %5169

5169:                                             ; preds = %5168
  %5170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %5170, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %5171 = call ptr @__errno_location() #9
  store i32 0, ptr %5171, align 4, !tbaa !5
  br label %5172

5172:                                             ; preds = %5169
  br label %5173

5173:                                             ; preds = %5172
  br label %5174

5174:                                             ; preds = %5173
  br label %5175

5175:                                             ; preds = %5174
  br label %5176

5176:                                             ; preds = %5175
  %5177 = load i32, ptr @test_count, align 4, !tbaa !5
  %5178 = add nsw i32 %5177, 1
  store i32 %5178, ptr @test_count, align 4, !tbaa !5
  %5179 = load ptr, ptr %6, align 8, !tbaa !9
  %5180 = getelementptr inbounds %struct.s2n_connection, ptr %5179, i32 0, i32 32
  %5181 = getelementptr inbounds %struct.s2n_handshake_parameters, ptr %5180, i32 0, i32 13
  %5182 = getelementptr inbounds [32 x i8], ptr %5181, i64 0, i64 0
  %5183 = call i32 @memcmp(ptr noundef %5182, ptr noundef @zero_to_thirty_one, i64 noundef 32) #11
  %5184 = icmp eq i32 %5183, 0
  br i1 %5184, label %5185, label %5238

5185:                                             ; preds = %5176
  br label %5186

5186:                                             ; preds = %5185
  br label %5187

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

5194:                                             ; preds = %5187
  %5195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5196 = call i32 @fileno(ptr noundef %5195) #8
  %5197 = call i32 @isatty(i32 noundef %5196) #8
  %5198 = icmp ne i32 %5197, 0
  br i1 %5198, label %5199, label %5216

5199:                                             ; preds = %5194
  %5200 = load i32, ptr %91, align 4, !tbaa !5
  %5201 = call ptr @__errno_location() #9
  store i32 %5200, ptr %5201, align 4, !tbaa !5
  %5202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5203 = load i32, ptr @test_count, align 4, !tbaa !5
  %5204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5205 = load i32, ptr %5204, align 4, !tbaa !5
  %5206 = call ptr @s2n_strerror(i32 noundef %5205, ptr noundef @.str.4)
  %5207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5208 = load i32, ptr %5207, align 4, !tbaa !5
  %5209 = call ptr @s2n_strerror_debug(i32 noundef %5208, ptr noundef @.str.4)
  %5210 = call ptr @__errno_location() #9
  %5211 = load i32, ptr %5210, align 4, !tbaa !5
  %5212 = call ptr @strerror(i32 noundef %5211) #8
  %5213 = call ptr @__errno_location() #9
  %5214 = load i32, ptr %5213, align 4, !tbaa !5
  %5215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5202, ptr noundef @.str.2, i32 noundef %5203, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 630, ptr noundef %5206, ptr noundef %5209, ptr noundef %5212, i32 noundef %5214) #8
  br label %5233

5216:                                             ; preds = %5194, %5187
  %5217 = load i32, ptr %91, align 4, !tbaa !5
  %5218 = call ptr @__errno_location() #9
  store i32 %5217, ptr %5218, align 4, !tbaa !5
  %5219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5220 = load i32, ptr @test_count, align 4, !tbaa !5
  %5221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5222 = load i32, ptr %5221, align 4, !tbaa !5
  %5223 = call ptr @s2n_strerror(i32 noundef %5222, ptr noundef @.str.4)
  %5224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5225 = load i32, ptr %5224, align 4, !tbaa !5
  %5226 = call ptr @s2n_strerror_debug(i32 noundef %5225, ptr noundef @.str.4)
  %5227 = call ptr @__errno_location() #9
  %5228 = load i32, ptr %5227, align 4, !tbaa !5
  %5229 = call ptr @strerror(i32 noundef %5228) #8
  %5230 = call ptr @__errno_location() #9
  %5231 = load i32, ptr %5230, align 4, !tbaa !5
  %5232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5219, ptr noundef @.str.5, i32 noundef %5220, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 630, ptr noundef %5223, ptr noundef %5226, ptr noundef %5229, i32 noundef %5231) #8
  br label %5233

5233:                                             ; preds = %5216, %5199
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #8
  br label %5234

5234:                                             ; preds = %5233
  br label %5235

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

5236:                                             ; No predecessors!
  br label %5237

5237:                                             ; preds = %5236
  br label %5238

5238:                                             ; preds = %5237, %5176
  br label %5239

5239:                                             ; preds = %5238
  br label %5240

5240:                                             ; preds = %5239
  br label %5241

5241:                                             ; preds = %5240
  %5242 = load i32, ptr @test_count, align 4, !tbaa !5
  %5243 = add nsw i32 %5242, 1
  store i32 %5243, ptr @test_count, align 4, !tbaa !5
  %5244 = load ptr, ptr %6, align 8, !tbaa !9
  %5245 = call i32 @s2n_conn_get_current_message_type(ptr noundef %5244)
  %5246 = icmp eq i32 %5245, 2
  br i1 %5246, label %5247, label %5300

5247:                                             ; preds = %5241
  br label %5248

5248:                                             ; preds = %5247
  br label %5249

5249:                                             ; preds = %5248
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #8
  %5250 = call ptr @__errno_location() #9
  %5251 = load i32, ptr %5250, align 4, !tbaa !5
  store i32 %5251, ptr %92, align 4, !tbaa !5
  %5252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5253 = call i32 @s2n_print_stacktrace(ptr noundef %5252)
  %5254 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5255 = trunc i8 %5254 to i1
  br i1 %5255, label %5256, label %5278

5256:                                             ; preds = %5249
  %5257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5258 = call i32 @fileno(ptr noundef %5257) #8
  %5259 = call i32 @isatty(i32 noundef %5258) #8
  %5260 = icmp ne i32 %5259, 0
  br i1 %5260, label %5261, label %5278

5261:                                             ; preds = %5256
  %5262 = load i32, ptr %92, align 4, !tbaa !5
  %5263 = call ptr @__errno_location() #9
  store i32 %5262, ptr %5263, align 4, !tbaa !5
  %5264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5265 = load i32, ptr @test_count, align 4, !tbaa !5
  %5266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5267 = load i32, ptr %5266, align 4, !tbaa !5
  %5268 = call ptr @s2n_strerror(i32 noundef %5267, ptr noundef @.str.4)
  %5269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5270 = load i32, ptr %5269, align 4, !tbaa !5
  %5271 = call ptr @s2n_strerror_debug(i32 noundef %5270, ptr noundef @.str.4)
  %5272 = call ptr @__errno_location() #9
  %5273 = load i32, ptr %5272, align 4, !tbaa !5
  %5274 = call ptr @strerror(i32 noundef %5273) #8
  %5275 = call ptr @__errno_location() #9
  %5276 = load i32, ptr %5275, align 4, !tbaa !5
  %5277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5264, ptr noundef @.str.2, i32 noundef %5265, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 633, ptr noundef %5268, ptr noundef %5271, ptr noundef %5274, i32 noundef %5276) #8
  br label %5295

5278:                                             ; preds = %5256, %5249
  %5279 = load i32, ptr %92, align 4, !tbaa !5
  %5280 = call ptr @__errno_location() #9
  store i32 %5279, ptr %5280, align 4, !tbaa !5
  %5281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5282 = load i32, ptr @test_count, align 4, !tbaa !5
  %5283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5284 = load i32, ptr %5283, align 4, !tbaa !5
  %5285 = call ptr @s2n_strerror(i32 noundef %5284, ptr noundef @.str.4)
  %5286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5287 = load i32, ptr %5286, align 4, !tbaa !5
  %5288 = call ptr @s2n_strerror_debug(i32 noundef %5287, ptr noundef @.str.4)
  %5289 = call ptr @__errno_location() #9
  %5290 = load i32, ptr %5289, align 4, !tbaa !5
  %5291 = call ptr @strerror(i32 noundef %5290) #8
  %5292 = call ptr @__errno_location() #9
  %5293 = load i32, ptr %5292, align 4, !tbaa !5
  %5294 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5281, ptr noundef @.str.5, i32 noundef %5282, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 633, ptr noundef %5285, ptr noundef %5288, ptr noundef %5291, i32 noundef %5293) #8
  br label %5295

5295:                                             ; preds = %5278, %5261
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #8
  br label %5296

5296:                                             ; preds = %5295
  br label %5297

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

5298:                                             ; No predecessors!
  br label %5299

5299:                                             ; preds = %5298
  br label %5300

5300:                                             ; preds = %5299, %5241
  br label %5301

5301:                                             ; preds = %5300
  br label %5302

5302:                                             ; preds = %5301
  br label %5303

5303:                                             ; preds = %5302
  %5304 = load i32, ptr @test_count, align 4, !tbaa !5
  %5305 = add nsw i32 %5304, 1
  store i32 %5305, ptr @test_count, align 4, !tbaa !5
  %5306 = load i32, ptr %10, align 4, !tbaa !5
  %5307 = call i32 @waitpid(i32 noundef %5306, ptr noundef %9, i32 noundef 0)
  %5308 = load i32, ptr %10, align 4, !tbaa !5
  %5309 = icmp eq i32 %5307, %5308
  br i1 %5309, label %5363, label %5310

5310:                                             ; preds = %5303
  br label %5311

5311:                                             ; preds = %5310
  br label %5312

5312:                                             ; preds = %5311
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #8
  %5313 = call ptr @__errno_location() #9
  %5314 = load i32, ptr %5313, align 4, !tbaa !5
  store i32 %5314, ptr %93, align 4, !tbaa !5
  %5315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5316 = call i32 @s2n_print_stacktrace(ptr noundef %5315)
  %5317 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5318 = trunc i8 %5317 to i1
  br i1 %5318, label %5319, label %5341

5319:                                             ; preds = %5312
  %5320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5321 = call i32 @fileno(ptr noundef %5320) #8
  %5322 = call i32 @isatty(i32 noundef %5321) #8
  %5323 = icmp ne i32 %5322, 0
  br i1 %5323, label %5324, label %5341

5324:                                             ; preds = %5319
  %5325 = load i32, ptr %93, align 4, !tbaa !5
  %5326 = call ptr @__errno_location() #9
  store i32 %5325, ptr %5326, align 4, !tbaa !5
  %5327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5328 = load i32, ptr @test_count, align 4, !tbaa !5
  %5329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5330 = load i32, ptr %5329, align 4, !tbaa !5
  %5331 = call ptr @s2n_strerror(i32 noundef %5330, ptr noundef @.str.4)
  %5332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5333 = load i32, ptr %5332, align 4, !tbaa !5
  %5334 = call ptr @s2n_strerror_debug(i32 noundef %5333, ptr noundef @.str.4)
  %5335 = call ptr @__errno_location() #9
  %5336 = load i32, ptr %5335, align 4, !tbaa !5
  %5337 = call ptr @strerror(i32 noundef %5336) #8
  %5338 = call ptr @__errno_location() #9
  %5339 = load i32, ptr %5338, align 4, !tbaa !5
  %5340 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5327, ptr noundef @.str.2, i32 noundef %5328, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 636, ptr noundef %5331, ptr noundef %5334, ptr noundef %5337, i32 noundef %5339) #8
  br label %5358

5341:                                             ; preds = %5319, %5312
  %5342 = load i32, ptr %93, align 4, !tbaa !5
  %5343 = call ptr @__errno_location() #9
  store i32 %5342, ptr %5343, align 4, !tbaa !5
  %5344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5345 = load i32, ptr @test_count, align 4, !tbaa !5
  %5346 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5347 = load i32, ptr %5346, align 4, !tbaa !5
  %5348 = call ptr @s2n_strerror(i32 noundef %5347, ptr noundef @.str.4)
  %5349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5350 = load i32, ptr %5349, align 4, !tbaa !5
  %5351 = call ptr @s2n_strerror_debug(i32 noundef %5350, ptr noundef @.str.4)
  %5352 = call ptr @__errno_location() #9
  %5353 = load i32, ptr %5352, align 4, !tbaa !5
  %5354 = call ptr @strerror(i32 noundef %5353) #8
  %5355 = call ptr @__errno_location() #9
  %5356 = load i32, ptr %5355, align 4, !tbaa !5
  %5357 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5344, ptr noundef @.str.5, i32 noundef %5345, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 636, ptr noundef %5348, ptr noundef %5351, ptr noundef %5354, i32 noundef %5356) #8
  br label %5358

5358:                                             ; preds = %5341, %5324
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #8
  br label %5359

5359:                                             ; preds = %5358
  br label %5360

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

5361:                                             ; No predecessors!
  br label %5362

5362:                                             ; preds = %5361
  br label %5363

5363:                                             ; preds = %5362, %5303
  br label %5364

5364:                                             ; preds = %5363
  br label %5365

5365:                                             ; preds = %5364
  br label %5366

5366:                                             ; preds = %5365
  %5367 = load i32, ptr @test_count, align 4, !tbaa !5
  %5368 = add nsw i32 %5367, 1
  store i32 %5368, ptr @test_count, align 4, !tbaa !5
  %5369 = load i32, ptr %9, align 4, !tbaa !5
  %5370 = icmp eq i32 %5369, 0
  br i1 %5370, label %5424, label %5371

5371:                                             ; preds = %5366
  br label %5372

5372:                                             ; preds = %5371
  br label %5373

5373:                                             ; preds = %5372
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #8
  %5374 = call ptr @__errno_location() #9
  %5375 = load i32, ptr %5374, align 4, !tbaa !5
  store i32 %5375, ptr %94, align 4, !tbaa !5
  %5376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5377 = call i32 @s2n_print_stacktrace(ptr noundef %5376)
  %5378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5379 = trunc i8 %5378 to i1
  br i1 %5379, label %5380, label %5402

5380:                                             ; preds = %5373
  %5381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5382 = call i32 @fileno(ptr noundef %5381) #8
  %5383 = call i32 @isatty(i32 noundef %5382) #8
  %5384 = icmp ne i32 %5383, 0
  br i1 %5384, label %5385, label %5402

5385:                                             ; preds = %5380
  %5386 = load i32, ptr %94, align 4, !tbaa !5
  %5387 = call ptr @__errno_location() #9
  store i32 %5386, ptr %5387, align 4, !tbaa !5
  %5388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5389 = load i32, ptr @test_count, align 4, !tbaa !5
  %5390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5391 = load i32, ptr %5390, align 4, !tbaa !5
  %5392 = call ptr @s2n_strerror(i32 noundef %5391, ptr noundef @.str.4)
  %5393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5394 = load i32, ptr %5393, align 4, !tbaa !5
  %5395 = call ptr @s2n_strerror_debug(i32 noundef %5394, ptr noundef @.str.4)
  %5396 = call ptr @__errno_location() #9
  %5397 = load i32, ptr %5396, align 4, !tbaa !5
  %5398 = call ptr @strerror(i32 noundef %5397) #8
  %5399 = call ptr @__errno_location() #9
  %5400 = load i32, ptr %5399, align 4, !tbaa !5
  %5401 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5388, ptr noundef @.str.2, i32 noundef %5389, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 637, ptr noundef %5392, ptr noundef %5395, ptr noundef %5398, i32 noundef %5400) #8
  br label %5419

5402:                                             ; preds = %5380, %5373
  %5403 = load i32, ptr %94, align 4, !tbaa !5
  %5404 = call ptr @__errno_location() #9
  store i32 %5403, ptr %5404, align 4, !tbaa !5
  %5405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5406 = load i32, ptr @test_count, align 4, !tbaa !5
  %5407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5408 = load i32, ptr %5407, align 4, !tbaa !5
  %5409 = call ptr @s2n_strerror(i32 noundef %5408, ptr noundef @.str.4)
  %5410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5411 = load i32, ptr %5410, align 4, !tbaa !5
  %5412 = call ptr @s2n_strerror_debug(i32 noundef %5411, ptr noundef @.str.4)
  %5413 = call ptr @__errno_location() #9
  %5414 = load i32, ptr %5413, align 4, !tbaa !5
  %5415 = call ptr @strerror(i32 noundef %5414) #8
  %5416 = call ptr @__errno_location() #9
  %5417 = load i32, ptr %5416, align 4, !tbaa !5
  %5418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5405, ptr noundef @.str.5, i32 noundef %5406, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 637, ptr noundef %5409, ptr noundef %5412, ptr noundef %5415, i32 noundef %5417) #8
  br label %5419

5419:                                             ; preds = %5402, %5385
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #8
  br label %5420

5420:                                             ; preds = %5419
  br label %5421

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

5422:                                             ; No predecessors!
  br label %5423

5423:                                             ; preds = %5422
  br label %5424

5424:                                             ; preds = %5423, %5366
  br label %5425

5425:                                             ; preds = %5424
  br label %5426

5426:                                             ; preds = %5425
  br label %5427

5427:                                             ; preds = %5426
  %5428 = load i32, ptr @test_count, align 4, !tbaa !5
  %5429 = add nsw i32 %5428, 1
  store i32 %5429, ptr @test_count, align 4, !tbaa !5
  %5430 = getelementptr inbounds [2 x i32], ptr %11, i64 0, i64 0
  %5431 = load i32, ptr %5430, align 4, !tbaa !5
  %5432 = call i32 @close(i32 noundef %5431)
  %5433 = icmp eq i32 %5432, -1
  br i1 %5433, label %5434, label %5487

5434:                                             ; preds = %5427
  br label %5435

5435:                                             ; preds = %5434
  br label %5436

5436:                                             ; preds = %5435
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #8
  %5437 = call ptr @__errno_location() #9
  %5438 = load i32, ptr %5437, align 4, !tbaa !5
  store i32 %5438, ptr %95, align 4, !tbaa !5
  %5439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5440 = call i32 @s2n_print_stacktrace(ptr noundef %5439)
  %5441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5442 = trunc i8 %5441 to i1
  br i1 %5442, label %5443, label %5465

5443:                                             ; preds = %5436
  %5444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5445 = call i32 @fileno(ptr noundef %5444) #8
  %5446 = call i32 @isatty(i32 noundef %5445) #8
  %5447 = icmp ne i32 %5446, 0
  br i1 %5447, label %5448, label %5465

5448:                                             ; preds = %5443
  %5449 = load i32, ptr %95, align 4, !tbaa !5
  %5450 = call ptr @__errno_location() #9
  store i32 %5449, ptr %5450, align 4, !tbaa !5
  %5451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5452 = load i32, ptr @test_count, align 4, !tbaa !5
  %5453 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5454 = load i32, ptr %5453, align 4, !tbaa !5
  %5455 = call ptr @s2n_strerror(i32 noundef %5454, ptr noundef @.str.4)
  %5456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5457 = load i32, ptr %5456, align 4, !tbaa !5
  %5458 = call ptr @s2n_strerror_debug(i32 noundef %5457, ptr noundef @.str.4)
  %5459 = call ptr @__errno_location() #9
  %5460 = load i32, ptr %5459, align 4, !tbaa !5
  %5461 = call ptr @strerror(i32 noundef %5460) #8
  %5462 = call ptr @__errno_location() #9
  %5463 = load i32, ptr %5462, align 4, !tbaa !5
  %5464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5451, ptr noundef @.str.2, i32 noundef %5452, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 638, ptr noundef %5455, ptr noundef %5458, ptr noundef %5461, i32 noundef %5463) #8
  br label %5482

5465:                                             ; preds = %5443, %5436
  %5466 = load i32, ptr %95, align 4, !tbaa !5
  %5467 = call ptr @__errno_location() #9
  store i32 %5466, ptr %5467, align 4, !tbaa !5
  %5468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5469 = load i32, ptr @test_count, align 4, !tbaa !5
  %5470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5471 = load i32, ptr %5470, align 4, !tbaa !5
  %5472 = call ptr @s2n_strerror(i32 noundef %5471, ptr noundef @.str.4)
  %5473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5474 = load i32, ptr %5473, align 4, !tbaa !5
  %5475 = call ptr @s2n_strerror_debug(i32 noundef %5474, ptr noundef @.str.4)
  %5476 = call ptr @__errno_location() #9
  %5477 = load i32, ptr %5476, align 4, !tbaa !5
  %5478 = call ptr @strerror(i32 noundef %5477) #8
  %5479 = call ptr @__errno_location() #9
  %5480 = load i32, ptr %5479, align 4, !tbaa !5
  %5481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5468, ptr noundef @.str.5, i32 noundef %5469, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 638, ptr noundef %5472, ptr noundef %5475, ptr noundef %5478, i32 noundef %5480) #8
  br label %5482

5482:                                             ; preds = %5465, %5448
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #8
  br label %5483

5483:                                             ; preds = %5482
  br label %5484

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

5485:                                             ; No predecessors!
  br label %5486

5486:                                             ; preds = %5485
  br label %5487

5487:                                             ; preds = %5486, %5427
  br label %5488

5488:                                             ; preds = %5487
  br label %5489

5489:                                             ; preds = %5488
  br label %5490

5490:                                             ; preds = %5489
  %5491 = load i32, ptr @test_count, align 4, !tbaa !5
  %5492 = add nsw i32 %5491, 1
  store i32 %5492, ptr @test_count, align 4, !tbaa !5
  %5493 = load ptr, ptr %6, align 8, !tbaa !9
  %5494 = call i32 @s2n_connection_free(ptr noundef %5493)
  %5495 = icmp eq i32 %5494, -1
  br i1 %5495, label %5496, label %5549

5496:                                             ; preds = %5490
  br label %5497

5497:                                             ; preds = %5496
  br label %5498

5498:                                             ; preds = %5497
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #8
  %5499 = call ptr @__errno_location() #9
  %5500 = load i32, ptr %5499, align 4, !tbaa !5
  store i32 %5500, ptr %96, align 4, !tbaa !5
  %5501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5502 = call i32 @s2n_print_stacktrace(ptr noundef %5501)
  %5503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5504 = trunc i8 %5503 to i1
  br i1 %5504, label %5505, label %5527

5505:                                             ; preds = %5498
  %5506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5507 = call i32 @fileno(ptr noundef %5506) #8
  %5508 = call i32 @isatty(i32 noundef %5507) #8
  %5509 = icmp ne i32 %5508, 0
  br i1 %5509, label %5510, label %5527

5510:                                             ; preds = %5505
  %5511 = load i32, ptr %96, align 4, !tbaa !5
  %5512 = call ptr @__errno_location() #9
  store i32 %5511, ptr %5512, align 4, !tbaa !5
  %5513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5514 = load i32, ptr @test_count, align 4, !tbaa !5
  %5515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5516 = load i32, ptr %5515, align 4, !tbaa !5
  %5517 = call ptr @s2n_strerror(i32 noundef %5516, ptr noundef @.str.4)
  %5518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5519 = load i32, ptr %5518, align 4, !tbaa !5
  %5520 = call ptr @s2n_strerror_debug(i32 noundef %5519, ptr noundef @.str.4)
  %5521 = call ptr @__errno_location() #9
  %5522 = load i32, ptr %5521, align 4, !tbaa !5
  %5523 = call ptr @strerror(i32 noundef %5522) #8
  %5524 = call ptr @__errno_location() #9
  %5525 = load i32, ptr %5524, align 4, !tbaa !5
  %5526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5513, ptr noundef @.str.2, i32 noundef %5514, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 640, ptr noundef %5517, ptr noundef %5520, ptr noundef %5523, i32 noundef %5525) #8
  br label %5544

5527:                                             ; preds = %5505, %5498
  %5528 = load i32, ptr %96, align 4, !tbaa !5
  %5529 = call ptr @__errno_location() #9
  store i32 %5528, ptr %5529, align 4, !tbaa !5
  %5530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5531 = load i32, ptr @test_count, align 4, !tbaa !5
  %5532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5533 = load i32, ptr %5532, align 4, !tbaa !5
  %5534 = call ptr @s2n_strerror(i32 noundef %5533, ptr noundef @.str.4)
  %5535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5536 = load i32, ptr %5535, align 4, !tbaa !5
  %5537 = call ptr @s2n_strerror_debug(i32 noundef %5536, ptr noundef @.str.4)
  %5538 = call ptr @__errno_location() #9
  %5539 = load i32, ptr %5538, align 4, !tbaa !5
  %5540 = call ptr @strerror(i32 noundef %5539) #8
  %5541 = call ptr @__errno_location() #9
  %5542 = load i32, ptr %5541, align 4, !tbaa !5
  %5543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5530, ptr noundef @.str.5, i32 noundef %5531, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 640, ptr noundef %5534, ptr noundef %5537, ptr noundef %5540, i32 noundef %5542) #8
  br label %5544

5544:                                             ; preds = %5527, %5510
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #8
  br label %5545

5545:                                             ; preds = %5544
  br label %5546

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

5547:                                             ; No predecessors!
  br label %5548

5548:                                             ; preds = %5547
  br label %5549

5549:                                             ; preds = %5548, %5490
  br label %5550

5550:                                             ; preds = %5549
  br label %5551

5551:                                             ; preds = %5550
  br label %5552

5552:                                             ; preds = %5551
  %5553 = load i32, ptr @test_count, align 4, !tbaa !5
  %5554 = add nsw i32 %5553, 1
  store i32 %5554, ptr @test_count, align 4, !tbaa !5
  %5555 = load ptr, ptr %7, align 8, !tbaa !9
  %5556 = call i32 @s2n_config_free(ptr noundef %5555)
  %5557 = icmp eq i32 %5556, -1
  br i1 %5557, label %5558, label %5611

5558:                                             ; preds = %5552
  br label %5559

5559:                                             ; preds = %5558
  br label %5560

5560:                                             ; preds = %5559
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #8
  %5561 = call ptr @__errno_location() #9
  %5562 = load i32, ptr %5561, align 4, !tbaa !5
  store i32 %5562, ptr %97, align 4, !tbaa !5
  %5563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5564 = call i32 @s2n_print_stacktrace(ptr noundef %5563)
  %5565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5566 = trunc i8 %5565 to i1
  br i1 %5566, label %5567, label %5589

5567:                                             ; preds = %5560
  %5568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5569 = call i32 @fileno(ptr noundef %5568) #8
  %5570 = call i32 @isatty(i32 noundef %5569) #8
  %5571 = icmp ne i32 %5570, 0
  br i1 %5571, label %5572, label %5589

5572:                                             ; preds = %5567
  %5573 = load i32, ptr %97, align 4, !tbaa !5
  %5574 = call ptr @__errno_location() #9
  store i32 %5573, ptr %5574, align 4, !tbaa !5
  %5575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5576 = load i32, ptr @test_count, align 4, !tbaa !5
  %5577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5578 = load i32, ptr %5577, align 4, !tbaa !5
  %5579 = call ptr @s2n_strerror(i32 noundef %5578, ptr noundef @.str.4)
  %5580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5581 = load i32, ptr %5580, align 4, !tbaa !5
  %5582 = call ptr @s2n_strerror_debug(i32 noundef %5581, ptr noundef @.str.4)
  %5583 = call ptr @__errno_location() #9
  %5584 = load i32, ptr %5583, align 4, !tbaa !5
  %5585 = call ptr @strerror(i32 noundef %5584) #8
  %5586 = call ptr @__errno_location() #9
  %5587 = load i32, ptr %5586, align 4, !tbaa !5
  %5588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5575, ptr noundef @.str.2, i32 noundef %5576, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 641, ptr noundef %5579, ptr noundef %5582, ptr noundef %5585, i32 noundef %5587) #8
  br label %5606

5589:                                             ; preds = %5567, %5560
  %5590 = load i32, ptr %97, align 4, !tbaa !5
  %5591 = call ptr @__errno_location() #9
  store i32 %5590, ptr %5591, align 4, !tbaa !5
  %5592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5593 = load i32, ptr @test_count, align 4, !tbaa !5
  %5594 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5595 = load i32, ptr %5594, align 4, !tbaa !5
  %5596 = call ptr @s2n_strerror(i32 noundef %5595, ptr noundef @.str.4)
  %5597 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5598 = load i32, ptr %5597, align 4, !tbaa !5
  %5599 = call ptr @s2n_strerror_debug(i32 noundef %5598, ptr noundef @.str.4)
  %5600 = call ptr @__errno_location() #9
  %5601 = load i32, ptr %5600, align 4, !tbaa !5
  %5602 = call ptr @strerror(i32 noundef %5601) #8
  %5603 = call ptr @__errno_location() #9
  %5604 = load i32, ptr %5603, align 4, !tbaa !5
  %5605 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5592, ptr noundef @.str.5, i32 noundef %5593, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 641, ptr noundef %5596, ptr noundef %5599, ptr noundef %5602, i32 noundef %5604) #8
  br label %5606

5606:                                             ; preds = %5589, %5572
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #8
  br label %5607

5607:                                             ; preds = %5606
  br label %5608

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

5609:                                             ; No predecessors!
  br label %5610

5610:                                             ; preds = %5609
  br label %5611

5611:                                             ; preds = %5610, %5552
  br label %5612

5612:                                             ; preds = %5611
  br label %5613

5613:                                             ; preds = %5612
  br label %5614

5614:                                             ; preds = %5613
  br label %5615

5615:                                             ; preds = %5614
  %5616 = call i32 @s2n_cleanup()
  %5617 = icmp eq i32 %5616, -1
  br i1 %5617, label %5618, label %5671

5618:                                             ; preds = %5615
  br label %5619

5619:                                             ; preds = %5618
  br label %5620

5620:                                             ; preds = %5619
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #8
  %5621 = call ptr @__errno_location() #9
  %5622 = load i32, ptr %5621, align 4, !tbaa !5
  store i32 %5622, ptr %98, align 4, !tbaa !5
  %5623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5624 = call i32 @s2n_print_stacktrace(ptr noundef %5623)
  %5625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5626 = trunc i8 %5625 to i1
  br i1 %5626, label %5627, label %5649

5627:                                             ; preds = %5620
  %5628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5629 = call i32 @fileno(ptr noundef %5628) #8
  %5630 = call i32 @isatty(i32 noundef %5629) #8
  %5631 = icmp ne i32 %5630, 0
  br i1 %5631, label %5632, label %5649

5632:                                             ; preds = %5627
  %5633 = load i32, ptr %98, align 4, !tbaa !5
  %5634 = call ptr @__errno_location() #9
  store i32 %5633, ptr %5634, align 4, !tbaa !5
  %5635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5636 = load i32, ptr @test_count, align 4, !tbaa !5
  %5637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5638 = load i32, ptr %5637, align 4, !tbaa !5
  %5639 = call ptr @s2n_strerror(i32 noundef %5638, ptr noundef @.str.4)
  %5640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5641 = load i32, ptr %5640, align 4, !tbaa !5
  %5642 = call ptr @s2n_strerror_debug(i32 noundef %5641, ptr noundef @.str.4)
  %5643 = call ptr @__errno_location() #9
  %5644 = load i32, ptr %5643, align 4, !tbaa !5
  %5645 = call ptr @strerror(i32 noundef %5644) #8
  %5646 = call ptr @__errno_location() #9
  %5647 = load i32, ptr %5646, align 4, !tbaa !5
  %5648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5635, ptr noundef @.str.2, i32 noundef %5636, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 643, ptr noundef %5639, ptr noundef %5642, ptr noundef %5645, i32 noundef %5647) #8
  br label %5666

5649:                                             ; preds = %5627, %5620
  %5650 = load i32, ptr %98, align 4, !tbaa !5
  %5651 = call ptr @__errno_location() #9
  store i32 %5650, ptr %5651, align 4, !tbaa !5
  %5652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5653 = load i32, ptr @test_count, align 4, !tbaa !5
  %5654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5655 = load i32, ptr %5654, align 4, !tbaa !5
  %5656 = call ptr @s2n_strerror(i32 noundef %5655, ptr noundef @.str.4)
  %5657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5658 = load i32, ptr %5657, align 4, !tbaa !5
  %5659 = call ptr @s2n_strerror_debug(i32 noundef %5658, ptr noundef @.str.4)
  %5660 = call ptr @__errno_location() #9
  %5661 = load i32, ptr %5660, align 4, !tbaa !5
  %5662 = call ptr @strerror(i32 noundef %5661) #8
  %5663 = call ptr @__errno_location() #9
  %5664 = load i32, ptr %5663, align 4, !tbaa !5
  %5665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5652, ptr noundef @.str.5, i32 noundef %5653, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 643, ptr noundef %5656, ptr noundef %5659, ptr noundef %5662, i32 noundef %5664) #8
  br label %5666

5666:                                             ; preds = %5649, %5632
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #8
  br label %5667

5667:                                             ; preds = %5666
  br label %5668

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

5669:                                             ; No predecessors!
  br label %5670

5670:                                             ; preds = %5669
  br label %5671

5671:                                             ; preds = %5670, %5615
  br label %5672

5672:                                             ; preds = %5671
  br label %5673

5673:                                             ; preds = %5672
  br label %5674

5674:                                             ; preds = %5673
  br label %5675

5675:                                             ; preds = %5674
  %5676 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %5677 = icmp eq i32 %5676, -1
  br i1 %5677, label %5678, label %5731

5678:                                             ; preds = %5675
  br label %5679

5679:                                             ; preds = %5678
  br label %5680

5680:                                             ; preds = %5679
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #8
  %5681 = call ptr @__errno_location() #9
  %5682 = load i32, ptr %5681, align 4, !tbaa !5
  store i32 %5682, ptr %99, align 4, !tbaa !5
  %5683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5684 = call i32 @s2n_print_stacktrace(ptr noundef %5683)
  %5685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5686 = trunc i8 %5685 to i1
  br i1 %5686, label %5687, label %5709

5687:                                             ; preds = %5680
  %5688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5689 = call i32 @fileno(ptr noundef %5688) #8
  %5690 = call i32 @isatty(i32 noundef %5689) #8
  %5691 = icmp ne i32 %5690, 0
  br i1 %5691, label %5692, label %5709

5692:                                             ; preds = %5687
  %5693 = load i32, ptr %99, align 4, !tbaa !5
  %5694 = call ptr @__errno_location() #9
  store i32 %5693, ptr %5694, align 4, !tbaa !5
  %5695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5696 = load i32, ptr @test_count, align 4, !tbaa !5
  %5697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5698 = load i32, ptr %5697, align 4, !tbaa !5
  %5699 = call ptr @s2n_strerror(i32 noundef %5698, ptr noundef @.str.4)
  %5700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5701 = load i32, ptr %5700, align 4, !tbaa !5
  %5702 = call ptr @s2n_strerror_debug(i32 noundef %5701, ptr noundef @.str.4)
  %5703 = call ptr @__errno_location() #9
  %5704 = load i32, ptr %5703, align 4, !tbaa !5
  %5705 = call ptr @strerror(i32 noundef %5704) #8
  %5706 = call ptr @__errno_location() #9
  %5707 = load i32, ptr %5706, align 4, !tbaa !5
  %5708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5695, ptr noundef @.str.2, i32 noundef %5696, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 643, ptr noundef %5699, ptr noundef %5702, ptr noundef %5705, i32 noundef %5707) #8
  br label %5726

5709:                                             ; preds = %5687, %5680
  %5710 = load i32, ptr %99, align 4, !tbaa !5
  %5711 = call ptr @__errno_location() #9
  store i32 %5710, ptr %5711, align 4, !tbaa !5
  %5712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5713 = load i32, ptr @test_count, align 4, !tbaa !5
  %5714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5715 = load i32, ptr %5714, align 4, !tbaa !5
  %5716 = call ptr @s2n_strerror(i32 noundef %5715, ptr noundef @.str.4)
  %5717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5718 = load i32, ptr %5717, align 4, !tbaa !5
  %5719 = call ptr @s2n_strerror_debug(i32 noundef %5718, ptr noundef @.str.4)
  %5720 = call ptr @__errno_location() #9
  %5721 = load i32, ptr %5720, align 4, !tbaa !5
  %5722 = call ptr @strerror(i32 noundef %5721) #8
  %5723 = call ptr @__errno_location() #9
  %5724 = load i32, ptr %5723, align 4, !tbaa !5
  %5725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5712, ptr noundef @.str.5, i32 noundef %5713, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 643, ptr noundef %5716, ptr noundef %5719, ptr noundef %5722, i32 noundef %5724) #8
  br label %5726

5726:                                             ; preds = %5709, %5692
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #8
  br label %5727

5727:                                             ; preds = %5726
  br label %5728

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

5729:                                             ; No predecessors!
  br label %5730

5730:                                             ; preds = %5729
  br label %5731

5731:                                             ; preds = %5730, %5675
  br label %5732

5732:                                             ; preds = %5731
  br label %5733

5733:                                             ; preds = %5732
  %5734 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5735 = trunc i8 %5734 to i1
  br i1 %5735, label %5736, label %5752

5736:                                             ; preds = %5733
  %5737 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5738 = call i32 @fileno(ptr noundef %5737) #8
  %5739 = call i32 @isatty(i32 noundef %5738) #8
  %5740 = icmp ne i32 %5739, 0
  br i1 %5740, label %5741, label %5752

5741:                                             ; preds = %5736
  %5742 = load i32, ptr @test_count, align 4, !tbaa !5
  %5743 = icmp ne i32 %5742, 0
  br i1 %5743, label %5744, label %5748

5744:                                             ; preds = %5741
  %5745 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5746 = load i32, ptr @test_count, align 4, !tbaa !5
  %5747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5745, ptr noundef @.str.36, i32 noundef %5746) #8
  br label %5751

5748:                                             ; preds = %5741
  %5749 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5749, ptr noundef @.str.37) #8
  br label %5751

5751:                                             ; preds = %5748, %5744
  br label %5763

5752:                                             ; preds = %5736, %5733
  %5753 = load i32, ptr @test_count, align 4, !tbaa !5
  %5754 = icmp ne i32 %5753, 0
  br i1 %5754, label %5755, label %5759

5755:                                             ; preds = %5752
  %5756 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5757 = load i32, ptr @test_count, align 4, !tbaa !5
  %5758 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5756, ptr noundef @.str.38, i32 noundef %5757) #8
  br label %5762

5759:                                             ; preds = %5752
  %5760 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5760, ptr noundef @.str.39) #8
  br label %5762

5762:                                             ; preds = %5759, %5755
  br label %5763

5763:                                             ; preds = %5762, %5751
  store i32 0, ptr %3, align 4
  store i32 1, ptr %100, align 4
  br label %5768

5764:                                             ; No predecessors!
  br label %5765

5765:                                             ; preds = %5764
  br label %5766

5766:                                             ; preds = %5765
  br label %5767

5767:                                             ; preds = %5766
  store i32 0, ptr %100, align 4
  br label %5768

5768:                                             ; preds = %5767, %5763
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #8
  %5769 = load i32, ptr %100, align 4
  switch i32 %5769, label %5772 [
    i32 0, label %5770
    i32 1, label %5770
  ]

5770:                                             ; preds = %5768, %5768
  %5771 = load i32, ptr %3, align 4
  ret i32 %5771

5772:                                             ; preds = %5768
  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_disable_x509_verification(ptr noundef) #2

declare i32 @s2n_config_set_check_stapled_ocsp_response(ptr noundef, i8 noundef zeroext) #2

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

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

; Function Attrs: nounwind
declare i32 @fork() #3

declare i32 @s2n_config_free(ptr noundef) #2

declare i32 @s2n_connection_free(ptr 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_connection_wipe(ptr noundef) #2

declare i32 @s2n_cleanup() #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { 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, !7, i64 219}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!16, !7, i64 218}
!43 = !{!16, !7, i64 220}
!44 = !{!16, !6, i64 2172}
!45 = !{!16, !6, i64 2176}


; 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
@zero_to_thirty_one = external dso_local global [32 x i8], align 16
@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 [92 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 [60 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
declare dso_local void @fragmented_message(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

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

declare i32 @close(i32 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare dso_local void @coalesced_message(i32 noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local void @interleaved_message(i32 noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local void @interleaved_fragmented_fatal_alert(i32 noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare dso_local void @interleaved_fragmented_warning_alert(i32 noundef) local_unnamed_addr #0

; 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
  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
  %6 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #9
  %8 = load ptr, ptr @stdout, align 8, !tbaa !9
  %9 = tail call i32 @fflush(ptr noundef %8)
  %10 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #9
  %11 = icmp eq i32 %10, -1
  br i1 %11, label %12, label %36

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

19:                                               ; preds = %12
  %20 = load ptr, ptr @stderr, align 8, !tbaa !9
  %21 = tail call i32 @fileno(ptr noundef %20) #9
  %22 = tail call i32 @isatty(i32 noundef %21) #9
  %.not358 = icmp eq i32 %22, 0
  br i1 %.not358, label %23, label %24

23:                                               ; preds = %19, %12
  br label %24

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

36:                                               ; preds = %2
  %37 = load i32, ptr @test_count, align 4, !tbaa !5
  %38 = add nsw i32 %37, 1
  store i32 %38, ptr @test_count, align 4, !tbaa !5
  %39 = tail call i32 @s2n_enable_atexit() #9
  %40 = icmp eq i32 %39, -1
  br i1 %40, label %41, label %65

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

48:                                               ; preds = %41
  %49 = load ptr, ptr @stderr, align 8, !tbaa !9
  %50 = tail call i32 @fileno(ptr noundef %49) #9
  %51 = tail call i32 @isatty(i32 noundef %50) #9
  %.not357 = icmp eq i32 %51, 0
  br i1 %.not357, label %52, label %53

52:                                               ; preds = %48, %41
  br label %53

53:                                               ; preds = %48, %52
  %.str.5.sink369 = phi ptr [ @.str.5, %52 ], [ @.str.2, %48 ]
  store i32 %43, ptr %42, align 4, !tbaa !5
  %54 = load ptr, ptr @stderr, align 8, !tbaa !9
  %55 = load i32, ptr @test_count, align 4, !tbaa !5
  %56 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %57 = load i32, ptr %56, align 4, !tbaa !5
  %58 = tail call ptr @s2n_strerror(i32 noundef %57, ptr noundef nonnull @.str.4) #9
  %59 = load i32, ptr %56, align 4, !tbaa !5
  %60 = tail call ptr @s2n_strerror_debug(i32 noundef %59, ptr noundef nonnull @.str.4) #9
  %61 = load i32, ptr %42, align 4, !tbaa !5
  %62 = tail call ptr @strerror(i32 noundef %61) #9
  %63 = load i32, ptr %42, align 4, !tbaa !5
  %64 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %54, ptr noundef nonnull %.str.5.sink369, i32 noundef %55, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 400, ptr noundef %58, ptr noundef %60, ptr noundef %62, i32 noundef %63) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

65:                                               ; preds = %36
  %66 = tail call i32 @s2n_init() #9
  %67 = icmp eq i32 %66, -1
  br i1 %67, label %68, label %92

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

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

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

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

92:                                               ; preds = %65
  %93 = load i32, ptr @test_count, align 4, !tbaa !5
  %94 = add nsw i32 %93, 1
  store i32 %94, ptr @test_count, align 4, !tbaa !5
  %95 = tail call i32 (...) @s2n_disable_tls13_in_test() #9
  %96 = icmp eq i32 %95, -1
  br i1 %96, label %97, label %121

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

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

108:                                              ; preds = %104, %97
  br label %109

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

121:                                              ; preds = %92
  %122 = load i32, ptr @test_count, align 4, !tbaa !5
  %123 = add nsw i32 %122, 1
  store i32 %123, ptr @test_count, align 4, !tbaa !5
  %124 = tail call ptr @s2n_config_new() #9
  %125 = icmp eq ptr %124, null
  br i1 %125, label %126, label %150

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

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

137:                                              ; preds = %133, %126
  br label %138

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

150:                                              ; preds = %121
  %151 = load i32, ptr @test_count, align 4, !tbaa !5
  %152 = add nsw i32 %151, 1
  store i32 %152, ptr @test_count, align 4, !tbaa !5
  %153 = tail call i32 @s2n_config_disable_x509_verification(ptr noundef nonnull %124) #9
  %154 = icmp eq i32 %153, -1
  br i1 %154, label %155, label %179

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

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

166:                                              ; preds = %162, %155
  br label %167

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

179:                                              ; preds = %150
  %180 = load i32, ptr @test_count, align 4, !tbaa !5
  %181 = add nsw i32 %180, 1
  store i32 %181, ptr @test_count, align 4, !tbaa !5
  %182 = tail call i32 @s2n_config_set_check_stapled_ocsp_response(ptr noundef nonnull %124, i8 noundef zeroext 0) #9
  %183 = icmp eq i32 %182, -1
  br i1 %183, label %184, label %208

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

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

195:                                              ; preds = %191, %184
  br label %196

196:                                              ; preds = %191, %195
  %.str.5.sink424 = phi ptr [ @.str.5, %195 ], [ @.str.2, %191 ]
  store i32 %186, ptr %185, align 4, !tbaa !5
  %197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %198 = load i32, ptr @test_count, align 4, !tbaa !5
  %199 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %200 = load i32, ptr %199, align 4, !tbaa !5
  %201 = tail call ptr @s2n_strerror(i32 noundef %200, ptr noundef nonnull @.str.4) #9
  %202 = load i32, ptr %199, align 4, !tbaa !5
  %203 = tail call ptr @s2n_strerror_debug(i32 noundef %202, ptr noundef nonnull @.str.4) #9
  %204 = load i32, ptr %185, align 4, !tbaa !5
  %205 = tail call ptr @strerror(i32 noundef %204) #9
  %206 = load i32, ptr %185, align 4, !tbaa !5
  %207 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %197, ptr noundef nonnull %.str.5.sink424, i32 noundef %198, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 405, ptr noundef %201, ptr noundef %203, ptr noundef %205, i32 noundef %206) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

208:                                              ; preds = %179
  %209 = load i32, ptr @test_count, align 4, !tbaa !5
  %210 = add nsw i32 %209, 1
  store i32 %210, ptr @test_count, align 4, !tbaa !5
  %211 = tail call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %124, ptr noundef nonnull @.str.12) #9
  %212 = icmp eq i32 %211, -1
  br i1 %212, label %213, label %237

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

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

224:                                              ; preds = %220, %213
  br label %225

225:                                              ; preds = %220, %224
  %.str.5.sink435 = phi ptr [ @.str.5, %224 ], [ @.str.2, %220 ]
  store i32 %215, ptr %214, align 4, !tbaa !5
  %226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %227 = load i32, ptr @test_count, align 4, !tbaa !5
  %228 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %229 = load i32, ptr %228, align 4, !tbaa !5
  %230 = tail call ptr @s2n_strerror(i32 noundef %229, ptr noundef nonnull @.str.4) #9
  %231 = load i32, ptr %228, align 4, !tbaa !5
  %232 = tail call ptr @s2n_strerror_debug(i32 noundef %231, ptr noundef nonnull @.str.4) #9
  %233 = load i32, ptr %214, align 4, !tbaa !5
  %234 = tail call ptr @strerror(i32 noundef %233) #9
  %235 = load i32, ptr %214, align 4, !tbaa !5
  %236 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %226, ptr noundef nonnull %.str.5.sink435, i32 noundef %227, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 408, ptr noundef %230, ptr noundef %232, ptr noundef %234, i32 noundef %235) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

237:                                              ; preds = %208
  %238 = load i32, ptr @test_count, align 4, !tbaa !5
  %239 = add nsw i32 %238, 1
  store i32 %239, ptr @test_count, align 4, !tbaa !5
  %240 = tail call ptr @s2n_connection_new(i32 noundef 1) #9
  %241 = icmp eq ptr %240, null
  br i1 %241, label %242, label %266

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

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

253:                                              ; preds = %249, %242
  br label %254

254:                                              ; preds = %249, %253
  %.str.5.sink446 = phi ptr [ @.str.5, %253 ], [ @.str.2, %249 ]
  store i32 %244, ptr %243, align 4, !tbaa !5
  %255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %256 = load i32, ptr @test_count, align 4, !tbaa !5
  %257 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %258 = load i32, ptr %257, align 4, !tbaa !5
  %259 = tail call ptr @s2n_strerror(i32 noundef %258, ptr noundef nonnull @.str.4) #9
  %260 = load i32, ptr %257, align 4, !tbaa !5
  %261 = tail call ptr @s2n_strerror_debug(i32 noundef %260, ptr noundef nonnull @.str.4) #9
  %262 = load i32, ptr %243, align 4, !tbaa !5
  %263 = tail call ptr @strerror(i32 noundef %262) #9
  %264 = load i32, ptr %243, align 4, !tbaa !5
  %265 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %255, ptr noundef nonnull %.str.5.sink446, i32 noundef %256, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 409, ptr noundef %259, ptr noundef %261, ptr noundef %263, i32 noundef %264) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

266:                                              ; preds = %237
  %267 = load i32, ptr @test_count, align 4, !tbaa !5
  %268 = add nsw i32 %267, 1
  store i32 %268, ptr @test_count, align 4, !tbaa !5
  %269 = tail call i32 @s2n_connection_set_config(ptr noundef nonnull %240, ptr noundef nonnull %124) #9
  %270 = icmp eq i32 %269, -1
  br i1 %270, label %271, label %295

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

278:                                              ; preds = %271
  %279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %280 = tail call i32 @fileno(ptr noundef %279) #9
  %281 = tail call i32 @isatty(i32 noundef %280) #9
  %.not349 = icmp eq i32 %281, 0
  br i1 %.not349, label %282, label %283

282:                                              ; preds = %278, %271
  br label %283

283:                                              ; preds = %278, %282
  %.str.5.sink457 = phi ptr [ @.str.5, %282 ], [ @.str.2, %278 ]
  store i32 %273, ptr %272, align 4, !tbaa !5
  %284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %285 = load i32, ptr @test_count, align 4, !tbaa !5
  %286 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %287 = load i32, ptr %286, align 4, !tbaa !5
  %288 = tail call ptr @s2n_strerror(i32 noundef %287, ptr noundef nonnull @.str.4) #9
  %289 = load i32, ptr %286, align 4, !tbaa !5
  %290 = tail call ptr @s2n_strerror_debug(i32 noundef %289, ptr noundef nonnull @.str.4) #9
  %291 = load i32, ptr %272, align 4, !tbaa !5
  %292 = tail call ptr @strerror(i32 noundef %291) #9
  %293 = load i32, ptr %272, align 4, !tbaa !5
  %294 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %284, ptr noundef nonnull %.str.5.sink457, i32 noundef %285, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 410, ptr noundef %288, ptr noundef %290, ptr noundef %292, i32 noundef %293) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

295:                                              ; preds = %266
  %296 = getelementptr inbounds i8, ptr %240, i64 219
  store i8 33, ptr %296, align 1, !tbaa !15
  %297 = getelementptr inbounds i8, ptr %240, i64 218
  store i8 33, ptr %297, align 2, !tbaa !42
  %298 = getelementptr inbounds i8, ptr %240, i64 220
  store i8 33, ptr %298, align 4, !tbaa !43
  %299 = load i32, ptr @test_count, align 4, !tbaa !5
  %300 = add nsw i32 %299, 1
  store i32 %300, ptr @test_count, align 4, !tbaa !5
  %301 = call i32 @pipe(ptr noundef nonnull %5) #9
  %302 = icmp eq i32 %301, -1
  br i1 %302, label %303, label %327

303:                                              ; preds = %295
  %304 = tail call ptr @__errno_location() #10
  %305 = load i32, ptr %304, align 4, !tbaa !5
  %306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %307 = call i32 @s2n_print_stacktrace(ptr noundef %306) #9
  %308 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %309 = trunc nuw i8 %308 to i1
  br i1 %309, label %310, label %314

310:                                              ; preds = %303
  %311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %312 = call i32 @fileno(ptr noundef %311) #9
  %313 = call i32 @isatty(i32 noundef %312) #9
  %.not348 = icmp eq i32 %313, 0
  br i1 %.not348, label %314, label %315

314:                                              ; preds = %310, %303
  br label %315

315:                                              ; preds = %310, %314
  %.str.5.sink468 = phi ptr [ @.str.5, %314 ], [ @.str.2, %310 ]
  store i32 %305, ptr %304, align 4, !tbaa !5
  %316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %317 = load i32, ptr @test_count, align 4, !tbaa !5
  %318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %319 = load i32, ptr %318, align 4, !tbaa !5
  %320 = call ptr @s2n_strerror(i32 noundef %319, ptr noundef nonnull @.str.4) #9
  %321 = load i32, ptr %318, align 4, !tbaa !5
  %322 = call ptr @s2n_strerror_debug(i32 noundef %321, ptr noundef nonnull @.str.4) #9
  %323 = load i32, ptr %304, align 4, !tbaa !5
  %324 = call ptr @strerror(i32 noundef %323) #9
  %325 = load i32, ptr %304, align 4, !tbaa !5
  %326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %316, ptr noundef nonnull %.str.5.sink468, i32 noundef %317, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 417, ptr noundef %320, ptr noundef %322, ptr noundef %324, i32 noundef %325) #11
  call void @exit(i32 noundef 1) #12
  unreachable

327:                                              ; preds = %295
  %328 = load i32, ptr @test_count, align 4, !tbaa !5
  %329 = add nsw i32 %328, 1
  store i32 %329, ptr @test_count, align 4, !tbaa !5
  %330 = load i32, ptr %5, align 4, !tbaa !5
  %331 = call i32 @s2n_connection_set_read_fd(ptr noundef nonnull %240, i32 noundef %330) #9
  %332 = icmp eq i32 %331, -1
  br i1 %332, label %333, label %357

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

340:                                              ; preds = %333
  %341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %342 = call i32 @fileno(ptr noundef %341) #9
  %343 = call i32 @isatty(i32 noundef %342) #9
  %.not347 = icmp eq i32 %343, 0
  br i1 %.not347, label %344, label %345

344:                                              ; preds = %340, %333
  br label %345

345:                                              ; preds = %340, %344
  %.str.5.sink479 = phi ptr [ @.str.5, %344 ], [ @.str.2, %340 ]
  store i32 %335, ptr %334, align 4, !tbaa !5
  %346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %347 = load i32, ptr @test_count, align 4, !tbaa !5
  %348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %349 = load i32, ptr %348, align 4, !tbaa !5
  %350 = call ptr @s2n_strerror(i32 noundef %349, ptr noundef nonnull @.str.4) #9
  %351 = load i32, ptr %348, align 4, !tbaa !5
  %352 = call ptr @s2n_strerror_debug(i32 noundef %351, ptr noundef nonnull @.str.4) #9
  %353 = load i32, ptr %334, align 4, !tbaa !5
  %354 = call ptr @strerror(i32 noundef %353) #9
  %355 = load i32, ptr %334, align 4, !tbaa !5
  %356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %346, ptr noundef nonnull %.str.5.sink479, i32 noundef %347, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 420, ptr noundef %350, ptr noundef %352, ptr noundef %354, i32 noundef %355) #11
  call void @exit(i32 noundef 1) #12
  unreachable

357:                                              ; preds = %327
  %358 = getelementptr inbounds i8, ptr %240, i64 2172
  store i32 3, ptr %358, align 4, !tbaa !44
  %359 = getelementptr inbounds i8, ptr %240, i64 2176
  store i32 1, ptr %359, align 8, !tbaa !45
  %360 = call i32 @fork() #9
  %361 = icmp eq i32 %360, 0
  %362 = load i32, ptr @test_count, align 4, !tbaa !5
  %363 = add nsw i32 %362, 1
  store i32 %363, ptr @test_count, align 4, !tbaa !5
  br i1 %361, label %364, label %453

364:                                              ; preds = %357
  %365 = load i32, ptr %5, align 4, !tbaa !5
  %366 = call i32 @close(i32 noundef %365) #9
  %367 = icmp eq i32 %366, -1
  br i1 %367, label %368, label %392

368:                                              ; preds = %364
  %369 = tail call ptr @__errno_location() #10
  %370 = load i32, ptr %369, align 4, !tbaa !5
  %371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %372 = call i32 @s2n_print_stacktrace(ptr noundef %371) #9
  %373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %374 = trunc nuw i8 %373 to i1
  br i1 %374, label %375, label %379

375:                                              ; preds = %368
  %376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %377 = call i32 @fileno(ptr noundef %376) #9
  %378 = call i32 @isatty(i32 noundef %377) #9
  %.not346 = icmp eq i32 %378, 0
  br i1 %.not346, label %379, label %380

379:                                              ; preds = %375, %368
  br label %380

380:                                              ; preds = %375, %379
  %.str.5.sink490 = phi ptr [ @.str.5, %379 ], [ @.str.2, %375 ]
  store i32 %370, ptr %369, align 4, !tbaa !5
  %381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %382 = load i32, ptr @test_count, align 4, !tbaa !5
  %383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %384 = load i32, ptr %383, align 4, !tbaa !5
  %385 = call ptr @s2n_strerror(i32 noundef %384, ptr noundef nonnull @.str.4) #9
  %386 = load i32, ptr %383, align 4, !tbaa !5
  %387 = call ptr @s2n_strerror_debug(i32 noundef %386, ptr noundef nonnull @.str.4) #9
  %388 = load i32, ptr %369, align 4, !tbaa !5
  %389 = call ptr @strerror(i32 noundef %388) #9
  %390 = load i32, ptr %369, align 4, !tbaa !5
  %391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %381, ptr noundef nonnull %.str.5.sink490, i32 noundef %382, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 430, ptr noundef %385, ptr noundef %387, ptr noundef %389, i32 noundef %390) #11
  call void @exit(i32 noundef 1) #12
  unreachable

392:                                              ; preds = %364
  %393 = getelementptr inbounds i8, ptr %5, i64 4
  %394 = load i32, ptr %393, align 4, !tbaa !5
  call void @fragmented_message(i32 noundef %394)
  %395 = load i32, ptr @test_count, align 4, !tbaa !5
  %396 = add nsw i32 %395, 1
  store i32 %396, ptr @test_count, align 4, !tbaa !5
  %397 = call i32 @s2n_config_free(ptr noundef nonnull %124) #9
  %398 = icmp eq i32 %397, -1
  br i1 %398, label %399, label %423

399:                                              ; preds = %392
  %400 = tail call ptr @__errno_location() #10
  %401 = load i32, ptr %400, align 4, !tbaa !5
  %402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %403 = call i32 @s2n_print_stacktrace(ptr noundef %402) #9
  %404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %405 = trunc nuw i8 %404 to i1
  br i1 %405, label %406, label %410

406:                                              ; preds = %399
  %407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %408 = call i32 @fileno(ptr noundef %407) #9
  %409 = call i32 @isatty(i32 noundef %408) #9
  %.not345 = icmp eq i32 %409, 0
  br i1 %.not345, label %410, label %411

410:                                              ; preds = %406, %399
  br label %411

411:                                              ; preds = %406, %410
  %.str.5.sink501 = phi ptr [ @.str.5, %410 ], [ @.str.2, %406 ]
  store i32 %401, ptr %400, 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 nonnull @.str.4) #9
  %417 = load i32, ptr %414, align 4, !tbaa !5
  %418 = call ptr @s2n_strerror_debug(i32 noundef %417, ptr noundef nonnull @.str.4) #9
  %419 = load i32, ptr %400, align 4, !tbaa !5
  %420 = call ptr @strerror(i32 noundef %419) #9
  %421 = load i32, ptr %400, align 4, !tbaa !5
  %422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %412, ptr noundef nonnull %.str.5.sink501, i32 noundef %413, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 434, ptr noundef %416, ptr noundef %418, ptr noundef %420, i32 noundef %421) #11
  call void @exit(i32 noundef 1) #12
  unreachable

423:                                              ; preds = %392
  %424 = load i32, ptr @test_count, align 4, !tbaa !5
  %425 = add nsw i32 %424, 1
  store i32 %425, ptr @test_count, align 4, !tbaa !5
  %426 = call i32 @s2n_connection_free(ptr noundef nonnull %240) #9
  %427 = icmp eq i32 %426, -1
  br i1 %427, label %428, label %452

428:                                              ; preds = %423
  %429 = tail call ptr @__errno_location() #10
  %430 = load i32, ptr %429, align 4, !tbaa !5
  %431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %432 = call i32 @s2n_print_stacktrace(ptr noundef %431) #9
  %433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %434 = trunc nuw i8 %433 to i1
  br i1 %434, label %435, label %439

435:                                              ; preds = %428
  %436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %437 = call i32 @fileno(ptr noundef %436) #9
  %438 = call i32 @isatty(i32 noundef %437) #9
  %.not344 = icmp eq i32 %438, 0
  br i1 %.not344, label %439, label %440

439:                                              ; preds = %435, %428
  br label %440

440:                                              ; preds = %435, %439
  %.str.5.sink512 = phi ptr [ @.str.5, %439 ], [ @.str.2, %435 ]
  store i32 %430, ptr %429, align 4, !tbaa !5
  %441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %442 = load i32, ptr @test_count, align 4, !tbaa !5
  %443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %444 = load i32, ptr %443, align 4, !tbaa !5
  %445 = call ptr @s2n_strerror(i32 noundef %444, ptr noundef nonnull @.str.4) #9
  %446 = load i32, ptr %443, align 4, !tbaa !5
  %447 = call ptr @s2n_strerror_debug(i32 noundef %446, ptr noundef nonnull @.str.4) #9
  %448 = load i32, ptr %429, align 4, !tbaa !5
  %449 = call ptr @strerror(i32 noundef %448) #9
  %450 = load i32, ptr %429, align 4, !tbaa !5
  %451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %441, ptr noundef nonnull %.str.5.sink512, i32 noundef %442, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 435, ptr noundef %445, ptr noundef %447, ptr noundef %449, i32 noundef %450) #11
  call void @exit(i32 noundef 1) #12
  unreachable

452:                                              ; preds = %423
  call void @exit(i32 noundef 0) #12
  unreachable

453:                                              ; preds = %357
  %454 = getelementptr inbounds i8, ptr %5, i64 4
  %455 = load i32, ptr %454, align 4, !tbaa !5
  %456 = call i32 @close(i32 noundef %455) #9
  %457 = icmp eq i32 %456, -1
  br i1 %457, label %458, label %482

458:                                              ; preds = %453
  %459 = tail call ptr @__errno_location() #10
  %460 = load i32, ptr %459, align 4, !tbaa !5
  %461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %462 = call i32 @s2n_print_stacktrace(ptr noundef %461) #9
  %463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %464 = trunc nuw i8 %463 to i1
  br i1 %464, label %465, label %469

465:                                              ; preds = %458
  %466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %467 = call i32 @fileno(ptr noundef %466) #9
  %468 = call i32 @isatty(i32 noundef %467) #9
  %.not343 = icmp eq i32 %468, 0
  br i1 %.not343, label %469, label %470

469:                                              ; preds = %465, %458
  br label %470

470:                                              ; preds = %465, %469
  %.str.5.sink523 = phi ptr [ @.str.5, %469 ], [ @.str.2, %465 ]
  store i32 %460, ptr %459, align 4, !tbaa !5
  %471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %472 = load i32, ptr @test_count, align 4, !tbaa !5
  %473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %474 = load i32, ptr %473, align 4, !tbaa !5
  %475 = call ptr @s2n_strerror(i32 noundef %474, ptr noundef nonnull @.str.4) #9
  %476 = load i32, ptr %473, align 4, !tbaa !5
  %477 = call ptr @s2n_strerror_debug(i32 noundef %476, ptr noundef nonnull @.str.4) #9
  %478 = load i32, ptr %459, align 4, !tbaa !5
  %479 = call ptr @strerror(i32 noundef %478) #9
  %480 = load i32, ptr %459, align 4, !tbaa !5
  %481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %471, ptr noundef nonnull %.str.5.sink523, i32 noundef %472, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 440, ptr noundef %475, ptr noundef %477, ptr noundef %479, i32 noundef %480) #11
  call void @exit(i32 noundef 1) #12
  unreachable

482:                                              ; preds = %453
  %483 = load i32, ptr @test_count, align 4, !tbaa !5
  %484 = add nsw i32 %483, 1
  store i32 %484, ptr @test_count, align 4, !tbaa !5
  %485 = call i32 @s2n_negotiate(ptr noundef nonnull %240, ptr noundef nonnull %3) #9
  %486 = icmp eq i32 %485, -1
  br i1 %486, label %511, label %487

487:                                              ; preds = %482
  %488 = tail call ptr @__errno_location() #10
  %489 = load i32, ptr %488, align 4, !tbaa !5
  %490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %491 = call i32 @s2n_print_stacktrace(ptr noundef %490) #9
  %492 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %493 = trunc nuw i8 %492 to i1
  br i1 %493, label %494, label %498

494:                                              ; preds = %487
  %495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %496 = call i32 @fileno(ptr noundef %495) #9
  %497 = call i32 @isatty(i32 noundef %496) #9
  %.not = icmp eq i32 %497, 0
  br i1 %.not, label %498, label %499

498:                                              ; preds = %494, %487
  br label %499

499:                                              ; preds = %494, %498
  %.str.5.sink534 = phi ptr [ @.str.5, %498 ], [ @.str.2, %494 ]
  store i32 %489, ptr %488, align 4, !tbaa !5
  %500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %501 = load i32, ptr @test_count, align 4, !tbaa !5
  %502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %503 = load i32, ptr %502, align 4, !tbaa !5
  %504 = call ptr @s2n_strerror(i32 noundef %503, ptr noundef nonnull @.str.4) #9
  %505 = load i32, ptr %502, align 4, !tbaa !5
  %506 = call ptr @s2n_strerror_debug(i32 noundef %505, ptr noundef nonnull @.str.4) #9
  %507 = load i32, ptr %488, align 4, !tbaa !5
  %508 = call ptr @strerror(i32 noundef %507) #9
  %509 = load i32, ptr %488, align 4, !tbaa !5
  %510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %500, ptr noundef nonnull %.str.5.sink534, i32 noundef %501, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 443, ptr noundef %504, ptr noundef %506, ptr noundef %508, i32 noundef %509) #11
  call void @exit(i32 noundef 1) #12
  unreachable

511:                                              ; preds = %482
  %512 = load i32, ptr @test_count, align 4, !tbaa !5
  %513 = add nsw i32 %512, 1
  store i32 %513, ptr @test_count, align 4, !tbaa !5
  %514 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %515 = load i32, ptr %514, align 4, !tbaa !5
  %516 = icmp eq i32 %515, 0
  br i1 %516, label %517, label %540

517:                                              ; preds = %511
  %518 = tail call ptr @__errno_location() #10
  %519 = load i32, ptr %518, align 4, !tbaa !5
  %520 = load ptr, ptr @stderr, align 8, !tbaa !9
  %521 = call i32 @s2n_print_stacktrace(ptr noundef %520) #9
  %522 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %523 = trunc nuw i8 %522 to i1
  br i1 %523, label %524, label %528

524:                                              ; preds = %517
  %525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %526 = call i32 @fileno(ptr noundef %525) #9
  %527 = call i32 @isatty(i32 noundef %526) #9
  %.not342 = icmp eq i32 %527, 0
  br i1 %.not342, label %528, label %529

528:                                              ; preds = %524, %517
  br label %529

529:                                              ; preds = %524, %528
  %.str.5.sink545 = phi ptr [ @.str.5, %528 ], [ @.str.2, %524 ]
  store i32 %519, ptr %518, align 4, !tbaa !5
  %530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %531 = load i32, ptr @test_count, align 4, !tbaa !5
  %532 = load i32, ptr %514, align 4, !tbaa !5
  %533 = call ptr @s2n_strerror(i32 noundef %532, ptr noundef nonnull @.str.4) #9
  %534 = load i32, ptr %514, align 4, !tbaa !5
  %535 = call ptr @s2n_strerror_debug(i32 noundef %534, ptr noundef nonnull @.str.4) #9
  %536 = load i32, ptr %518, align 4, !tbaa !5
  %537 = call ptr @strerror(i32 noundef %536) #9
  %538 = load i32, ptr %518, align 4, !tbaa !5
  %539 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %530, ptr noundef nonnull %.str.5.sink545, i32 noundef %531, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 443, ptr noundef %533, ptr noundef %535, ptr noundef %537, i32 noundef %538) #11
  call void @exit(i32 noundef 1) #12
  unreachable

540:                                              ; preds = %511
  %541 = add nsw i32 %512, 2
  store i32 %541, ptr @test_count, align 4, !tbaa !5
  %542 = call ptr @s2n_strerror_debug(i32 noundef %515, ptr noundef nonnull @.str.4) #9
  %543 = icmp eq ptr %542, null
  br i1 %543, label %544, label %567

544:                                              ; preds = %540
  %545 = tail call ptr @__errno_location() #10
  %546 = load i32, ptr %545, align 4, !tbaa !5
  %547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %548 = call i32 @s2n_print_stacktrace(ptr noundef %547) #9
  %549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %550 = trunc nuw i8 %549 to i1
  br i1 %550, label %551, label %555

551:                                              ; preds = %544
  %552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %553 = call i32 @fileno(ptr noundef %552) #9
  %554 = call i32 @isatty(i32 noundef %553) #9
  %.not341 = icmp eq i32 %554, 0
  br i1 %.not341, label %555, label %556

555:                                              ; preds = %551, %544
  br label %556

556:                                              ; preds = %551, %555
  %.str.5.sink554 = phi ptr [ @.str.5, %555 ], [ @.str.2, %551 ]
  store i32 %546, ptr %545, align 4, !tbaa !5
  %557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %558 = load i32, ptr @test_count, align 4, !tbaa !5
  %559 = load i32, ptr %514, align 4, !tbaa !5
  %560 = call ptr @s2n_strerror(i32 noundef %559, ptr noundef nonnull @.str.4) #9
  %561 = load i32, ptr %514, align 4, !tbaa !5
  %562 = call ptr @s2n_strerror_debug(i32 noundef %561, ptr noundef nonnull @.str.4) #9
  %563 = load i32, ptr %545, align 4, !tbaa !5
  %564 = call ptr @strerror(i32 noundef %563) #9
  %565 = load i32, ptr %545, align 4, !tbaa !5
  %566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %557, ptr noundef nonnull %.str.5.sink554, i32 noundef %558, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 443, ptr noundef %560, ptr noundef %562, ptr noundef %564, i32 noundef %565) #11
  call void @exit(i32 noundef 1) #12
  unreachable

567:                                              ; preds = %540
  store i32 0, ptr %514, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  %568 = tail call ptr @__errno_location() #10
  store i32 0, ptr %568, align 4, !tbaa !5
  %569 = load i32, ptr @test_count, align 4, !tbaa !5
  %570 = add nsw i32 %569, 1
  store i32 %570, ptr @test_count, align 4, !tbaa !5
  %571 = getelementptr inbounds i8, ptr %240, i64 1650
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(32) %571, ptr noundef nonnull dereferenceable(32) @zero_to_thirty_one, i64 32)
  %572 = icmp eq i32 %bcmp, 0
  br i1 %572, label %595, label %573

573:                                              ; preds = %567
  %574 = load i32, ptr %568, align 4, !tbaa !5
  %575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %576 = call i32 @s2n_print_stacktrace(ptr noundef %575) #9
  %577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %578 = trunc nuw i8 %577 to i1
  br i1 %578, label %579, label %583

579:                                              ; preds = %573
  %580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %581 = call i32 @fileno(ptr noundef %580) #9
  %582 = call i32 @isatty(i32 noundef %581) #9
  %.not265 = icmp eq i32 %582, 0
  br i1 %.not265, label %583, label %584

583:                                              ; preds = %579, %573
  br label %584

584:                                              ; preds = %579, %583
  %.str.5.sink563 = phi ptr [ @.str.5, %583 ], [ @.str.2, %579 ]
  store i32 %574, ptr %568, align 4, !tbaa !5
  %585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %586 = load i32, ptr @test_count, align 4, !tbaa !5
  %587 = load i32, ptr %514, align 4, !tbaa !5
  %588 = call ptr @s2n_strerror(i32 noundef %587, ptr noundef nonnull @.str.4) #9
  %589 = load i32, ptr %514, align 4, !tbaa !5
  %590 = call ptr @s2n_strerror_debug(i32 noundef %589, ptr noundef nonnull @.str.4) #9
  %591 = load i32, ptr %568, align 4, !tbaa !5
  %592 = call ptr @strerror(i32 noundef %591) #9
  %593 = load i32, ptr %568, align 4, !tbaa !5
  %594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %585, ptr noundef nonnull %.str.5.sink563, i32 noundef %586, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 446, ptr noundef %588, ptr noundef %590, ptr noundef %592, i32 noundef %593) #11
  call void @exit(i32 noundef 1) #12
  unreachable

595:                                              ; preds = %567
  %596 = add nsw i32 %569, 2
  store i32 %596, ptr @test_count, align 4, !tbaa !5
  %597 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %240) #9
  %598 = icmp eq i32 %597, 2
  br i1 %598, label %621, label %599

599:                                              ; preds = %595
  %600 = load i32, ptr %568, align 4, !tbaa !5
  %601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %602 = call i32 @s2n_print_stacktrace(ptr noundef %601) #9
  %603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %604 = trunc nuw i8 %603 to i1
  br i1 %604, label %605, label %609

605:                                              ; preds = %599
  %606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %607 = call i32 @fileno(ptr noundef %606) #9
  %608 = call i32 @isatty(i32 noundef %607) #9
  %.not266 = icmp eq i32 %608, 0
  br i1 %.not266, label %609, label %610

609:                                              ; preds = %605, %599
  br label %610

610:                                              ; preds = %605, %609
  %.str.5.sink572 = phi ptr [ @.str.5, %609 ], [ @.str.2, %605 ]
  store i32 %600, ptr %568, align 4, !tbaa !5
  %611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %612 = load i32, ptr @test_count, align 4, !tbaa !5
  %613 = load i32, ptr %514, align 4, !tbaa !5
  %614 = call ptr @s2n_strerror(i32 noundef %613, ptr noundef nonnull @.str.4) #9
  %615 = load i32, ptr %514, align 4, !tbaa !5
  %616 = call ptr @s2n_strerror_debug(i32 noundef %615, ptr noundef nonnull @.str.4) #9
  %617 = load i32, ptr %568, align 4, !tbaa !5
  %618 = call ptr @strerror(i32 noundef %617) #9
  %619 = load i32, ptr %568, align 4, !tbaa !5
  %620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %611, ptr noundef nonnull %.str.5.sink572, i32 noundef %612, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 449, ptr noundef %614, ptr noundef %616, ptr noundef %618, i32 noundef %619) #11
  call void @exit(i32 noundef 1) #12
  unreachable

621:                                              ; preds = %595
  %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 = call i32 @waitpid(i32 noundef %360, ptr noundef nonnull %4, i32 noundef 0) #9
  %625 = icmp eq i32 %624, %360
  br i1 %625, label %648, label %626

626:                                              ; preds = %621
  %627 = load i32, ptr %568, align 4, !tbaa !5
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = call i32 @s2n_print_stacktrace(ptr noundef %628) #9
  %630 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %631 = trunc nuw i8 %630 to i1
  br i1 %631, label %632, label %636

632:                                              ; preds = %626
  %633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %634 = call i32 @fileno(ptr noundef %633) #9
  %635 = call i32 @isatty(i32 noundef %634) #9
  %.not267 = icmp eq i32 %635, 0
  br i1 %.not267, label %636, label %637

636:                                              ; preds = %632, %626
  br label %637

637:                                              ; preds = %632, %636
  %.str.5.sink581 = phi ptr [ @.str.5, %636 ], [ @.str.2, %632 ]
  store i32 %627, ptr %568, align 4, !tbaa !5
  %638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %639 = load i32, ptr @test_count, align 4, !tbaa !5
  %640 = load i32, ptr %514, align 4, !tbaa !5
  %641 = call ptr @s2n_strerror(i32 noundef %640, ptr noundef nonnull @.str.4) #9
  %642 = load i32, ptr %514, align 4, !tbaa !5
  %643 = call ptr @s2n_strerror_debug(i32 noundef %642, ptr noundef nonnull @.str.4) #9
  %644 = load i32, ptr %568, align 4, !tbaa !5
  %645 = call ptr @strerror(i32 noundef %644) #9
  %646 = load i32, ptr %568, align 4, !tbaa !5
  %647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %638, ptr noundef nonnull %.str.5.sink581, i32 noundef %639, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 452, ptr noundef %641, ptr noundef %643, ptr noundef %645, i32 noundef %646) #11
  call void @exit(i32 noundef 1) #12
  unreachable

648:                                              ; preds = %621
  %649 = load i32, ptr @test_count, align 4, !tbaa !5
  %650 = add nsw i32 %649, 1
  store i32 %650, ptr @test_count, align 4, !tbaa !5
  %651 = load i32, ptr %4, align 4, !tbaa !5
  %652 = icmp eq i32 %651, 0
  br i1 %652, label %675, label %653

653:                                              ; preds = %648
  %654 = load i32, ptr %568, align 4, !tbaa !5
  %655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %656 = call i32 @s2n_print_stacktrace(ptr noundef %655) #9
  %657 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %658 = trunc nuw i8 %657 to i1
  br i1 %658, label %659, label %663

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

663:                                              ; preds = %659, %653
  br label %664

664:                                              ; preds = %659, %663
  %.str.5.sink590 = phi ptr [ @.str.5, %663 ], [ @.str.2, %659 ]
  store i32 %654, ptr %568, align 4, !tbaa !5
  %665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %666 = load i32, ptr @test_count, align 4, !tbaa !5
  %667 = load i32, ptr %514, align 4, !tbaa !5
  %668 = call ptr @s2n_strerror(i32 noundef %667, ptr noundef nonnull @.str.4) #9
  %669 = load i32, ptr %514, align 4, !tbaa !5
  %670 = call ptr @s2n_strerror_debug(i32 noundef %669, ptr noundef nonnull @.str.4) #9
  %671 = load i32, ptr %568, align 4, !tbaa !5
  %672 = call ptr @strerror(i32 noundef %671) #9
  %673 = load i32, ptr %568, align 4, !tbaa !5
  %674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %665, ptr noundef nonnull %.str.5.sink590, i32 noundef %666, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 453, ptr noundef %668, ptr noundef %670, ptr noundef %672, i32 noundef %673) #11
  call void @exit(i32 noundef 1) #12
  unreachable

675:                                              ; preds = %648
  %676 = add nsw i32 %649, 2
  store i32 %676, ptr @test_count, align 4, !tbaa !5
  %677 = load i32, ptr %5, align 4, !tbaa !5
  %678 = call i32 @close(i32 noundef %677) #9
  %679 = icmp eq i32 %678, -1
  br i1 %679, label %680, label %702

680:                                              ; preds = %675
  %681 = load i32, ptr %568, align 4, !tbaa !5
  %682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %683 = call i32 @s2n_print_stacktrace(ptr noundef %682) #9
  %684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %685 = trunc nuw i8 %684 to i1
  br i1 %685, label %686, label %690

686:                                              ; preds = %680
  %687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %688 = call i32 @fileno(ptr noundef %687) #9
  %689 = call i32 @isatty(i32 noundef %688) #9
  %.not340 = icmp eq i32 %689, 0
  br i1 %.not340, label %690, label %691

690:                                              ; preds = %686, %680
  br label %691

691:                                              ; preds = %686, %690
  %.str.5.sink599 = phi ptr [ @.str.5, %690 ], [ @.str.2, %686 ]
  store i32 %681, ptr %568, align 4, !tbaa !5
  %692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %693 = load i32, ptr @test_count, align 4, !tbaa !5
  %694 = load i32, ptr %514, align 4, !tbaa !5
  %695 = call ptr @s2n_strerror(i32 noundef %694, ptr noundef nonnull @.str.4) #9
  %696 = load i32, ptr %514, align 4, !tbaa !5
  %697 = call ptr @s2n_strerror_debug(i32 noundef %696, ptr noundef nonnull @.str.4) #9
  %698 = load i32, ptr %568, align 4, !tbaa !5
  %699 = call ptr @strerror(i32 noundef %698) #9
  %700 = load i32, ptr %568, align 4, !tbaa !5
  %701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %692, ptr noundef nonnull %.str.5.sink599, i32 noundef %693, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 454, ptr noundef %695, ptr noundef %697, ptr noundef %699, i32 noundef %700) #11
  call void @exit(i32 noundef 1) #12
  unreachable

702:                                              ; preds = %675
  %703 = load i32, ptr @test_count, align 4, !tbaa !5
  %704 = add nsw i32 %703, 1
  store i32 %704, ptr @test_count, align 4, !tbaa !5
  %705 = call i32 @pipe(ptr noundef nonnull %5) #9
  %706 = icmp eq i32 %705, -1
  br i1 %706, label %707, label %729

707:                                              ; preds = %702
  %708 = load i32, ptr %568, align 4, !tbaa !5
  %709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %710 = call i32 @s2n_print_stacktrace(ptr noundef %709) #9
  %711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %712 = trunc nuw i8 %711 to i1
  br i1 %712, label %713, label %717

713:                                              ; preds = %707
  %714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %715 = call i32 @fileno(ptr noundef %714) #9
  %716 = call i32 @isatty(i32 noundef %715) #9
  %.not339 = icmp eq i32 %716, 0
  br i1 %.not339, label %717, label %718

717:                                              ; preds = %713, %707
  br label %718

718:                                              ; preds = %713, %717
  %.str.5.sink608 = phi ptr [ @.str.5, %717 ], [ @.str.2, %713 ]
  store i32 %708, ptr %568, align 4, !tbaa !5
  %719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %720 = load i32, ptr @test_count, align 4, !tbaa !5
  %721 = load i32, ptr %514, align 4, !tbaa !5
  %722 = call ptr @s2n_strerror(i32 noundef %721, ptr noundef nonnull @.str.4) #9
  %723 = load i32, ptr %514, align 4, !tbaa !5
  %724 = call ptr @s2n_strerror_debug(i32 noundef %723, ptr noundef nonnull @.str.4) #9
  %725 = load i32, ptr %568, align 4, !tbaa !5
  %726 = call ptr @strerror(i32 noundef %725) #9
  %727 = load i32, ptr %568, align 4, !tbaa !5
  %728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %719, ptr noundef nonnull %.str.5.sink608, i32 noundef %720, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 457, ptr noundef %722, ptr noundef %724, ptr noundef %726, i32 noundef %727) #11
  call void @exit(i32 noundef 1) #12
  unreachable

729:                                              ; preds = %702
  %730 = load i32, ptr @test_count, align 4, !tbaa !5
  %731 = add nsw i32 %730, 1
  store i32 %731, ptr @test_count, align 4, !tbaa !5
  %732 = call i32 @s2n_connection_wipe(ptr noundef nonnull %240) #9
  %733 = icmp eq i32 %732, -1
  br i1 %733, label %734, label %756

734:                                              ; preds = %729
  %735 = load i32, ptr %568, align 4, !tbaa !5
  %736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %737 = call i32 @s2n_print_stacktrace(ptr noundef %736) #9
  %738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %739 = trunc nuw i8 %738 to i1
  br i1 %739, label %740, label %744

740:                                              ; preds = %734
  %741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %742 = call i32 @fileno(ptr noundef %741) #9
  %743 = call i32 @isatty(i32 noundef %742) #9
  %.not338 = icmp eq i32 %743, 0
  br i1 %.not338, label %744, label %745

744:                                              ; preds = %740, %734
  br label %745

745:                                              ; preds = %740, %744
  %.str.5.sink617 = phi ptr [ @.str.5, %744 ], [ @.str.2, %740 ]
  store i32 %735, ptr %568, align 4, !tbaa !5
  %746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %747 = load i32, ptr @test_count, align 4, !tbaa !5
  %748 = load i32, ptr %514, align 4, !tbaa !5
  %749 = call ptr @s2n_strerror(i32 noundef %748, ptr noundef nonnull @.str.4) #9
  %750 = load i32, ptr %514, align 4, !tbaa !5
  %751 = call ptr @s2n_strerror_debug(i32 noundef %750, ptr noundef nonnull @.str.4) #9
  %752 = load i32, ptr %568, align 4, !tbaa !5
  %753 = call ptr @strerror(i32 noundef %752) #9
  %754 = load i32, ptr %568, align 4, !tbaa !5
  %755 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %746, ptr noundef nonnull %.str.5.sink617, i32 noundef %747, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 460, ptr noundef %749, ptr noundef %751, ptr noundef %753, i32 noundef %754) #11
  call void @exit(i32 noundef 1) #12
  unreachable

756:                                              ; preds = %729
  store i8 33, ptr %296, align 1, !tbaa !15
  store i8 33, ptr %297, align 2, !tbaa !42
  store i8 33, ptr %298, align 4, !tbaa !43
  %757 = load i32, ptr @test_count, align 4, !tbaa !5
  %758 = add nsw i32 %757, 1
  store i32 %758, ptr @test_count, align 4, !tbaa !5
  %759 = load i32, ptr %5, align 4, !tbaa !5
  %760 = call i32 @s2n_connection_set_read_fd(ptr noundef nonnull %240, i32 noundef %759) #9
  %761 = icmp eq i32 %760, -1
  br i1 %761, label %762, label %784

762:                                              ; preds = %756
  %763 = load i32, ptr %568, align 4, !tbaa !5
  %764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %765 = call i32 @s2n_print_stacktrace(ptr noundef %764) #9
  %766 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %767 = trunc nuw i8 %766 to i1
  br i1 %767, label %768, label %772

768:                                              ; preds = %762
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = call i32 @fileno(ptr noundef %769) #9
  %771 = call i32 @isatty(i32 noundef %770) #9
  %.not337 = icmp eq i32 %771, 0
  br i1 %.not337, label %772, label %773

772:                                              ; preds = %768, %762
  br label %773

773:                                              ; preds = %768, %772
  %.str.5.sink626 = phi ptr [ @.str.5, %772 ], [ @.str.2, %768 ]
  store i32 %763, ptr %568, align 4, !tbaa !5
  %774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %775 = load i32, ptr @test_count, align 4, !tbaa !5
  %776 = load i32, ptr %514, align 4, !tbaa !5
  %777 = call ptr @s2n_strerror(i32 noundef %776, ptr noundef nonnull @.str.4) #9
  %778 = load i32, ptr %514, align 4, !tbaa !5
  %779 = call ptr @s2n_strerror_debug(i32 noundef %778, ptr noundef nonnull @.str.4) #9
  %780 = load i32, ptr %568, align 4, !tbaa !5
  %781 = call ptr @strerror(i32 noundef %780) #9
  %782 = load i32, ptr %568, align 4, !tbaa !5
  %783 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %774, ptr noundef nonnull %.str.5.sink626, i32 noundef %775, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 466, ptr noundef %777, ptr noundef %779, ptr noundef %781, i32 noundef %782) #11
  call void @exit(i32 noundef 1) #12
  unreachable

784:                                              ; preds = %756
  store i32 3, ptr %358, align 4, !tbaa !44
  store i32 1, ptr %359, align 8, !tbaa !45
  %785 = call i32 @fork() #9
  %786 = icmp eq i32 %785, 0
  %787 = load i32, ptr @test_count, align 4, !tbaa !5
  %788 = add nsw i32 %787, 1
  store i32 %788, ptr @test_count, align 4, !tbaa !5
  br i1 %786, label %789, label %871

789:                                              ; preds = %784
  %790 = load i32, ptr %5, align 4, !tbaa !5
  %791 = call i32 @close(i32 noundef %790) #9
  %792 = icmp eq i32 %791, -1
  br i1 %792, label %793, label %815

793:                                              ; preds = %789
  %794 = load i32, ptr %568, align 4, !tbaa !5
  %795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %796 = call i32 @s2n_print_stacktrace(ptr noundef %795) #9
  %797 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %798 = trunc nuw i8 %797 to i1
  br i1 %798, label %799, label %803

799:                                              ; preds = %793
  %800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %801 = call i32 @fileno(ptr noundef %800) #9
  %802 = call i32 @isatty(i32 noundef %801) #9
  %.not336 = icmp eq i32 %802, 0
  br i1 %.not336, label %803, label %804

803:                                              ; preds = %799, %793
  br label %804

804:                                              ; preds = %799, %803
  %.str.5.sink635 = phi ptr [ @.str.5, %803 ], [ @.str.2, %799 ]
  store i32 %794, ptr %568, align 4, !tbaa !5
  %805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %806 = load i32, ptr @test_count, align 4, !tbaa !5
  %807 = load i32, ptr %514, align 4, !tbaa !5
  %808 = call ptr @s2n_strerror(i32 noundef %807, ptr noundef nonnull @.str.4) #9
  %809 = load i32, ptr %514, align 4, !tbaa !5
  %810 = call ptr @s2n_strerror_debug(i32 noundef %809, ptr noundef nonnull @.str.4) #9
  %811 = load i32, ptr %568, align 4, !tbaa !5
  %812 = call ptr @strerror(i32 noundef %811) #9
  %813 = load i32, ptr %568, align 4, !tbaa !5
  %814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %805, ptr noundef nonnull %.str.5.sink635, i32 noundef %806, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 476, ptr noundef %808, ptr noundef %810, ptr noundef %812, i32 noundef %813) #11
  call void @exit(i32 noundef 1) #12
  unreachable

815:                                              ; preds = %789
  %816 = load i32, ptr %454, align 4, !tbaa !5
  call void @coalesced_message(i32 noundef %816)
  %817 = load i32, ptr @test_count, align 4, !tbaa !5
  %818 = add nsw i32 %817, 1
  store i32 %818, ptr @test_count, align 4, !tbaa !5
  %819 = call i32 @s2n_connection_free(ptr noundef nonnull %240) #9
  %820 = icmp eq i32 %819, -1
  br i1 %820, label %821, label %843

821:                                              ; preds = %815
  %822 = load i32, ptr %568, align 4, !tbaa !5
  %823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %824 = call i32 @s2n_print_stacktrace(ptr noundef %823) #9
  %825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %826 = trunc nuw i8 %825 to i1
  br i1 %826, label %827, label %831

827:                                              ; preds = %821
  %828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %829 = call i32 @fileno(ptr noundef %828) #9
  %830 = call i32 @isatty(i32 noundef %829) #9
  %.not335 = icmp eq i32 %830, 0
  br i1 %.not335, label %831, label %832

831:                                              ; preds = %827, %821
  br label %832

832:                                              ; preds = %827, %831
  %.str.5.sink644 = phi ptr [ @.str.5, %831 ], [ @.str.2, %827 ]
  store i32 %822, ptr %568, align 4, !tbaa !5
  %833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %834 = load i32, ptr @test_count, align 4, !tbaa !5
  %835 = load i32, ptr %514, align 4, !tbaa !5
  %836 = call ptr @s2n_strerror(i32 noundef %835, ptr noundef nonnull @.str.4) #9
  %837 = load i32, ptr %514, align 4, !tbaa !5
  %838 = call ptr @s2n_strerror_debug(i32 noundef %837, ptr noundef nonnull @.str.4) #9
  %839 = load i32, ptr %568, align 4, !tbaa !5
  %840 = call ptr @strerror(i32 noundef %839) #9
  %841 = load i32, ptr %568, align 4, !tbaa !5
  %842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %833, ptr noundef nonnull %.str.5.sink644, i32 noundef %834, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 480, ptr noundef %836, ptr noundef %838, ptr noundef %840, i32 noundef %841) #11
  call void @exit(i32 noundef 1) #12
  unreachable

843:                                              ; preds = %815
  %844 = load i32, ptr @test_count, align 4, !tbaa !5
  %845 = add nsw i32 %844, 1
  store i32 %845, ptr @test_count, align 4, !tbaa !5
  %846 = call i32 @s2n_config_free(ptr noundef nonnull %124) #9
  %847 = icmp eq i32 %846, -1
  br i1 %847, label %848, label %870

848:                                              ; preds = %843
  %849 = load i32, ptr %568, align 4, !tbaa !5
  %850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %851 = call i32 @s2n_print_stacktrace(ptr noundef %850) #9
  %852 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %853 = trunc nuw i8 %852 to i1
  br i1 %853, label %854, label %858

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

858:                                              ; preds = %854, %848
  br label %859

859:                                              ; preds = %854, %858
  %.str.5.sink653 = phi ptr [ @.str.5, %858 ], [ @.str.2, %854 ]
  store i32 %849, ptr %568, align 4, !tbaa !5
  %860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %861 = load i32, ptr @test_count, align 4, !tbaa !5
  %862 = load i32, ptr %514, align 4, !tbaa !5
  %863 = call ptr @s2n_strerror(i32 noundef %862, ptr noundef nonnull @.str.4) #9
  %864 = load i32, ptr %514, align 4, !tbaa !5
  %865 = call ptr @s2n_strerror_debug(i32 noundef %864, ptr noundef nonnull @.str.4) #9
  %866 = load i32, ptr %568, align 4, !tbaa !5
  %867 = call ptr @strerror(i32 noundef %866) #9
  %868 = load i32, ptr %568, align 4, !tbaa !5
  %869 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %860, ptr noundef nonnull %.str.5.sink653, i32 noundef %861, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 481, ptr noundef %863, ptr noundef %865, ptr noundef %867, i32 noundef %868) #11
  call void @exit(i32 noundef 1) #12
  unreachable

870:                                              ; preds = %843
  call void @exit(i32 noundef 0) #12
  unreachable

871:                                              ; preds = %784
  %872 = load i32, ptr %454, align 4, !tbaa !5
  %873 = call i32 @close(i32 noundef %872) #9
  %874 = icmp eq i32 %873, -1
  br i1 %874, label %875, label %897

875:                                              ; preds = %871
  %876 = load i32, ptr %568, align 4, !tbaa !5
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = call i32 @s2n_print_stacktrace(ptr noundef %877) #9
  %879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %880 = trunc nuw i8 %879 to i1
  br i1 %880, label %881, label %885

881:                                              ; preds = %875
  %882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %883 = call i32 @fileno(ptr noundef %882) #9
  %884 = call i32 @isatty(i32 noundef %883) #9
  %.not333 = icmp eq i32 %884, 0
  br i1 %.not333, label %885, label %886

885:                                              ; preds = %881, %875
  br label %886

886:                                              ; preds = %881, %885
  %.str.5.sink662 = phi ptr [ @.str.5, %885 ], [ @.str.2, %881 ]
  store i32 %876, ptr %568, align 4, !tbaa !5
  %887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %888 = load i32, ptr @test_count, align 4, !tbaa !5
  %889 = load i32, ptr %514, align 4, !tbaa !5
  %890 = call ptr @s2n_strerror(i32 noundef %889, ptr noundef nonnull @.str.4) #9
  %891 = load i32, ptr %514, align 4, !tbaa !5
  %892 = call ptr @s2n_strerror_debug(i32 noundef %891, ptr noundef nonnull @.str.4) #9
  %893 = load i32, ptr %568, align 4, !tbaa !5
  %894 = call ptr @strerror(i32 noundef %893) #9
  %895 = load i32, ptr %568, align 4, !tbaa !5
  %896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %887, ptr noundef nonnull %.str.5.sink662, i32 noundef %888, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 486, ptr noundef %890, ptr noundef %892, ptr noundef %894, i32 noundef %895) #11
  call void @exit(i32 noundef 1) #12
  unreachable

897:                                              ; preds = %871
  %898 = load i32, ptr @test_count, align 4, !tbaa !5
  %899 = add nsw i32 %898, 1
  store i32 %899, ptr @test_count, align 4, !tbaa !5
  %900 = call i32 @s2n_negotiate(ptr noundef nonnull %240, ptr noundef nonnull %3) #9
  %901 = icmp eq i32 %900, -1
  br i1 %901, label %924, label %902

902:                                              ; preds = %897
  %903 = load i32, ptr %568, align 4, !tbaa !5
  %904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %905 = call i32 @s2n_print_stacktrace(ptr noundef %904) #9
  %906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %907 = trunc nuw i8 %906 to i1
  br i1 %907, label %908, label %912

908:                                              ; preds = %902
  %909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %910 = call i32 @fileno(ptr noundef %909) #9
  %911 = call i32 @isatty(i32 noundef %910) #9
  %.not269 = icmp eq i32 %911, 0
  br i1 %.not269, label %912, label %913

912:                                              ; preds = %908, %902
  br label %913

913:                                              ; preds = %908, %912
  %.str.5.sink671 = phi ptr [ @.str.5, %912 ], [ @.str.2, %908 ]
  store i32 %903, ptr %568, align 4, !tbaa !5
  %914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %915 = load i32, ptr @test_count, align 4, !tbaa !5
  %916 = load i32, ptr %514, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror(i32 noundef %916, ptr noundef nonnull @.str.4) #9
  %918 = load i32, ptr %514, align 4, !tbaa !5
  %919 = call ptr @s2n_strerror_debug(i32 noundef %918, ptr noundef nonnull @.str.4) #9
  %920 = load i32, ptr %568, align 4, !tbaa !5
  %921 = call ptr @strerror(i32 noundef %920) #9
  %922 = load i32, ptr %568, align 4, !tbaa !5
  %923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %914, ptr noundef nonnull %.str.5.sink671, i32 noundef %915, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 489, ptr noundef %917, ptr noundef %919, ptr noundef %921, i32 noundef %922) #11
  call void @exit(i32 noundef 1) #12
  unreachable

924:                                              ; preds = %897
  %925 = load i32, ptr @test_count, align 4, !tbaa !5
  %926 = add nsw i32 %925, 1
  store i32 %926, ptr @test_count, align 4, !tbaa !5
  %927 = load i32, ptr %514, align 4, !tbaa !5
  %928 = icmp eq i32 %927, 0
  br i1 %928, label %929, label %951

929:                                              ; preds = %924
  %930 = load i32, ptr %568, align 4, !tbaa !5
  %931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %932 = call i32 @s2n_print_stacktrace(ptr noundef %931) #9
  %933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %934 = trunc nuw i8 %933 to i1
  br i1 %934, label %935, label %939

935:                                              ; preds = %929
  %936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %937 = call i32 @fileno(ptr noundef %936) #9
  %938 = call i32 @isatty(i32 noundef %937) #9
  %.not332 = icmp eq i32 %938, 0
  br i1 %.not332, label %939, label %940

939:                                              ; preds = %935, %929
  br label %940

940:                                              ; preds = %935, %939
  %.str.5.sink680 = phi ptr [ @.str.5, %939 ], [ @.str.2, %935 ]
  store i32 %930, ptr %568, align 4, !tbaa !5
  %941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %942 = load i32, ptr @test_count, align 4, !tbaa !5
  %943 = load i32, ptr %514, align 4, !tbaa !5
  %944 = call ptr @s2n_strerror(i32 noundef %943, ptr noundef nonnull @.str.4) #9
  %945 = load i32, ptr %514, align 4, !tbaa !5
  %946 = call ptr @s2n_strerror_debug(i32 noundef %945, ptr noundef nonnull @.str.4) #9
  %947 = load i32, ptr %568, align 4, !tbaa !5
  %948 = call ptr @strerror(i32 noundef %947) #9
  %949 = load i32, ptr %568, align 4, !tbaa !5
  %950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %941, ptr noundef nonnull %.str.5.sink680, i32 noundef %942, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 489, ptr noundef %944, ptr noundef %946, ptr noundef %948, i32 noundef %949) #11
  call void @exit(i32 noundef 1) #12
  unreachable

951:                                              ; preds = %924
  %952 = add nsw i32 %925, 2
  store i32 %952, ptr @test_count, align 4, !tbaa !5
  %953 = call ptr @s2n_strerror_debug(i32 noundef %927, ptr noundef nonnull @.str.4) #9
  %954 = icmp eq ptr %953, null
  br i1 %954, label %955, label %977

955:                                              ; preds = %951
  %956 = load i32, ptr %568, align 4, !tbaa !5
  %957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %958 = call i32 @s2n_print_stacktrace(ptr noundef %957) #9
  %959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %960 = trunc nuw i8 %959 to i1
  br i1 %960, label %961, label %965

961:                                              ; preds = %955
  %962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %963 = call i32 @fileno(ptr noundef %962) #9
  %964 = call i32 @isatty(i32 noundef %963) #9
  %.not331 = icmp eq i32 %964, 0
  br i1 %.not331, label %965, label %966

965:                                              ; preds = %961, %955
  br label %966

966:                                              ; preds = %961, %965
  %.str.5.sink689 = phi ptr [ @.str.5, %965 ], [ @.str.2, %961 ]
  store i32 %956, ptr %568, align 4, !tbaa !5
  %967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %968 = load i32, ptr @test_count, align 4, !tbaa !5
  %969 = load i32, ptr %514, align 4, !tbaa !5
  %970 = call ptr @s2n_strerror(i32 noundef %969, ptr noundef nonnull @.str.4) #9
  %971 = load i32, ptr %514, align 4, !tbaa !5
  %972 = call ptr @s2n_strerror_debug(i32 noundef %971, ptr noundef nonnull @.str.4) #9
  %973 = load i32, ptr %568, align 4, !tbaa !5
  %974 = call ptr @strerror(i32 noundef %973) #9
  %975 = load i32, ptr %568, align 4, !tbaa !5
  %976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %967, ptr noundef nonnull %.str.5.sink689, i32 noundef %968, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 489, ptr noundef %970, ptr noundef %972, ptr noundef %974, i32 noundef %975) #11
  call void @exit(i32 noundef 1) #12
  unreachable

977:                                              ; preds = %951
  store i32 0, ptr %514, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %568, align 4, !tbaa !5
  %978 = load i32, ptr @test_count, align 4, !tbaa !5
  %979 = add nsw i32 %978, 1
  store i32 %979, ptr @test_count, align 4, !tbaa !5
  %bcmp270 = call i32 @bcmp(ptr noundef nonnull dereferenceable(32) %571, ptr noundef nonnull dereferenceable(32) @zero_to_thirty_one, i64 32)
  %980 = icmp eq i32 %bcmp270, 0
  br i1 %980, label %1003, label %981

981:                                              ; preds = %977
  %982 = load i32, ptr %568, align 4, !tbaa !5
  %983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %984 = call i32 @s2n_print_stacktrace(ptr noundef %983) #9
  %985 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %986 = trunc nuw i8 %985 to i1
  br i1 %986, label %987, label %991

987:                                              ; preds = %981
  %988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %989 = call i32 @fileno(ptr noundef %988) #9
  %990 = call i32 @isatty(i32 noundef %989) #9
  %.not271 = icmp eq i32 %990, 0
  br i1 %.not271, label %991, label %992

991:                                              ; preds = %987, %981
  br label %992

992:                                              ; preds = %987, %991
  %.str.5.sink698 = phi ptr [ @.str.5, %991 ], [ @.str.2, %987 ]
  store i32 %982, ptr %568, align 4, !tbaa !5
  %993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %994 = load i32, ptr @test_count, align 4, !tbaa !5
  %995 = load i32, ptr %514, align 4, !tbaa !5
  %996 = call ptr @s2n_strerror(i32 noundef %995, ptr noundef nonnull @.str.4) #9
  %997 = load i32, ptr %514, align 4, !tbaa !5
  %998 = call ptr @s2n_strerror_debug(i32 noundef %997, ptr noundef nonnull @.str.4) #9
  %999 = load i32, ptr %568, align 4, !tbaa !5
  %1000 = call ptr @strerror(i32 noundef %999) #9
  %1001 = load i32, ptr %568, align 4, !tbaa !5
  %1002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %993, ptr noundef nonnull %.str.5.sink698, i32 noundef %994, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 492, ptr noundef %996, ptr noundef %998, ptr noundef %1000, i32 noundef %1001) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1003:                                             ; preds = %977
  %1004 = add nsw i32 %978, 2
  store i32 %1004, ptr @test_count, align 4, !tbaa !5
  %1005 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %240) #9
  %1006 = icmp eq i32 %1005, 7
  br i1 %1006, label %1029, label %1007

1007:                                             ; preds = %1003
  %1008 = load i32, ptr %568, align 4, !tbaa !5
  %1009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1010 = call i32 @s2n_print_stacktrace(ptr noundef %1009) #9
  %1011 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1012 = trunc nuw i8 %1011 to i1
  br i1 %1012, label %1013, label %1017

1013:                                             ; preds = %1007
  %1014 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1015 = call i32 @fileno(ptr noundef %1014) #9
  %1016 = call i32 @isatty(i32 noundef %1015) #9
  %.not272 = icmp eq i32 %1016, 0
  br i1 %.not272, label %1017, label %1018

1017:                                             ; preds = %1013, %1007
  br label %1018

1018:                                             ; preds = %1013, %1017
  %.str.5.sink707 = phi ptr [ @.str.5, %1017 ], [ @.str.2, %1013 ]
  store i32 %1008, ptr %568, align 4, !tbaa !5
  %1019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1020 = load i32, ptr @test_count, align 4, !tbaa !5
  %1021 = load i32, ptr %514, align 4, !tbaa !5
  %1022 = call ptr @s2n_strerror(i32 noundef %1021, ptr noundef nonnull @.str.4) #9
  %1023 = load i32, ptr %514, align 4, !tbaa !5
  %1024 = call ptr @s2n_strerror_debug(i32 noundef %1023, ptr noundef nonnull @.str.4) #9
  %1025 = load i32, ptr %568, align 4, !tbaa !5
  %1026 = call ptr @strerror(i32 noundef %1025) #9
  %1027 = load i32, ptr %568, align 4, !tbaa !5
  %1028 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1019, ptr noundef nonnull %.str.5.sink707, i32 noundef %1020, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 495, ptr noundef %1022, ptr noundef %1024, ptr noundef %1026, i32 noundef %1027) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1029:                                             ; preds = %1003
  %1030 = load i32, ptr @test_count, align 4, !tbaa !5
  %1031 = add nsw i32 %1030, 1
  store i32 %1031, ptr @test_count, align 4, !tbaa !5
  %1032 = call i32 @waitpid(i32 noundef %785, ptr noundef nonnull %4, i32 noundef 0) #9
  %1033 = icmp eq i32 %1032, %785
  br i1 %1033, label %1056, label %1034

1034:                                             ; preds = %1029
  %1035 = load i32, ptr %568, align 4, !tbaa !5
  %1036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1037 = call i32 @s2n_print_stacktrace(ptr noundef %1036) #9
  %1038 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1039 = trunc nuw i8 %1038 to i1
  br i1 %1039, label %1040, label %1044

1040:                                             ; preds = %1034
  %1041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1042 = call i32 @fileno(ptr noundef %1041) #9
  %1043 = call i32 @isatty(i32 noundef %1042) #9
  %.not273 = icmp eq i32 %1043, 0
  br i1 %.not273, label %1044, label %1045

1044:                                             ; preds = %1040, %1034
  br label %1045

1045:                                             ; preds = %1040, %1044
  %.str.5.sink716 = phi ptr [ @.str.5, %1044 ], [ @.str.2, %1040 ]
  store i32 %1035, ptr %568, align 4, !tbaa !5
  %1046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1047 = load i32, ptr @test_count, align 4, !tbaa !5
  %1048 = load i32, ptr %514, align 4, !tbaa !5
  %1049 = call ptr @s2n_strerror(i32 noundef %1048, ptr noundef nonnull @.str.4) #9
  %1050 = load i32, ptr %514, align 4, !tbaa !5
  %1051 = call ptr @s2n_strerror_debug(i32 noundef %1050, ptr noundef nonnull @.str.4) #9
  %1052 = load i32, ptr %568, align 4, !tbaa !5
  %1053 = call ptr @strerror(i32 noundef %1052) #9
  %1054 = load i32, ptr %568, align 4, !tbaa !5
  %1055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1046, ptr noundef nonnull %.str.5.sink716, i32 noundef %1047, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 498, ptr noundef %1049, ptr noundef %1051, ptr noundef %1053, i32 noundef %1054) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1056:                                             ; preds = %1029
  %1057 = load i32, ptr @test_count, align 4, !tbaa !5
  %1058 = add nsw i32 %1057, 1
  store i32 %1058, ptr @test_count, align 4, !tbaa !5
  %1059 = load i32, ptr %4, align 4, !tbaa !5
  %1060 = icmp eq i32 %1059, 0
  br i1 %1060, label %1083, label %1061

1061:                                             ; preds = %1056
  %1062 = load i32, ptr %568, align 4, !tbaa !5
  %1063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1064 = call i32 @s2n_print_stacktrace(ptr noundef %1063) #9
  %1065 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1066 = trunc nuw i8 %1065 to i1
  br i1 %1066, label %1067, label %1071

1067:                                             ; preds = %1061
  %1068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1069 = call i32 @fileno(ptr noundef %1068) #9
  %1070 = call i32 @isatty(i32 noundef %1069) #9
  %.not274 = icmp eq i32 %1070, 0
  br i1 %.not274, label %1071, label %1072

1071:                                             ; preds = %1067, %1061
  br label %1072

1072:                                             ; preds = %1067, %1071
  %.str.5.sink725 = phi ptr [ @.str.5, %1071 ], [ @.str.2, %1067 ]
  store i32 %1062, ptr %568, align 4, !tbaa !5
  %1073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1074 = load i32, ptr @test_count, align 4, !tbaa !5
  %1075 = load i32, ptr %514, align 4, !tbaa !5
  %1076 = call ptr @s2n_strerror(i32 noundef %1075, ptr noundef nonnull @.str.4) #9
  %1077 = load i32, ptr %514, align 4, !tbaa !5
  %1078 = call ptr @s2n_strerror_debug(i32 noundef %1077, ptr noundef nonnull @.str.4) #9
  %1079 = load i32, ptr %568, align 4, !tbaa !5
  %1080 = call ptr @strerror(i32 noundef %1079) #9
  %1081 = load i32, ptr %568, align 4, !tbaa !5
  %1082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1073, ptr noundef nonnull %.str.5.sink725, i32 noundef %1074, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 499, ptr noundef %1076, ptr noundef %1078, ptr noundef %1080, i32 noundef %1081) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1083:                                             ; preds = %1056
  %1084 = add nsw i32 %1057, 2
  store i32 %1084, ptr @test_count, align 4, !tbaa !5
  %1085 = load i32, ptr %5, align 4, !tbaa !5
  %1086 = call i32 @close(i32 noundef %1085) #9
  %1087 = icmp eq i32 %1086, -1
  br i1 %1087, label %1088, label %1110

1088:                                             ; preds = %1083
  %1089 = load i32, ptr %568, align 4, !tbaa !5
  %1090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1091 = call i32 @s2n_print_stacktrace(ptr noundef %1090) #9
  %1092 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1093 = trunc nuw i8 %1092 to i1
  br i1 %1093, label %1094, label %1098

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

1098:                                             ; preds = %1094, %1088
  br label %1099

1099:                                             ; preds = %1094, %1098
  %.str.5.sink734 = phi ptr [ @.str.5, %1098 ], [ @.str.2, %1094 ]
  store i32 %1089, ptr %568, align 4, !tbaa !5
  %1100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1101 = load i32, ptr @test_count, align 4, !tbaa !5
  %1102 = load i32, ptr %514, align 4, !tbaa !5
  %1103 = call ptr @s2n_strerror(i32 noundef %1102, ptr noundef nonnull @.str.4) #9
  %1104 = load i32, ptr %514, align 4, !tbaa !5
  %1105 = call ptr @s2n_strerror_debug(i32 noundef %1104, ptr noundef nonnull @.str.4) #9
  %1106 = load i32, ptr %568, align 4, !tbaa !5
  %1107 = call ptr @strerror(i32 noundef %1106) #9
  %1108 = load i32, ptr %568, align 4, !tbaa !5
  %1109 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1100, ptr noundef nonnull %.str.5.sink734, i32 noundef %1101, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 500, ptr noundef %1103, ptr noundef %1105, ptr noundef %1107, i32 noundef %1108) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1110:                                             ; preds = %1083
  %1111 = load i32, ptr @test_count, align 4, !tbaa !5
  %1112 = add nsw i32 %1111, 1
  store i32 %1112, ptr @test_count, align 4, !tbaa !5
  %1113 = call i32 @pipe(ptr noundef nonnull %5) #9
  %1114 = icmp eq i32 %1113, -1
  br i1 %1114, label %1115, label %1137

1115:                                             ; preds = %1110
  %1116 = load i32, ptr %568, align 4, !tbaa !5
  %1117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1118 = call i32 @s2n_print_stacktrace(ptr noundef %1117) #9
  %1119 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1120 = trunc nuw i8 %1119 to i1
  br i1 %1120, label %1121, label %1125

1121:                                             ; preds = %1115
  %1122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1123 = call i32 @fileno(ptr noundef %1122) #9
  %1124 = call i32 @isatty(i32 noundef %1123) #9
  %.not329 = icmp eq i32 %1124, 0
  br i1 %.not329, label %1125, label %1126

1125:                                             ; preds = %1121, %1115
  br label %1126

1126:                                             ; preds = %1121, %1125
  %.str.5.sink743 = phi ptr [ @.str.5, %1125 ], [ @.str.2, %1121 ]
  store i32 %1116, ptr %568, align 4, !tbaa !5
  %1127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1128 = load i32, ptr @test_count, align 4, !tbaa !5
  %1129 = load i32, ptr %514, align 4, !tbaa !5
  %1130 = call ptr @s2n_strerror(i32 noundef %1129, ptr noundef nonnull @.str.4) #9
  %1131 = load i32, ptr %514, align 4, !tbaa !5
  %1132 = call ptr @s2n_strerror_debug(i32 noundef %1131, ptr noundef nonnull @.str.4) #9
  %1133 = load i32, ptr %568, align 4, !tbaa !5
  %1134 = call ptr @strerror(i32 noundef %1133) #9
  %1135 = load i32, ptr %568, align 4, !tbaa !5
  %1136 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1127, ptr noundef nonnull %.str.5.sink743, i32 noundef %1128, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 503, ptr noundef %1130, ptr noundef %1132, ptr noundef %1134, i32 noundef %1135) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1137:                                             ; preds = %1110
  %1138 = load i32, ptr @test_count, align 4, !tbaa !5
  %1139 = add nsw i32 %1138, 1
  store i32 %1139, ptr @test_count, align 4, !tbaa !5
  %1140 = call i32 @s2n_connection_wipe(ptr noundef nonnull %240) #9
  %1141 = icmp eq i32 %1140, -1
  br i1 %1141, label %1142, label %1164

1142:                                             ; preds = %1137
  %1143 = load i32, ptr %568, align 4, !tbaa !5
  %1144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1145 = call i32 @s2n_print_stacktrace(ptr noundef %1144) #9
  %1146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1147 = trunc nuw i8 %1146 to i1
  br i1 %1147, label %1148, label %1152

1148:                                             ; preds = %1142
  %1149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1150 = call i32 @fileno(ptr noundef %1149) #9
  %1151 = call i32 @isatty(i32 noundef %1150) #9
  %.not328 = icmp eq i32 %1151, 0
  br i1 %.not328, label %1152, label %1153

1152:                                             ; preds = %1148, %1142
  br label %1153

1153:                                             ; preds = %1148, %1152
  %.str.5.sink752 = phi ptr [ @.str.5, %1152 ], [ @.str.2, %1148 ]
  store i32 %1143, ptr %568, align 4, !tbaa !5
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = load i32, ptr @test_count, align 4, !tbaa !5
  %1156 = load i32, ptr %514, align 4, !tbaa !5
  %1157 = call ptr @s2n_strerror(i32 noundef %1156, ptr noundef nonnull @.str.4) #9
  %1158 = load i32, ptr %514, align 4, !tbaa !5
  %1159 = call ptr @s2n_strerror_debug(i32 noundef %1158, ptr noundef nonnull @.str.4) #9
  %1160 = load i32, ptr %568, align 4, !tbaa !5
  %1161 = call ptr @strerror(i32 noundef %1160) #9
  %1162 = load i32, ptr %568, align 4, !tbaa !5
  %1163 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1154, ptr noundef nonnull %.str.5.sink752, i32 noundef %1155, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 506, ptr noundef %1157, ptr noundef %1159, ptr noundef %1161, i32 noundef %1162) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1164:                                             ; preds = %1137
  store i8 33, ptr %296, align 1, !tbaa !15
  store i8 33, ptr %297, align 2, !tbaa !42
  store i8 33, ptr %298, align 4, !tbaa !43
  %1165 = load i32, ptr @test_count, align 4, !tbaa !5
  %1166 = add nsw i32 %1165, 1
  store i32 %1166, ptr @test_count, align 4, !tbaa !5
  %1167 = load i32, ptr %5, align 4, !tbaa !5
  %1168 = call i32 @s2n_connection_set_read_fd(ptr noundef nonnull %240, i32 noundef %1167) #9
  %1169 = icmp eq i32 %1168, -1
  br i1 %1169, label %1170, label %1192

1170:                                             ; preds = %1164
  %1171 = load i32, ptr %568, align 4, !tbaa !5
  %1172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1173 = call i32 @s2n_print_stacktrace(ptr noundef %1172) #9
  %1174 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1175 = trunc nuw i8 %1174 to i1
  br i1 %1175, label %1176, label %1180

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

1180:                                             ; preds = %1176, %1170
  br label %1181

1181:                                             ; preds = %1176, %1180
  %.str.5.sink761 = phi ptr [ @.str.5, %1180 ], [ @.str.2, %1176 ]
  store i32 %1171, ptr %568, align 4, !tbaa !5
  %1182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1183 = load i32, ptr @test_count, align 4, !tbaa !5
  %1184 = load i32, ptr %514, align 4, !tbaa !5
  %1185 = call ptr @s2n_strerror(i32 noundef %1184, ptr noundef nonnull @.str.4) #9
  %1186 = load i32, ptr %514, align 4, !tbaa !5
  %1187 = call ptr @s2n_strerror_debug(i32 noundef %1186, ptr noundef nonnull @.str.4) #9
  %1188 = load i32, ptr %568, align 4, !tbaa !5
  %1189 = call ptr @strerror(i32 noundef %1188) #9
  %1190 = load i32, ptr %568, align 4, !tbaa !5
  %1191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1182, ptr noundef nonnull %.str.5.sink761, i32 noundef %1183, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 512, ptr noundef %1185, ptr noundef %1187, ptr noundef %1189, i32 noundef %1190) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1192:                                             ; preds = %1164
  store i32 3, ptr %358, align 4, !tbaa !44
  store i32 1, ptr %359, align 8, !tbaa !45
  %1193 = call i32 @fork() #9
  %1194 = icmp eq i32 %1193, 0
  %1195 = load i32, ptr @test_count, align 4, !tbaa !5
  %1196 = add nsw i32 %1195, 1
  store i32 %1196, ptr @test_count, align 4, !tbaa !5
  br i1 %1194, label %1197, label %1279

1197:                                             ; preds = %1192
  %1198 = load i32, ptr %5, align 4, !tbaa !5
  %1199 = call i32 @close(i32 noundef %1198) #9
  %1200 = icmp eq i32 %1199, -1
  br i1 %1200, label %1201, label %1223

1201:                                             ; preds = %1197
  %1202 = load i32, ptr %568, align 4, !tbaa !5
  %1203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1204 = call i32 @s2n_print_stacktrace(ptr noundef %1203) #9
  %1205 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1206 = trunc nuw i8 %1205 to i1
  br i1 %1206, label %1207, label %1211

1207:                                             ; preds = %1201
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1209 = call i32 @fileno(ptr noundef %1208) #9
  %1210 = call i32 @isatty(i32 noundef %1209) #9
  %.not326 = icmp eq i32 %1210, 0
  br i1 %.not326, label %1211, label %1212

1211:                                             ; preds = %1207, %1201
  br label %1212

1212:                                             ; preds = %1207, %1211
  %.str.5.sink770 = phi ptr [ @.str.5, %1211 ], [ @.str.2, %1207 ]
  store i32 %1202, ptr %568, align 4, !tbaa !5
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = load i32, ptr @test_count, align 4, !tbaa !5
  %1215 = load i32, ptr %514, align 4, !tbaa !5
  %1216 = call ptr @s2n_strerror(i32 noundef %1215, ptr noundef nonnull @.str.4) #9
  %1217 = load i32, ptr %514, align 4, !tbaa !5
  %1218 = call ptr @s2n_strerror_debug(i32 noundef %1217, ptr noundef nonnull @.str.4) #9
  %1219 = load i32, ptr %568, align 4, !tbaa !5
  %1220 = call ptr @strerror(i32 noundef %1219) #9
  %1221 = load i32, ptr %568, align 4, !tbaa !5
  %1222 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1213, ptr noundef nonnull %.str.5.sink770, i32 noundef %1214, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 522, ptr noundef %1216, ptr noundef %1218, ptr noundef %1220, i32 noundef %1221) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1223:                                             ; preds = %1197
  %1224 = load i32, ptr %454, align 4, !tbaa !5
  call void @interleaved_message(i32 noundef %1224)
  %1225 = load i32, ptr @test_count, align 4, !tbaa !5
  %1226 = add nsw i32 %1225, 1
  store i32 %1226, ptr @test_count, align 4, !tbaa !5
  %1227 = call i32 @s2n_connection_free(ptr noundef nonnull %240) #9
  %1228 = icmp eq i32 %1227, -1
  br i1 %1228, label %1229, label %1251

1229:                                             ; preds = %1223
  %1230 = load i32, ptr %568, align 4, !tbaa !5
  %1231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1232 = call i32 @s2n_print_stacktrace(ptr noundef %1231) #9
  %1233 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1234 = trunc nuw i8 %1233 to i1
  br i1 %1234, label %1235, label %1239

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

1239:                                             ; preds = %1235, %1229
  br label %1240

1240:                                             ; preds = %1235, %1239
  %.str.5.sink779 = phi ptr [ @.str.5, %1239 ], [ @.str.2, %1235 ]
  store i32 %1230, ptr %568, align 4, !tbaa !5
  %1241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1242 = load i32, ptr @test_count, align 4, !tbaa !5
  %1243 = load i32, ptr %514, align 4, !tbaa !5
  %1244 = call ptr @s2n_strerror(i32 noundef %1243, ptr noundef nonnull @.str.4) #9
  %1245 = load i32, ptr %514, align 4, !tbaa !5
  %1246 = call ptr @s2n_strerror_debug(i32 noundef %1245, ptr noundef nonnull @.str.4) #9
  %1247 = load i32, ptr %568, align 4, !tbaa !5
  %1248 = call ptr @strerror(i32 noundef %1247) #9
  %1249 = load i32, ptr %568, align 4, !tbaa !5
  %1250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1241, ptr noundef nonnull %.str.5.sink779, i32 noundef %1242, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 526, ptr noundef %1244, ptr noundef %1246, ptr noundef %1248, i32 noundef %1249) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1251:                                             ; preds = %1223
  %1252 = load i32, ptr @test_count, align 4, !tbaa !5
  %1253 = add nsw i32 %1252, 1
  store i32 %1253, ptr @test_count, align 4, !tbaa !5
  %1254 = call i32 @s2n_config_free(ptr noundef nonnull %124) #9
  %1255 = icmp eq i32 %1254, -1
  br i1 %1255, label %1256, label %1278

1256:                                             ; preds = %1251
  %1257 = load i32, ptr %568, align 4, !tbaa !5
  %1258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1259 = call i32 @s2n_print_stacktrace(ptr noundef %1258) #9
  %1260 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1261 = trunc nuw i8 %1260 to i1
  br i1 %1261, label %1262, label %1266

1262:                                             ; preds = %1256
  %1263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1264 = call i32 @fileno(ptr noundef %1263) #9
  %1265 = call i32 @isatty(i32 noundef %1264) #9
  %.not324 = icmp eq i32 %1265, 0
  br i1 %.not324, label %1266, label %1267

1266:                                             ; preds = %1262, %1256
  br label %1267

1267:                                             ; preds = %1262, %1266
  %.str.5.sink788 = phi ptr [ @.str.5, %1266 ], [ @.str.2, %1262 ]
  store i32 %1257, ptr %568, align 4, !tbaa !5
  %1268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1269 = load i32, ptr @test_count, align 4, !tbaa !5
  %1270 = load i32, ptr %514, align 4, !tbaa !5
  %1271 = call ptr @s2n_strerror(i32 noundef %1270, ptr noundef nonnull @.str.4) #9
  %1272 = load i32, ptr %514, align 4, !tbaa !5
  %1273 = call ptr @s2n_strerror_debug(i32 noundef %1272, ptr noundef nonnull @.str.4) #9
  %1274 = load i32, ptr %568, align 4, !tbaa !5
  %1275 = call ptr @strerror(i32 noundef %1274) #9
  %1276 = load i32, ptr %568, align 4, !tbaa !5
  %1277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1268, ptr noundef nonnull %.str.5.sink788, i32 noundef %1269, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 527, ptr noundef %1271, ptr noundef %1273, ptr noundef %1275, i32 noundef %1276) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1278:                                             ; preds = %1251
  call void @exit(i32 noundef 0) #12
  unreachable

1279:                                             ; preds = %1192
  %1280 = load i32, ptr %454, align 4, !tbaa !5
  %1281 = call i32 @close(i32 noundef %1280) #9
  %1282 = icmp eq i32 %1281, -1
  br i1 %1282, label %1283, label %1305

1283:                                             ; preds = %1279
  %1284 = load i32, ptr %568, align 4, !tbaa !5
  %1285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1286 = call i32 @s2n_print_stacktrace(ptr noundef %1285) #9
  %1287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1288 = trunc nuw i8 %1287 to i1
  br i1 %1288, label %1289, label %1293

1289:                                             ; preds = %1283
  %1290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1291 = call i32 @fileno(ptr noundef %1290) #9
  %1292 = call i32 @isatty(i32 noundef %1291) #9
  %.not323 = icmp eq i32 %1292, 0
  br i1 %.not323, label %1293, label %1294

1293:                                             ; preds = %1289, %1283
  br label %1294

1294:                                             ; preds = %1289, %1293
  %.str.5.sink797 = phi ptr [ @.str.5, %1293 ], [ @.str.2, %1289 ]
  store i32 %1284, ptr %568, align 4, !tbaa !5
  %1295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1296 = load i32, ptr @test_count, align 4, !tbaa !5
  %1297 = load i32, ptr %514, align 4, !tbaa !5
  %1298 = call ptr @s2n_strerror(i32 noundef %1297, ptr noundef nonnull @.str.4) #9
  %1299 = load i32, ptr %514, align 4, !tbaa !5
  %1300 = call ptr @s2n_strerror_debug(i32 noundef %1299, ptr noundef nonnull @.str.4) #9
  %1301 = load i32, ptr %568, align 4, !tbaa !5
  %1302 = call ptr @strerror(i32 noundef %1301) #9
  %1303 = load i32, ptr %568, align 4, !tbaa !5
  %1304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1295, ptr noundef nonnull %.str.5.sink797, i32 noundef %1296, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 532, ptr noundef %1298, ptr noundef %1300, ptr noundef %1302, i32 noundef %1303) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1305:                                             ; preds = %1279
  %1306 = load i32, ptr @test_count, align 4, !tbaa !5
  %1307 = add nsw i32 %1306, 1
  store i32 %1307, ptr @test_count, align 4, !tbaa !5
  %1308 = call i32 @s2n_negotiate(ptr noundef nonnull %240, ptr noundef nonnull %3) #9
  %1309 = icmp eq i32 %1308, -1
  br i1 %1309, label %1332, label %1310

1310:                                             ; preds = %1305
  %1311 = load i32, ptr %568, align 4, !tbaa !5
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1313 = call i32 @s2n_print_stacktrace(ptr noundef %1312) #9
  %1314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1315 = trunc nuw i8 %1314 to i1
  br i1 %1315, label %1316, label %1320

1316:                                             ; preds = %1310
  %1317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1318 = call i32 @fileno(ptr noundef %1317) #9
  %1319 = call i32 @isatty(i32 noundef %1318) #9
  %.not275 = icmp eq i32 %1319, 0
  br i1 %.not275, label %1320, label %1321

1320:                                             ; preds = %1316, %1310
  br label %1321

1321:                                             ; preds = %1316, %1320
  %.str.5.sink806 = phi ptr [ @.str.5, %1320 ], [ @.str.2, %1316 ]
  store i32 %1311, ptr %568, align 4, !tbaa !5
  %1322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1323 = load i32, ptr @test_count, align 4, !tbaa !5
  %1324 = load i32, ptr %514, align 4, !tbaa !5
  %1325 = call ptr @s2n_strerror(i32 noundef %1324, ptr noundef nonnull @.str.4) #9
  %1326 = load i32, ptr %514, align 4, !tbaa !5
  %1327 = call ptr @s2n_strerror_debug(i32 noundef %1326, ptr noundef nonnull @.str.4) #9
  %1328 = load i32, ptr %568, align 4, !tbaa !5
  %1329 = call ptr @strerror(i32 noundef %1328) #9
  %1330 = load i32, ptr %568, align 4, !tbaa !5
  %1331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1322, ptr noundef nonnull %.str.5.sink806, i32 noundef %1323, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 535, ptr noundef %1325, ptr noundef %1327, ptr noundef %1329, i32 noundef %1330) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1332:                                             ; preds = %1305
  %1333 = load i32, ptr @test_count, align 4, !tbaa !5
  %1334 = add nsw i32 %1333, 1
  store i32 %1334, ptr @test_count, align 4, !tbaa !5
  %1335 = load i32, ptr %514, align 4, !tbaa !5
  %1336 = icmp eq i32 %1335, 0
  br i1 %1336, label %1337, label %1359

1337:                                             ; preds = %1332
  %1338 = load i32, ptr %568, align 4, !tbaa !5
  %1339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1340 = call i32 @s2n_print_stacktrace(ptr noundef %1339) #9
  %1341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1342 = trunc nuw i8 %1341 to i1
  br i1 %1342, label %1343, label %1347

1343:                                             ; preds = %1337
  %1344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1345 = call i32 @fileno(ptr noundef %1344) #9
  %1346 = call i32 @isatty(i32 noundef %1345) #9
  %.not322 = icmp eq i32 %1346, 0
  br i1 %.not322, label %1347, label %1348

1347:                                             ; preds = %1343, %1337
  br label %1348

1348:                                             ; preds = %1343, %1347
  %.str.5.sink815 = phi ptr [ @.str.5, %1347 ], [ @.str.2, %1343 ]
  store i32 %1338, ptr %568, align 4, !tbaa !5
  %1349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1350 = load i32, ptr @test_count, align 4, !tbaa !5
  %1351 = load i32, ptr %514, align 4, !tbaa !5
  %1352 = call ptr @s2n_strerror(i32 noundef %1351, ptr noundef nonnull @.str.4) #9
  %1353 = load i32, ptr %514, align 4, !tbaa !5
  %1354 = call ptr @s2n_strerror_debug(i32 noundef %1353, ptr noundef nonnull @.str.4) #9
  %1355 = load i32, ptr %568, align 4, !tbaa !5
  %1356 = call ptr @strerror(i32 noundef %1355) #9
  %1357 = load i32, ptr %568, align 4, !tbaa !5
  %1358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1349, ptr noundef nonnull %.str.5.sink815, i32 noundef %1350, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 535, ptr noundef %1352, ptr noundef %1354, ptr noundef %1356, i32 noundef %1357) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1359:                                             ; preds = %1332
  %1360 = add nsw i32 %1333, 2
  store i32 %1360, ptr @test_count, align 4, !tbaa !5
  %1361 = call ptr @s2n_strerror_debug(i32 noundef %1335, ptr noundef nonnull @.str.4) #9
  %1362 = icmp eq ptr %1361, null
  br i1 %1362, label %1363, label %1385

1363:                                             ; preds = %1359
  %1364 = load i32, ptr %568, align 4, !tbaa !5
  %1365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1366 = call i32 @s2n_print_stacktrace(ptr noundef %1365) #9
  %1367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1368 = trunc nuw i8 %1367 to i1
  br i1 %1368, label %1369, label %1373

1369:                                             ; preds = %1363
  %1370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1371 = call i32 @fileno(ptr noundef %1370) #9
  %1372 = call i32 @isatty(i32 noundef %1371) #9
  %.not321 = icmp eq i32 %1372, 0
  br i1 %.not321, label %1373, label %1374

1373:                                             ; preds = %1369, %1363
  br label %1374

1374:                                             ; preds = %1369, %1373
  %.str.5.sink824 = phi ptr [ @.str.5, %1373 ], [ @.str.2, %1369 ]
  store i32 %1364, ptr %568, align 4, !tbaa !5
  %1375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1376 = load i32, ptr @test_count, align 4, !tbaa !5
  %1377 = load i32, ptr %514, align 4, !tbaa !5
  %1378 = call ptr @s2n_strerror(i32 noundef %1377, ptr noundef nonnull @.str.4) #9
  %1379 = load i32, ptr %514, align 4, !tbaa !5
  %1380 = call ptr @s2n_strerror_debug(i32 noundef %1379, ptr noundef nonnull @.str.4) #9
  %1381 = load i32, ptr %568, align 4, !tbaa !5
  %1382 = call ptr @strerror(i32 noundef %1381) #9
  %1383 = load i32, ptr %568, align 4, !tbaa !5
  %1384 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1375, ptr noundef nonnull %.str.5.sink824, i32 noundef %1376, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 535, ptr noundef %1378, ptr noundef %1380, ptr noundef %1382, i32 noundef %1383) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1385:                                             ; preds = %1359
  store i32 0, ptr %514, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %568, align 4, !tbaa !5
  %1386 = load i32, ptr @test_count, align 4, !tbaa !5
  %1387 = add nsw i32 %1386, 1
  store i32 %1387, ptr @test_count, align 4, !tbaa !5
  %bcmp276 = call i32 @bcmp(ptr noundef nonnull dereferenceable(32) %571, ptr noundef nonnull dereferenceable(32) @zero_to_thirty_one, i64 32)
  %1388 = icmp eq i32 %bcmp276, 0
  br i1 %1388, label %1411, label %1389

1389:                                             ; preds = %1385
  %1390 = load i32, ptr %568, align 4, !tbaa !5
  %1391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1392 = call i32 @s2n_print_stacktrace(ptr noundef %1391) #9
  %1393 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1394 = trunc nuw i8 %1393 to i1
  br i1 %1394, label %1395, label %1399

1395:                                             ; preds = %1389
  %1396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1397 = call i32 @fileno(ptr noundef %1396) #9
  %1398 = call i32 @isatty(i32 noundef %1397) #9
  %.not277 = icmp eq i32 %1398, 0
  br i1 %.not277, label %1399, label %1400

1399:                                             ; preds = %1395, %1389
  br label %1400

1400:                                             ; preds = %1395, %1399
  %.str.5.sink833 = phi ptr [ @.str.5, %1399 ], [ @.str.2, %1395 ]
  store i32 %1390, ptr %568, align 4, !tbaa !5
  %1401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1402 = load i32, ptr @test_count, align 4, !tbaa !5
  %1403 = load i32, ptr %514, align 4, !tbaa !5
  %1404 = call ptr @s2n_strerror(i32 noundef %1403, ptr noundef nonnull @.str.4) #9
  %1405 = load i32, ptr %514, align 4, !tbaa !5
  %1406 = call ptr @s2n_strerror_debug(i32 noundef %1405, ptr noundef nonnull @.str.4) #9
  %1407 = load i32, ptr %568, align 4, !tbaa !5
  %1408 = call ptr @strerror(i32 noundef %1407) #9
  %1409 = load i32, ptr %568, align 4, !tbaa !5
  %1410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1401, ptr noundef nonnull %.str.5.sink833, i32 noundef %1402, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 538, ptr noundef %1404, ptr noundef %1406, ptr noundef %1408, i32 noundef %1409) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1411:                                             ; preds = %1385
  %1412 = add nsw i32 %1386, 2
  store i32 %1412, ptr @test_count, align 4, !tbaa !5
  %1413 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %240) #9
  %1414 = icmp eq i32 %1413, 2
  br i1 %1414, label %1437, label %1415

1415:                                             ; preds = %1411
  %1416 = load i32, ptr %568, align 4, !tbaa !5
  %1417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1418 = call i32 @s2n_print_stacktrace(ptr noundef %1417) #9
  %1419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1420 = trunc nuw i8 %1419 to i1
  br i1 %1420, label %1421, label %1425

1421:                                             ; preds = %1415
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = call i32 @fileno(ptr noundef %1422) #9
  %1424 = call i32 @isatty(i32 noundef %1423) #9
  %.not278 = icmp eq i32 %1424, 0
  br i1 %.not278, label %1425, label %1426

1425:                                             ; preds = %1421, %1415
  br label %1426

1426:                                             ; preds = %1421, %1425
  %.str.5.sink842 = phi ptr [ @.str.5, %1425 ], [ @.str.2, %1421 ]
  store i32 %1416, ptr %568, align 4, !tbaa !5
  %1427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1428 = load i32, ptr @test_count, align 4, !tbaa !5
  %1429 = load i32, ptr %514, align 4, !tbaa !5
  %1430 = call ptr @s2n_strerror(i32 noundef %1429, ptr noundef nonnull @.str.4) #9
  %1431 = load i32, ptr %514, align 4, !tbaa !5
  %1432 = call ptr @s2n_strerror_debug(i32 noundef %1431, ptr noundef nonnull @.str.4) #9
  %1433 = load i32, ptr %568, align 4, !tbaa !5
  %1434 = call ptr @strerror(i32 noundef %1433) #9
  %1435 = load i32, ptr %568, align 4, !tbaa !5
  %1436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1427, ptr noundef nonnull %.str.5.sink842, i32 noundef %1428, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 541, ptr noundef %1430, ptr noundef %1432, ptr noundef %1434, i32 noundef %1435) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1437:                                             ; preds = %1411
  %1438 = load i32, ptr @test_count, align 4, !tbaa !5
  %1439 = add nsw i32 %1438, 1
  store i32 %1439, ptr @test_count, align 4, !tbaa !5
  %1440 = call i32 @waitpid(i32 noundef %1193, ptr noundef nonnull %4, i32 noundef 0) #9
  %1441 = icmp eq i32 %1440, %1193
  br i1 %1441, label %1464, label %1442

1442:                                             ; preds = %1437
  %1443 = load i32, ptr %568, align 4, !tbaa !5
  %1444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1445 = call i32 @s2n_print_stacktrace(ptr noundef %1444) #9
  %1446 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1447 = trunc nuw i8 %1446 to i1
  br i1 %1447, label %1448, label %1452

1448:                                             ; preds = %1442
  %1449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1450 = call i32 @fileno(ptr noundef %1449) #9
  %1451 = call i32 @isatty(i32 noundef %1450) #9
  %.not279 = icmp eq i32 %1451, 0
  br i1 %.not279, label %1452, label %1453

1452:                                             ; preds = %1448, %1442
  br label %1453

1453:                                             ; preds = %1448, %1452
  %.str.5.sink851 = phi ptr [ @.str.5, %1452 ], [ @.str.2, %1448 ]
  store i32 %1443, ptr %568, align 4, !tbaa !5
  %1454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1455 = load i32, ptr @test_count, align 4, !tbaa !5
  %1456 = load i32, ptr %514, align 4, !tbaa !5
  %1457 = call ptr @s2n_strerror(i32 noundef %1456, ptr noundef nonnull @.str.4) #9
  %1458 = load i32, ptr %514, align 4, !tbaa !5
  %1459 = call ptr @s2n_strerror_debug(i32 noundef %1458, ptr noundef nonnull @.str.4) #9
  %1460 = load i32, ptr %568, align 4, !tbaa !5
  %1461 = call ptr @strerror(i32 noundef %1460) #9
  %1462 = load i32, ptr %568, align 4, !tbaa !5
  %1463 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1454, ptr noundef nonnull %.str.5.sink851, i32 noundef %1455, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 544, ptr noundef %1457, ptr noundef %1459, ptr noundef %1461, i32 noundef %1462) #11
  call void @exit(i32 noundef 1) #12
  unreachable

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

1469:                                             ; preds = %1464
  %1470 = load i32, ptr %568, align 4, !tbaa !5
  %1471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1472 = call i32 @s2n_print_stacktrace(ptr noundef %1471) #9
  %1473 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1474 = trunc nuw i8 %1473 to i1
  br i1 %1474, label %1475, label %1479

1475:                                             ; preds = %1469
  %1476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1477 = call i32 @fileno(ptr noundef %1476) #9
  %1478 = call i32 @isatty(i32 noundef %1477) #9
  %.not280 = icmp eq i32 %1478, 0
  br i1 %.not280, label %1479, label %1480

1479:                                             ; preds = %1475, %1469
  br label %1480

1480:                                             ; preds = %1475, %1479
  %.str.5.sink860 = phi ptr [ @.str.5, %1479 ], [ @.str.2, %1475 ]
  store i32 %1470, ptr %568, align 4, !tbaa !5
  %1481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1482 = load i32, ptr @test_count, align 4, !tbaa !5
  %1483 = load i32, ptr %514, align 4, !tbaa !5
  %1484 = call ptr @s2n_strerror(i32 noundef %1483, ptr noundef nonnull @.str.4) #9
  %1485 = load i32, ptr %514, align 4, !tbaa !5
  %1486 = call ptr @s2n_strerror_debug(i32 noundef %1485, ptr noundef nonnull @.str.4) #9
  %1487 = load i32, ptr %568, align 4, !tbaa !5
  %1488 = call ptr @strerror(i32 noundef %1487) #9
  %1489 = load i32, ptr %568, align 4, !tbaa !5
  %1490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1481, ptr noundef nonnull %.str.5.sink860, i32 noundef %1482, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 545, ptr noundef %1484, ptr noundef %1486, ptr noundef %1488, i32 noundef %1489) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1491:                                             ; preds = %1464
  %1492 = add nsw i32 %1465, 2
  store i32 %1492, ptr @test_count, align 4, !tbaa !5
  %1493 = load i32, ptr %5, align 4, !tbaa !5
  %1494 = call i32 @close(i32 noundef %1493) #9
  %1495 = icmp eq i32 %1494, -1
  br i1 %1495, label %1496, label %1518

1496:                                             ; preds = %1491
  %1497 = load i32, ptr %568, align 4, !tbaa !5
  %1498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1499 = call i32 @s2n_print_stacktrace(ptr noundef %1498) #9
  %1500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1501 = trunc nuw i8 %1500 to i1
  br i1 %1501, label %1502, label %1506

1502:                                             ; preds = %1496
  %1503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1504 = call i32 @fileno(ptr noundef %1503) #9
  %1505 = call i32 @isatty(i32 noundef %1504) #9
  %.not320 = icmp eq i32 %1505, 0
  br i1 %.not320, label %1506, label %1507

1506:                                             ; preds = %1502, %1496
  br label %1507

1507:                                             ; preds = %1502, %1506
  %.str.5.sink869 = phi ptr [ @.str.5, %1506 ], [ @.str.2, %1502 ]
  store i32 %1497, ptr %568, align 4, !tbaa !5
  %1508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1509 = load i32, ptr @test_count, align 4, !tbaa !5
  %1510 = load i32, ptr %514, align 4, !tbaa !5
  %1511 = call ptr @s2n_strerror(i32 noundef %1510, ptr noundef nonnull @.str.4) #9
  %1512 = load i32, ptr %514, align 4, !tbaa !5
  %1513 = call ptr @s2n_strerror_debug(i32 noundef %1512, ptr noundef nonnull @.str.4) #9
  %1514 = load i32, ptr %568, align 4, !tbaa !5
  %1515 = call ptr @strerror(i32 noundef %1514) #9
  %1516 = load i32, ptr %568, align 4, !tbaa !5
  %1517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1508, ptr noundef nonnull %.str.5.sink869, i32 noundef %1509, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 546, ptr noundef %1511, ptr noundef %1513, ptr noundef %1515, i32 noundef %1516) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1518:                                             ; preds = %1491
  %1519 = load i32, ptr @test_count, align 4, !tbaa !5
  %1520 = add nsw i32 %1519, 1
  store i32 %1520, ptr @test_count, align 4, !tbaa !5
  %1521 = call i32 @pipe(ptr noundef nonnull %5) #9
  %1522 = icmp eq i32 %1521, -1
  br i1 %1522, label %1523, label %1545

1523:                                             ; preds = %1518
  %1524 = load i32, ptr %568, align 4, !tbaa !5
  %1525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1526 = call i32 @s2n_print_stacktrace(ptr noundef %1525) #9
  %1527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1528 = trunc nuw i8 %1527 to i1
  br i1 %1528, label %1529, label %1533

1529:                                             ; preds = %1523
  %1530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1531 = call i32 @fileno(ptr noundef %1530) #9
  %1532 = call i32 @isatty(i32 noundef %1531) #9
  %.not319 = icmp eq i32 %1532, 0
  br i1 %.not319, label %1533, label %1534

1533:                                             ; preds = %1529, %1523
  br label %1534

1534:                                             ; preds = %1529, %1533
  %.str.5.sink878 = phi ptr [ @.str.5, %1533 ], [ @.str.2, %1529 ]
  store i32 %1524, ptr %568, align 4, !tbaa !5
  %1535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1536 = load i32, ptr @test_count, align 4, !tbaa !5
  %1537 = load i32, ptr %514, align 4, !tbaa !5
  %1538 = call ptr @s2n_strerror(i32 noundef %1537, ptr noundef nonnull @.str.4) #9
  %1539 = load i32, ptr %514, align 4, !tbaa !5
  %1540 = call ptr @s2n_strerror_debug(i32 noundef %1539, ptr noundef nonnull @.str.4) #9
  %1541 = load i32, ptr %568, align 4, !tbaa !5
  %1542 = call ptr @strerror(i32 noundef %1541) #9
  %1543 = load i32, ptr %568, align 4, !tbaa !5
  %1544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1535, ptr noundef nonnull %.str.5.sink878, i32 noundef %1536, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 549, ptr noundef %1538, ptr noundef %1540, ptr noundef %1542, i32 noundef %1543) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1545:                                             ; preds = %1518
  %1546 = load i32, ptr @test_count, align 4, !tbaa !5
  %1547 = add nsw i32 %1546, 1
  store i32 %1547, ptr @test_count, align 4, !tbaa !5
  %1548 = call i32 @s2n_connection_wipe(ptr noundef nonnull %240) #9
  %1549 = icmp eq i32 %1548, -1
  br i1 %1549, label %1550, label %1572

1550:                                             ; preds = %1545
  %1551 = load i32, ptr %568, align 4, !tbaa !5
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = call i32 @s2n_print_stacktrace(ptr noundef %1552) #9
  %1554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1555 = trunc nuw i8 %1554 to i1
  br i1 %1555, label %1556, label %1560

1556:                                             ; preds = %1550
  %1557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1558 = call i32 @fileno(ptr noundef %1557) #9
  %1559 = call i32 @isatty(i32 noundef %1558) #9
  %.not318 = icmp eq i32 %1559, 0
  br i1 %.not318, label %1560, label %1561

1560:                                             ; preds = %1556, %1550
  br label %1561

1561:                                             ; preds = %1556, %1560
  %.str.5.sink887 = phi ptr [ @.str.5, %1560 ], [ @.str.2, %1556 ]
  store i32 %1551, ptr %568, align 4, !tbaa !5
  %1562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1563 = load i32, ptr @test_count, align 4, !tbaa !5
  %1564 = load i32, ptr %514, align 4, !tbaa !5
  %1565 = call ptr @s2n_strerror(i32 noundef %1564, ptr noundef nonnull @.str.4) #9
  %1566 = load i32, ptr %514, align 4, !tbaa !5
  %1567 = call ptr @s2n_strerror_debug(i32 noundef %1566, ptr noundef nonnull @.str.4) #9
  %1568 = load i32, ptr %568, align 4, !tbaa !5
  %1569 = call ptr @strerror(i32 noundef %1568) #9
  %1570 = load i32, ptr %568, align 4, !tbaa !5
  %1571 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1562, ptr noundef nonnull %.str.5.sink887, i32 noundef %1563, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 552, ptr noundef %1565, ptr noundef %1567, ptr noundef %1569, i32 noundef %1570) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1572:                                             ; preds = %1545
  store i8 33, ptr %296, align 1, !tbaa !15
  store i8 33, ptr %297, align 2, !tbaa !42
  store i8 33, ptr %298, align 4, !tbaa !43
  %1573 = load i32, ptr @test_count, align 4, !tbaa !5
  %1574 = add nsw i32 %1573, 1
  store i32 %1574, ptr @test_count, align 4, !tbaa !5
  %1575 = load i32, ptr %5, align 4, !tbaa !5
  %1576 = call i32 @s2n_connection_set_read_fd(ptr noundef nonnull %240, i32 noundef %1575) #9
  %1577 = icmp eq i32 %1576, -1
  br i1 %1577, label %1578, label %1600

1578:                                             ; preds = %1572
  %1579 = load i32, ptr %568, align 4, !tbaa !5
  %1580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1581 = call i32 @s2n_print_stacktrace(ptr noundef %1580) #9
  %1582 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1583 = trunc nuw i8 %1582 to i1
  br i1 %1583, label %1584, label %1588

1584:                                             ; preds = %1578
  %1585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1586 = call i32 @fileno(ptr noundef %1585) #9
  %1587 = call i32 @isatty(i32 noundef %1586) #9
  %.not317 = icmp eq i32 %1587, 0
  br i1 %.not317, label %1588, label %1589

1588:                                             ; preds = %1584, %1578
  br label %1589

1589:                                             ; preds = %1584, %1588
  %.str.5.sink896 = phi ptr [ @.str.5, %1588 ], [ @.str.2, %1584 ]
  store i32 %1579, ptr %568, align 4, !tbaa !5
  %1590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1591 = load i32, ptr @test_count, align 4, !tbaa !5
  %1592 = load i32, ptr %514, align 4, !tbaa !5
  %1593 = call ptr @s2n_strerror(i32 noundef %1592, ptr noundef nonnull @.str.4) #9
  %1594 = load i32, ptr %514, align 4, !tbaa !5
  %1595 = call ptr @s2n_strerror_debug(i32 noundef %1594, ptr noundef nonnull @.str.4) #9
  %1596 = load i32, ptr %568, align 4, !tbaa !5
  %1597 = call ptr @strerror(i32 noundef %1596) #9
  %1598 = load i32, ptr %568, align 4, !tbaa !5
  %1599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1590, ptr noundef nonnull %.str.5.sink896, i32 noundef %1591, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 558, ptr noundef %1593, ptr noundef %1595, ptr noundef %1597, i32 noundef %1598) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1600:                                             ; preds = %1572
  store i32 3, ptr %358, align 4, !tbaa !44
  store i32 1, ptr %359, align 8, !tbaa !45
  %1601 = call i32 @fork() #9
  %1602 = icmp eq i32 %1601, 0
  %1603 = load i32, ptr @test_count, align 4, !tbaa !5
  %1604 = add nsw i32 %1603, 1
  store i32 %1604, ptr @test_count, align 4, !tbaa !5
  br i1 %1602, label %1605, label %1687

1605:                                             ; preds = %1600
  %1606 = load i32, ptr %5, align 4, !tbaa !5
  %1607 = call i32 @close(i32 noundef %1606) #9
  %1608 = icmp eq i32 %1607, -1
  br i1 %1608, label %1609, label %1631

1609:                                             ; preds = %1605
  %1610 = load i32, ptr %568, align 4, !tbaa !5
  %1611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1612 = call i32 @s2n_print_stacktrace(ptr noundef %1611) #9
  %1613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1614 = trunc nuw i8 %1613 to i1
  br i1 %1614, label %1615, label %1619

1615:                                             ; preds = %1609
  %1616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1617 = call i32 @fileno(ptr noundef %1616) #9
  %1618 = call i32 @isatty(i32 noundef %1617) #9
  %.not316 = icmp eq i32 %1618, 0
  br i1 %.not316, label %1619, label %1620

1619:                                             ; preds = %1615, %1609
  br label %1620

1620:                                             ; preds = %1615, %1619
  %.str.5.sink905 = phi ptr [ @.str.5, %1619 ], [ @.str.2, %1615 ]
  store i32 %1610, ptr %568, align 4, !tbaa !5
  %1621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1622 = load i32, ptr @test_count, align 4, !tbaa !5
  %1623 = load i32, ptr %514, align 4, !tbaa !5
  %1624 = call ptr @s2n_strerror(i32 noundef %1623, ptr noundef nonnull @.str.4) #9
  %1625 = load i32, ptr %514, align 4, !tbaa !5
  %1626 = call ptr @s2n_strerror_debug(i32 noundef %1625, ptr noundef nonnull @.str.4) #9
  %1627 = load i32, ptr %568, align 4, !tbaa !5
  %1628 = call ptr @strerror(i32 noundef %1627) #9
  %1629 = load i32, ptr %568, align 4, !tbaa !5
  %1630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1621, ptr noundef nonnull %.str.5.sink905, i32 noundef %1622, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 568, ptr noundef %1624, ptr noundef %1626, ptr noundef %1628, i32 noundef %1629) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1631:                                             ; preds = %1605
  %1632 = load i32, ptr %454, align 4, !tbaa !5
  call void @interleaved_fragmented_warning_alert(i32 noundef %1632)
  %1633 = load i32, ptr @test_count, align 4, !tbaa !5
  %1634 = add nsw i32 %1633, 1
  store i32 %1634, ptr @test_count, align 4, !tbaa !5
  %1635 = call i32 @s2n_connection_free(ptr noundef nonnull %240) #9
  %1636 = icmp eq i32 %1635, -1
  br i1 %1636, label %1637, label %1659

1637:                                             ; preds = %1631
  %1638 = load i32, ptr %568, align 4, !tbaa !5
  %1639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1640 = call i32 @s2n_print_stacktrace(ptr noundef %1639) #9
  %1641 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1642 = trunc nuw i8 %1641 to i1
  br i1 %1642, label %1643, label %1647

1643:                                             ; preds = %1637
  %1644 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1645 = call i32 @fileno(ptr noundef %1644) #9
  %1646 = call i32 @isatty(i32 noundef %1645) #9
  %.not315 = icmp eq i32 %1646, 0
  br i1 %.not315, label %1647, label %1648

1647:                                             ; preds = %1643, %1637
  br label %1648

1648:                                             ; preds = %1643, %1647
  %.str.5.sink914 = phi ptr [ @.str.5, %1647 ], [ @.str.2, %1643 ]
  store i32 %1638, ptr %568, align 4, !tbaa !5
  %1649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1650 = load i32, ptr @test_count, align 4, !tbaa !5
  %1651 = load i32, ptr %514, align 4, !tbaa !5
  %1652 = call ptr @s2n_strerror(i32 noundef %1651, ptr noundef nonnull @.str.4) #9
  %1653 = load i32, ptr %514, align 4, !tbaa !5
  %1654 = call ptr @s2n_strerror_debug(i32 noundef %1653, ptr noundef nonnull @.str.4) #9
  %1655 = load i32, ptr %568, align 4, !tbaa !5
  %1656 = call ptr @strerror(i32 noundef %1655) #9
  %1657 = load i32, ptr %568, align 4, !tbaa !5
  %1658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1649, ptr noundef nonnull %.str.5.sink914, i32 noundef %1650, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 572, ptr noundef %1652, ptr noundef %1654, ptr noundef %1656, i32 noundef %1657) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1659:                                             ; preds = %1631
  %1660 = load i32, ptr @test_count, align 4, !tbaa !5
  %1661 = add nsw i32 %1660, 1
  store i32 %1661, ptr @test_count, align 4, !tbaa !5
  %1662 = call i32 @s2n_config_free(ptr noundef nonnull %124) #9
  %1663 = icmp eq i32 %1662, -1
  br i1 %1663, label %1664, label %1686

1664:                                             ; preds = %1659
  %1665 = load i32, ptr %568, align 4, !tbaa !5
  %1666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1667 = call i32 @s2n_print_stacktrace(ptr noundef %1666) #9
  %1668 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1669 = trunc nuw i8 %1668 to i1
  br i1 %1669, label %1670, label %1674

1670:                                             ; preds = %1664
  %1671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1672 = call i32 @fileno(ptr noundef %1671) #9
  %1673 = call i32 @isatty(i32 noundef %1672) #9
  %.not314 = icmp eq i32 %1673, 0
  br i1 %.not314, label %1674, label %1675

1674:                                             ; preds = %1670, %1664
  br label %1675

1675:                                             ; preds = %1670, %1674
  %.str.5.sink923 = phi ptr [ @.str.5, %1674 ], [ @.str.2, %1670 ]
  store i32 %1665, ptr %568, align 4, !tbaa !5
  %1676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1677 = load i32, ptr @test_count, align 4, !tbaa !5
  %1678 = load i32, ptr %514, align 4, !tbaa !5
  %1679 = call ptr @s2n_strerror(i32 noundef %1678, ptr noundef nonnull @.str.4) #9
  %1680 = load i32, ptr %514, align 4, !tbaa !5
  %1681 = call ptr @s2n_strerror_debug(i32 noundef %1680, ptr noundef nonnull @.str.4) #9
  %1682 = load i32, ptr %568, align 4, !tbaa !5
  %1683 = call ptr @strerror(i32 noundef %1682) #9
  %1684 = load i32, ptr %568, align 4, !tbaa !5
  %1685 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1676, ptr noundef nonnull %.str.5.sink923, i32 noundef %1677, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 573, ptr noundef %1679, ptr noundef %1681, ptr noundef %1683, i32 noundef %1684) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1686:                                             ; preds = %1659
  call void @exit(i32 noundef 0) #12
  unreachable

1687:                                             ; preds = %1600
  %1688 = load i32, ptr %454, align 4, !tbaa !5
  %1689 = call i32 @close(i32 noundef %1688) #9
  %1690 = icmp eq i32 %1689, -1
  br i1 %1690, label %1691, label %1713

1691:                                             ; preds = %1687
  %1692 = load i32, ptr %568, align 4, !tbaa !5
  %1693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1694 = call i32 @s2n_print_stacktrace(ptr noundef %1693) #9
  %1695 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1696 = trunc nuw i8 %1695 to i1
  br i1 %1696, label %1697, label %1701

1697:                                             ; preds = %1691
  %1698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1699 = call i32 @fileno(ptr noundef %1698) #9
  %1700 = call i32 @isatty(i32 noundef %1699) #9
  %.not313 = icmp eq i32 %1700, 0
  br i1 %.not313, label %1701, label %1702

1701:                                             ; preds = %1697, %1691
  br label %1702

1702:                                             ; preds = %1697, %1701
  %.str.5.sink932 = phi ptr [ @.str.5, %1701 ], [ @.str.2, %1697 ]
  store i32 %1692, ptr %568, align 4, !tbaa !5
  %1703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1704 = load i32, ptr @test_count, align 4, !tbaa !5
  %1705 = load i32, ptr %514, align 4, !tbaa !5
  %1706 = call ptr @s2n_strerror(i32 noundef %1705, ptr noundef nonnull @.str.4) #9
  %1707 = load i32, ptr %514, align 4, !tbaa !5
  %1708 = call ptr @s2n_strerror_debug(i32 noundef %1707, ptr noundef nonnull @.str.4) #9
  %1709 = load i32, ptr %568, align 4, !tbaa !5
  %1710 = call ptr @strerror(i32 noundef %1709) #9
  %1711 = load i32, ptr %568, align 4, !tbaa !5
  %1712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1703, ptr noundef nonnull %.str.5.sink932, i32 noundef %1704, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 578, ptr noundef %1706, ptr noundef %1708, ptr noundef %1710, i32 noundef %1711) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1713:                                             ; preds = %1687
  %1714 = load i32, ptr @test_count, align 4, !tbaa !5
  %1715 = add nsw i32 %1714, 1
  store i32 %1715, ptr @test_count, align 4, !tbaa !5
  %1716 = call i32 @s2n_negotiate(ptr noundef nonnull %240, ptr noundef nonnull %3) #9
  %1717 = icmp eq i32 %1716, -1
  br i1 %1717, label %1740, label %1718

1718:                                             ; preds = %1713
  %1719 = load i32, ptr %568, align 4, !tbaa !5
  %1720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1721 = call i32 @s2n_print_stacktrace(ptr noundef %1720) #9
  %1722 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1723 = trunc nuw i8 %1722 to i1
  br i1 %1723, label %1724, label %1728

1724:                                             ; preds = %1718
  %1725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1726 = call i32 @fileno(ptr noundef %1725) #9
  %1727 = call i32 @isatty(i32 noundef %1726) #9
  %.not281 = icmp eq i32 %1727, 0
  br i1 %.not281, label %1728, label %1729

1728:                                             ; preds = %1724, %1718
  br label %1729

1729:                                             ; preds = %1724, %1728
  %.str.5.sink941 = phi ptr [ @.str.5, %1728 ], [ @.str.2, %1724 ]
  store i32 %1719, ptr %568, align 4, !tbaa !5
  %1730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1731 = load i32, ptr @test_count, align 4, !tbaa !5
  %1732 = load i32, ptr %514, align 4, !tbaa !5
  %1733 = call ptr @s2n_strerror(i32 noundef %1732, ptr noundef nonnull @.str.4) #9
  %1734 = load i32, ptr %514, align 4, !tbaa !5
  %1735 = call ptr @s2n_strerror_debug(i32 noundef %1734, ptr noundef nonnull @.str.4) #9
  %1736 = load i32, ptr %568, align 4, !tbaa !5
  %1737 = call ptr @strerror(i32 noundef %1736) #9
  %1738 = load i32, ptr %568, align 4, !tbaa !5
  %1739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1730, ptr noundef nonnull %.str.5.sink941, i32 noundef %1731, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 581, ptr noundef %1733, ptr noundef %1735, ptr noundef %1737, i32 noundef %1738) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1740:                                             ; preds = %1713
  %1741 = load i32, ptr @test_count, align 4, !tbaa !5
  %1742 = add nsw i32 %1741, 1
  store i32 %1742, ptr @test_count, align 4, !tbaa !5
  %1743 = load i32, ptr %514, align 4, !tbaa !5
  %1744 = icmp eq i32 %1743, 0
  br i1 %1744, label %1745, label %1767

1745:                                             ; preds = %1740
  %1746 = load i32, ptr %568, align 4, !tbaa !5
  %1747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1748 = call i32 @s2n_print_stacktrace(ptr noundef %1747) #9
  %1749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1750 = trunc nuw i8 %1749 to i1
  br i1 %1750, label %1751, label %1755

1751:                                             ; preds = %1745
  %1752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1753 = call i32 @fileno(ptr noundef %1752) #9
  %1754 = call i32 @isatty(i32 noundef %1753) #9
  %.not312 = icmp eq i32 %1754, 0
  br i1 %.not312, label %1755, label %1756

1755:                                             ; preds = %1751, %1745
  br label %1756

1756:                                             ; preds = %1751, %1755
  %.str.5.sink950 = phi ptr [ @.str.5, %1755 ], [ @.str.2, %1751 ]
  store i32 %1746, ptr %568, align 4, !tbaa !5
  %1757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1758 = load i32, ptr @test_count, align 4, !tbaa !5
  %1759 = load i32, ptr %514, align 4, !tbaa !5
  %1760 = call ptr @s2n_strerror(i32 noundef %1759, ptr noundef nonnull @.str.4) #9
  %1761 = load i32, ptr %514, align 4, !tbaa !5
  %1762 = call ptr @s2n_strerror_debug(i32 noundef %1761, ptr noundef nonnull @.str.4) #9
  %1763 = load i32, ptr %568, align 4, !tbaa !5
  %1764 = call ptr @strerror(i32 noundef %1763) #9
  %1765 = load i32, ptr %568, align 4, !tbaa !5
  %1766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1757, ptr noundef nonnull %.str.5.sink950, i32 noundef %1758, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 581, ptr noundef %1760, ptr noundef %1762, ptr noundef %1764, i32 noundef %1765) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1767:                                             ; preds = %1740
  %1768 = add nsw i32 %1741, 2
  store i32 %1768, ptr @test_count, align 4, !tbaa !5
  %1769 = call ptr @s2n_strerror_debug(i32 noundef %1743, ptr noundef nonnull @.str.4) #9
  %1770 = icmp eq ptr %1769, null
  br i1 %1770, label %1771, label %1793

1771:                                             ; preds = %1767
  %1772 = load i32, ptr %568, align 4, !tbaa !5
  %1773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1774 = call i32 @s2n_print_stacktrace(ptr noundef %1773) #9
  %1775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1776 = trunc nuw i8 %1775 to i1
  br i1 %1776, label %1777, label %1781

1777:                                             ; preds = %1771
  %1778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1779 = call i32 @fileno(ptr noundef %1778) #9
  %1780 = call i32 @isatty(i32 noundef %1779) #9
  %.not311 = icmp eq i32 %1780, 0
  br i1 %.not311, label %1781, label %1782

1781:                                             ; preds = %1777, %1771
  br label %1782

1782:                                             ; preds = %1777, %1781
  %.str.5.sink959 = phi ptr [ @.str.5, %1781 ], [ @.str.2, %1777 ]
  store i32 %1772, ptr %568, align 4, !tbaa !5
  %1783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1784 = load i32, ptr @test_count, align 4, !tbaa !5
  %1785 = load i32, ptr %514, align 4, !tbaa !5
  %1786 = call ptr @s2n_strerror(i32 noundef %1785, ptr noundef nonnull @.str.4) #9
  %1787 = load i32, ptr %514, align 4, !tbaa !5
  %1788 = call ptr @s2n_strerror_debug(i32 noundef %1787, ptr noundef nonnull @.str.4) #9
  %1789 = load i32, ptr %568, align 4, !tbaa !5
  %1790 = call ptr @strerror(i32 noundef %1789) #9
  %1791 = load i32, ptr %568, align 4, !tbaa !5
  %1792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1783, ptr noundef nonnull %.str.5.sink959, i32 noundef %1784, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 581, ptr noundef %1786, ptr noundef %1788, ptr noundef %1790, i32 noundef %1791) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1793:                                             ; preds = %1767
  store i32 0, ptr %514, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %568, align 4, !tbaa !5
  %1794 = load i32, ptr @test_count, align 4, !tbaa !5
  %1795 = add nsw i32 %1794, 1
  store i32 %1795, ptr @test_count, align 4, !tbaa !5
  %bcmp282 = call i32 @bcmp(ptr noundef nonnull dereferenceable(32) %571, ptr noundef nonnull dereferenceable(32) @zero_to_thirty_one, i64 32)
  %1796 = icmp eq i32 %bcmp282, 0
  br i1 %1796, label %1797, label %1819

1797:                                             ; preds = %1793
  %1798 = load i32, ptr %568, align 4, !tbaa !5
  %1799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1800 = call i32 @s2n_print_stacktrace(ptr noundef %1799) #9
  %1801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1802 = trunc nuw i8 %1801 to i1
  br i1 %1802, label %1803, label %1807

1803:                                             ; preds = %1797
  %1804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1805 = call i32 @fileno(ptr noundef %1804) #9
  %1806 = call i32 @isatty(i32 noundef %1805) #9
  %.not310 = icmp eq i32 %1806, 0
  br i1 %.not310, label %1807, label %1808

1807:                                             ; preds = %1803, %1797
  br label %1808

1808:                                             ; preds = %1803, %1807
  %.str.5.sink968 = phi ptr [ @.str.5, %1807 ], [ @.str.2, %1803 ]
  store i32 %1798, ptr %568, align 4, !tbaa !5
  %1809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1810 = load i32, ptr @test_count, align 4, !tbaa !5
  %1811 = load i32, ptr %514, align 4, !tbaa !5
  %1812 = call ptr @s2n_strerror(i32 noundef %1811, ptr noundef nonnull @.str.4) #9
  %1813 = load i32, ptr %514, align 4, !tbaa !5
  %1814 = call ptr @s2n_strerror_debug(i32 noundef %1813, ptr noundef nonnull @.str.4) #9
  %1815 = load i32, ptr %568, align 4, !tbaa !5
  %1816 = call ptr @strerror(i32 noundef %1815) #9
  %1817 = load i32, ptr %568, align 4, !tbaa !5
  %1818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1809, ptr noundef nonnull %.str.5.sink968, i32 noundef %1810, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 584, ptr noundef %1812, ptr noundef %1814, ptr noundef %1816, i32 noundef %1817) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1819:                                             ; preds = %1793
  %1820 = add nsw i32 %1794, 2
  store i32 %1820, ptr @test_count, align 4, !tbaa !5
  %1821 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %240) #9
  %1822 = icmp eq i32 %1821, 1
  br i1 %1822, label %1845, label %1823

1823:                                             ; preds = %1819
  %1824 = load i32, ptr %568, align 4, !tbaa !5
  %1825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1826 = call i32 @s2n_print_stacktrace(ptr noundef %1825) #9
  %1827 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1828 = trunc nuw i8 %1827 to i1
  br i1 %1828, label %1829, label %1833

1829:                                             ; preds = %1823
  %1830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1831 = call i32 @fileno(ptr noundef %1830) #9
  %1832 = call i32 @isatty(i32 noundef %1831) #9
  %.not283 = icmp eq i32 %1832, 0
  br i1 %.not283, label %1833, label %1834

1833:                                             ; preds = %1829, %1823
  br label %1834

1834:                                             ; preds = %1829, %1833
  %.str.5.sink977 = phi ptr [ @.str.5, %1833 ], [ @.str.2, %1829 ]
  store i32 %1824, ptr %568, align 4, !tbaa !5
  %1835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1836 = load i32, ptr @test_count, align 4, !tbaa !5
  %1837 = load i32, ptr %514, align 4, !tbaa !5
  %1838 = call ptr @s2n_strerror(i32 noundef %1837, ptr noundef nonnull @.str.4) #9
  %1839 = load i32, ptr %514, align 4, !tbaa !5
  %1840 = call ptr @s2n_strerror_debug(i32 noundef %1839, ptr noundef nonnull @.str.4) #9
  %1841 = load i32, ptr %568, align 4, !tbaa !5
  %1842 = call ptr @strerror(i32 noundef %1841) #9
  %1843 = load i32, ptr %568, align 4, !tbaa !5
  %1844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1835, ptr noundef nonnull %.str.5.sink977, i32 noundef %1836, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 587, ptr noundef %1838, ptr noundef %1840, ptr noundef %1842, i32 noundef %1843) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1845:                                             ; preds = %1819
  %1846 = load i32, ptr @test_count, align 4, !tbaa !5
  %1847 = add nsw i32 %1846, 1
  store i32 %1847, ptr @test_count, align 4, !tbaa !5
  %1848 = call i32 @waitpid(i32 noundef %1601, ptr noundef nonnull %4, i32 noundef 0) #9
  %1849 = icmp eq i32 %1848, %1601
  br i1 %1849, label %1872, label %1850

1850:                                             ; preds = %1845
  %1851 = load i32, ptr %568, align 4, !tbaa !5
  %1852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1853 = call i32 @s2n_print_stacktrace(ptr noundef %1852) #9
  %1854 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1855 = trunc nuw i8 %1854 to i1
  br i1 %1855, label %1856, label %1860

1856:                                             ; preds = %1850
  %1857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1858 = call i32 @fileno(ptr noundef %1857) #9
  %1859 = call i32 @isatty(i32 noundef %1858) #9
  %.not284 = icmp eq i32 %1859, 0
  br i1 %.not284, label %1860, label %1861

1860:                                             ; preds = %1856, %1850
  br label %1861

1861:                                             ; preds = %1856, %1860
  %.str.5.sink986 = phi ptr [ @.str.5, %1860 ], [ @.str.2, %1856 ]
  store i32 %1851, ptr %568, align 4, !tbaa !5
  %1862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1863 = load i32, ptr @test_count, align 4, !tbaa !5
  %1864 = load i32, ptr %514, align 4, !tbaa !5
  %1865 = call ptr @s2n_strerror(i32 noundef %1864, ptr noundef nonnull @.str.4) #9
  %1866 = load i32, ptr %514, align 4, !tbaa !5
  %1867 = call ptr @s2n_strerror_debug(i32 noundef %1866, ptr noundef nonnull @.str.4) #9
  %1868 = load i32, ptr %568, align 4, !tbaa !5
  %1869 = call ptr @strerror(i32 noundef %1868) #9
  %1870 = load i32, ptr %568, align 4, !tbaa !5
  %1871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1862, ptr noundef nonnull %.str.5.sink986, i32 noundef %1863, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 590, ptr noundef %1865, ptr noundef %1867, ptr noundef %1869, i32 noundef %1870) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1872:                                             ; preds = %1845
  %1873 = load i32, ptr @test_count, align 4, !tbaa !5
  %1874 = add nsw i32 %1873, 1
  store i32 %1874, ptr @test_count, align 4, !tbaa !5
  %1875 = load i32, ptr %4, align 4, !tbaa !5
  %1876 = icmp eq i32 %1875, 0
  br i1 %1876, label %1899, label %1877

1877:                                             ; preds = %1872
  %1878 = load i32, ptr %568, align 4, !tbaa !5
  %1879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1880 = call i32 @s2n_print_stacktrace(ptr noundef %1879) #9
  %1881 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1882 = trunc nuw i8 %1881 to i1
  br i1 %1882, label %1883, label %1887

1883:                                             ; preds = %1877
  %1884 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1885 = call i32 @fileno(ptr noundef %1884) #9
  %1886 = call i32 @isatty(i32 noundef %1885) #9
  %.not285 = icmp eq i32 %1886, 0
  br i1 %.not285, label %1887, label %1888

1887:                                             ; preds = %1883, %1877
  br label %1888

1888:                                             ; preds = %1883, %1887
  %.str.5.sink995 = phi ptr [ @.str.5, %1887 ], [ @.str.2, %1883 ]
  store i32 %1878, ptr %568, align 4, !tbaa !5
  %1889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1890 = load i32, ptr @test_count, align 4, !tbaa !5
  %1891 = load i32, ptr %514, align 4, !tbaa !5
  %1892 = call ptr @s2n_strerror(i32 noundef %1891, ptr noundef nonnull @.str.4) #9
  %1893 = load i32, ptr %514, align 4, !tbaa !5
  %1894 = call ptr @s2n_strerror_debug(i32 noundef %1893, ptr noundef nonnull @.str.4) #9
  %1895 = load i32, ptr %568, align 4, !tbaa !5
  %1896 = call ptr @strerror(i32 noundef %1895) #9
  %1897 = load i32, ptr %568, align 4, !tbaa !5
  %1898 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1889, ptr noundef nonnull %.str.5.sink995, i32 noundef %1890, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 591, ptr noundef %1892, ptr noundef %1894, ptr noundef %1896, i32 noundef %1897) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1899:                                             ; preds = %1872
  %1900 = add nsw i32 %1873, 2
  store i32 %1900, ptr @test_count, align 4, !tbaa !5
  %1901 = load i32, ptr %5, align 4, !tbaa !5
  %1902 = call i32 @close(i32 noundef %1901) #9
  %1903 = icmp eq i32 %1902, -1
  br i1 %1903, label %1904, label %1926

1904:                                             ; preds = %1899
  %1905 = load i32, ptr %568, align 4, !tbaa !5
  %1906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1907 = call i32 @s2n_print_stacktrace(ptr noundef %1906) #9
  %1908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1909 = trunc nuw i8 %1908 to i1
  br i1 %1909, label %1910, label %1914

1910:                                             ; preds = %1904
  %1911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1912 = call i32 @fileno(ptr noundef %1911) #9
  %1913 = call i32 @isatty(i32 noundef %1912) #9
  %.not309 = icmp eq i32 %1913, 0
  br i1 %.not309, label %1914, label %1915

1914:                                             ; preds = %1910, %1904
  br label %1915

1915:                                             ; preds = %1910, %1914
  %.str.5.sink1004 = phi ptr [ @.str.5, %1914 ], [ @.str.2, %1910 ]
  store i32 %1905, ptr %568, align 4, !tbaa !5
  %1916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1917 = load i32, ptr @test_count, align 4, !tbaa !5
  %1918 = load i32, ptr %514, align 4, !tbaa !5
  %1919 = call ptr @s2n_strerror(i32 noundef %1918, ptr noundef nonnull @.str.4) #9
  %1920 = load i32, ptr %514, align 4, !tbaa !5
  %1921 = call ptr @s2n_strerror_debug(i32 noundef %1920, ptr noundef nonnull @.str.4) #9
  %1922 = load i32, ptr %568, align 4, !tbaa !5
  %1923 = call ptr @strerror(i32 noundef %1922) #9
  %1924 = load i32, ptr %568, align 4, !tbaa !5
  %1925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1916, ptr noundef nonnull %.str.5.sink1004, i32 noundef %1917, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 592, ptr noundef %1919, ptr noundef %1921, ptr noundef %1923, i32 noundef %1924) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1926:                                             ; preds = %1899
  %1927 = load i32, ptr @test_count, align 4, !tbaa !5
  %1928 = add nsw i32 %1927, 1
  store i32 %1928, ptr @test_count, align 4, !tbaa !5
  %1929 = call i32 @pipe(ptr noundef nonnull %5) #9
  %1930 = icmp eq i32 %1929, -1
  br i1 %1930, label %1931, label %1953

1931:                                             ; preds = %1926
  %1932 = load i32, ptr %568, align 4, !tbaa !5
  %1933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1934 = call i32 @s2n_print_stacktrace(ptr noundef %1933) #9
  %1935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1936 = trunc nuw i8 %1935 to i1
  br i1 %1936, label %1937, label %1941

1937:                                             ; preds = %1931
  %1938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1939 = call i32 @fileno(ptr noundef %1938) #9
  %1940 = call i32 @isatty(i32 noundef %1939) #9
  %.not308 = icmp eq i32 %1940, 0
  br i1 %.not308, label %1941, label %1942

1941:                                             ; preds = %1937, %1931
  br label %1942

1942:                                             ; preds = %1937, %1941
  %.str.5.sink1013 = phi ptr [ @.str.5, %1941 ], [ @.str.2, %1937 ]
  store i32 %1932, ptr %568, align 4, !tbaa !5
  %1943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1944 = load i32, ptr @test_count, align 4, !tbaa !5
  %1945 = load i32, ptr %514, align 4, !tbaa !5
  %1946 = call ptr @s2n_strerror(i32 noundef %1945, ptr noundef nonnull @.str.4) #9
  %1947 = load i32, ptr %514, align 4, !tbaa !5
  %1948 = call ptr @s2n_strerror_debug(i32 noundef %1947, ptr noundef nonnull @.str.4) #9
  %1949 = load i32, ptr %568, align 4, !tbaa !5
  %1950 = call ptr @strerror(i32 noundef %1949) #9
  %1951 = load i32, ptr %568, align 4, !tbaa !5
  %1952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1943, ptr noundef nonnull %.str.5.sink1013, i32 noundef %1944, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 595, ptr noundef %1946, ptr noundef %1948, ptr noundef %1950, i32 noundef %1951) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1953:                                             ; preds = %1926
  %1954 = load i32, ptr @test_count, align 4, !tbaa !5
  %1955 = add nsw i32 %1954, 1
  store i32 %1955, ptr @test_count, align 4, !tbaa !5
  %1956 = call i32 @s2n_connection_wipe(ptr noundef nonnull %240) #9
  %1957 = icmp eq i32 %1956, -1
  br i1 %1957, label %1958, label %1980

1958:                                             ; preds = %1953
  %1959 = load i32, ptr %568, align 4, !tbaa !5
  %1960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1961 = call i32 @s2n_print_stacktrace(ptr noundef %1960) #9
  %1962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1963 = trunc nuw i8 %1962 to i1
  br i1 %1963, label %1964, label %1968

1964:                                             ; preds = %1958
  %1965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1966 = call i32 @fileno(ptr noundef %1965) #9
  %1967 = call i32 @isatty(i32 noundef %1966) #9
  %.not307 = icmp eq i32 %1967, 0
  br i1 %.not307, label %1968, label %1969

1968:                                             ; preds = %1964, %1958
  br label %1969

1969:                                             ; preds = %1964, %1968
  %.str.5.sink1022 = phi ptr [ @.str.5, %1968 ], [ @.str.2, %1964 ]
  store i32 %1959, ptr %568, align 4, !tbaa !5
  %1970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1971 = load i32, ptr @test_count, align 4, !tbaa !5
  %1972 = load i32, ptr %514, align 4, !tbaa !5
  %1973 = call ptr @s2n_strerror(i32 noundef %1972, ptr noundef nonnull @.str.4) #9
  %1974 = load i32, ptr %514, align 4, !tbaa !5
  %1975 = call ptr @s2n_strerror_debug(i32 noundef %1974, ptr noundef nonnull @.str.4) #9
  %1976 = load i32, ptr %568, align 4, !tbaa !5
  %1977 = call ptr @strerror(i32 noundef %1976) #9
  %1978 = load i32, ptr %568, align 4, !tbaa !5
  %1979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1970, ptr noundef nonnull %.str.5.sink1022, i32 noundef %1971, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 598, ptr noundef %1973, ptr noundef %1975, ptr noundef %1977, i32 noundef %1978) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1980:                                             ; preds = %1953
  store i8 33, ptr %296, align 1, !tbaa !15
  store i8 33, ptr %297, align 2, !tbaa !42
  store i8 33, ptr %298, align 4, !tbaa !43
  %1981 = load i32, ptr @test_count, align 4, !tbaa !5
  %1982 = add nsw i32 %1981, 1
  store i32 %1982, ptr @test_count, align 4, !tbaa !5
  %1983 = load i32, ptr %5, align 4, !tbaa !5
  %1984 = call i32 @s2n_connection_set_read_fd(ptr noundef nonnull %240, i32 noundef %1983) #9
  %1985 = icmp eq i32 %1984, -1
  br i1 %1985, label %1986, label %2008

1986:                                             ; preds = %1980
  %1987 = load i32, ptr %568, align 4, !tbaa !5
  %1988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1989 = call i32 @s2n_print_stacktrace(ptr noundef %1988) #9
  %1990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1991 = trunc nuw i8 %1990 to i1
  br i1 %1991, label %1992, label %1996

1992:                                             ; preds = %1986
  %1993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1994 = call i32 @fileno(ptr noundef %1993) #9
  %1995 = call i32 @isatty(i32 noundef %1994) #9
  %.not306 = icmp eq i32 %1995, 0
  br i1 %.not306, label %1996, label %1997

1996:                                             ; preds = %1992, %1986
  br label %1997

1997:                                             ; preds = %1992, %1996
  %.str.5.sink1031 = phi ptr [ @.str.5, %1996 ], [ @.str.2, %1992 ]
  store i32 %1987, ptr %568, align 4, !tbaa !5
  %1998 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1999 = load i32, ptr @test_count, align 4, !tbaa !5
  %2000 = load i32, ptr %514, align 4, !tbaa !5
  %2001 = call ptr @s2n_strerror(i32 noundef %2000, ptr noundef nonnull @.str.4) #9
  %2002 = load i32, ptr %514, align 4, !tbaa !5
  %2003 = call ptr @s2n_strerror_debug(i32 noundef %2002, ptr noundef nonnull @.str.4) #9
  %2004 = load i32, ptr %568, align 4, !tbaa !5
  %2005 = call ptr @strerror(i32 noundef %2004) #9
  %2006 = load i32, ptr %568, align 4, !tbaa !5
  %2007 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1998, ptr noundef nonnull %.str.5.sink1031, i32 noundef %1999, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 604, ptr noundef %2001, ptr noundef %2003, ptr noundef %2005, i32 noundef %2006) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2008:                                             ; preds = %1980
  store i32 3, ptr %358, align 4, !tbaa !44
  store i32 1, ptr %359, align 8, !tbaa !45
  %2009 = call i32 @fork() #9
  %2010 = icmp eq i32 %2009, 0
  %2011 = load i32, ptr @test_count, align 4, !tbaa !5
  %2012 = add nsw i32 %2011, 1
  store i32 %2012, ptr @test_count, align 4, !tbaa !5
  br i1 %2010, label %2013, label %2095

2013:                                             ; preds = %2008
  %2014 = load i32, ptr %5, align 4, !tbaa !5
  %2015 = call i32 @close(i32 noundef %2014) #9
  %2016 = icmp eq i32 %2015, -1
  br i1 %2016, label %2017, label %2039

2017:                                             ; preds = %2013
  %2018 = load i32, ptr %568, align 4, !tbaa !5
  %2019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2020 = call i32 @s2n_print_stacktrace(ptr noundef %2019) #9
  %2021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2022 = trunc nuw i8 %2021 to i1
  br i1 %2022, label %2023, label %2027

2023:                                             ; preds = %2017
  %2024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2025 = call i32 @fileno(ptr noundef %2024) #9
  %2026 = call i32 @isatty(i32 noundef %2025) #9
  %.not305 = icmp eq i32 %2026, 0
  br i1 %.not305, label %2027, label %2028

2027:                                             ; preds = %2023, %2017
  br label %2028

2028:                                             ; preds = %2023, %2027
  %.str.5.sink1040 = phi ptr [ @.str.5, %2027 ], [ @.str.2, %2023 ]
  store i32 %2018, ptr %568, align 4, !tbaa !5
  %2029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2030 = load i32, ptr @test_count, align 4, !tbaa !5
  %2031 = load i32, ptr %514, align 4, !tbaa !5
  %2032 = call ptr @s2n_strerror(i32 noundef %2031, ptr noundef nonnull @.str.4) #9
  %2033 = load i32, ptr %514, align 4, !tbaa !5
  %2034 = call ptr @s2n_strerror_debug(i32 noundef %2033, ptr noundef nonnull @.str.4) #9
  %2035 = load i32, ptr %568, align 4, !tbaa !5
  %2036 = call ptr @strerror(i32 noundef %2035) #9
  %2037 = load i32, ptr %568, align 4, !tbaa !5
  %2038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2029, ptr noundef nonnull %.str.5.sink1040, i32 noundef %2030, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 614, ptr noundef %2032, ptr noundef %2034, ptr noundef %2036, i32 noundef %2037) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2039:                                             ; preds = %2013
  %2040 = load i32, ptr %454, align 4, !tbaa !5
  call void @interleaved_fragmented_fatal_alert(i32 noundef %2040)
  %2041 = load i32, ptr @test_count, align 4, !tbaa !5
  %2042 = add nsw i32 %2041, 1
  store i32 %2042, ptr @test_count, align 4, !tbaa !5
  %2043 = call i32 @s2n_connection_free(ptr noundef nonnull %240) #9
  %2044 = icmp eq i32 %2043, -1
  br i1 %2044, label %2045, label %2067

2045:                                             ; preds = %2039
  %2046 = load i32, ptr %568, align 4, !tbaa !5
  %2047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2048 = call i32 @s2n_print_stacktrace(ptr noundef %2047) #9
  %2049 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2050 = trunc nuw i8 %2049 to i1
  br i1 %2050, label %2051, label %2055

2051:                                             ; preds = %2045
  %2052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2053 = call i32 @fileno(ptr noundef %2052) #9
  %2054 = call i32 @isatty(i32 noundef %2053) #9
  %.not304 = icmp eq i32 %2054, 0
  br i1 %.not304, label %2055, label %2056

2055:                                             ; preds = %2051, %2045
  br label %2056

2056:                                             ; preds = %2051, %2055
  %.str.5.sink1049 = phi ptr [ @.str.5, %2055 ], [ @.str.2, %2051 ]
  store i32 %2046, ptr %568, align 4, !tbaa !5
  %2057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2058 = load i32, ptr @test_count, align 4, !tbaa !5
  %2059 = load i32, ptr %514, align 4, !tbaa !5
  %2060 = call ptr @s2n_strerror(i32 noundef %2059, ptr noundef nonnull @.str.4) #9
  %2061 = load i32, ptr %514, align 4, !tbaa !5
  %2062 = call ptr @s2n_strerror_debug(i32 noundef %2061, ptr noundef nonnull @.str.4) #9
  %2063 = load i32, ptr %568, align 4, !tbaa !5
  %2064 = call ptr @strerror(i32 noundef %2063) #9
  %2065 = load i32, ptr %568, align 4, !tbaa !5
  %2066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2057, ptr noundef nonnull %.str.5.sink1049, i32 noundef %2058, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 618, ptr noundef %2060, ptr noundef %2062, ptr noundef %2064, i32 noundef %2065) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2067:                                             ; preds = %2039
  %2068 = load i32, ptr @test_count, align 4, !tbaa !5
  %2069 = add nsw i32 %2068, 1
  store i32 %2069, ptr @test_count, align 4, !tbaa !5
  %2070 = call i32 @s2n_config_free(ptr noundef nonnull %124) #9
  %2071 = icmp eq i32 %2070, -1
  br i1 %2071, label %2072, label %2094

2072:                                             ; preds = %2067
  %2073 = load i32, ptr %568, align 4, !tbaa !5
  %2074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2075 = call i32 @s2n_print_stacktrace(ptr noundef %2074) #9
  %2076 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2077 = trunc nuw i8 %2076 to i1
  br i1 %2077, label %2078, label %2082

2078:                                             ; preds = %2072
  %2079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2080 = call i32 @fileno(ptr noundef %2079) #9
  %2081 = call i32 @isatty(i32 noundef %2080) #9
  %.not303 = icmp eq i32 %2081, 0
  br i1 %.not303, label %2082, label %2083

2082:                                             ; preds = %2078, %2072
  br label %2083

2083:                                             ; preds = %2078, %2082
  %.str.5.sink1058 = phi ptr [ @.str.5, %2082 ], [ @.str.2, %2078 ]
  store i32 %2073, ptr %568, align 4, !tbaa !5
  %2084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2085 = load i32, ptr @test_count, align 4, !tbaa !5
  %2086 = load i32, ptr %514, align 4, !tbaa !5
  %2087 = call ptr @s2n_strerror(i32 noundef %2086, ptr noundef nonnull @.str.4) #9
  %2088 = load i32, ptr %514, align 4, !tbaa !5
  %2089 = call ptr @s2n_strerror_debug(i32 noundef %2088, ptr noundef nonnull @.str.4) #9
  %2090 = load i32, ptr %568, align 4, !tbaa !5
  %2091 = call ptr @strerror(i32 noundef %2090) #9
  %2092 = load i32, ptr %568, align 4, !tbaa !5
  %2093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2084, ptr noundef nonnull %.str.5.sink1058, i32 noundef %2085, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 619, ptr noundef %2087, ptr noundef %2089, ptr noundef %2091, i32 noundef %2092) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2094:                                             ; preds = %2067
  call void @exit(i32 noundef 0) #12
  unreachable

2095:                                             ; preds = %2008
  %2096 = load i32, ptr %454, align 4, !tbaa !5
  %2097 = call i32 @close(i32 noundef %2096) #9
  %2098 = icmp eq i32 %2097, -1
  br i1 %2098, label %2099, label %2121

2099:                                             ; preds = %2095
  %2100 = load i32, ptr %568, align 4, !tbaa !5
  %2101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2102 = call i32 @s2n_print_stacktrace(ptr noundef %2101) #9
  %2103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2104 = trunc nuw i8 %2103 to i1
  br i1 %2104, label %2105, label %2109

2105:                                             ; preds = %2099
  %2106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2107 = call i32 @fileno(ptr noundef %2106) #9
  %2108 = call i32 @isatty(i32 noundef %2107) #9
  %.not302 = icmp eq i32 %2108, 0
  br i1 %.not302, label %2109, label %2110

2109:                                             ; preds = %2105, %2099
  br label %2110

2110:                                             ; preds = %2105, %2109
  %.str.5.sink1067 = phi ptr [ @.str.5, %2109 ], [ @.str.2, %2105 ]
  store i32 %2100, ptr %568, align 4, !tbaa !5
  %2111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2112 = load i32, ptr @test_count, align 4, !tbaa !5
  %2113 = load i32, ptr %514, align 4, !tbaa !5
  %2114 = call ptr @s2n_strerror(i32 noundef %2113, ptr noundef nonnull @.str.4) #9
  %2115 = load i32, ptr %514, align 4, !tbaa !5
  %2116 = call ptr @s2n_strerror_debug(i32 noundef %2115, ptr noundef nonnull @.str.4) #9
  %2117 = load i32, ptr %568, align 4, !tbaa !5
  %2118 = call ptr @strerror(i32 noundef %2117) #9
  %2119 = load i32, ptr %568, align 4, !tbaa !5
  %2120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2111, ptr noundef nonnull %.str.5.sink1067, i32 noundef %2112, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 624, ptr noundef %2114, ptr noundef %2116, ptr noundef %2118, i32 noundef %2119) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2121:                                             ; preds = %2095
  %2122 = load i32, ptr @test_count, align 4, !tbaa !5
  %2123 = add nsw i32 %2122, 1
  store i32 %2123, ptr @test_count, align 4, !tbaa !5
  %2124 = call i32 @s2n_negotiate(ptr noundef nonnull %240, ptr noundef nonnull %3) #9
  %2125 = icmp eq i32 %2124, -1
  br i1 %2125, label %2148, label %2126

2126:                                             ; preds = %2121
  %2127 = load i32, ptr %568, align 4, !tbaa !5
  %2128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2129 = call i32 @s2n_print_stacktrace(ptr noundef %2128) #9
  %2130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2131 = trunc nuw i8 %2130 to i1
  br i1 %2131, label %2132, label %2136

2132:                                             ; preds = %2126
  %2133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2134 = call i32 @fileno(ptr noundef %2133) #9
  %2135 = call i32 @isatty(i32 noundef %2134) #9
  %.not286 = icmp eq i32 %2135, 0
  br i1 %.not286, label %2136, label %2137

2136:                                             ; preds = %2132, %2126
  br label %2137

2137:                                             ; preds = %2132, %2136
  %.str.5.sink1076 = phi ptr [ @.str.5, %2136 ], [ @.str.2, %2132 ]
  store i32 %2127, ptr %568, align 4, !tbaa !5
  %2138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2139 = load i32, ptr @test_count, align 4, !tbaa !5
  %2140 = load i32, ptr %514, align 4, !tbaa !5
  %2141 = call ptr @s2n_strerror(i32 noundef %2140, ptr noundef nonnull @.str.4) #9
  %2142 = load i32, ptr %514, align 4, !tbaa !5
  %2143 = call ptr @s2n_strerror_debug(i32 noundef %2142, ptr noundef nonnull @.str.4) #9
  %2144 = load i32, ptr %568, align 4, !tbaa !5
  %2145 = call ptr @strerror(i32 noundef %2144) #9
  %2146 = load i32, ptr %568, align 4, !tbaa !5
  %2147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2138, ptr noundef nonnull %.str.5.sink1076, i32 noundef %2139, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 627, ptr noundef %2141, ptr noundef %2143, ptr noundef %2145, i32 noundef %2146) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2148:                                             ; preds = %2121
  %2149 = load i32, ptr @test_count, align 4, !tbaa !5
  %2150 = add nsw i32 %2149, 1
  store i32 %2150, ptr @test_count, align 4, !tbaa !5
  %2151 = load i32, ptr %514, align 4, !tbaa !5
  %2152 = icmp eq i32 %2151, 0
  br i1 %2152, label %2153, label %2175

2153:                                             ; preds = %2148
  %2154 = load i32, ptr %568, align 4, !tbaa !5
  %2155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2156 = call i32 @s2n_print_stacktrace(ptr noundef %2155) #9
  %2157 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2158 = trunc nuw i8 %2157 to i1
  br i1 %2158, label %2159, label %2163

2159:                                             ; preds = %2153
  %2160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2161 = call i32 @fileno(ptr noundef %2160) #9
  %2162 = call i32 @isatty(i32 noundef %2161) #9
  %.not301 = icmp eq i32 %2162, 0
  br i1 %.not301, label %2163, label %2164

2163:                                             ; preds = %2159, %2153
  br label %2164

2164:                                             ; preds = %2159, %2163
  %.str.5.sink1085 = phi ptr [ @.str.5, %2163 ], [ @.str.2, %2159 ]
  store i32 %2154, ptr %568, align 4, !tbaa !5
  %2165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2166 = load i32, ptr @test_count, align 4, !tbaa !5
  %2167 = load i32, ptr %514, align 4, !tbaa !5
  %2168 = call ptr @s2n_strerror(i32 noundef %2167, ptr noundef nonnull @.str.4) #9
  %2169 = load i32, ptr %514, align 4, !tbaa !5
  %2170 = call ptr @s2n_strerror_debug(i32 noundef %2169, ptr noundef nonnull @.str.4) #9
  %2171 = load i32, ptr %568, align 4, !tbaa !5
  %2172 = call ptr @strerror(i32 noundef %2171) #9
  %2173 = load i32, ptr %568, align 4, !tbaa !5
  %2174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2165, ptr noundef nonnull %.str.5.sink1085, i32 noundef %2166, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 627, ptr noundef %2168, ptr noundef %2170, ptr noundef %2172, i32 noundef %2173) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2175:                                             ; preds = %2148
  %2176 = add nsw i32 %2149, 2
  store i32 %2176, ptr @test_count, align 4, !tbaa !5
  %2177 = call ptr @s2n_strerror_debug(i32 noundef %2151, ptr noundef nonnull @.str.4) #9
  %2178 = icmp eq ptr %2177, null
  br i1 %2178, label %2179, label %2201

2179:                                             ; preds = %2175
  %2180 = load i32, ptr %568, align 4, !tbaa !5
  %2181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2182 = call i32 @s2n_print_stacktrace(ptr noundef %2181) #9
  %2183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2184 = trunc nuw i8 %2183 to i1
  br i1 %2184, label %2185, label %2189

2185:                                             ; preds = %2179
  %2186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2187 = call i32 @fileno(ptr noundef %2186) #9
  %2188 = call i32 @isatty(i32 noundef %2187) #9
  %.not300 = icmp eq i32 %2188, 0
  br i1 %.not300, label %2189, label %2190

2189:                                             ; preds = %2185, %2179
  br label %2190

2190:                                             ; preds = %2185, %2189
  %.str.5.sink1094 = phi ptr [ @.str.5, %2189 ], [ @.str.2, %2185 ]
  store i32 %2180, ptr %568, align 4, !tbaa !5
  %2191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2192 = load i32, ptr @test_count, align 4, !tbaa !5
  %2193 = load i32, ptr %514, align 4, !tbaa !5
  %2194 = call ptr @s2n_strerror(i32 noundef %2193, ptr noundef nonnull @.str.4) #9
  %2195 = load i32, ptr %514, align 4, !tbaa !5
  %2196 = call ptr @s2n_strerror_debug(i32 noundef %2195, ptr noundef nonnull @.str.4) #9
  %2197 = load i32, ptr %568, align 4, !tbaa !5
  %2198 = call ptr @strerror(i32 noundef %2197) #9
  %2199 = load i32, ptr %568, align 4, !tbaa !5
  %2200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2191, ptr noundef nonnull %.str.5.sink1094, i32 noundef %2192, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 627, ptr noundef %2194, ptr noundef %2196, ptr noundef %2198, i32 noundef %2199) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2201:                                             ; preds = %2175
  store i32 0, ptr %514, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #9
  store i32 0, ptr %568, align 4, !tbaa !5
  %2202 = load i32, ptr @test_count, align 4, !tbaa !5
  %2203 = add nsw i32 %2202, 1
  store i32 %2203, ptr @test_count, align 4, !tbaa !5
  %bcmp287 = call i32 @bcmp(ptr noundef nonnull dereferenceable(32) %571, ptr noundef nonnull dereferenceable(32) @zero_to_thirty_one, i64 32)
  %2204 = icmp eq i32 %bcmp287, 0
  br i1 %2204, label %2205, label %2227

2205:                                             ; preds = %2201
  %2206 = load i32, ptr %568, align 4, !tbaa !5
  %2207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2208 = call i32 @s2n_print_stacktrace(ptr noundef %2207) #9
  %2209 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2210 = trunc nuw i8 %2209 to i1
  br i1 %2210, label %2211, label %2215

2211:                                             ; preds = %2205
  %2212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2213 = call i32 @fileno(ptr noundef %2212) #9
  %2214 = call i32 @isatty(i32 noundef %2213) #9
  %.not299 = icmp eq i32 %2214, 0
  br i1 %.not299, label %2215, label %2216

2215:                                             ; preds = %2211, %2205
  br label %2216

2216:                                             ; preds = %2211, %2215
  %.str.5.sink1103 = phi ptr [ @.str.5, %2215 ], [ @.str.2, %2211 ]
  store i32 %2206, ptr %568, align 4, !tbaa !5
  %2217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2218 = load i32, ptr @test_count, align 4, !tbaa !5
  %2219 = load i32, ptr %514, align 4, !tbaa !5
  %2220 = call ptr @s2n_strerror(i32 noundef %2219, ptr noundef nonnull @.str.4) #9
  %2221 = load i32, ptr %514, align 4, !tbaa !5
  %2222 = call ptr @s2n_strerror_debug(i32 noundef %2221, ptr noundef nonnull @.str.4) #9
  %2223 = load i32, ptr %568, align 4, !tbaa !5
  %2224 = call ptr @strerror(i32 noundef %2223) #9
  %2225 = load i32, ptr %568, align 4, !tbaa !5
  %2226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2217, ptr noundef nonnull %.str.5.sink1103, i32 noundef %2218, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 630, ptr noundef %2220, ptr noundef %2222, ptr noundef %2224, i32 noundef %2225) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2227:                                             ; preds = %2201
  %2228 = add nsw i32 %2202, 2
  store i32 %2228, ptr @test_count, align 4, !tbaa !5
  %2229 = call i32 @s2n_conn_get_current_message_type(ptr noundef nonnull %240) #9
  %2230 = icmp eq i32 %2229, 2
  br i1 %2230, label %2231, label %2253

2231:                                             ; preds = %2227
  %2232 = load i32, ptr %568, align 4, !tbaa !5
  %2233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2234 = call i32 @s2n_print_stacktrace(ptr noundef %2233) #9
  %2235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2236 = trunc nuw i8 %2235 to i1
  br i1 %2236, label %2237, label %2241

2237:                                             ; preds = %2231
  %2238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2239 = call i32 @fileno(ptr noundef %2238) #9
  %2240 = call i32 @isatty(i32 noundef %2239) #9
  %.not298 = icmp eq i32 %2240, 0
  br i1 %.not298, label %2241, label %2242

2241:                                             ; preds = %2237, %2231
  br label %2242

2242:                                             ; preds = %2237, %2241
  %.str.5.sink1112 = phi ptr [ @.str.5, %2241 ], [ @.str.2, %2237 ]
  store i32 %2232, ptr %568, align 4, !tbaa !5
  %2243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2244 = load i32, ptr @test_count, align 4, !tbaa !5
  %2245 = load i32, ptr %514, align 4, !tbaa !5
  %2246 = call ptr @s2n_strerror(i32 noundef %2245, ptr noundef nonnull @.str.4) #9
  %2247 = load i32, ptr %514, align 4, !tbaa !5
  %2248 = call ptr @s2n_strerror_debug(i32 noundef %2247, ptr noundef nonnull @.str.4) #9
  %2249 = load i32, ptr %568, align 4, !tbaa !5
  %2250 = call ptr @strerror(i32 noundef %2249) #9
  %2251 = load i32, ptr %568, align 4, !tbaa !5
  %2252 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2243, ptr noundef nonnull %.str.5.sink1112, i32 noundef %2244, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 633, ptr noundef %2246, ptr noundef %2248, ptr noundef %2250, i32 noundef %2251) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2253:                                             ; preds = %2227
  %2254 = load i32, ptr @test_count, align 4, !tbaa !5
  %2255 = add nsw i32 %2254, 1
  store i32 %2255, ptr @test_count, align 4, !tbaa !5
  %2256 = call i32 @waitpid(i32 noundef %2009, ptr noundef nonnull %4, i32 noundef 0) #9
  %2257 = icmp eq i32 %2256, %2009
  br i1 %2257, label %2280, label %2258

2258:                                             ; preds = %2253
  %2259 = load i32, ptr %568, align 4, !tbaa !5
  %2260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2261 = call i32 @s2n_print_stacktrace(ptr noundef %2260) #9
  %2262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2263 = trunc nuw i8 %2262 to i1
  br i1 %2263, label %2264, label %2268

2264:                                             ; preds = %2258
  %2265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2266 = call i32 @fileno(ptr noundef %2265) #9
  %2267 = call i32 @isatty(i32 noundef %2266) #9
  %.not288 = icmp eq i32 %2267, 0
  br i1 %.not288, label %2268, label %2269

2268:                                             ; preds = %2264, %2258
  br label %2269

2269:                                             ; preds = %2264, %2268
  %.str.5.sink1121 = phi ptr [ @.str.5, %2268 ], [ @.str.2, %2264 ]
  store i32 %2259, ptr %568, align 4, !tbaa !5
  %2270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2271 = load i32, ptr @test_count, align 4, !tbaa !5
  %2272 = load i32, ptr %514, align 4, !tbaa !5
  %2273 = call ptr @s2n_strerror(i32 noundef %2272, ptr noundef nonnull @.str.4) #9
  %2274 = load i32, ptr %514, align 4, !tbaa !5
  %2275 = call ptr @s2n_strerror_debug(i32 noundef %2274, ptr noundef nonnull @.str.4) #9
  %2276 = load i32, ptr %568, align 4, !tbaa !5
  %2277 = call ptr @strerror(i32 noundef %2276) #9
  %2278 = load i32, ptr %568, align 4, !tbaa !5
  %2279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2270, ptr noundef nonnull %.str.5.sink1121, i32 noundef %2271, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 636, ptr noundef %2273, ptr noundef %2275, ptr noundef %2277, i32 noundef %2278) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2280:                                             ; preds = %2253
  %2281 = load i32, ptr @test_count, align 4, !tbaa !5
  %2282 = add nsw i32 %2281, 1
  store i32 %2282, ptr @test_count, align 4, !tbaa !5
  %2283 = load i32, ptr %4, align 4, !tbaa !5
  %2284 = icmp eq i32 %2283, 0
  br i1 %2284, label %2307, label %2285

2285:                                             ; preds = %2280
  %2286 = load i32, ptr %568, align 4, !tbaa !5
  %2287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2288 = call i32 @s2n_print_stacktrace(ptr noundef %2287) #9
  %2289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2290 = trunc nuw i8 %2289 to i1
  br i1 %2290, label %2291, label %2295

2291:                                             ; preds = %2285
  %2292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2293 = call i32 @fileno(ptr noundef %2292) #9
  %2294 = call i32 @isatty(i32 noundef %2293) #9
  %.not289 = icmp eq i32 %2294, 0
  br i1 %.not289, label %2295, label %2296

2295:                                             ; preds = %2291, %2285
  br label %2296

2296:                                             ; preds = %2291, %2295
  %.str.5.sink1130 = phi ptr [ @.str.5, %2295 ], [ @.str.2, %2291 ]
  store i32 %2286, ptr %568, align 4, !tbaa !5
  %2297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2298 = load i32, ptr @test_count, align 4, !tbaa !5
  %2299 = load i32, ptr %514, align 4, !tbaa !5
  %2300 = call ptr @s2n_strerror(i32 noundef %2299, ptr noundef nonnull @.str.4) #9
  %2301 = load i32, ptr %514, align 4, !tbaa !5
  %2302 = call ptr @s2n_strerror_debug(i32 noundef %2301, ptr noundef nonnull @.str.4) #9
  %2303 = load i32, ptr %568, align 4, !tbaa !5
  %2304 = call ptr @strerror(i32 noundef %2303) #9
  %2305 = load i32, ptr %568, align 4, !tbaa !5
  %2306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2297, ptr noundef nonnull %.str.5.sink1130, i32 noundef %2298, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 637, ptr noundef %2300, ptr noundef %2302, ptr noundef %2304, i32 noundef %2305) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2307:                                             ; preds = %2280
  %2308 = add nsw i32 %2281, 2
  store i32 %2308, ptr @test_count, align 4, !tbaa !5
  %2309 = load i32, ptr %5, align 4, !tbaa !5
  %2310 = call i32 @close(i32 noundef %2309) #9
  %2311 = icmp eq i32 %2310, -1
  br i1 %2311, label %2312, label %2334

2312:                                             ; preds = %2307
  %2313 = load i32, ptr %568, align 4, !tbaa !5
  %2314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2315 = call i32 @s2n_print_stacktrace(ptr noundef %2314) #9
  %2316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2317 = trunc nuw i8 %2316 to i1
  br i1 %2317, label %2318, label %2322

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

2322:                                             ; preds = %2318, %2312
  br label %2323

2323:                                             ; preds = %2318, %2322
  %.str.5.sink1139 = phi ptr [ @.str.5, %2322 ], [ @.str.2, %2318 ]
  store i32 %2313, ptr %568, align 4, !tbaa !5
  %2324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2325 = load i32, ptr @test_count, align 4, !tbaa !5
  %2326 = load i32, ptr %514, align 4, !tbaa !5
  %2327 = call ptr @s2n_strerror(i32 noundef %2326, ptr noundef nonnull @.str.4) #9
  %2328 = load i32, ptr %514, align 4, !tbaa !5
  %2329 = call ptr @s2n_strerror_debug(i32 noundef %2328, ptr noundef nonnull @.str.4) #9
  %2330 = load i32, ptr %568, align 4, !tbaa !5
  %2331 = call ptr @strerror(i32 noundef %2330) #9
  %2332 = load i32, ptr %568, align 4, !tbaa !5
  %2333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2324, ptr noundef nonnull %.str.5.sink1139, i32 noundef %2325, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 638, ptr noundef %2327, ptr noundef %2329, ptr noundef %2331, i32 noundef %2332) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2334:                                             ; preds = %2307
  %2335 = load i32, ptr @test_count, align 4, !tbaa !5
  %2336 = add nsw i32 %2335, 1
  store i32 %2336, ptr @test_count, align 4, !tbaa !5
  %2337 = call i32 @s2n_connection_free(ptr noundef nonnull %240) #9
  %2338 = icmp eq i32 %2337, -1
  br i1 %2338, label %2339, label %2361

2339:                                             ; preds = %2334
  %2340 = load i32, ptr %568, align 4, !tbaa !5
  %2341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2342 = call i32 @s2n_print_stacktrace(ptr noundef %2341) #9
  %2343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2344 = trunc nuw i8 %2343 to i1
  br i1 %2344, label %2345, label %2349

2345:                                             ; preds = %2339
  %2346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2347 = call i32 @fileno(ptr noundef %2346) #9
  %2348 = call i32 @isatty(i32 noundef %2347) #9
  %.not296 = icmp eq i32 %2348, 0
  br i1 %.not296, label %2349, label %2350

2349:                                             ; preds = %2345, %2339
  br label %2350

2350:                                             ; preds = %2345, %2349
  %.str.5.sink1148 = phi ptr [ @.str.5, %2349 ], [ @.str.2, %2345 ]
  store i32 %2340, ptr %568, align 4, !tbaa !5
  %2351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2352 = load i32, ptr @test_count, align 4, !tbaa !5
  %2353 = load i32, ptr %514, align 4, !tbaa !5
  %2354 = call ptr @s2n_strerror(i32 noundef %2353, ptr noundef nonnull @.str.4) #9
  %2355 = load i32, ptr %514, align 4, !tbaa !5
  %2356 = call ptr @s2n_strerror_debug(i32 noundef %2355, ptr noundef nonnull @.str.4) #9
  %2357 = load i32, ptr %568, align 4, !tbaa !5
  %2358 = call ptr @strerror(i32 noundef %2357) #9
  %2359 = load i32, ptr %568, align 4, !tbaa !5
  %2360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2351, ptr noundef nonnull %.str.5.sink1148, i32 noundef %2352, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 640, ptr noundef %2354, ptr noundef %2356, ptr noundef %2358, i32 noundef %2359) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2361:                                             ; preds = %2334
  %2362 = load i32, ptr @test_count, align 4, !tbaa !5
  %2363 = add nsw i32 %2362, 1
  store i32 %2363, ptr @test_count, align 4, !tbaa !5
  %2364 = call i32 @s2n_config_free(ptr noundef nonnull %124) #9
  %2365 = icmp eq i32 %2364, -1
  br i1 %2365, label %2366, label %2388

2366:                                             ; preds = %2361
  %2367 = load i32, ptr %568, align 4, !tbaa !5
  %2368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2369 = call i32 @s2n_print_stacktrace(ptr noundef %2368) #9
  %2370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2371 = trunc nuw i8 %2370 to i1
  br i1 %2371, label %2372, label %2376

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

2376:                                             ; preds = %2372, %2366
  br label %2377

2377:                                             ; preds = %2372, %2376
  %.str.5.sink1157 = phi ptr [ @.str.5, %2376 ], [ @.str.2, %2372 ]
  store i32 %2367, ptr %568, align 4, !tbaa !5
  %2378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2379 = load i32, ptr @test_count, align 4, !tbaa !5
  %2380 = load i32, ptr %514, align 4, !tbaa !5
  %2381 = call ptr @s2n_strerror(i32 noundef %2380, ptr noundef nonnull @.str.4) #9
  %2382 = load i32, ptr %514, align 4, !tbaa !5
  %2383 = call ptr @s2n_strerror_debug(i32 noundef %2382, ptr noundef nonnull @.str.4) #9
  %2384 = load i32, ptr %568, align 4, !tbaa !5
  %2385 = call ptr @strerror(i32 noundef %2384) #9
  %2386 = load i32, ptr %568, align 4, !tbaa !5
  %2387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2378, ptr noundef nonnull %.str.5.sink1157, i32 noundef %2379, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 641, ptr noundef %2381, ptr noundef %2383, ptr noundef %2385, i32 noundef %2386) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2388:                                             ; preds = %2361
  %2389 = call i32 @s2n_cleanup() #9
  %2390 = icmp eq i32 %2389, -1
  br i1 %2390, label %2391, label %2413

2391:                                             ; preds = %2388
  %2392 = load i32, ptr %568, align 4, !tbaa !5
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2394 = call i32 @s2n_print_stacktrace(ptr noundef %2393) #9
  %2395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2396 = trunc nuw i8 %2395 to i1
  br i1 %2396, label %2397, label %2401

2397:                                             ; preds = %2391
  %2398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2399 = call i32 @fileno(ptr noundef %2398) #9
  %2400 = call i32 @isatty(i32 noundef %2399) #9
  %.not294 = icmp eq i32 %2400, 0
  br i1 %.not294, label %2401, label %2402

2401:                                             ; preds = %2397, %2391
  br label %2402

2402:                                             ; preds = %2397, %2401
  %.str.5.sink1166 = phi ptr [ @.str.5, %2401 ], [ @.str.2, %2397 ]
  store i32 %2392, ptr %568, align 4, !tbaa !5
  %2403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2404 = load i32, ptr @test_count, align 4, !tbaa !5
  %2405 = load i32, ptr %514, align 4, !tbaa !5
  %2406 = call ptr @s2n_strerror(i32 noundef %2405, ptr noundef nonnull @.str.4) #9
  %2407 = load i32, ptr %514, align 4, !tbaa !5
  %2408 = call ptr @s2n_strerror_debug(i32 noundef %2407, ptr noundef nonnull @.str.4) #9
  %2409 = load i32, ptr %568, align 4, !tbaa !5
  %2410 = call ptr @strerror(i32 noundef %2409) #9
  %2411 = load i32, ptr %568, align 4, !tbaa !5
  %2412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2403, ptr noundef nonnull %.str.5.sink1166, i32 noundef %2404, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 643, ptr noundef %2406, ptr noundef %2408, ptr noundef %2410, i32 noundef %2411) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2413:                                             ; preds = %2388
  %2414 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %2415 = icmp eq i32 %2414, -1
  br i1 %2415, label %2416, label %2438

2416:                                             ; preds = %2413
  %2417 = load i32, ptr %568, align 4, !tbaa !5
  %2418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2419 = call i32 @s2n_print_stacktrace(ptr noundef %2418) #9
  %2420 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2421 = trunc nuw i8 %2420 to i1
  br i1 %2421, label %2422, label %2426

2422:                                             ; preds = %2416
  %2423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2424 = call i32 @fileno(ptr noundef %2423) #9
  %2425 = call i32 @isatty(i32 noundef %2424) #9
  %.not293 = icmp eq i32 %2425, 0
  br i1 %.not293, label %2426, label %2427

2426:                                             ; preds = %2422, %2416
  br label %2427

2427:                                             ; preds = %2422, %2426
  %.str.5.sink1175 = phi ptr [ @.str.5, %2426 ], [ @.str.2, %2422 ]
  store i32 %2417, ptr %568, align 4, !tbaa !5
  %2428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2429 = load i32, ptr @test_count, align 4, !tbaa !5
  %2430 = load i32, ptr %514, align 4, !tbaa !5
  %2431 = call ptr @s2n_strerror(i32 noundef %2430, ptr noundef nonnull @.str.4) #9
  %2432 = load i32, ptr %514, align 4, !tbaa !5
  %2433 = call ptr @s2n_strerror_debug(i32 noundef %2432, ptr noundef nonnull @.str.4) #9
  %2434 = load i32, ptr %568, align 4, !tbaa !5
  %2435 = call ptr @strerror(i32 noundef %2434) #9
  %2436 = load i32, ptr %568, align 4, !tbaa !5
  %2437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2428, ptr noundef nonnull %.str.5.sink1175, i32 noundef %2429, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 643, ptr noundef %2431, ptr noundef %2433, ptr noundef %2435, i32 noundef %2436) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2438:                                             ; preds = %2413
  %2439 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2440 = trunc nuw i8 %2439 to i1
  br i1 %2440, label %2441, label %2452

2441:                                             ; preds = %2438
  %2442 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2443 = call i32 @fileno(ptr noundef %2442) #9
  %2444 = call i32 @isatty(i32 noundef %2443) #9
  %.not290 = icmp eq i32 %2444, 0
  br i1 %.not290, label %2452, label %2445

2445:                                             ; preds = %2441
  %2446 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not292 = icmp eq i32 %2446, 0
  %2447 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not292, label %2450, label %2448

2448:                                             ; preds = %2445
  %2449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2447, ptr noundef nonnull @.str.36, i32 noundef %2446) #9
  br label %2459

2450:                                             ; preds = %2445
  %2451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2447, ptr noundef nonnull @.str.37) #9
  br label %2459

2452:                                             ; preds = %2441, %2438
  %2453 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not291 = icmp eq i32 %2453, 0
  %2454 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not291, label %2457, label %2455

2455:                                             ; preds = %2452
  %2456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2454, ptr noundef nonnull @.str.38, i32 noundef %2453) #9
  br label %2459

2457:                                             ; preds = %2452
  %2458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2454, ptr noundef nonnull @.str.39) #9
  br label %2459

2459:                                             ; preds = %2455, %2457, %2448, %2450
  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_disable_x509_verification(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_check_stapled_ocsp_response(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

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

declare ptr @s2n_connection_new(i32 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_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_config_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr 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_connection_wipe(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #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, !7, i64 219}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!16, !7, i64 218}
!43 = !{!16, !7, i64 220}
!44 = !{!16, !6, i64 2172}
!45 = !{!16, !6, i64 2176}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass