; LLVM IR from aws/s2n-tls :: tests/unit (s2n_client_record_version_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_test_io_pair = type { i32, i32 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [89 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 [61 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [61 x i8], align 1
@__const.main.server_hello_message = external hidden unnamed_addr constant [72 x i8], align 16
@.str.14 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [56 x i8], align 1
@__const.main.server_hello_message.43 = external hidden unnamed_addr constant [72 x i8], align 16
@.str.44 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca 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 i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca [72 x i8], align 16
  %19 = alloca i32, align 4
  %20 = alloca [4 x i8], align 1
  %21 = alloca i32, align 4
  %22 = alloca [5 x i8], align 1
  %23 = alloca %struct.s2n_test_io_pair, 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 [1024 x i8], align 16
  %34 = alloca i64, align 8
  %35 = alloca i64, align 8
  %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 i64, align 8
  %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 i64, align 8
  %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 ptr, align 8
  %64 = alloca ptr, align 8
  %65 = alloca i32, align 4
  %66 = alloca [72 x i8], align 16
  %67 = alloca i32, align 4
  %68 = alloca [4 x i8], align 1
  %69 = alloca i32, align 4
  %70 = alloca [5 x i8], align 1
  %71 = alloca %struct.s2n_test_io_pair, 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 [1024 x i8], align 16
  %82 = alloca i64, align 8
  %83 = alloca i64, align 8
  %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 i64, align 8
  %92 = alloca i32, align 4
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i32, align 4
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i64, align 8
  %104 = alloca i32, align 4
  %105 = alloca i32, align 4
  %106 = alloca i32, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  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) #9
  store ptr null, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #9
  store ptr null, ptr %7, align 8, !tbaa !9
  br label %112

112:                                              ; preds = %2
  br label %113

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

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

121:                                              ; preds = %118
  br label %122

122:                                              ; preds = %121
  br label %123

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

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

135:                                              ; preds = %130
  %136 = load i32, ptr %8, align 4, !tbaa !5
  %137 = call ptr @__errno_location() #10
  store i32 %136, ptr %137, align 4, !tbaa !5
  %138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %139 = load i32, ptr @test_count, align 4, !tbaa !5
  %140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %141 = load i32, ptr %140, align 4, !tbaa !5
  %142 = call ptr @s2n_strerror(i32 noundef %141, ptr noundef @.str.4)
  %143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %144 = load i32, ptr %143, align 4, !tbaa !5
  %145 = call ptr @s2n_strerror_debug(i32 noundef %144, ptr noundef @.str.4)
  %146 = call ptr @__errno_location() #10
  %147 = load i32, ptr %146, align 4, !tbaa !5
  %148 = call ptr @strerror(i32 noundef %147) #9
  %149 = call ptr @__errno_location() #10
  %150 = load i32, ptr %149, align 4, !tbaa !5
  %151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %138, ptr noundef @.str.2, i32 noundef %139, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 37, ptr noundef %142, ptr noundef %145, ptr noundef %148, i32 noundef %150) #9
  br label %169

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

169:                                              ; preds = %152, %135
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %170

170:                                              ; preds = %169
  br label %171

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

172:                                              ; No predecessors!
  br label %173

173:                                              ; preds = %172
  br label %174

174:                                              ; preds = %173, %118
  br label %175

175:                                              ; preds = %174
  br label %176

176:                                              ; preds = %175
  br label %177

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

182:                                              ; preds = %177
  br label %183

183:                                              ; preds = %182
  br label %184

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

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

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

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

230:                                              ; preds = %213, %196
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  br label %231

231:                                              ; preds = %230
  br label %232

232:                                              ; preds = %231
  call void @exit(i32 noundef 1) #11
  unreachable

233:                                              ; No predecessors!
  br label %234

234:                                              ; preds = %233
  br label %235

235:                                              ; preds = %234, %177
  br label %236

236:                                              ; preds = %235
  br label %237

237:                                              ; preds = %236
  br label %238

238:                                              ; preds = %237
  br label %239

239:                                              ; preds = %238
  br label %240

240:                                              ; preds = %239
  %241 = call i32 @s2n_init()
  %242 = icmp eq i32 %241, -1
  br i1 %242, label %243, label %296

243:                                              ; preds = %240
  br label %244

244:                                              ; preds = %243
  br label %245

245:                                              ; preds = %244
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #9
  %246 = call ptr @__errno_location() #10
  %247 = load i32, ptr %246, align 4, !tbaa !5
  store i32 %247, ptr %10, align 4, !tbaa !5
  %248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %249 = call i32 @s2n_print_stacktrace(ptr noundef %248)
  %250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %251 = trunc i8 %250 to i1
  br i1 %251, label %252, label %274

252:                                              ; preds = %245
  %253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %254 = call i32 @fileno(ptr noundef %253) #9
  %255 = call i32 @isatty(i32 noundef %254) #9
  %256 = icmp ne i32 %255, 0
  br i1 %256, label %257, label %274

257:                                              ; preds = %252
  %258 = load i32, ptr %10, align 4, !tbaa !5
  %259 = call ptr @__errno_location() #10
  store i32 %258, ptr %259, align 4, !tbaa !5
  %260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %261 = load i32, ptr @test_count, align 4, !tbaa !5
  %262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %263 = load i32, ptr %262, align 4, !tbaa !5
  %264 = call ptr @s2n_strerror(i32 noundef %263, ptr noundef @.str.4)
  %265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %266 = load i32, ptr %265, align 4, !tbaa !5
  %267 = call ptr @s2n_strerror_debug(i32 noundef %266, ptr noundef @.str.4)
  %268 = call ptr @__errno_location() #10
  %269 = load i32, ptr %268, align 4, !tbaa !5
  %270 = call ptr @strerror(i32 noundef %269) #9
  %271 = call ptr @__errno_location() #10
  %272 = load i32, ptr %271, align 4, !tbaa !5
  %273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %260, ptr noundef @.str.2, i32 noundef %261, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 37, ptr noundef %264, ptr noundef %267, ptr noundef %270, i32 noundef %272) #9
  br label %291

274:                                              ; preds = %252, %245
  %275 = load i32, ptr %10, align 4, !tbaa !5
  %276 = call ptr @__errno_location() #10
  store i32 %275, ptr %276, align 4, !tbaa !5
  %277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %278 = load i32, ptr @test_count, align 4, !tbaa !5
  %279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %280 = load i32, ptr %279, align 4, !tbaa !5
  %281 = call ptr @s2n_strerror(i32 noundef %280, ptr noundef @.str.4)
  %282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = call ptr @s2n_strerror_debug(i32 noundef %283, ptr noundef @.str.4)
  %285 = call ptr @__errno_location() #10
  %286 = load i32, ptr %285, align 4, !tbaa !5
  %287 = call ptr @strerror(i32 noundef %286) #9
  %288 = call ptr @__errno_location() #10
  %289 = load i32, ptr %288, align 4, !tbaa !5
  %290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %277, ptr noundef @.str.5, i32 noundef %278, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 37, ptr noundef %281, ptr noundef %284, ptr noundef %287, i32 noundef %289) #9
  br label %291

291:                                              ; preds = %274, %257
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  br label %292

292:                                              ; preds = %291
  br label %293

293:                                              ; preds = %292
  call void @exit(i32 noundef 1) #11
  unreachable

294:                                              ; No predecessors!
  br label %295

295:                                              ; preds = %294
  br label %296

296:                                              ; preds = %295, %240
  br label %297

297:                                              ; preds = %296
  br label %298

298:                                              ; preds = %297
  br label %299

299:                                              ; preds = %298
  br label %300

300:                                              ; preds = %299
  br label %301

301:                                              ; preds = %300
  %302 = load i32, ptr @test_count, align 4, !tbaa !5
  %303 = add nsw i32 %302, 1
  store i32 %303, ptr @test_count, align 4, !tbaa !5
  %304 = call i32 (...) @s2n_disable_tls13_in_test()
  %305 = icmp eq i32 %304, -1
  br i1 %305, label %306, label %359

306:                                              ; preds = %301
  br label %307

307:                                              ; preds = %306
  br label %308

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

315:                                              ; preds = %308
  %316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %317 = call i32 @fileno(ptr noundef %316) #9
  %318 = call i32 @isatty(i32 noundef %317) #9
  %319 = icmp ne i32 %318, 0
  br i1 %319, label %320, label %337

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

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

354:                                              ; preds = %337, %320
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  br label %355

355:                                              ; preds = %354
  br label %356

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

357:                                              ; No predecessors!
  br label %358

358:                                              ; preds = %357
  br label %359

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

360:                                              ; preds = %359
  br label %361

361:                                              ; preds = %360
  br label %362

362:                                              ; preds = %361
  %363 = load i32, ptr @test_count, align 4, !tbaa !5
  %364 = add nsw i32 %363, 1
  store i32 %364, ptr @test_count, align 4, !tbaa !5
  %365 = call noalias ptr @malloc(i64 noundef 12000) #12
  store ptr %365, ptr %6, align 8, !tbaa !9
  %366 = icmp eq ptr %365, null
  br i1 %366, label %367, label %420

367:                                              ; preds = %362
  br label %368

368:                                              ; preds = %367
  br label %369

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

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

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

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

415:                                              ; preds = %398, %381
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  br label %416

416:                                              ; preds = %415
  br label %417

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

418:                                              ; No predecessors!
  br label %419

419:                                              ; preds = %418
  br label %420

420:                                              ; preds = %419, %362
  br label %421

421:                                              ; preds = %420
  br label %422

422:                                              ; preds = %421
  br label %423

423:                                              ; preds = %422
  %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 noalias ptr @malloc(i64 noundef 12000) #12
  store ptr %426, ptr %7, align 8, !tbaa !9
  %427 = icmp eq ptr %426, null
  br i1 %427, label %428, label %481

428:                                              ; preds = %423
  br label %429

429:                                              ; preds = %428
  br label %430

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

437:                                              ; preds = %430
  %438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %439 = call i32 @fileno(ptr noundef %438) #9
  %440 = call i32 @isatty(i32 noundef %439) #9
  %441 = icmp ne i32 %440, 0
  br i1 %441, label %442, label %459

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

459:                                              ; preds = %437, %430
  %460 = load i32, ptr %13, align 4, !tbaa !5
  %461 = call ptr @__errno_location() #10
  store i32 %460, ptr %461, align 4, !tbaa !5
  %462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %463 = load i32, ptr @test_count, align 4, !tbaa !5
  %464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %465 = load i32, ptr %464, align 4, !tbaa !5
  %466 = call ptr @s2n_strerror(i32 noundef %465, ptr noundef @.str.4)
  %467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %468 = load i32, ptr %467, align 4, !tbaa !5
  %469 = call ptr @s2n_strerror_debug(i32 noundef %468, ptr noundef @.str.4)
  %470 = call ptr @__errno_location() #10
  %471 = load i32, ptr %470, align 4, !tbaa !5
  %472 = call ptr @strerror(i32 noundef %471) #9
  %473 = call ptr @__errno_location() #10
  %474 = load i32, ptr %473, align 4, !tbaa !5
  %475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %462, ptr noundef @.str.5, i32 noundef %463, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 41, ptr noundef %466, ptr noundef %469, ptr noundef %472, i32 noundef %474) #9
  br label %476

476:                                              ; preds = %459, %442
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #9
  br label %477

477:                                              ; preds = %476
  br label %478

478:                                              ; preds = %477
  call void @exit(i32 noundef 1) #11
  unreachable

479:                                              ; No predecessors!
  br label %480

480:                                              ; preds = %479
  br label %481

481:                                              ; preds = %480, %423
  br label %482

482:                                              ; preds = %481
  br label %483

483:                                              ; preds = %482
  br label %484

484:                                              ; preds = %483
  %485 = load i32, ptr @test_count, align 4, !tbaa !5
  %486 = add nsw i32 %485, 1
  store i32 %486, ptr @test_count, align 4, !tbaa !5
  %487 = call i32 @setenv(ptr noundef @.str.11, ptr noundef @.str.12, i32 noundef 0) #9
  %488 = icmp eq i32 %487, -1
  br i1 %488, label %489, label %542

489:                                              ; preds = %484
  br label %490

490:                                              ; preds = %489
  br label %491

491:                                              ; preds = %490
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #9
  %492 = call ptr @__errno_location() #10
  %493 = load i32, ptr %492, align 4, !tbaa !5
  store i32 %493, ptr %14, align 4, !tbaa !5
  %494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %495 = call i32 @s2n_print_stacktrace(ptr noundef %494)
  %496 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %497 = trunc i8 %496 to i1
  br i1 %497, label %498, label %520

498:                                              ; preds = %491
  %499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %500 = call i32 @fileno(ptr noundef %499) #9
  %501 = call i32 @isatty(i32 noundef %500) #9
  %502 = icmp ne i32 %501, 0
  br i1 %502, label %503, label %520

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

520:                                              ; preds = %498, %491
  %521 = load i32, ptr %14, align 4, !tbaa !5
  %522 = call ptr @__errno_location() #10
  store i32 %521, ptr %522, align 4, !tbaa !5
  %523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %524 = load i32, ptr @test_count, align 4, !tbaa !5
  %525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %526 = load i32, ptr %525, align 4, !tbaa !5
  %527 = call ptr @s2n_strerror(i32 noundef %526, ptr noundef @.str.4)
  %528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %529 = load i32, ptr %528, align 4, !tbaa !5
  %530 = call ptr @s2n_strerror_debug(i32 noundef %529, ptr noundef @.str.4)
  %531 = call ptr @__errno_location() #10
  %532 = load i32, ptr %531, align 4, !tbaa !5
  %533 = call ptr @strerror(i32 noundef %532) #9
  %534 = call ptr @__errno_location() #10
  %535 = load i32, ptr %534, align 4, !tbaa !5
  %536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %523, ptr noundef @.str.5, i32 noundef %524, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 42, ptr noundef %527, ptr noundef %530, ptr noundef %533, i32 noundef %535) #9
  br label %537

537:                                              ; preds = %520, %503
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  br label %538

538:                                              ; preds = %537
  br label %539

539:                                              ; preds = %538
  call void @exit(i32 noundef 1) #11
  unreachable

540:                                              ; No predecessors!
  br label %541

541:                                              ; preds = %540
  br label %542

542:                                              ; preds = %541, %484
  br label %543

543:                                              ; preds = %542
  br label %544

544:                                              ; preds = %543
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  store ptr null, ptr %15, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  store ptr null, ptr %16, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  call void @llvm.lifetime.start.p0(i64 72, ptr %18) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %18, ptr align 16 @__const.main.server_hello_message, i64 72, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  store i32 72, ptr %19, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  store i8 2, ptr %20, align 1, !tbaa !15
  %545 = getelementptr inbounds i8, ptr %20, i64 1
  %546 = load i32, ptr %19, align 4, !tbaa !5
  %547 = ashr i32 %546, 16
  %548 = and i32 %547, 255
  %549 = trunc i32 %548 to i8
  store i8 %549, ptr %545, align 1, !tbaa !15
  %550 = getelementptr inbounds i8, ptr %20, i64 2
  %551 = load i32, ptr %19, align 4, !tbaa !5
  %552 = ashr i32 %551, 8
  %553 = and i32 %552, 255
  %554 = trunc i32 %553 to i8
  store i8 %554, ptr %550, align 1, !tbaa !15
  %555 = getelementptr inbounds i8, ptr %20, i64 3
  %556 = load i32, ptr %19, align 4, !tbaa !5
  %557 = and i32 %556, 255
  %558 = trunc i32 %557 to i8
  store i8 %558, ptr %555, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %559 = load i32, ptr %19, align 4, !tbaa !5
  %560 = sext i32 %559 to i64
  %561 = add i64 4, %560
  %562 = trunc i64 %561 to i32
  store i32 %562, ptr %21, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 5, ptr %22) #9
  store i8 22, ptr %22, align 1, !tbaa !15
  %563 = getelementptr inbounds i8, ptr %22, i64 1
  store i8 3, ptr %563, align 1, !tbaa !15
  %564 = getelementptr inbounds i8, ptr %22, i64 2
  store i8 3, ptr %564, align 1, !tbaa !15
  %565 = getelementptr inbounds i8, ptr %22, i64 3
  %566 = load i32, ptr %21, align 4, !tbaa !5
  %567 = ashr i32 %566, 8
  %568 = and i32 %567, 255
  %569 = trunc i32 %568 to i8
  store i8 %569, ptr %565, align 1, !tbaa !15
  %570 = getelementptr inbounds i8, ptr %22, i64 4
  %571 = load i32, ptr %21, align 4, !tbaa !5
  %572 = and i32 %571, 255
  %573 = trunc i32 %572 to i8
  store i8 %573, ptr %570, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  br label %574

574:                                              ; preds = %544
  %575 = load i32, ptr @test_count, align 4, !tbaa !5
  %576 = add nsw i32 %575, 1
  store i32 %576, ptr @test_count, align 4, !tbaa !5
  %577 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %23)
  %578 = icmp eq i32 %577, -1
  br i1 %578, label %579, label %632

579:                                              ; preds = %574
  br label %580

580:                                              ; preds = %579
  br label %581

581:                                              ; preds = %580
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  %582 = call ptr @__errno_location() #10
  %583 = load i32, ptr %582, align 4, !tbaa !5
  store i32 %583, ptr %24, align 4, !tbaa !5
  %584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %585 = call i32 @s2n_print_stacktrace(ptr noundef %584)
  %586 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %587 = trunc i8 %586 to i1
  br i1 %587, label %588, label %610

588:                                              ; preds = %581
  %589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %590 = call i32 @fileno(ptr noundef %589) #9
  %591 = call i32 @isatty(i32 noundef %590) #9
  %592 = icmp ne i32 %591, 0
  br i1 %592, label %593, label %610

593:                                              ; preds = %588
  %594 = load i32, ptr %24, align 4, !tbaa !5
  %595 = call ptr @__errno_location() #10
  store i32 %594, ptr %595, align 4, !tbaa !5
  %596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %597 = load i32, ptr @test_count, align 4, !tbaa !5
  %598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %599 = load i32, ptr %598, align 4, !tbaa !5
  %600 = call ptr @s2n_strerror(i32 noundef %599, ptr noundef @.str.4)
  %601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %602 = load i32, ptr %601, align 4, !tbaa !5
  %603 = call ptr @s2n_strerror_debug(i32 noundef %602, ptr noundef @.str.4)
  %604 = call ptr @__errno_location() #10
  %605 = load i32, ptr %604, align 4, !tbaa !5
  %606 = call ptr @strerror(i32 noundef %605) #9
  %607 = call ptr @__errno_location() #10
  %608 = load i32, ptr %607, align 4, !tbaa !5
  %609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %596, ptr noundef @.str.2, i32 noundef %597, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 89, ptr noundef %600, ptr noundef %603, ptr noundef %606, i32 noundef %608) #9
  br label %627

610:                                              ; preds = %588, %581
  %611 = load i32, ptr %24, align 4, !tbaa !5
  %612 = call ptr @__errno_location() #10
  store i32 %611, ptr %612, align 4, !tbaa !5
  %613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %614 = load i32, ptr @test_count, align 4, !tbaa !5
  %615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %616 = load i32, ptr %615, align 4, !tbaa !5
  %617 = call ptr @s2n_strerror(i32 noundef %616, ptr noundef @.str.4)
  %618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %619 = load i32, ptr %618, align 4, !tbaa !5
  %620 = call ptr @s2n_strerror_debug(i32 noundef %619, ptr noundef @.str.4)
  %621 = call ptr @__errno_location() #10
  %622 = load i32, ptr %621, align 4, !tbaa !5
  %623 = call ptr @strerror(i32 noundef %622) #9
  %624 = call ptr @__errno_location() #10
  %625 = load i32, ptr %624, align 4, !tbaa !5
  %626 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %613, ptr noundef @.str.5, i32 noundef %614, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 89, ptr noundef %617, ptr noundef %620, ptr noundef %623, i32 noundef %625) #9
  br label %627

627:                                              ; preds = %610, %593
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %628

628:                                              ; preds = %627
  br label %629

629:                                              ; preds = %628
  call void @exit(i32 noundef 1) #11
  unreachable

630:                                              ; No predecessors!
  br label %631

631:                                              ; preds = %630
  br label %632

632:                                              ; preds = %631, %574
  br label %633

633:                                              ; preds = %632
  br label %634

634:                                              ; preds = %633
  br label %635

635:                                              ; preds = %634
  %636 = load i32, ptr @test_count, align 4, !tbaa !5
  %637 = add nsw i32 %636, 1
  store i32 %637, ptr @test_count, align 4, !tbaa !5
  %638 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %638, ptr %15, align 8, !tbaa !9
  %639 = icmp eq ptr %638, null
  br i1 %639, label %640, label %693

640:                                              ; preds = %635
  br label %641

641:                                              ; preds = %640
  br label %642

642:                                              ; preds = %641
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #9
  %643 = call ptr @__errno_location() #10
  %644 = load i32, ptr %643, align 4, !tbaa !5
  store i32 %644, ptr %25, align 4, !tbaa !5
  %645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %646 = call i32 @s2n_print_stacktrace(ptr noundef %645)
  %647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %648 = trunc i8 %647 to i1
  br i1 %648, label %649, label %671

649:                                              ; preds = %642
  %650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %651 = call i32 @fileno(ptr noundef %650) #9
  %652 = call i32 @isatty(i32 noundef %651) #9
  %653 = icmp ne i32 %652, 0
  br i1 %653, label %654, label %671

654:                                              ; preds = %649
  %655 = load i32, ptr %25, align 4, !tbaa !5
  %656 = call ptr @__errno_location() #10
  store i32 %655, ptr %656, align 4, !tbaa !5
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = load i32, ptr @test_count, align 4, !tbaa !5
  %659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %660 = load i32, ptr %659, align 4, !tbaa !5
  %661 = call ptr @s2n_strerror(i32 noundef %660, ptr noundef @.str.4)
  %662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %663 = load i32, ptr %662, align 4, !tbaa !5
  %664 = call ptr @s2n_strerror_debug(i32 noundef %663, ptr noundef @.str.4)
  %665 = call ptr @__errno_location() #10
  %666 = load i32, ptr %665, align 4, !tbaa !5
  %667 = call ptr @strerror(i32 noundef %666) #9
  %668 = call ptr @__errno_location() #10
  %669 = load i32, ptr %668, align 4, !tbaa !5
  %670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %657, ptr noundef @.str.2, i32 noundef %658, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 91, ptr noundef %661, ptr noundef %664, ptr noundef %667, i32 noundef %669) #9
  br label %688

671:                                              ; preds = %649, %642
  %672 = load i32, ptr %25, align 4, !tbaa !5
  %673 = call ptr @__errno_location() #10
  store i32 %672, ptr %673, align 4, !tbaa !5
  %674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %675 = load i32, ptr @test_count, align 4, !tbaa !5
  %676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %677 = load i32, ptr %676, align 4, !tbaa !5
  %678 = call ptr @s2n_strerror(i32 noundef %677, ptr noundef @.str.4)
  %679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %680 = load i32, ptr %679, align 4, !tbaa !5
  %681 = call ptr @s2n_strerror_debug(i32 noundef %680, ptr noundef @.str.4)
  %682 = call ptr @__errno_location() #10
  %683 = load i32, ptr %682, align 4, !tbaa !5
  %684 = call ptr @strerror(i32 noundef %683) #9
  %685 = call ptr @__errno_location() #10
  %686 = load i32, ptr %685, align 4, !tbaa !5
  %687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %674, ptr noundef @.str.5, i32 noundef %675, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 91, ptr noundef %678, ptr noundef %681, ptr noundef %684, i32 noundef %686) #9
  br label %688

688:                                              ; preds = %671, %654
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #9
  br label %689

689:                                              ; preds = %688
  br label %690

690:                                              ; preds = %689
  call void @exit(i32 noundef 1) #11
  unreachable

691:                                              ; No predecessors!
  br label %692

692:                                              ; preds = %691
  br label %693

693:                                              ; preds = %692, %635
  br label %694

694:                                              ; preds = %693
  br label %695

695:                                              ; preds = %694
  br label %696

696:                                              ; preds = %695
  %697 = load i32, ptr @test_count, align 4, !tbaa !5
  %698 = add nsw i32 %697, 1
  store i32 %698, ptr @test_count, align 4, !tbaa !5
  %699 = load ptr, ptr %15, align 8, !tbaa !9
  %700 = call i32 @s2n_connection_set_io_pair(ptr noundef %699, ptr noundef %23)
  %701 = icmp eq i32 %700, -1
  br i1 %701, label %702, label %755

702:                                              ; preds = %696
  br label %703

703:                                              ; preds = %702
  br label %704

704:                                              ; preds = %703
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  %705 = call ptr @__errno_location() #10
  %706 = load i32, ptr %705, align 4, !tbaa !5
  store i32 %706, ptr %26, align 4, !tbaa !5
  %707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %708 = call i32 @s2n_print_stacktrace(ptr noundef %707)
  %709 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %710 = trunc i8 %709 to i1
  br i1 %710, label %711, label %733

711:                                              ; preds = %704
  %712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %713 = call i32 @fileno(ptr noundef %712) #9
  %714 = call i32 @isatty(i32 noundef %713) #9
  %715 = icmp ne i32 %714, 0
  br i1 %715, label %716, label %733

716:                                              ; preds = %711
  %717 = load i32, ptr %26, align 4, !tbaa !5
  %718 = call ptr @__errno_location() #10
  store i32 %717, ptr %718, align 4, !tbaa !5
  %719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %720 = load i32, ptr @test_count, align 4, !tbaa !5
  %721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %722 = load i32, ptr %721, align 4, !tbaa !5
  %723 = call ptr @s2n_strerror(i32 noundef %722, ptr noundef @.str.4)
  %724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %725 = load i32, ptr %724, align 4, !tbaa !5
  %726 = call ptr @s2n_strerror_debug(i32 noundef %725, ptr noundef @.str.4)
  %727 = call ptr @__errno_location() #10
  %728 = load i32, ptr %727, align 4, !tbaa !5
  %729 = call ptr @strerror(i32 noundef %728) #9
  %730 = call ptr @__errno_location() #10
  %731 = load i32, ptr %730, align 4, !tbaa !5
  %732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %719, ptr noundef @.str.2, i32 noundef %720, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 92, ptr noundef %723, ptr noundef %726, ptr noundef %729, i32 noundef %731) #9
  br label %750

733:                                              ; preds = %711, %704
  %734 = load i32, ptr %26, align 4, !tbaa !5
  %735 = call ptr @__errno_location() #10
  store i32 %734, ptr %735, align 4, !tbaa !5
  %736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %737 = load i32, ptr @test_count, align 4, !tbaa !5
  %738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = call ptr @s2n_strerror(i32 noundef %739, ptr noundef @.str.4)
  %741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %742 = load i32, ptr %741, align 4, !tbaa !5
  %743 = call ptr @s2n_strerror_debug(i32 noundef %742, ptr noundef @.str.4)
  %744 = call ptr @__errno_location() #10
  %745 = load i32, ptr %744, align 4, !tbaa !5
  %746 = call ptr @strerror(i32 noundef %745) #9
  %747 = call ptr @__errno_location() #10
  %748 = load i32, ptr %747, align 4, !tbaa !5
  %749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %736, ptr noundef @.str.5, i32 noundef %737, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 92, ptr noundef %740, ptr noundef %743, ptr noundef %746, i32 noundef %748) #9
  br label %750

750:                                              ; preds = %733, %716
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %751

751:                                              ; preds = %750
  br label %752

752:                                              ; preds = %751
  call void @exit(i32 noundef 1) #11
  unreachable

753:                                              ; No predecessors!
  br label %754

754:                                              ; preds = %753
  br label %755

755:                                              ; preds = %754, %696
  br label %756

756:                                              ; preds = %755
  br label %757

757:                                              ; preds = %756
  br label %758

758:                                              ; preds = %757
  %759 = load i32, ptr @test_count, align 4, !tbaa !5
  %760 = add nsw i32 %759, 1
  store i32 %760, ptr @test_count, align 4, !tbaa !5
  %761 = call ptr @s2n_config_new()
  store ptr %761, ptr %16, align 8, !tbaa !9
  %762 = icmp eq ptr %761, null
  br i1 %762, label %763, label %816

763:                                              ; preds = %758
  br label %764

764:                                              ; preds = %763
  br label %765

765:                                              ; preds = %764
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  %766 = call ptr @__errno_location() #10
  %767 = load i32, ptr %766, align 4, !tbaa !5
  store i32 %767, ptr %27, align 4, !tbaa !5
  %768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %769 = call i32 @s2n_print_stacktrace(ptr noundef %768)
  %770 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %771 = trunc i8 %770 to i1
  br i1 %771, label %772, label %794

772:                                              ; preds = %765
  %773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %774 = call i32 @fileno(ptr noundef %773) #9
  %775 = call i32 @isatty(i32 noundef %774) #9
  %776 = icmp ne i32 %775, 0
  br i1 %776, label %777, label %794

777:                                              ; preds = %772
  %778 = load i32, ptr %27, align 4, !tbaa !5
  %779 = call ptr @__errno_location() #10
  store i32 %778, ptr %779, align 4, !tbaa !5
  %780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %781 = load i32, ptr @test_count, align 4, !tbaa !5
  %782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %783 = load i32, ptr %782, align 4, !tbaa !5
  %784 = call ptr @s2n_strerror(i32 noundef %783, ptr noundef @.str.4)
  %785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %786 = load i32, ptr %785, align 4, !tbaa !5
  %787 = call ptr @s2n_strerror_debug(i32 noundef %786, ptr noundef @.str.4)
  %788 = call ptr @__errno_location() #10
  %789 = load i32, ptr %788, align 4, !tbaa !5
  %790 = call ptr @strerror(i32 noundef %789) #9
  %791 = call ptr @__errno_location() #10
  %792 = load i32, ptr %791, align 4, !tbaa !5
  %793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %780, ptr noundef @.str.2, i32 noundef %781, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 94, ptr noundef %784, ptr noundef %787, ptr noundef %790, i32 noundef %792) #9
  br label %811

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

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

812:                                              ; preds = %811
  br label %813

813:                                              ; preds = %812
  call void @exit(i32 noundef 1) #11
  unreachable

814:                                              ; No predecessors!
  br label %815

815:                                              ; preds = %814
  br label %816

816:                                              ; preds = %815, %758
  br label %817

817:                                              ; preds = %816
  br label %818

818:                                              ; preds = %817
  br label %819

819:                                              ; preds = %818
  %820 = load i32, ptr @test_count, align 4, !tbaa !5
  %821 = add nsw i32 %820, 1
  store i32 %821, ptr @test_count, align 4, !tbaa !5
  %822 = load ptr, ptr %16, align 8, !tbaa !9
  %823 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %822, ptr noundef @.str.18)
  %824 = icmp eq i32 %823, -1
  br i1 %824, label %825, label %878

825:                                              ; preds = %819
  br label %826

826:                                              ; preds = %825
  br label %827

827:                                              ; preds = %826
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  %828 = call ptr @__errno_location() #10
  %829 = load i32, ptr %828, align 4, !tbaa !5
  store i32 %829, ptr %28, align 4, !tbaa !5
  %830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %831 = call i32 @s2n_print_stacktrace(ptr noundef %830)
  %832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %833 = trunc i8 %832 to i1
  br i1 %833, label %834, label %856

834:                                              ; preds = %827
  %835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %836 = call i32 @fileno(ptr noundef %835) #9
  %837 = call i32 @isatty(i32 noundef %836) #9
  %838 = icmp ne i32 %837, 0
  br i1 %838, label %839, label %856

839:                                              ; preds = %834
  %840 = load i32, ptr %28, align 4, !tbaa !5
  %841 = call ptr @__errno_location() #10
  store i32 %840, ptr %841, align 4, !tbaa !5
  %842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %843 = load i32, ptr @test_count, align 4, !tbaa !5
  %844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %845 = load i32, ptr %844, align 4, !tbaa !5
  %846 = call ptr @s2n_strerror(i32 noundef %845, ptr noundef @.str.4)
  %847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %848 = load i32, ptr %847, align 4, !tbaa !5
  %849 = call ptr @s2n_strerror_debug(i32 noundef %848, ptr noundef @.str.4)
  %850 = call ptr @__errno_location() #10
  %851 = load i32, ptr %850, align 4, !tbaa !5
  %852 = call ptr @strerror(i32 noundef %851) #9
  %853 = call ptr @__errno_location() #10
  %854 = load i32, ptr %853, align 4, !tbaa !5
  %855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %842, ptr noundef @.str.2, i32 noundef %843, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 95, ptr noundef %846, ptr noundef %849, ptr noundef %852, i32 noundef %854) #9
  br label %873

856:                                              ; preds = %834, %827
  %857 = load i32, ptr %28, align 4, !tbaa !5
  %858 = call ptr @__errno_location() #10
  store i32 %857, ptr %858, align 4, !tbaa !5
  %859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %860 = load i32, ptr @test_count, align 4, !tbaa !5
  %861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %862 = load i32, ptr %861, align 4, !tbaa !5
  %863 = call ptr @s2n_strerror(i32 noundef %862, ptr noundef @.str.4)
  %864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %865 = load i32, ptr %864, align 4, !tbaa !5
  %866 = call ptr @s2n_strerror_debug(i32 noundef %865, ptr noundef @.str.4)
  %867 = call ptr @__errno_location() #10
  %868 = load i32, ptr %867, align 4, !tbaa !5
  %869 = call ptr @strerror(i32 noundef %868) #9
  %870 = call ptr @__errno_location() #10
  %871 = load i32, ptr %870, align 4, !tbaa !5
  %872 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %859, ptr noundef @.str.5, i32 noundef %860, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 95, ptr noundef %863, ptr noundef %866, ptr noundef %869, i32 noundef %871) #9
  br label %873

873:                                              ; preds = %856, %839
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %874

874:                                              ; preds = %873
  br label %875

875:                                              ; preds = %874
  call void @exit(i32 noundef 1) #11
  unreachable

876:                                              ; No predecessors!
  br label %877

877:                                              ; preds = %876
  br label %878

878:                                              ; preds = %877, %819
  br label %879

879:                                              ; preds = %878
  br label %880

880:                                              ; preds = %879
  br label %881

881:                                              ; preds = %880
  %882 = load i32, ptr @test_count, align 4, !tbaa !5
  %883 = add nsw i32 %882, 1
  store i32 %883, ptr @test_count, align 4, !tbaa !5
  %884 = load ptr, ptr %15, align 8, !tbaa !9
  %885 = load ptr, ptr %16, align 8, !tbaa !9
  %886 = call i32 @s2n_connection_set_config(ptr noundef %884, ptr noundef %885)
  %887 = icmp eq i32 %886, -1
  br i1 %887, label %888, label %941

888:                                              ; preds = %881
  br label %889

889:                                              ; preds = %888
  br label %890

890:                                              ; preds = %889
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #9
  %891 = call ptr @__errno_location() #10
  %892 = load i32, ptr %891, align 4, !tbaa !5
  store i32 %892, ptr %29, align 4, !tbaa !5
  %893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %894 = call i32 @s2n_print_stacktrace(ptr noundef %893)
  %895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %896 = trunc i8 %895 to i1
  br i1 %896, label %897, label %919

897:                                              ; preds = %890
  %898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %899 = call i32 @fileno(ptr noundef %898) #9
  %900 = call i32 @isatty(i32 noundef %899) #9
  %901 = icmp ne i32 %900, 0
  br i1 %901, label %902, label %919

902:                                              ; preds = %897
  %903 = load i32, ptr %29, align 4, !tbaa !5
  %904 = call ptr @__errno_location() #10
  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() #10
  %914 = load i32, ptr %913, align 4, !tbaa !5
  %915 = call ptr @strerror(i32 noundef %914) #9
  %916 = call ptr @__errno_location() #10
  %917 = load i32, ptr %916, align 4, !tbaa !5
  %918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %905, ptr noundef @.str.2, i32 noundef %906, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 96, ptr noundef %909, ptr noundef %912, ptr noundef %915, i32 noundef %917) #9
  br label %936

919:                                              ; preds = %897, %890
  %920 = load i32, ptr %29, align 4, !tbaa !5
  %921 = call ptr @__errno_location() #10
  store i32 %920, ptr %921, align 4, !tbaa !5
  %922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %923 = load i32, ptr @test_count, align 4, !tbaa !5
  %924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %925 = load i32, ptr %924, align 4, !tbaa !5
  %926 = call ptr @s2n_strerror(i32 noundef %925, ptr noundef @.str.4)
  %927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %928 = load i32, ptr %927, align 4, !tbaa !5
  %929 = call ptr @s2n_strerror_debug(i32 noundef %928, ptr noundef @.str.4)
  %930 = call ptr @__errno_location() #10
  %931 = load i32, ptr %930, align 4, !tbaa !5
  %932 = call ptr @strerror(i32 noundef %931) #9
  %933 = call ptr @__errno_location() #10
  %934 = load i32, ptr %933, align 4, !tbaa !5
  %935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %922, ptr noundef @.str.5, i32 noundef %923, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 96, ptr noundef %926, ptr noundef %929, ptr noundef %932, i32 noundef %934) #9
  br label %936

936:                                              ; preds = %919, %902
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %937

937:                                              ; preds = %936
  br label %938

938:                                              ; preds = %937
  call void @exit(i32 noundef 1) #11
  unreachable

939:                                              ; No predecessors!
  br label %940

940:                                              ; preds = %939
  br label %941

941:                                              ; preds = %940, %881
  br label %942

942:                                              ; preds = %941
  br label %943

943:                                              ; preds = %942
  br label %944

944:                                              ; preds = %943
  %945 = load i32, ptr @test_count, align 4, !tbaa !5
  %946 = add nsw i32 %945, 1
  store i32 %946, ptr @test_count, align 4, !tbaa !5
  %947 = load ptr, ptr %15, align 8, !tbaa !9
  %948 = call i32 @s2n_negotiate(ptr noundef %947, ptr noundef %17)
  %949 = icmp eq i32 %948, -1
  br i1 %949, label %1003, label %950

950:                                              ; preds = %944
  br label %951

951:                                              ; preds = %950
  br label %952

952:                                              ; preds = %951
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #9
  %953 = call ptr @__errno_location() #10
  %954 = load i32, ptr %953, align 4, !tbaa !5
  store i32 %954, ptr %30, align 4, !tbaa !5
  %955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %956 = call i32 @s2n_print_stacktrace(ptr noundef %955)
  %957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %958 = trunc i8 %957 to i1
  br i1 %958, label %959, label %981

959:                                              ; preds = %952
  %960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %961 = call i32 @fileno(ptr noundef %960) #9
  %962 = call i32 @isatty(i32 noundef %961) #9
  %963 = icmp ne i32 %962, 0
  br i1 %963, label %964, label %981

964:                                              ; preds = %959
  %965 = load i32, ptr %30, align 4, !tbaa !5
  %966 = call ptr @__errno_location() #10
  store i32 %965, ptr %966, align 4, !tbaa !5
  %967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %968 = load i32, ptr @test_count, align 4, !tbaa !5
  %969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %970 = load i32, ptr %969, align 4, !tbaa !5
  %971 = call ptr @s2n_strerror(i32 noundef %970, ptr noundef @.str.4)
  %972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %973 = load i32, ptr %972, align 4, !tbaa !5
  %974 = call ptr @s2n_strerror_debug(i32 noundef %973, ptr noundef @.str.4)
  %975 = call ptr @__errno_location() #10
  %976 = load i32, ptr %975, align 4, !tbaa !5
  %977 = call ptr @strerror(i32 noundef %976) #9
  %978 = call ptr @__errno_location() #10
  %979 = load i32, ptr %978, align 4, !tbaa !5
  %980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %967, ptr noundef @.str.2, i32 noundef %968, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 99, ptr noundef %971, ptr noundef %974, ptr noundef %977, i32 noundef %979) #9
  br label %998

981:                                              ; preds = %959, %952
  %982 = load i32, ptr %30, align 4, !tbaa !5
  %983 = call ptr @__errno_location() #10
  store i32 %982, ptr %983, align 4, !tbaa !5
  %984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %985 = load i32, ptr @test_count, align 4, !tbaa !5
  %986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %987 = load i32, ptr %986, align 4, !tbaa !5
  %988 = call ptr @s2n_strerror(i32 noundef %987, ptr noundef @.str.4)
  %989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %990 = load i32, ptr %989, align 4, !tbaa !5
  %991 = call ptr @s2n_strerror_debug(i32 noundef %990, ptr noundef @.str.4)
  %992 = call ptr @__errno_location() #10
  %993 = load i32, ptr %992, align 4, !tbaa !5
  %994 = call ptr @strerror(i32 noundef %993) #9
  %995 = call ptr @__errno_location() #10
  %996 = load i32, ptr %995, align 4, !tbaa !5
  %997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %984, ptr noundef @.str.5, i32 noundef %985, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 99, ptr noundef %988, ptr noundef %991, ptr noundef %994, i32 noundef %996) #9
  br label %998

998:                                              ; preds = %981, %964
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %999

999:                                              ; preds = %998
  br label %1000

1000:                                             ; preds = %999
  call void @exit(i32 noundef 1) #11
  unreachable

1001:                                             ; No predecessors!
  br label %1002

1002:                                             ; preds = %1001
  br label %1003

1003:                                             ; preds = %1002, %944
  br label %1004

1004:                                             ; preds = %1003
  br label %1005

1005:                                             ; preds = %1004
  br label %1006

1006:                                             ; preds = %1005
  %1007 = load i32, ptr @test_count, align 4, !tbaa !5
  %1008 = add nsw i32 %1007, 1
  store i32 %1008, ptr @test_count, align 4, !tbaa !5
  %1009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  %1011 = icmp eq i32 %1010, 201326592
  br i1 %1011, label %1065, label %1012

1012:                                             ; preds = %1006
  br label %1013

1013:                                             ; preds = %1012
  br label %1014

1014:                                             ; preds = %1013
  call void @llvm.lifetime.start.p0(i64 4, ptr %31) #9
  %1015 = call ptr @__errno_location() #10
  %1016 = load i32, ptr %1015, align 4, !tbaa !5
  store i32 %1016, ptr %31, align 4, !tbaa !5
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1018 = call i32 @s2n_print_stacktrace(ptr noundef %1017)
  %1019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1020 = trunc i8 %1019 to i1
  br i1 %1020, label %1021, label %1043

1021:                                             ; preds = %1014
  %1022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1023 = call i32 @fileno(ptr noundef %1022) #9
  %1024 = call i32 @isatty(i32 noundef %1023) #9
  %1025 = icmp ne i32 %1024, 0
  br i1 %1025, label %1026, label %1043

1026:                                             ; preds = %1021
  %1027 = load i32, ptr %31, align 4, !tbaa !5
  %1028 = call ptr @__errno_location() #10
  store i32 %1027, ptr %1028, align 4, !tbaa !5
  %1029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1030 = load i32, ptr @test_count, align 4, !tbaa !5
  %1031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  %1033 = call ptr @s2n_strerror(i32 noundef %1032, ptr noundef @.str.4)
  %1034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1035 = load i32, ptr %1034, align 4, !tbaa !5
  %1036 = call ptr @s2n_strerror_debug(i32 noundef %1035, ptr noundef @.str.4)
  %1037 = call ptr @__errno_location() #10
  %1038 = load i32, ptr %1037, align 4, !tbaa !5
  %1039 = call ptr @strerror(i32 noundef %1038) #9
  %1040 = call ptr @__errno_location() #10
  %1041 = load i32, ptr %1040, align 4, !tbaa !5
  %1042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1029, ptr noundef @.str.2, i32 noundef %1030, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 100, ptr noundef %1033, ptr noundef %1036, ptr noundef %1039, i32 noundef %1041) #9
  br label %1060

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

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

1061:                                             ; preds = %1060
  br label %1062

1062:                                             ; preds = %1061
  call void @exit(i32 noundef 1) #11
  unreachable

1063:                                             ; No predecessors!
  br label %1064

1064:                                             ; preds = %1063
  br label %1065

1065:                                             ; preds = %1064, %1006
  br label %1066

1066:                                             ; preds = %1065
  br label %1067

1067:                                             ; preds = %1066
  br label %1068

1068:                                             ; preds = %1067
  %1069 = load i32, ptr @test_count, align 4, !tbaa !5
  %1070 = add nsw i32 %1069, 1
  store i32 %1070, ptr @test_count, align 4, !tbaa !5
  %1071 = load i32, ptr %17, align 4, !tbaa !5
  %1072 = icmp eq i32 %1071, 1
  br i1 %1072, label %1126, label %1073

1073:                                             ; preds = %1068
  br label %1074

1074:                                             ; preds = %1073
  br label %1075

1075:                                             ; preds = %1074
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #9
  %1076 = call ptr @__errno_location() #10
  %1077 = load i32, ptr %1076, align 4, !tbaa !5
  store i32 %1077, ptr %32, align 4, !tbaa !5
  %1078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1079 = call i32 @s2n_print_stacktrace(ptr noundef %1078)
  %1080 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1081 = trunc i8 %1080 to i1
  br i1 %1081, label %1082, label %1104

1082:                                             ; preds = %1075
  %1083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1084 = call i32 @fileno(ptr noundef %1083) #9
  %1085 = call i32 @isatty(i32 noundef %1084) #9
  %1086 = icmp ne i32 %1085, 0
  br i1 %1086, label %1087, label %1104

1087:                                             ; preds = %1082
  %1088 = load i32, ptr %32, align 4, !tbaa !5
  %1089 = call ptr @__errno_location() #10
  store i32 %1088, ptr %1089, align 4, !tbaa !5
  %1090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1091 = load i32, ptr @test_count, align 4, !tbaa !5
  %1092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1093 = load i32, ptr %1092, align 4, !tbaa !5
  %1094 = call ptr @s2n_strerror(i32 noundef %1093, ptr noundef @.str.4)
  %1095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1096 = load i32, ptr %1095, align 4, !tbaa !5
  %1097 = call ptr @s2n_strerror_debug(i32 noundef %1096, ptr noundef @.str.4)
  %1098 = call ptr @__errno_location() #10
  %1099 = load i32, ptr %1098, align 4, !tbaa !5
  %1100 = call ptr @strerror(i32 noundef %1099) #9
  %1101 = call ptr @__errno_location() #10
  %1102 = load i32, ptr %1101, align 4, !tbaa !5
  %1103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1090, ptr noundef @.str.2, i32 noundef %1091, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 101, ptr noundef %1094, ptr noundef %1097, ptr noundef %1100, i32 noundef %1102) #9
  br label %1121

1104:                                             ; preds = %1082, %1075
  %1105 = load i32, ptr %32, align 4, !tbaa !5
  %1106 = call ptr @__errno_location() #10
  store i32 %1105, ptr %1106, align 4, !tbaa !5
  %1107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1108 = load i32, ptr @test_count, align 4, !tbaa !5
  %1109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1110 = load i32, ptr %1109, align 4, !tbaa !5
  %1111 = call ptr @s2n_strerror(i32 noundef %1110, ptr noundef @.str.4)
  %1112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1113 = load i32, ptr %1112, align 4, !tbaa !5
  %1114 = call ptr @s2n_strerror_debug(i32 noundef %1113, ptr noundef @.str.4)
  %1115 = call ptr @__errno_location() #10
  %1116 = load i32, ptr %1115, align 4, !tbaa !5
  %1117 = call ptr @strerror(i32 noundef %1116) #9
  %1118 = call ptr @__errno_location() #10
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1107, ptr noundef @.str.5, i32 noundef %1108, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 101, ptr noundef %1111, ptr noundef %1114, ptr noundef %1117, i32 noundef %1119) #9
  br label %1121

1121:                                             ; preds = %1104, %1087
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #9
  br label %1122

1122:                                             ; preds = %1121
  br label %1123

1123:                                             ; preds = %1122
  call void @exit(i32 noundef 1) #11
  unreachable

1124:                                             ; No predecessors!
  br label %1125

1125:                                             ; preds = %1124
  br label %1126

1126:                                             ; preds = %1125, %1068
  br label %1127

1127:                                             ; preds = %1126
  br label %1128

1128:                                             ; preds = %1127
  call void @llvm.lifetime.start.p0(i64 1024, ptr %33) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #9
  store i64 0, ptr %34, align 8, !tbaa !16
  br label %1129

1129:                                             ; preds = %1201, %1128
  %1130 = load i64, ptr %34, align 8, !tbaa !16
  %1131 = icmp ult i64 %1130, 10
  br i1 %1131, label %1132, label %1205

1132:                                             ; preds = %1129
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #9
  %1133 = getelementptr inbounds %struct.s2n_test_io_pair, ptr %23, i32 0, i32 1
  %1134 = load i32, ptr %1133, align 4, !tbaa !18
  %1135 = getelementptr inbounds [1024 x i8], ptr %33, i64 0, i64 0
  %1136 = load i64, ptr %34, align 8, !tbaa !16
  %1137 = getelementptr inbounds i8, ptr %1135, i64 %1136
  %1138 = load i64, ptr %34, align 8, !tbaa !16
  %1139 = sub i64 1024, %1138
  %1140 = call i64 @read(i32 noundef %1134, ptr noundef %1137, i64 noundef %1139)
  store i64 %1140, ptr %35, align 8, !tbaa !16
  br label %1141

1141:                                             ; preds = %1132
  %1142 = load i32, ptr @test_count, align 4, !tbaa !5
  %1143 = add nsw i32 %1142, 1
  store i32 %1143, ptr @test_count, align 4, !tbaa !5
  %1144 = load i64, ptr %35, align 8, !tbaa !16
  %1145 = icmp sgt i64 %1144, 0
  br i1 %1145, label %1199, label %1146

1146:                                             ; preds = %1141
  br label %1147

1147:                                             ; preds = %1146
  br label %1148

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

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

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

1177:                                             ; preds = %1155, %1148
  %1178 = load i32, ptr %36, align 4, !tbaa !5
  %1179 = call ptr @__errno_location() #10
  store i32 %1178, ptr %1179, align 4, !tbaa !5
  %1180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1181 = load i32, ptr @test_count, align 4, !tbaa !5
  %1182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1183 = load i32, ptr %1182, align 4, !tbaa !5
  %1184 = call ptr @s2n_strerror(i32 noundef %1183, ptr noundef @.str.4)
  %1185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1186 = load i32, ptr %1185, align 4, !tbaa !5
  %1187 = call ptr @s2n_strerror_debug(i32 noundef %1186, ptr noundef @.str.4)
  %1188 = call ptr @__errno_location() #10
  %1189 = load i32, ptr %1188, align 4, !tbaa !5
  %1190 = call ptr @strerror(i32 noundef %1189) #9
  %1191 = call ptr @__errno_location() #10
  %1192 = load i32, ptr %1191, align 4, !tbaa !5
  %1193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1180, ptr noundef @.str.5, i32 noundef %1181, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 112, ptr noundef %1184, ptr noundef %1187, ptr noundef %1190, i32 noundef %1192) #9
  br label %1194

1194:                                             ; preds = %1177, %1160
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #9
  br label %1195

1195:                                             ; preds = %1194
  br label %1196

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

1197:                                             ; No predecessors!
  br label %1198

1198:                                             ; preds = %1197
  br label %1199

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

1200:                                             ; preds = %1199
  br label %1201

1201:                                             ; preds = %1200
  %1202 = load i64, ptr %35, align 8, !tbaa !16
  %1203 = load i64, ptr %34, align 8, !tbaa !16
  %1204 = add i64 %1203, %1202
  store i64 %1204, ptr %34, align 8, !tbaa !16
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #9
  br label %1129, !llvm.loop !20

1205:                                             ; preds = %1129
  br label %1206

1206:                                             ; preds = %1205
  %1207 = load i32, ptr @test_count, align 4, !tbaa !5
  %1208 = add nsw i32 %1207, 1
  store i32 %1208, ptr @test_count, align 4, !tbaa !5
  %1209 = getelementptr inbounds [1024 x i8], ptr %33, i64 0, i64 0
  %1210 = load i8, ptr %1209, align 16, !tbaa !15
  %1211 = zext i8 %1210 to i32
  %1212 = icmp eq i32 %1211, 22
  br i1 %1212, label %1266, label %1213

1213:                                             ; preds = %1206
  br label %1214

1214:                                             ; preds = %1213
  br label %1215

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

1222:                                             ; preds = %1215
  %1223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1224 = call i32 @fileno(ptr noundef %1223) #9
  %1225 = call i32 @isatty(i32 noundef %1224) #9
  %1226 = icmp ne i32 %1225, 0
  br i1 %1226, label %1227, label %1244

1227:                                             ; preds = %1222
  %1228 = load i32, ptr %37, align 4, !tbaa !5
  %1229 = call ptr @__errno_location() #10
  store i32 %1228, ptr %1229, align 4, !tbaa !5
  %1230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1231 = load i32, ptr @test_count, align 4, !tbaa !5
  %1232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1233 = load i32, ptr %1232, align 4, !tbaa !5
  %1234 = call ptr @s2n_strerror(i32 noundef %1233, ptr noundef @.str.4)
  %1235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1236 = load i32, ptr %1235, align 4, !tbaa !5
  %1237 = call ptr @s2n_strerror_debug(i32 noundef %1236, ptr noundef @.str.4)
  %1238 = call ptr @__errno_location() #10
  %1239 = load i32, ptr %1238, align 4, !tbaa !5
  %1240 = call ptr @strerror(i32 noundef %1239) #9
  %1241 = call ptr @__errno_location() #10
  %1242 = load i32, ptr %1241, align 4, !tbaa !5
  %1243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1230, ptr noundef @.str.2, i32 noundef %1231, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 116, ptr noundef %1234, ptr noundef %1237, ptr noundef %1240, i32 noundef %1242) #9
  br label %1261

1244:                                             ; preds = %1222, %1215
  %1245 = load i32, ptr %37, align 4, !tbaa !5
  %1246 = call ptr @__errno_location() #10
  store i32 %1245, ptr %1246, align 4, !tbaa !5
  %1247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1248 = load i32, ptr @test_count, align 4, !tbaa !5
  %1249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1250 = load i32, ptr %1249, align 4, !tbaa !5
  %1251 = call ptr @s2n_strerror(i32 noundef %1250, ptr noundef @.str.4)
  %1252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1253 = load i32, ptr %1252, align 4, !tbaa !5
  %1254 = call ptr @s2n_strerror_debug(i32 noundef %1253, ptr noundef @.str.4)
  %1255 = call ptr @__errno_location() #10
  %1256 = load i32, ptr %1255, align 4, !tbaa !5
  %1257 = call ptr @strerror(i32 noundef %1256) #9
  %1258 = call ptr @__errno_location() #10
  %1259 = load i32, ptr %1258, align 4, !tbaa !5
  %1260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1247, ptr noundef @.str.5, i32 noundef %1248, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 116, ptr noundef %1251, ptr noundef %1254, ptr noundef %1257, i32 noundef %1259) #9
  br label %1261

1261:                                             ; preds = %1244, %1227
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1262

1262:                                             ; preds = %1261
  br label %1263

1263:                                             ; preds = %1262
  call void @exit(i32 noundef 1) #11
  unreachable

1264:                                             ; No predecessors!
  br label %1265

1265:                                             ; preds = %1264
  br label %1266

1266:                                             ; preds = %1265, %1206
  br label %1267

1267:                                             ; preds = %1266
  br label %1268

1268:                                             ; preds = %1267
  br label %1269

1269:                                             ; preds = %1268
  %1270 = load i32, ptr @test_count, align 4, !tbaa !5
  %1271 = add nsw i32 %1270, 1
  store i32 %1271, ptr @test_count, align 4, !tbaa !5
  %1272 = getelementptr inbounds [1024 x i8], ptr %33, i64 0, i64 1
  %1273 = load i8, ptr %1272, align 1, !tbaa !15
  %1274 = zext i8 %1273 to i32
  %1275 = icmp eq i32 %1274, 3
  br i1 %1275, label %1329, label %1276

1276:                                             ; preds = %1269
  br label %1277

1277:                                             ; preds = %1276
  br label %1278

1278:                                             ; preds = %1277
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  %1279 = call ptr @__errno_location() #10
  %1280 = load i32, ptr %1279, align 4, !tbaa !5
  store i32 %1280, ptr %38, align 4, !tbaa !5
  %1281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1282 = call i32 @s2n_print_stacktrace(ptr noundef %1281)
  %1283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1284 = trunc i8 %1283 to i1
  br i1 %1284, label %1285, label %1307

1285:                                             ; preds = %1278
  %1286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1287 = call i32 @fileno(ptr noundef %1286) #9
  %1288 = call i32 @isatty(i32 noundef %1287) #9
  %1289 = icmp ne i32 %1288, 0
  br i1 %1289, label %1290, label %1307

1290:                                             ; preds = %1285
  %1291 = load i32, ptr %38, align 4, !tbaa !5
  %1292 = call ptr @__errno_location() #10
  store i32 %1291, ptr %1292, align 4, !tbaa !5
  %1293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1294 = load i32, ptr @test_count, align 4, !tbaa !5
  %1295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1296 = load i32, ptr %1295, align 4, !tbaa !5
  %1297 = call ptr @s2n_strerror(i32 noundef %1296, ptr noundef @.str.4)
  %1298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1299 = load i32, ptr %1298, align 4, !tbaa !5
  %1300 = call ptr @s2n_strerror_debug(i32 noundef %1299, ptr noundef @.str.4)
  %1301 = call ptr @__errno_location() #10
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = call ptr @strerror(i32 noundef %1302) #9
  %1304 = call ptr @__errno_location() #10
  %1305 = load i32, ptr %1304, align 4, !tbaa !5
  %1306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1293, ptr noundef @.str.2, i32 noundef %1294, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 118, ptr noundef %1297, ptr noundef %1300, ptr noundef %1303, i32 noundef %1305) #9
  br label %1324

1307:                                             ; preds = %1285, %1278
  %1308 = load i32, ptr %38, align 4, !tbaa !5
  %1309 = call ptr @__errno_location() #10
  store i32 %1308, ptr %1309, align 4, !tbaa !5
  %1310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1311 = load i32, ptr @test_count, align 4, !tbaa !5
  %1312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1313 = load i32, ptr %1312, align 4, !tbaa !5
  %1314 = call ptr @s2n_strerror(i32 noundef %1313, ptr noundef @.str.4)
  %1315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1316 = load i32, ptr %1315, align 4, !tbaa !5
  %1317 = call ptr @s2n_strerror_debug(i32 noundef %1316, ptr noundef @.str.4)
  %1318 = call ptr @__errno_location() #10
  %1319 = load i32, ptr %1318, align 4, !tbaa !5
  %1320 = call ptr @strerror(i32 noundef %1319) #9
  %1321 = call ptr @__errno_location() #10
  %1322 = load i32, ptr %1321, align 4, !tbaa !5
  %1323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1310, ptr noundef @.str.5, i32 noundef %1311, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 118, ptr noundef %1314, ptr noundef %1317, ptr noundef %1320, i32 noundef %1322) #9
  br label %1324

1324:                                             ; preds = %1307, %1290
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #9
  br label %1325

1325:                                             ; preds = %1324
  br label %1326

1326:                                             ; preds = %1325
  call void @exit(i32 noundef 1) #11
  unreachable

1327:                                             ; No predecessors!
  br label %1328

1328:                                             ; preds = %1327
  br label %1329

1329:                                             ; preds = %1328, %1269
  br label %1330

1330:                                             ; preds = %1329
  br label %1331

1331:                                             ; preds = %1330
  br label %1332

1332:                                             ; preds = %1331
  %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 = getelementptr inbounds [1024 x i8], ptr %33, i64 0, i64 2
  %1336 = load i8, ptr %1335, align 2, !tbaa !15
  %1337 = zext i8 %1336 to i32
  %1338 = icmp eq i32 %1337, 1
  br i1 %1338, label %1392, label %1339

1339:                                             ; preds = %1332
  br label %1340

1340:                                             ; preds = %1339
  br label %1341

1341:                                             ; preds = %1340
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  %1342 = call ptr @__errno_location() #10
  %1343 = load i32, ptr %1342, align 4, !tbaa !5
  store i32 %1343, ptr %39, align 4, !tbaa !5
  %1344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1345 = call i32 @s2n_print_stacktrace(ptr noundef %1344)
  %1346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1347 = trunc i8 %1346 to i1
  br i1 %1347, label %1348, label %1370

1348:                                             ; preds = %1341
  %1349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1350 = call i32 @fileno(ptr noundef %1349) #9
  %1351 = call i32 @isatty(i32 noundef %1350) #9
  %1352 = icmp ne i32 %1351, 0
  br i1 %1352, label %1353, label %1370

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

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

1387:                                             ; preds = %1370, %1353
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1388

1388:                                             ; preds = %1387
  br label %1389

1389:                                             ; preds = %1388
  call void @exit(i32 noundef 1) #11
  unreachable

1390:                                             ; No predecessors!
  br label %1391

1391:                                             ; preds = %1390
  br label %1392

1392:                                             ; preds = %1391, %1332
  br label %1393

1393:                                             ; preds = %1392
  br label %1394

1394:                                             ; preds = %1393
  br label %1395

1395:                                             ; preds = %1394
  %1396 = load i32, ptr @test_count, align 4, !tbaa !5
  %1397 = add nsw i32 %1396, 1
  store i32 %1397, ptr @test_count, align 4, !tbaa !5
  %1398 = getelementptr inbounds [1024 x i8], ptr %33, i64 0, i64 5
  %1399 = load i8, ptr %1398, align 1, !tbaa !15
  %1400 = zext i8 %1399 to i32
  %1401 = icmp eq i32 %1400, 1
  br i1 %1401, label %1455, label %1402

1402:                                             ; preds = %1395
  br label %1403

1403:                                             ; preds = %1402
  br label %1404

1404:                                             ; preds = %1403
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #9
  %1405 = call ptr @__errno_location() #10
  %1406 = load i32, ptr %1405, align 4, !tbaa !5
  store i32 %1406, ptr %40, align 4, !tbaa !5
  %1407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1408 = call i32 @s2n_print_stacktrace(ptr noundef %1407)
  %1409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1410 = trunc i8 %1409 to i1
  br i1 %1410, label %1411, label %1433

1411:                                             ; preds = %1404
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = call i32 @fileno(ptr noundef %1412) #9
  %1414 = call i32 @isatty(i32 noundef %1413) #9
  %1415 = icmp ne i32 %1414, 0
  br i1 %1415, label %1416, label %1433

1416:                                             ; preds = %1411
  %1417 = load i32, ptr %40, align 4, !tbaa !5
  %1418 = call ptr @__errno_location() #10
  store i32 %1417, ptr %1418, align 4, !tbaa !5
  %1419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1420 = load i32, ptr @test_count, align 4, !tbaa !5
  %1421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1422 = load i32, ptr %1421, align 4, !tbaa !5
  %1423 = call ptr @s2n_strerror(i32 noundef %1422, ptr noundef @.str.4)
  %1424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1425 = load i32, ptr %1424, align 4, !tbaa !5
  %1426 = call ptr @s2n_strerror_debug(i32 noundef %1425, ptr noundef @.str.4)
  %1427 = call ptr @__errno_location() #10
  %1428 = load i32, ptr %1427, align 4, !tbaa !5
  %1429 = call ptr @strerror(i32 noundef %1428) #9
  %1430 = call ptr @__errno_location() #10
  %1431 = load i32, ptr %1430, align 4, !tbaa !5
  %1432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1419, ptr noundef @.str.2, i32 noundef %1420, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 121, ptr noundef %1423, ptr noundef %1426, ptr noundef %1429, i32 noundef %1431) #9
  br label %1450

1433:                                             ; preds = %1411, %1404
  %1434 = load i32, ptr %40, align 4, !tbaa !5
  %1435 = call ptr @__errno_location() #10
  store i32 %1434, ptr %1435, align 4, !tbaa !5
  %1436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1437 = load i32, ptr @test_count, align 4, !tbaa !5
  %1438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1439 = load i32, ptr %1438, align 4, !tbaa !5
  %1440 = call ptr @s2n_strerror(i32 noundef %1439, ptr noundef @.str.4)
  %1441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1442 = load i32, ptr %1441, align 4, !tbaa !5
  %1443 = call ptr @s2n_strerror_debug(i32 noundef %1442, ptr noundef @.str.4)
  %1444 = call ptr @__errno_location() #10
  %1445 = load i32, ptr %1444, align 4, !tbaa !5
  %1446 = call ptr @strerror(i32 noundef %1445) #9
  %1447 = call ptr @__errno_location() #10
  %1448 = load i32, ptr %1447, align 4, !tbaa !5
  %1449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1436, ptr noundef @.str.5, i32 noundef %1437, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 121, ptr noundef %1440, ptr noundef %1443, ptr noundef %1446, i32 noundef %1448) #9
  br label %1450

1450:                                             ; preds = %1433, %1416
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #9
  br label %1451

1451:                                             ; preds = %1450
  br label %1452

1452:                                             ; preds = %1451
  call void @exit(i32 noundef 1) #11
  unreachable

1453:                                             ; No predecessors!
  br label %1454

1454:                                             ; preds = %1453
  br label %1455

1455:                                             ; preds = %1454, %1395
  br label %1456

1456:                                             ; preds = %1455
  br label %1457

1457:                                             ; preds = %1456
  br label %1458

1458:                                             ; preds = %1457
  %1459 = load i32, ptr @test_count, align 4, !tbaa !5
  %1460 = add nsw i32 %1459, 1
  store i32 %1460, ptr @test_count, align 4, !tbaa !5
  %1461 = getelementptr inbounds [1024 x i8], ptr %33, i64 0, i64 9
  %1462 = load i8, ptr %1461, align 1, !tbaa !15
  %1463 = zext i8 %1462 to i32
  %1464 = icmp eq i32 %1463, 3
  br i1 %1464, label %1518, label %1465

1465:                                             ; preds = %1458
  br label %1466

1466:                                             ; preds = %1465
  br label %1467

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

1474:                                             ; preds = %1467
  %1475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1476 = call i32 @fileno(ptr noundef %1475) #9
  %1477 = call i32 @isatty(i32 noundef %1476) #9
  %1478 = icmp ne i32 %1477, 0
  br i1 %1478, label %1479, label %1496

1479:                                             ; preds = %1474
  %1480 = load i32, ptr %41, align 4, !tbaa !5
  %1481 = call ptr @__errno_location() #10
  store i32 %1480, ptr %1481, align 4, !tbaa !5
  %1482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1483 = load i32, ptr @test_count, align 4, !tbaa !5
  %1484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1485 = load i32, ptr %1484, align 4, !tbaa !5
  %1486 = call ptr @s2n_strerror(i32 noundef %1485, ptr noundef @.str.4)
  %1487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1488 = load i32, ptr %1487, align 4, !tbaa !5
  %1489 = call ptr @s2n_strerror_debug(i32 noundef %1488, ptr noundef @.str.4)
  %1490 = call ptr @__errno_location() #10
  %1491 = load i32, ptr %1490, align 4, !tbaa !5
  %1492 = call ptr @strerror(i32 noundef %1491) #9
  %1493 = call ptr @__errno_location() #10
  %1494 = load i32, ptr %1493, align 4, !tbaa !5
  %1495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1482, ptr noundef @.str.2, i32 noundef %1483, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1486, ptr noundef %1489, ptr noundef %1492, i32 noundef %1494) #9
  br label %1513

1496:                                             ; preds = %1474, %1467
  %1497 = load i32, ptr %41, align 4, !tbaa !5
  %1498 = call ptr @__errno_location() #10
  store i32 %1497, ptr %1498, align 4, !tbaa !5
  %1499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1500 = load i32, ptr @test_count, align 4, !tbaa !5
  %1501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1502 = load i32, ptr %1501, align 4, !tbaa !5
  %1503 = call ptr @s2n_strerror(i32 noundef %1502, ptr noundef @.str.4)
  %1504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1505 = load i32, ptr %1504, align 4, !tbaa !5
  %1506 = call ptr @s2n_strerror_debug(i32 noundef %1505, ptr noundef @.str.4)
  %1507 = call ptr @__errno_location() #10
  %1508 = load i32, ptr %1507, align 4, !tbaa !5
  %1509 = call ptr @strerror(i32 noundef %1508) #9
  %1510 = call ptr @__errno_location() #10
  %1511 = load i32, ptr %1510, align 4, !tbaa !5
  %1512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1499, ptr noundef @.str.5, i32 noundef %1500, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1503, ptr noundef %1506, ptr noundef %1509, i32 noundef %1511) #9
  br label %1513

1513:                                             ; preds = %1496, %1479
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %1514

1514:                                             ; preds = %1513
  br label %1515

1515:                                             ; preds = %1514
  call void @exit(i32 noundef 1) #11
  unreachable

1516:                                             ; No predecessors!
  br label %1517

1517:                                             ; preds = %1516
  br label %1518

1518:                                             ; preds = %1517, %1458
  br label %1519

1519:                                             ; preds = %1518
  br label %1520

1520:                                             ; preds = %1519
  br label %1521

1521:                                             ; preds = %1520
  %1522 = load i32, ptr @test_count, align 4, !tbaa !5
  %1523 = add nsw i32 %1522, 1
  store i32 %1523, ptr @test_count, align 4, !tbaa !5
  %1524 = getelementptr inbounds [1024 x i8], ptr %33, i64 0, i64 10
  %1525 = load i8, ptr %1524, align 2, !tbaa !15
  %1526 = zext i8 %1525 to i32
  %1527 = icmp eq i32 %1526, 3
  br i1 %1527, label %1581, label %1528

1528:                                             ; preds = %1521
  br label %1529

1529:                                             ; preds = %1528
  br label %1530

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

1537:                                             ; preds = %1530
  %1538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1539 = call i32 @fileno(ptr noundef %1538) #9
  %1540 = call i32 @isatty(i32 noundef %1539) #9
  %1541 = icmp ne i32 %1540, 0
  br i1 %1541, label %1542, label %1559

1542:                                             ; preds = %1537
  %1543 = load i32, ptr %42, align 4, !tbaa !5
  %1544 = call ptr @__errno_location() #10
  store i32 %1543, ptr %1544, align 4, !tbaa !5
  %1545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1546 = load i32, ptr @test_count, align 4, !tbaa !5
  %1547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1548 = load i32, ptr %1547, align 4, !tbaa !5
  %1549 = call ptr @s2n_strerror(i32 noundef %1548, ptr noundef @.str.4)
  %1550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1551 = load i32, ptr %1550, align 4, !tbaa !5
  %1552 = call ptr @s2n_strerror_debug(i32 noundef %1551, ptr noundef @.str.4)
  %1553 = call ptr @__errno_location() #10
  %1554 = load i32, ptr %1553, align 4, !tbaa !5
  %1555 = call ptr @strerror(i32 noundef %1554) #9
  %1556 = call ptr @__errno_location() #10
  %1557 = load i32, ptr %1556, align 4, !tbaa !5
  %1558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1545, ptr noundef @.str.2, i32 noundef %1546, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 124, ptr noundef %1549, ptr noundef %1552, ptr noundef %1555, i32 noundef %1557) #9
  br label %1576

1559:                                             ; preds = %1537, %1530
  %1560 = load i32, ptr %42, align 4, !tbaa !5
  %1561 = call ptr @__errno_location() #10
  store i32 %1560, ptr %1561, align 4, !tbaa !5
  %1562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1563 = load i32, ptr @test_count, align 4, !tbaa !5
  %1564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1565 = load i32, ptr %1564, align 4, !tbaa !5
  %1566 = call ptr @s2n_strerror(i32 noundef %1565, ptr noundef @.str.4)
  %1567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  %1569 = call ptr @s2n_strerror_debug(i32 noundef %1568, ptr noundef @.str.4)
  %1570 = call ptr @__errno_location() #10
  %1571 = load i32, ptr %1570, align 4, !tbaa !5
  %1572 = call ptr @strerror(i32 noundef %1571) #9
  %1573 = call ptr @__errno_location() #10
  %1574 = load i32, ptr %1573, align 4, !tbaa !5
  %1575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1562, ptr noundef @.str.5, i32 noundef %1563, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 124, ptr noundef %1566, ptr noundef %1569, ptr noundef %1572, i32 noundef %1574) #9
  br label %1576

1576:                                             ; preds = %1559, %1542
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #9
  br label %1577

1577:                                             ; preds = %1576
  br label %1578

1578:                                             ; preds = %1577
  call void @exit(i32 noundef 1) #11
  unreachable

1579:                                             ; No predecessors!
  br label %1580

1580:                                             ; preds = %1579
  br label %1581

1581:                                             ; preds = %1580, %1521
  br label %1582

1582:                                             ; preds = %1581
  br label %1583

1583:                                             ; preds = %1582
  br label %1584

1584:                                             ; preds = %1666, %1664, %1583
  br label %1585

1585:                                             ; preds = %1584
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #9
  %1586 = getelementptr inbounds %struct.s2n_test_io_pair, ptr %23, i32 0, i32 1
  %1587 = load i32, ptr %1586, align 4, !tbaa !18
  %1588 = getelementptr inbounds [1024 x i8], ptr %33, i64 0, i64 0
  %1589 = call i64 @read(i32 noundef %1587, ptr noundef %1588, i64 noundef 1024)
  store i64 %1589, ptr %43, align 8, !tbaa !16
  %1590 = load i64, ptr %43, align 8, !tbaa !16
  %1591 = icmp sgt i64 %1590, 0
  br i1 %1591, label %1592, label %1593

1592:                                             ; preds = %1585
  store i32 146, ptr %44, align 4
  br label %1664

1593:                                             ; preds = %1585
  br label %1594

1594:                                             ; preds = %1593
  %1595 = load i32, ptr @test_count, align 4, !tbaa !5
  %1596 = add nsw i32 %1595, 1
  store i32 %1596, ptr @test_count, align 4, !tbaa !5
  %1597 = load i64, ptr %43, align 8, !tbaa !16
  %1598 = icmp eq i64 %1597, -1
  br i1 %1598, label %1652, label %1599

1599:                                             ; preds = %1594
  br label %1600

1600:                                             ; preds = %1599
  br label %1601

1601:                                             ; preds = %1600
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  %1602 = call ptr @__errno_location() #10
  %1603 = load i32, ptr %1602, align 4, !tbaa !5
  store i32 %1603, ptr %45, align 4, !tbaa !5
  %1604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1605 = call i32 @s2n_print_stacktrace(ptr noundef %1604)
  %1606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1607 = trunc i8 %1606 to i1
  br i1 %1607, label %1608, label %1630

1608:                                             ; preds = %1601
  %1609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1610 = call i32 @fileno(ptr noundef %1609) #9
  %1611 = call i32 @isatty(i32 noundef %1610) #9
  %1612 = icmp ne i32 %1611, 0
  br i1 %1612, label %1613, label %1630

1613:                                             ; preds = %1608
  %1614 = load i32, ptr %45, align 4, !tbaa !5
  %1615 = call ptr @__errno_location() #10
  store i32 %1614, ptr %1615, align 4, !tbaa !5
  %1616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1617 = load i32, ptr @test_count, align 4, !tbaa !5
  %1618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = call ptr @s2n_strerror(i32 noundef %1619, ptr noundef @.str.4)
  %1621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1622 = load i32, ptr %1621, align 4, !tbaa !5
  %1623 = call ptr @s2n_strerror_debug(i32 noundef %1622, ptr noundef @.str.4)
  %1624 = call ptr @__errno_location() #10
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  %1626 = call ptr @strerror(i32 noundef %1625) #9
  %1627 = call ptr @__errno_location() #10
  %1628 = load i32, ptr %1627, align 4, !tbaa !5
  %1629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1616, ptr noundef @.str.2, i32 noundef %1617, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 134, ptr noundef %1620, ptr noundef %1623, ptr noundef %1626, i32 noundef %1628) #9
  br label %1647

1630:                                             ; preds = %1608, %1601
  %1631 = load i32, ptr %45, align 4, !tbaa !5
  %1632 = call ptr @__errno_location() #10
  store i32 %1631, ptr %1632, align 4, !tbaa !5
  %1633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1634 = load i32, ptr @test_count, align 4, !tbaa !5
  %1635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1636 = load i32, ptr %1635, align 4, !tbaa !5
  %1637 = call ptr @s2n_strerror(i32 noundef %1636, ptr noundef @.str.4)
  %1638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  %1640 = call ptr @s2n_strerror_debug(i32 noundef %1639, ptr noundef @.str.4)
  %1641 = call ptr @__errno_location() #10
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call ptr @strerror(i32 noundef %1642) #9
  %1644 = call ptr @__errno_location() #10
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  %1646 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1633, ptr noundef @.str.5, i32 noundef %1634, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 134, ptr noundef %1637, ptr noundef %1640, ptr noundef %1643, i32 noundef %1645) #9
  br label %1647

1647:                                             ; preds = %1630, %1613
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %1648

1648:                                             ; preds = %1647
  br label %1649

1649:                                             ; preds = %1648
  call void @exit(i32 noundef 1) #11
  unreachable

1650:                                             ; No predecessors!
  br label %1651

1651:                                             ; preds = %1650
  br label %1652

1652:                                             ; preds = %1651, %1594
  br label %1653

1653:                                             ; preds = %1652
  br label %1654

1654:                                             ; preds = %1653
  %1655 = call ptr @__errno_location() #10
  %1656 = load i32, ptr %1655, align 4, !tbaa !5
  %1657 = icmp eq i32 %1656, 11
  br i1 %1657, label %1662, label %1658

1658:                                             ; preds = %1654
  %1659 = call ptr @__errno_location() #10
  %1660 = load i32, ptr %1659, align 4, !tbaa !5
  %1661 = icmp eq i32 %1660, 11
  br i1 %1661, label %1662, label %1663

1662:                                             ; preds = %1658, %1654
  store i32 147, ptr %44, align 4
  br label %1664

1663:                                             ; preds = %1658
  store i32 0, ptr %44, align 4
  br label %1664

1664:                                             ; preds = %1663, %1662, %1592
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  %1665 = load i32, ptr %44, align 4
  switch i32 %1665, label %4989 [
    i32 0, label %1666
    i32 146, label %1584
    i32 147, label %1667
  ]

1666:                                             ; preds = %1664
  br label %1584

1667:                                             ; preds = %1664
  br label %1668

1668:                                             ; preds = %1667
  %1669 = load i32, ptr @test_count, align 4, !tbaa !5
  %1670 = add nsw i32 %1669, 1
  store i32 %1670, ptr @test_count, align 4, !tbaa !5
  %1671 = getelementptr inbounds %struct.s2n_test_io_pair, ptr %23, i32 0, i32 1
  %1672 = load i32, ptr %1671, align 4, !tbaa !18
  %1673 = getelementptr inbounds [5 x i8], ptr %22, i64 0, i64 0
  %1674 = call i64 @write(i32 noundef %1672, ptr noundef %1673, i64 noundef 5)
  %1675 = icmp eq i64 %1674, 5
  br i1 %1675, label %1729, label %1676

1676:                                             ; preds = %1668
  br label %1677

1677:                                             ; preds = %1676
  br label %1678

1678:                                             ; preds = %1677
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #9
  %1679 = call ptr @__errno_location() #10
  %1680 = load i32, ptr %1679, align 4, !tbaa !5
  store i32 %1680, ptr %46, align 4, !tbaa !5
  %1681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1682 = call i32 @s2n_print_stacktrace(ptr noundef %1681)
  %1683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1684 = trunc i8 %1683 to i1
  br i1 %1684, label %1685, label %1707

1685:                                             ; preds = %1678
  %1686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1687 = call i32 @fileno(ptr noundef %1686) #9
  %1688 = call i32 @isatty(i32 noundef %1687) #9
  %1689 = icmp ne i32 %1688, 0
  br i1 %1689, label %1690, label %1707

1690:                                             ; preds = %1685
  %1691 = load i32, ptr %46, align 4, !tbaa !5
  %1692 = call ptr @__errno_location() #10
  store i32 %1691, ptr %1692, align 4, !tbaa !5
  %1693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1694 = load i32, ptr @test_count, align 4, !tbaa !5
  %1695 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1696 = load i32, ptr %1695, align 4, !tbaa !5
  %1697 = call ptr @s2n_strerror(i32 noundef %1696, ptr noundef @.str.4)
  %1698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1699 = load i32, ptr %1698, align 4, !tbaa !5
  %1700 = call ptr @s2n_strerror_debug(i32 noundef %1699, ptr noundef @.str.4)
  %1701 = call ptr @__errno_location() #10
  %1702 = load i32, ptr %1701, align 4, !tbaa !5
  %1703 = call ptr @strerror(i32 noundef %1702) #9
  %1704 = call ptr @__errno_location() #10
  %1705 = load i32, ptr %1704, align 4, !tbaa !5
  %1706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1693, ptr noundef @.str.2, i32 noundef %1694, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 141, ptr noundef %1697, ptr noundef %1700, ptr noundef %1703, i32 noundef %1705) #9
  br label %1724

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

1724:                                             ; preds = %1707, %1690
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #9
  br label %1725

1725:                                             ; preds = %1724
  br label %1726

1726:                                             ; preds = %1725
  call void @exit(i32 noundef 1) #11
  unreachable

1727:                                             ; No predecessors!
  br label %1728

1728:                                             ; preds = %1727
  br label %1729

1729:                                             ; preds = %1728, %1668
  br label %1730

1730:                                             ; preds = %1729
  br label %1731

1731:                                             ; preds = %1730
  br label %1732

1732:                                             ; preds = %1731
  %1733 = load i32, ptr @test_count, align 4, !tbaa !5
  %1734 = add nsw i32 %1733, 1
  store i32 %1734, ptr @test_count, align 4, !tbaa !5
  %1735 = getelementptr inbounds %struct.s2n_test_io_pair, ptr %23, i32 0, i32 1
  %1736 = load i32, ptr %1735, align 4, !tbaa !18
  %1737 = getelementptr inbounds [4 x i8], ptr %20, i64 0, i64 0
  %1738 = call i64 @write(i32 noundef %1736, ptr noundef %1737, i64 noundef 4)
  %1739 = icmp eq i64 %1738, 4
  br i1 %1739, label %1793, label %1740

1740:                                             ; preds = %1732
  br label %1741

1741:                                             ; preds = %1740
  br label %1742

1742:                                             ; preds = %1741
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #9
  %1743 = call ptr @__errno_location() #10
  %1744 = load i32, ptr %1743, align 4, !tbaa !5
  store i32 %1744, ptr %47, align 4, !tbaa !5
  %1745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1746 = call i32 @s2n_print_stacktrace(ptr noundef %1745)
  %1747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1748 = trunc i8 %1747 to i1
  br i1 %1748, label %1749, label %1771

1749:                                             ; preds = %1742
  %1750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1751 = call i32 @fileno(ptr noundef %1750) #9
  %1752 = call i32 @isatty(i32 noundef %1751) #9
  %1753 = icmp ne i32 %1752, 0
  br i1 %1753, label %1754, label %1771

1754:                                             ; preds = %1749
  %1755 = load i32, ptr %47, align 4, !tbaa !5
  %1756 = call ptr @__errno_location() #10
  store i32 %1755, ptr %1756, align 4, !tbaa !5
  %1757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1758 = load i32, ptr @test_count, align 4, !tbaa !5
  %1759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1760 = load i32, ptr %1759, align 4, !tbaa !5
  %1761 = call ptr @s2n_strerror(i32 noundef %1760, ptr noundef @.str.4)
  %1762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1763 = load i32, ptr %1762, align 4, !tbaa !5
  %1764 = call ptr @s2n_strerror_debug(i32 noundef %1763, ptr noundef @.str.4)
  %1765 = call ptr @__errno_location() #10
  %1766 = load i32, ptr %1765, align 4, !tbaa !5
  %1767 = call ptr @strerror(i32 noundef %1766) #9
  %1768 = call ptr @__errno_location() #10
  %1769 = load i32, ptr %1768, align 4, !tbaa !5
  %1770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1757, ptr noundef @.str.2, i32 noundef %1758, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 142, ptr noundef %1761, ptr noundef %1764, ptr noundef %1767, i32 noundef %1769) #9
  br label %1788

1771:                                             ; preds = %1749, %1742
  %1772 = load i32, ptr %47, align 4, !tbaa !5
  %1773 = call ptr @__errno_location() #10
  store i32 %1772, ptr %1773, align 4, !tbaa !5
  %1774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1775 = load i32, ptr @test_count, align 4, !tbaa !5
  %1776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1777 = load i32, ptr %1776, align 4, !tbaa !5
  %1778 = call ptr @s2n_strerror(i32 noundef %1777, ptr noundef @.str.4)
  %1779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1780 = load i32, ptr %1779, align 4, !tbaa !5
  %1781 = call ptr @s2n_strerror_debug(i32 noundef %1780, ptr noundef @.str.4)
  %1782 = call ptr @__errno_location() #10
  %1783 = load i32, ptr %1782, align 4, !tbaa !5
  %1784 = call ptr @strerror(i32 noundef %1783) #9
  %1785 = call ptr @__errno_location() #10
  %1786 = load i32, ptr %1785, align 4, !tbaa !5
  %1787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1774, ptr noundef @.str.5, i32 noundef %1775, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 142, ptr noundef %1778, ptr noundef %1781, ptr noundef %1784, i32 noundef %1786) #9
  br label %1788

1788:                                             ; preds = %1771, %1754
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #9
  br label %1789

1789:                                             ; preds = %1788
  br label %1790

1790:                                             ; preds = %1789
  call void @exit(i32 noundef 1) #11
  unreachable

1791:                                             ; No predecessors!
  br label %1792

1792:                                             ; preds = %1791
  br label %1793

1793:                                             ; preds = %1792, %1732
  br label %1794

1794:                                             ; preds = %1793
  br label %1795

1795:                                             ; preds = %1794
  br label %1796

1796:                                             ; preds = %1795
  %1797 = load i32, ptr @test_count, align 4, !tbaa !5
  %1798 = add nsw i32 %1797, 1
  store i32 %1798, ptr @test_count, align 4, !tbaa !5
  %1799 = getelementptr inbounds %struct.s2n_test_io_pair, ptr %23, i32 0, i32 1
  %1800 = load i32, ptr %1799, align 4, !tbaa !18
  %1801 = getelementptr inbounds [72 x i8], ptr %18, i64 0, i64 0
  %1802 = call i64 @write(i32 noundef %1800, ptr noundef %1801, i64 noundef 72)
  %1803 = icmp eq i64 %1802, 72
  br i1 %1803, label %1857, label %1804

1804:                                             ; preds = %1796
  br label %1805

1805:                                             ; preds = %1804
  br label %1806

1806:                                             ; preds = %1805
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #9
  %1807 = call ptr @__errno_location() #10
  %1808 = load i32, ptr %1807, align 4, !tbaa !5
  store i32 %1808, ptr %48, align 4, !tbaa !5
  %1809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1810 = call i32 @s2n_print_stacktrace(ptr noundef %1809)
  %1811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1812 = trunc i8 %1811 to i1
  br i1 %1812, label %1813, label %1835

1813:                                             ; preds = %1806
  %1814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1815 = call i32 @fileno(ptr noundef %1814) #9
  %1816 = call i32 @isatty(i32 noundef %1815) #9
  %1817 = icmp ne i32 %1816, 0
  br i1 %1817, label %1818, label %1835

1818:                                             ; preds = %1813
  %1819 = load i32, ptr %48, align 4, !tbaa !5
  %1820 = call ptr @__errno_location() #10
  store i32 %1819, ptr %1820, align 4, !tbaa !5
  %1821 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1822 = load i32, ptr @test_count, align 4, !tbaa !5
  %1823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1824 = load i32, ptr %1823, align 4, !tbaa !5
  %1825 = call ptr @s2n_strerror(i32 noundef %1824, ptr noundef @.str.4)
  %1826 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1827 = load i32, ptr %1826, align 4, !tbaa !5
  %1828 = call ptr @s2n_strerror_debug(i32 noundef %1827, ptr noundef @.str.4)
  %1829 = call ptr @__errno_location() #10
  %1830 = load i32, ptr %1829, align 4, !tbaa !5
  %1831 = call ptr @strerror(i32 noundef %1830) #9
  %1832 = call ptr @__errno_location() #10
  %1833 = load i32, ptr %1832, align 4, !tbaa !5
  %1834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1821, ptr noundef @.str.2, i32 noundef %1822, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 143, ptr noundef %1825, ptr noundef %1828, ptr noundef %1831, i32 noundef %1833) #9
  br label %1852

1835:                                             ; preds = %1813, %1806
  %1836 = load i32, ptr %48, align 4, !tbaa !5
  %1837 = call ptr @__errno_location() #10
  store i32 %1836, ptr %1837, align 4, !tbaa !5
  %1838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1839 = load i32, ptr @test_count, align 4, !tbaa !5
  %1840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1841 = load i32, ptr %1840, align 4, !tbaa !5
  %1842 = call ptr @s2n_strerror(i32 noundef %1841, ptr noundef @.str.4)
  %1843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1844 = load i32, ptr %1843, align 4, !tbaa !5
  %1845 = call ptr @s2n_strerror_debug(i32 noundef %1844, ptr noundef @.str.4)
  %1846 = call ptr @__errno_location() #10
  %1847 = load i32, ptr %1846, align 4, !tbaa !5
  %1848 = call ptr @strerror(i32 noundef %1847) #9
  %1849 = call ptr @__errno_location() #10
  %1850 = load i32, ptr %1849, align 4, !tbaa !5
  %1851 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1838, ptr noundef @.str.5, i32 noundef %1839, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 143, ptr noundef %1842, ptr noundef %1845, ptr noundef %1848, i32 noundef %1850) #9
  br label %1852

1852:                                             ; preds = %1835, %1818
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %1853

1853:                                             ; preds = %1852
  br label %1854

1854:                                             ; preds = %1853
  call void @exit(i32 noundef 1) #11
  unreachable

1855:                                             ; No predecessors!
  br label %1856

1856:                                             ; preds = %1855
  br label %1857

1857:                                             ; preds = %1856, %1796
  br label %1858

1858:                                             ; preds = %1857
  br label %1859

1859:                                             ; preds = %1858
  br label %1860

1860:                                             ; preds = %1859
  %1861 = load i32, ptr @test_count, align 4, !tbaa !5
  %1862 = add nsw i32 %1861, 1
  store i32 %1862, ptr @test_count, align 4, !tbaa !5
  %1863 = load ptr, ptr %15, align 8, !tbaa !9
  %1864 = call i32 @s2n_negotiate(ptr noundef %1863, ptr noundef %17)
  %1865 = icmp eq i32 %1864, -1
  br i1 %1865, label %1919, label %1866

1866:                                             ; preds = %1860
  br label %1867

1867:                                             ; preds = %1866
  br label %1868

1868:                                             ; preds = %1867
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #9
  %1869 = call ptr @__errno_location() #10
  %1870 = load i32, ptr %1869, align 4, !tbaa !5
  store i32 %1870, ptr %49, align 4, !tbaa !5
  %1871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1872 = call i32 @s2n_print_stacktrace(ptr noundef %1871)
  %1873 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1874 = trunc i8 %1873 to i1
  br i1 %1874, label %1875, label %1897

1875:                                             ; preds = %1868
  %1876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1877 = call i32 @fileno(ptr noundef %1876) #9
  %1878 = call i32 @isatty(i32 noundef %1877) #9
  %1879 = icmp ne i32 %1878, 0
  br i1 %1879, label %1880, label %1897

1880:                                             ; preds = %1875
  %1881 = load i32, ptr %49, align 4, !tbaa !5
  %1882 = call ptr @__errno_location() #10
  store i32 %1881, ptr %1882, align 4, !tbaa !5
  %1883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1884 = load i32, ptr @test_count, align 4, !tbaa !5
  %1885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1886 = load i32, ptr %1885, align 4, !tbaa !5
  %1887 = call ptr @s2n_strerror(i32 noundef %1886, ptr noundef @.str.4)
  %1888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1889 = load i32, ptr %1888, align 4, !tbaa !5
  %1890 = call ptr @s2n_strerror_debug(i32 noundef %1889, ptr noundef @.str.4)
  %1891 = call ptr @__errno_location() #10
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  %1893 = call ptr @strerror(i32 noundef %1892) #9
  %1894 = call ptr @__errno_location() #10
  %1895 = load i32, ptr %1894, align 4, !tbaa !5
  %1896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1883, ptr noundef @.str.2, i32 noundef %1884, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 146, ptr noundef %1887, ptr noundef %1890, ptr noundef %1893, i32 noundef %1895) #9
  br label %1914

1897:                                             ; preds = %1875, %1868
  %1898 = load i32, ptr %49, align 4, !tbaa !5
  %1899 = call ptr @__errno_location() #10
  store i32 %1898, ptr %1899, align 4, !tbaa !5
  %1900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1901 = load i32, ptr @test_count, align 4, !tbaa !5
  %1902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1903 = load i32, ptr %1902, align 4, !tbaa !5
  %1904 = call ptr @s2n_strerror(i32 noundef %1903, ptr noundef @.str.4)
  %1905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1906 = load i32, ptr %1905, align 4, !tbaa !5
  %1907 = call ptr @s2n_strerror_debug(i32 noundef %1906, ptr noundef @.str.4)
  %1908 = call ptr @__errno_location() #10
  %1909 = load i32, ptr %1908, align 4, !tbaa !5
  %1910 = call ptr @strerror(i32 noundef %1909) #9
  %1911 = call ptr @__errno_location() #10
  %1912 = load i32, ptr %1911, align 4, !tbaa !5
  %1913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1900, ptr noundef @.str.5, i32 noundef %1901, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 146, ptr noundef %1904, ptr noundef %1907, ptr noundef %1910, i32 noundef %1912) #9
  br label %1914

1914:                                             ; preds = %1897, %1880
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  br label %1915

1915:                                             ; preds = %1914
  br label %1916

1916:                                             ; preds = %1915
  call void @exit(i32 noundef 1) #11
  unreachable

1917:                                             ; No predecessors!
  br label %1918

1918:                                             ; preds = %1917
  br label %1919

1919:                                             ; preds = %1918, %1860
  br label %1920

1920:                                             ; preds = %1919
  br label %1921

1921:                                             ; preds = %1920
  br label %1922

1922:                                             ; preds = %1921
  %1923 = load i32, ptr @test_count, align 4, !tbaa !5
  %1924 = add nsw i32 %1923, 1
  store i32 %1924, ptr @test_count, align 4, !tbaa !5
  %1925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1926 = load i32, ptr %1925, align 4, !tbaa !5
  %1927 = icmp eq i32 %1926, 201326592
  br i1 %1927, label %1981, label %1928

1928:                                             ; preds = %1922
  br label %1929

1929:                                             ; preds = %1928
  br label %1930

1930:                                             ; preds = %1929
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #9
  %1931 = call ptr @__errno_location() #10
  %1932 = load i32, ptr %1931, align 4, !tbaa !5
  store i32 %1932, ptr %50, align 4, !tbaa !5
  %1933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1934 = call i32 @s2n_print_stacktrace(ptr noundef %1933)
  %1935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1936 = trunc i8 %1935 to i1
  br i1 %1936, label %1937, label %1959

1937:                                             ; preds = %1930
  %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
  %1941 = icmp ne i32 %1940, 0
  br i1 %1941, label %1942, label %1959

1942:                                             ; preds = %1937
  %1943 = load i32, ptr %50, align 4, !tbaa !5
  %1944 = call ptr @__errno_location() #10
  store i32 %1943, ptr %1944, align 4, !tbaa !5
  %1945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1946 = load i32, ptr @test_count, align 4, !tbaa !5
  %1947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1948 = load i32, ptr %1947, align 4, !tbaa !5
  %1949 = call ptr @s2n_strerror(i32 noundef %1948, ptr noundef @.str.4)
  %1950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1951 = load i32, ptr %1950, align 4, !tbaa !5
  %1952 = call ptr @s2n_strerror_debug(i32 noundef %1951, ptr noundef @.str.4)
  %1953 = call ptr @__errno_location() #10
  %1954 = load i32, ptr %1953, align 4, !tbaa !5
  %1955 = call ptr @strerror(i32 noundef %1954) #9
  %1956 = call ptr @__errno_location() #10
  %1957 = load i32, ptr %1956, align 4, !tbaa !5
  %1958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1945, ptr noundef @.str.2, i32 noundef %1946, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 147, ptr noundef %1949, ptr noundef %1952, ptr noundef %1955, i32 noundef %1957) #9
  br label %1976

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

1976:                                             ; preds = %1959, %1942
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  br label %1977

1977:                                             ; preds = %1976
  br label %1978

1978:                                             ; preds = %1977
  call void @exit(i32 noundef 1) #11
  unreachable

1979:                                             ; No predecessors!
  br label %1980

1980:                                             ; preds = %1979
  br label %1981

1981:                                             ; preds = %1980, %1922
  br label %1982

1982:                                             ; preds = %1981
  br label %1983

1983:                                             ; preds = %1982
  br label %1984

1984:                                             ; preds = %1983
  %1985 = load i32, ptr @test_count, align 4, !tbaa !5
  %1986 = add nsw i32 %1985, 1
  store i32 %1986, ptr @test_count, align 4, !tbaa !5
  %1987 = load i32, ptr %17, align 4, !tbaa !5
  %1988 = icmp eq i32 %1987, 1
  br i1 %1988, label %2042, label %1989

1989:                                             ; preds = %1984
  br label %1990

1990:                                             ; preds = %1989
  br label %1991

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

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

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

2020:                                             ; preds = %1998, %1991
  %2021 = load i32, ptr %51, align 4, !tbaa !5
  %2022 = call ptr @__errno_location() #10
  store i32 %2021, ptr %2022, align 4, !tbaa !5
  %2023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2024 = load i32, ptr @test_count, align 4, !tbaa !5
  %2025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2026 = load i32, ptr %2025, align 4, !tbaa !5
  %2027 = call ptr @s2n_strerror(i32 noundef %2026, ptr noundef @.str.4)
  %2028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2029 = load i32, ptr %2028, align 4, !tbaa !5
  %2030 = call ptr @s2n_strerror_debug(i32 noundef %2029, ptr noundef @.str.4)
  %2031 = call ptr @__errno_location() #10
  %2032 = load i32, ptr %2031, align 4, !tbaa !5
  %2033 = call ptr @strerror(i32 noundef %2032) #9
  %2034 = call ptr @__errno_location() #10
  %2035 = load i32, ptr %2034, align 4, !tbaa !5
  %2036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2023, ptr noundef @.str.5, i32 noundef %2024, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 148, ptr noundef %2027, ptr noundef %2030, ptr noundef %2033, i32 noundef %2035) #9
  br label %2037

2037:                                             ; preds = %2020, %2003
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #9
  br label %2038

2038:                                             ; preds = %2037
  br label %2039

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

2040:                                             ; No predecessors!
  br label %2041

2041:                                             ; preds = %2040
  br label %2042

2042:                                             ; preds = %2041, %1984
  br label %2043

2043:                                             ; preds = %2042
  br label %2044

2044:                                             ; preds = %2043
  br label %2045

2045:                                             ; preds = %2044
  %2046 = load i32, ptr @test_count, align 4, !tbaa !5
  %2047 = add nsw i32 %2046, 1
  store i32 %2047, ptr @test_count, align 4, !tbaa !5
  %2048 = load ptr, ptr %15, align 8, !tbaa !9
  %2049 = getelementptr inbounds %struct.s2n_connection, ptr %2048, i32 0, i32 21
  %2050 = load i8, ptr %2049, align 2, !tbaa !22
  %2051 = zext i8 %2050 to i32
  %2052 = icmp eq i32 %2051, 33
  br i1 %2052, label %2106, label %2053

2053:                                             ; preds = %2045
  br label %2054

2054:                                             ; preds = %2053
  br label %2055

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

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

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

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

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

2102:                                             ; preds = %2101
  br label %2103

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

2104:                                             ; No predecessors!
  br label %2105

2105:                                             ; preds = %2104
  br label %2106

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

2107:                                             ; preds = %2106
  br label %2108

2108:                                             ; preds = %2107
  br label %2109

2109:                                             ; preds = %2108
  %2110 = load i32, ptr @test_count, align 4, !tbaa !5
  %2111 = add nsw i32 %2110, 1
  store i32 %2111, ptr @test_count, align 4, !tbaa !5
  %2112 = load ptr, ptr %15, align 8, !tbaa !9
  %2113 = getelementptr inbounds %struct.s2n_connection, ptr %2112, i32 0, i32 23
  %2114 = load i8, ptr %2113, align 4, !tbaa !48
  %2115 = zext i8 %2114 to i32
  %2116 = icmp eq i32 %2115, 33
  br i1 %2116, label %2170, label %2117

2117:                                             ; preds = %2109
  br label %2118

2118:                                             ; preds = %2117
  br label %2119

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

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

2131:                                             ; preds = %2126
  %2132 = load i32, ptr %53, align 4, !tbaa !5
  %2133 = call ptr @__errno_location() #10
  store i32 %2132, ptr %2133, align 4, !tbaa !5
  %2134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2135 = load i32, ptr @test_count, align 4, !tbaa !5
  %2136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2137 = load i32, ptr %2136, align 4, !tbaa !5
  %2138 = call ptr @s2n_strerror(i32 noundef %2137, ptr noundef @.str.4)
  %2139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = call ptr @s2n_strerror_debug(i32 noundef %2140, ptr noundef @.str.4)
  %2142 = call ptr @__errno_location() #10
  %2143 = load i32, ptr %2142, align 4, !tbaa !5
  %2144 = call ptr @strerror(i32 noundef %2143) #9
  %2145 = call ptr @__errno_location() #10
  %2146 = load i32, ptr %2145, align 4, !tbaa !5
  %2147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2134, ptr noundef @.str.2, i32 noundef %2135, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2138, ptr noundef %2141, ptr noundef %2144, i32 noundef %2146) #9
  br label %2165

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

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

2166:                                             ; preds = %2165
  br label %2167

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

2168:                                             ; No predecessors!
  br label %2169

2169:                                             ; preds = %2168
  br label %2170

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

2171:                                             ; preds = %2170
  br label %2172

2172:                                             ; preds = %2171
  br label %2173

2173:                                             ; preds = %2172
  %2174 = load i32, ptr @test_count, align 4, !tbaa !5
  %2175 = add nsw i32 %2174, 1
  store i32 %2175, ptr @test_count, align 4, !tbaa !5
  %2176 = load ptr, ptr %15, align 8, !tbaa !9
  %2177 = getelementptr inbounds %struct.s2n_connection, ptr %2176, i32 0, i32 22
  %2178 = load i8, ptr %2177, align 1, !tbaa !49
  %2179 = zext i8 %2178 to i32
  %2180 = icmp eq i32 %2179, 33
  br i1 %2180, label %2234, label %2181

2181:                                             ; preds = %2173
  br label %2182

2182:                                             ; preds = %2181
  br label %2183

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

2190:                                             ; preds = %2183
  %2191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2192 = call i32 @fileno(ptr noundef %2191) #9
  %2193 = call i32 @isatty(i32 noundef %2192) #9
  %2194 = icmp ne i32 %2193, 0
  br i1 %2194, label %2195, label %2212

2195:                                             ; preds = %2190
  %2196 = load i32, ptr %54, align 4, !tbaa !5
  %2197 = call ptr @__errno_location() #10
  store i32 %2196, ptr %2197, align 4, !tbaa !5
  %2198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2199 = load i32, ptr @test_count, align 4, !tbaa !5
  %2200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2201 = load i32, ptr %2200, align 4, !tbaa !5
  %2202 = call ptr @s2n_strerror(i32 noundef %2201, ptr noundef @.str.4)
  %2203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2204 = load i32, ptr %2203, align 4, !tbaa !5
  %2205 = call ptr @s2n_strerror_debug(i32 noundef %2204, ptr noundef @.str.4)
  %2206 = call ptr @__errno_location() #10
  %2207 = load i32, ptr %2206, align 4, !tbaa !5
  %2208 = call ptr @strerror(i32 noundef %2207) #9
  %2209 = call ptr @__errno_location() #10
  %2210 = load i32, ptr %2209, align 4, !tbaa !5
  %2211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2198, ptr noundef @.str.2, i32 noundef %2199, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 153, ptr noundef %2202, ptr noundef %2205, ptr noundef %2208, i32 noundef %2210) #9
  br label %2229

2212:                                             ; preds = %2190, %2183
  %2213 = load i32, ptr %54, align 4, !tbaa !5
  %2214 = call ptr @__errno_location() #10
  store i32 %2213, ptr %2214, align 4, !tbaa !5
  %2215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2216 = load i32, ptr @test_count, align 4, !tbaa !5
  %2217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2218 = load i32, ptr %2217, align 4, !tbaa !5
  %2219 = call ptr @s2n_strerror(i32 noundef %2218, ptr noundef @.str.4)
  %2220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2221 = load i32, ptr %2220, align 4, !tbaa !5
  %2222 = call ptr @s2n_strerror_debug(i32 noundef %2221, ptr noundef @.str.4)
  %2223 = call ptr @__errno_location() #10
  %2224 = load i32, ptr %2223, align 4, !tbaa !5
  %2225 = call ptr @strerror(i32 noundef %2224) #9
  %2226 = call ptr @__errno_location() #10
  %2227 = load i32, ptr %2226, align 4, !tbaa !5
  %2228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2215, ptr noundef @.str.5, i32 noundef %2216, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 153, ptr noundef %2219, ptr noundef %2222, ptr noundef %2225, i32 noundef %2227) #9
  br label %2229

2229:                                             ; preds = %2212, %2195
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %2230

2230:                                             ; preds = %2229
  br label %2231

2231:                                             ; preds = %2230
  call void @exit(i32 noundef 1) #11
  unreachable

2232:                                             ; No predecessors!
  br label %2233

2233:                                             ; preds = %2232
  br label %2234

2234:                                             ; preds = %2233, %2173
  br label %2235

2235:                                             ; preds = %2234
  br label %2236

2236:                                             ; preds = %2235
  br label %2237

2237:                                             ; preds = %2236
  %2238 = load i32, ptr @test_count, align 4, !tbaa !5
  %2239 = add nsw i32 %2238, 1
  store i32 %2239, ptr @test_count, align 4, !tbaa !5
  %2240 = load ptr, ptr %15, align 8, !tbaa !9
  %2241 = call i32 @s2n_shutdown(ptr noundef %2240, ptr noundef %17)
  %2242 = icmp eq i32 %2241, -1
  br i1 %2242, label %2243, label %2296

2243:                                             ; preds = %2237
  br label %2244

2244:                                             ; preds = %2243
  br label %2245

2245:                                             ; preds = %2244
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #9
  %2246 = call ptr @__errno_location() #10
  %2247 = load i32, ptr %2246, align 4, !tbaa !5
  store i32 %2247, ptr %55, align 4, !tbaa !5
  %2248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2249 = call i32 @s2n_print_stacktrace(ptr noundef %2248)
  %2250 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2251 = trunc i8 %2250 to i1
  br i1 %2251, label %2252, label %2274

2252:                                             ; preds = %2245
  %2253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2254 = call i32 @fileno(ptr noundef %2253) #9
  %2255 = call i32 @isatty(i32 noundef %2254) #9
  %2256 = icmp ne i32 %2255, 0
  br i1 %2256, label %2257, label %2274

2257:                                             ; preds = %2252
  %2258 = load i32, ptr %55, align 4, !tbaa !5
  %2259 = call ptr @__errno_location() #10
  store i32 %2258, ptr %2259, align 4, !tbaa !5
  %2260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2261 = load i32, ptr @test_count, align 4, !tbaa !5
  %2262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2263 = load i32, ptr %2262, align 4, !tbaa !5
  %2264 = call ptr @s2n_strerror(i32 noundef %2263, ptr noundef @.str.4)
  %2265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2266 = load i32, ptr %2265, align 4, !tbaa !5
  %2267 = call ptr @s2n_strerror_debug(i32 noundef %2266, ptr noundef @.str.4)
  %2268 = call ptr @__errno_location() #10
  %2269 = load i32, ptr %2268, align 4, !tbaa !5
  %2270 = call ptr @strerror(i32 noundef %2269) #9
  %2271 = call ptr @__errno_location() #10
  %2272 = load i32, ptr %2271, align 4, !tbaa !5
  %2273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2260, ptr noundef @.str.2, i32 noundef %2261, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 156, ptr noundef %2264, ptr noundef %2267, ptr noundef %2270, i32 noundef %2272) #9
  br label %2291

2274:                                             ; preds = %2252, %2245
  %2275 = load i32, ptr %55, align 4, !tbaa !5
  %2276 = call ptr @__errno_location() #10
  store i32 %2275, ptr %2276, align 4, !tbaa !5
  %2277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2278 = load i32, ptr @test_count, align 4, !tbaa !5
  %2279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2280 = load i32, ptr %2279, align 4, !tbaa !5
  %2281 = call ptr @s2n_strerror(i32 noundef %2280, ptr noundef @.str.4)
  %2282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2283 = load i32, ptr %2282, align 4, !tbaa !5
  %2284 = call ptr @s2n_strerror_debug(i32 noundef %2283, ptr noundef @.str.4)
  %2285 = call ptr @__errno_location() #10
  %2286 = load i32, ptr %2285, align 4, !tbaa !5
  %2287 = call ptr @strerror(i32 noundef %2286) #9
  %2288 = call ptr @__errno_location() #10
  %2289 = load i32, ptr %2288, align 4, !tbaa !5
  %2290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2277, ptr noundef @.str.5, i32 noundef %2278, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 156, ptr noundef %2281, ptr noundef %2284, ptr noundef %2287, i32 noundef %2289) #9
  br label %2291

2291:                                             ; preds = %2274, %2257
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #9
  br label %2292

2292:                                             ; preds = %2291
  br label %2293

2293:                                             ; preds = %2292
  call void @exit(i32 noundef 1) #11
  unreachable

2294:                                             ; No predecessors!
  br label %2295

2295:                                             ; preds = %2294
  br label %2296

2296:                                             ; preds = %2295, %2237
  br label %2297

2297:                                             ; preds = %2296
  br label %2298

2298:                                             ; preds = %2297
  store i64 0, ptr %34, align 8, !tbaa !16
  br label %2299

2299:                                             ; preds = %2371, %2298
  %2300 = load i64, ptr %34, align 8, !tbaa !16
  %2301 = icmp ult i64 %2300, 5
  br i1 %2301, label %2302, label %2375

2302:                                             ; preds = %2299
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #9
  %2303 = getelementptr inbounds %struct.s2n_test_io_pair, ptr %23, i32 0, i32 1
  %2304 = load i32, ptr %2303, align 4, !tbaa !18
  %2305 = getelementptr inbounds [1024 x i8], ptr %33, i64 0, i64 0
  %2306 = load i64, ptr %34, align 8, !tbaa !16
  %2307 = getelementptr inbounds i8, ptr %2305, i64 %2306
  %2308 = load i64, ptr %34, align 8, !tbaa !16
  %2309 = sub i64 1024, %2308
  %2310 = call i64 @read(i32 noundef %2304, ptr noundef %2307, i64 noundef %2309)
  store i64 %2310, ptr %56, align 8, !tbaa !16
  br label %2311

2311:                                             ; preds = %2302
  %2312 = load i32, ptr @test_count, align 4, !tbaa !5
  %2313 = add nsw i32 %2312, 1
  store i32 %2313, ptr @test_count, align 4, !tbaa !5
  %2314 = load i64, ptr %56, align 8, !tbaa !16
  %2315 = icmp sgt i64 %2314, 0
  br i1 %2315, label %2369, label %2316

2316:                                             ; preds = %2311
  br label %2317

2317:                                             ; preds = %2316
  br label %2318

2318:                                             ; preds = %2317
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #9
  %2319 = call ptr @__errno_location() #10
  %2320 = load i32, ptr %2319, align 4, !tbaa !5
  store i32 %2320, ptr %57, align 4, !tbaa !5
  %2321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2322 = call i32 @s2n_print_stacktrace(ptr noundef %2321)
  %2323 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2324 = trunc i8 %2323 to i1
  br i1 %2324, label %2325, label %2347

2325:                                             ; preds = %2318
  %2326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2327 = call i32 @fileno(ptr noundef %2326) #9
  %2328 = call i32 @isatty(i32 noundef %2327) #9
  %2329 = icmp ne i32 %2328, 0
  br i1 %2329, label %2330, label %2347

2330:                                             ; preds = %2325
  %2331 = load i32, ptr %57, align 4, !tbaa !5
  %2332 = call ptr @__errno_location() #10
  store i32 %2331, ptr %2332, align 4, !tbaa !5
  %2333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2334 = load i32, ptr @test_count, align 4, !tbaa !5
  %2335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2336 = load i32, ptr %2335, align 4, !tbaa !5
  %2337 = call ptr @s2n_strerror(i32 noundef %2336, ptr noundef @.str.4)
  %2338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2339 = load i32, ptr %2338, align 4, !tbaa !5
  %2340 = call ptr @s2n_strerror_debug(i32 noundef %2339, ptr noundef @.str.4)
  %2341 = call ptr @__errno_location() #10
  %2342 = load i32, ptr %2341, align 4, !tbaa !5
  %2343 = call ptr @strerror(i32 noundef %2342) #9
  %2344 = call ptr @__errno_location() #10
  %2345 = load i32, ptr %2344, align 4, !tbaa !5
  %2346 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2333, ptr noundef @.str.2, i32 noundef %2334, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 165, ptr noundef %2337, ptr noundef %2340, ptr noundef %2343, i32 noundef %2345) #9
  br label %2364

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

2364:                                             ; preds = %2347, %2330
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %2365

2365:                                             ; preds = %2364
  br label %2366

2366:                                             ; preds = %2365
  call void @exit(i32 noundef 1) #11
  unreachable

2367:                                             ; No predecessors!
  br label %2368

2368:                                             ; preds = %2367
  br label %2369

2369:                                             ; preds = %2368, %2311
  br label %2370

2370:                                             ; preds = %2369
  br label %2371

2371:                                             ; preds = %2370
  %2372 = load i64, ptr %56, align 8, !tbaa !16
  %2373 = load i64, ptr %34, align 8, !tbaa !16
  %2374 = add i64 %2373, %2372
  store i64 %2374, ptr %34, align 8, !tbaa !16
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  br label %2299, !llvm.loop !50

2375:                                             ; preds = %2299
  br label %2376

2376:                                             ; preds = %2375
  %2377 = load i32, ptr @test_count, align 4, !tbaa !5
  %2378 = add nsw i32 %2377, 1
  store i32 %2378, ptr @test_count, align 4, !tbaa !5
  %2379 = getelementptr inbounds [1024 x i8], ptr %33, i64 0, i64 1
  %2380 = load i8, ptr %2379, align 1, !tbaa !15
  %2381 = zext i8 %2380 to i32
  %2382 = icmp eq i32 %2381, 3
  br i1 %2382, label %2436, label %2383

2383:                                             ; preds = %2376
  br label %2384

2384:                                             ; preds = %2383
  br label %2385

2385:                                             ; preds = %2384
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #9
  %2386 = call ptr @__errno_location() #10
  %2387 = load i32, ptr %2386, align 4, !tbaa !5
  store i32 %2387, ptr %58, align 4, !tbaa !5
  %2388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2389 = call i32 @s2n_print_stacktrace(ptr noundef %2388)
  %2390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2391 = trunc i8 %2390 to i1
  br i1 %2391, label %2392, label %2414

2392:                                             ; preds = %2385
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2394 = call i32 @fileno(ptr noundef %2393) #9
  %2395 = call i32 @isatty(i32 noundef %2394) #9
  %2396 = icmp ne i32 %2395, 0
  br i1 %2396, label %2397, label %2414

2397:                                             ; preds = %2392
  %2398 = load i32, ptr %58, align 4, !tbaa !5
  %2399 = call ptr @__errno_location() #10
  store i32 %2398, ptr %2399, align 4, !tbaa !5
  %2400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2401 = load i32, ptr @test_count, align 4, !tbaa !5
  %2402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2403 = load i32, ptr %2402, align 4, !tbaa !5
  %2404 = call ptr @s2n_strerror(i32 noundef %2403, ptr noundef @.str.4)
  %2405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2406 = load i32, ptr %2405, align 4, !tbaa !5
  %2407 = call ptr @s2n_strerror_debug(i32 noundef %2406, ptr noundef @.str.4)
  %2408 = call ptr @__errno_location() #10
  %2409 = load i32, ptr %2408, align 4, !tbaa !5
  %2410 = call ptr @strerror(i32 noundef %2409) #9
  %2411 = call ptr @__errno_location() #10
  %2412 = load i32, ptr %2411, align 4, !tbaa !5
  %2413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2400, ptr noundef @.str.2, i32 noundef %2401, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 169, ptr noundef %2404, ptr noundef %2407, ptr noundef %2410, i32 noundef %2412) #9
  br label %2431

2414:                                             ; preds = %2392, %2385
  %2415 = load i32, ptr %58, align 4, !tbaa !5
  %2416 = call ptr @__errno_location() #10
  store i32 %2415, ptr %2416, align 4, !tbaa !5
  %2417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2418 = load i32, ptr @test_count, align 4, !tbaa !5
  %2419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2420 = load i32, ptr %2419, align 4, !tbaa !5
  %2421 = call ptr @s2n_strerror(i32 noundef %2420, ptr noundef @.str.4)
  %2422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2423 = load i32, ptr %2422, align 4, !tbaa !5
  %2424 = call ptr @s2n_strerror_debug(i32 noundef %2423, ptr noundef @.str.4)
  %2425 = call ptr @__errno_location() #10
  %2426 = load i32, ptr %2425, align 4, !tbaa !5
  %2427 = call ptr @strerror(i32 noundef %2426) #9
  %2428 = call ptr @__errno_location() #10
  %2429 = load i32, ptr %2428, align 4, !tbaa !5
  %2430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2417, ptr noundef @.str.5, i32 noundef %2418, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 169, ptr noundef %2421, ptr noundef %2424, ptr noundef %2427, i32 noundef %2429) #9
  br label %2431

2431:                                             ; preds = %2414, %2397
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %2432

2432:                                             ; preds = %2431
  br label %2433

2433:                                             ; preds = %2432
  call void @exit(i32 noundef 1) #11
  unreachable

2434:                                             ; No predecessors!
  br label %2435

2435:                                             ; preds = %2434
  br label %2436

2436:                                             ; preds = %2435, %2376
  br label %2437

2437:                                             ; preds = %2436
  br label %2438

2438:                                             ; preds = %2437
  br label %2439

2439:                                             ; preds = %2438
  %2440 = load i32, ptr @test_count, align 4, !tbaa !5
  %2441 = add nsw i32 %2440, 1
  store i32 %2441, ptr @test_count, align 4, !tbaa !5
  %2442 = getelementptr inbounds [1024 x i8], ptr %33, i64 0, i64 2
  %2443 = load i8, ptr %2442, align 2, !tbaa !15
  %2444 = zext i8 %2443 to i32
  %2445 = icmp eq i32 %2444, 3
  br i1 %2445, label %2499, label %2446

2446:                                             ; preds = %2439
  br label %2447

2447:                                             ; preds = %2446
  br label %2448

2448:                                             ; preds = %2447
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #9
  %2449 = call ptr @__errno_location() #10
  %2450 = load i32, ptr %2449, align 4, !tbaa !5
  store i32 %2450, ptr %59, align 4, !tbaa !5
  %2451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2452 = call i32 @s2n_print_stacktrace(ptr noundef %2451)
  %2453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2454 = trunc i8 %2453 to i1
  br i1 %2454, label %2455, label %2477

2455:                                             ; preds = %2448
  %2456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2457 = call i32 @fileno(ptr noundef %2456) #9
  %2458 = call i32 @isatty(i32 noundef %2457) #9
  %2459 = icmp ne i32 %2458, 0
  br i1 %2459, label %2460, label %2477

2460:                                             ; preds = %2455
  %2461 = load i32, ptr %59, align 4, !tbaa !5
  %2462 = call ptr @__errno_location() #10
  store i32 %2461, ptr %2462, align 4, !tbaa !5
  %2463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2464 = load i32, ptr @test_count, align 4, !tbaa !5
  %2465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2466 = load i32, ptr %2465, align 4, !tbaa !5
  %2467 = call ptr @s2n_strerror(i32 noundef %2466, ptr noundef @.str.4)
  %2468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2469 = load i32, ptr %2468, align 4, !tbaa !5
  %2470 = call ptr @s2n_strerror_debug(i32 noundef %2469, ptr noundef @.str.4)
  %2471 = call ptr @__errno_location() #10
  %2472 = load i32, ptr %2471, align 4, !tbaa !5
  %2473 = call ptr @strerror(i32 noundef %2472) #9
  %2474 = call ptr @__errno_location() #10
  %2475 = load i32, ptr %2474, align 4, !tbaa !5
  %2476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2463, ptr noundef @.str.2, i32 noundef %2464, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 170, ptr noundef %2467, ptr noundef %2470, ptr noundef %2473, i32 noundef %2475) #9
  br label %2494

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

2494:                                             ; preds = %2477, %2460
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #9
  br label %2495

2495:                                             ; preds = %2494
  br label %2496

2496:                                             ; preds = %2495
  call void @exit(i32 noundef 1) #11
  unreachable

2497:                                             ; No predecessors!
  br label %2498

2498:                                             ; preds = %2497
  br label %2499

2499:                                             ; preds = %2498, %2439
  br label %2500

2500:                                             ; preds = %2499
  br label %2501

2501:                                             ; preds = %2500
  br label %2502

2502:                                             ; preds = %2501
  %2503 = load i32, ptr @test_count, align 4, !tbaa !5
  %2504 = add nsw i32 %2503, 1
  store i32 %2504, ptr @test_count, align 4, !tbaa !5
  %2505 = load ptr, ptr %15, align 8, !tbaa !9
  %2506 = call i32 @s2n_connection_free(ptr noundef %2505)
  %2507 = icmp eq i32 %2506, -1
  br i1 %2507, label %2508, label %2561

2508:                                             ; preds = %2502
  br label %2509

2509:                                             ; preds = %2508
  br label %2510

2510:                                             ; preds = %2509
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #9
  %2511 = call ptr @__errno_location() #10
  %2512 = load i32, ptr %2511, align 4, !tbaa !5
  store i32 %2512, ptr %60, align 4, !tbaa !5
  %2513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2514 = call i32 @s2n_print_stacktrace(ptr noundef %2513)
  %2515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2516 = trunc i8 %2515 to i1
  br i1 %2516, label %2517, label %2539

2517:                                             ; preds = %2510
  %2518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2519 = call i32 @fileno(ptr noundef %2518) #9
  %2520 = call i32 @isatty(i32 noundef %2519) #9
  %2521 = icmp ne i32 %2520, 0
  br i1 %2521, label %2522, label %2539

2522:                                             ; preds = %2517
  %2523 = load i32, ptr %60, align 4, !tbaa !5
  %2524 = call ptr @__errno_location() #10
  store i32 %2523, ptr %2524, align 4, !tbaa !5
  %2525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2526 = load i32, ptr @test_count, align 4, !tbaa !5
  %2527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2528 = load i32, ptr %2527, align 4, !tbaa !5
  %2529 = call ptr @s2n_strerror(i32 noundef %2528, ptr noundef @.str.4)
  %2530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2531 = load i32, ptr %2530, align 4, !tbaa !5
  %2532 = call ptr @s2n_strerror_debug(i32 noundef %2531, ptr noundef @.str.4)
  %2533 = call ptr @__errno_location() #10
  %2534 = load i32, ptr %2533, align 4, !tbaa !5
  %2535 = call ptr @strerror(i32 noundef %2534) #9
  %2536 = call ptr @__errno_location() #10
  %2537 = load i32, ptr %2536, align 4, !tbaa !5
  %2538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2525, ptr noundef @.str.2, i32 noundef %2526, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 172, ptr noundef %2529, ptr noundef %2532, ptr noundef %2535, i32 noundef %2537) #9
  br label %2556

2539:                                             ; preds = %2517, %2510
  %2540 = load i32, ptr %60, align 4, !tbaa !5
  %2541 = call ptr @__errno_location() #10
  store i32 %2540, ptr %2541, align 4, !tbaa !5
  %2542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2543 = load i32, ptr @test_count, align 4, !tbaa !5
  %2544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2545 = load i32, ptr %2544, align 4, !tbaa !5
  %2546 = call ptr @s2n_strerror(i32 noundef %2545, ptr noundef @.str.4)
  %2547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2548 = load i32, ptr %2547, align 4, !tbaa !5
  %2549 = call ptr @s2n_strerror_debug(i32 noundef %2548, ptr noundef @.str.4)
  %2550 = call ptr @__errno_location() #10
  %2551 = load i32, ptr %2550, align 4, !tbaa !5
  %2552 = call ptr @strerror(i32 noundef %2551) #9
  %2553 = call ptr @__errno_location() #10
  %2554 = load i32, ptr %2553, align 4, !tbaa !5
  %2555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2542, ptr noundef @.str.5, i32 noundef %2543, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 172, ptr noundef %2546, ptr noundef %2549, ptr noundef %2552, i32 noundef %2554) #9
  br label %2556

2556:                                             ; preds = %2539, %2522
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #9
  br label %2557

2557:                                             ; preds = %2556
  br label %2558

2558:                                             ; preds = %2557
  call void @exit(i32 noundef 1) #11
  unreachable

2559:                                             ; No predecessors!
  br label %2560

2560:                                             ; preds = %2559
  br label %2561

2561:                                             ; preds = %2560, %2502
  br label %2562

2562:                                             ; preds = %2561
  br label %2563

2563:                                             ; preds = %2562
  br label %2564

2564:                                             ; preds = %2563
  %2565 = load i32, ptr @test_count, align 4, !tbaa !5
  %2566 = add nsw i32 %2565, 1
  store i32 %2566, ptr @test_count, align 4, !tbaa !5
  %2567 = load ptr, ptr %16, align 8, !tbaa !9
  %2568 = call i32 @s2n_config_free(ptr noundef %2567)
  %2569 = icmp eq i32 %2568, -1
  br i1 %2569, label %2570, label %2623

2570:                                             ; preds = %2564
  br label %2571

2571:                                             ; preds = %2570
  br label %2572

2572:                                             ; preds = %2571
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #9
  %2573 = call ptr @__errno_location() #10
  %2574 = load i32, ptr %2573, align 4, !tbaa !5
  store i32 %2574, ptr %61, align 4, !tbaa !5
  %2575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2576 = call i32 @s2n_print_stacktrace(ptr noundef %2575)
  %2577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2578 = trunc i8 %2577 to i1
  br i1 %2578, label %2579, label %2601

2579:                                             ; preds = %2572
  %2580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2581 = call i32 @fileno(ptr noundef %2580) #9
  %2582 = call i32 @isatty(i32 noundef %2581) #9
  %2583 = icmp ne i32 %2582, 0
  br i1 %2583, label %2584, label %2601

2584:                                             ; preds = %2579
  %2585 = load i32, ptr %61, align 4, !tbaa !5
  %2586 = call ptr @__errno_location() #10
  store i32 %2585, ptr %2586, align 4, !tbaa !5
  %2587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2588 = load i32, ptr @test_count, align 4, !tbaa !5
  %2589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2590 = load i32, ptr %2589, align 4, !tbaa !5
  %2591 = call ptr @s2n_strerror(i32 noundef %2590, ptr noundef @.str.4)
  %2592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2593 = load i32, ptr %2592, align 4, !tbaa !5
  %2594 = call ptr @s2n_strerror_debug(i32 noundef %2593, ptr noundef @.str.4)
  %2595 = call ptr @__errno_location() #10
  %2596 = load i32, ptr %2595, align 4, !tbaa !5
  %2597 = call ptr @strerror(i32 noundef %2596) #9
  %2598 = call ptr @__errno_location() #10
  %2599 = load i32, ptr %2598, align 4, !tbaa !5
  %2600 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2587, ptr noundef @.str.2, i32 noundef %2588, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 173, ptr noundef %2591, ptr noundef %2594, ptr noundef %2597, i32 noundef %2599) #9
  br label %2618

2601:                                             ; preds = %2579, %2572
  %2602 = load i32, ptr %61, align 4, !tbaa !5
  %2603 = call ptr @__errno_location() #10
  store i32 %2602, ptr %2603, align 4, !tbaa !5
  %2604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2605 = load i32, ptr @test_count, align 4, !tbaa !5
  %2606 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2607 = load i32, ptr %2606, align 4, !tbaa !5
  %2608 = call ptr @s2n_strerror(i32 noundef %2607, ptr noundef @.str.4)
  %2609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2610 = load i32, ptr %2609, align 4, !tbaa !5
  %2611 = call ptr @s2n_strerror_debug(i32 noundef %2610, ptr noundef @.str.4)
  %2612 = call ptr @__errno_location() #10
  %2613 = load i32, ptr %2612, align 4, !tbaa !5
  %2614 = call ptr @strerror(i32 noundef %2613) #9
  %2615 = call ptr @__errno_location() #10
  %2616 = load i32, ptr %2615, align 4, !tbaa !5
  %2617 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2604, ptr noundef @.str.5, i32 noundef %2605, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 173, ptr noundef %2608, ptr noundef %2611, ptr noundef %2614, i32 noundef %2616) #9
  br label %2618

2618:                                             ; preds = %2601, %2584
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #9
  br label %2619

2619:                                             ; preds = %2618
  br label %2620

2620:                                             ; preds = %2619
  call void @exit(i32 noundef 1) #11
  unreachable

2621:                                             ; No predecessors!
  br label %2622

2622:                                             ; preds = %2621
  br label %2623

2623:                                             ; preds = %2622, %2564
  br label %2624

2624:                                             ; preds = %2623
  br label %2625

2625:                                             ; preds = %2624
  br label %2626

2626:                                             ; preds = %2625
  %2627 = load i32, ptr @test_count, align 4, !tbaa !5
  %2628 = add nsw i32 %2627, 1
  store i32 %2628, ptr @test_count, align 4, !tbaa !5
  %2629 = call i32 @s2n_io_pair_close(ptr noundef %23)
  %2630 = icmp eq i32 %2629, -1
  br i1 %2630, label %2631, label %2684

2631:                                             ; preds = %2626
  br label %2632

2632:                                             ; preds = %2631
  br label %2633

2633:                                             ; preds = %2632
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  %2634 = call ptr @__errno_location() #10
  %2635 = load i32, ptr %2634, align 4, !tbaa !5
  store i32 %2635, ptr %62, align 4, !tbaa !5
  %2636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2637 = call i32 @s2n_print_stacktrace(ptr noundef %2636)
  %2638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2639 = trunc i8 %2638 to i1
  br i1 %2639, label %2640, label %2662

2640:                                             ; preds = %2633
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2642 = call i32 @fileno(ptr noundef %2641) #9
  %2643 = call i32 @isatty(i32 noundef %2642) #9
  %2644 = icmp ne i32 %2643, 0
  br i1 %2644, label %2645, label %2662

2645:                                             ; preds = %2640
  %2646 = load i32, ptr %62, align 4, !tbaa !5
  %2647 = call ptr @__errno_location() #10
  store i32 %2646, ptr %2647, align 4, !tbaa !5
  %2648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2649 = load i32, ptr @test_count, align 4, !tbaa !5
  %2650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2651 = load i32, ptr %2650, align 4, !tbaa !5
  %2652 = call ptr @s2n_strerror(i32 noundef %2651, ptr noundef @.str.4)
  %2653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2654 = load i32, ptr %2653, align 4, !tbaa !5
  %2655 = call ptr @s2n_strerror_debug(i32 noundef %2654, ptr noundef @.str.4)
  %2656 = call ptr @__errno_location() #10
  %2657 = load i32, ptr %2656, align 4, !tbaa !5
  %2658 = call ptr @strerror(i32 noundef %2657) #9
  %2659 = call ptr @__errno_location() #10
  %2660 = load i32, ptr %2659, align 4, !tbaa !5
  %2661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2648, ptr noundef @.str.2, i32 noundef %2649, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 175, ptr noundef %2652, ptr noundef %2655, ptr noundef %2658, i32 noundef %2660) #9
  br label %2679

2662:                                             ; preds = %2640, %2633
  %2663 = load i32, ptr %62, align 4, !tbaa !5
  %2664 = call ptr @__errno_location() #10
  store i32 %2663, ptr %2664, align 4, !tbaa !5
  %2665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2666 = load i32, ptr @test_count, align 4, !tbaa !5
  %2667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2668 = load i32, ptr %2667, align 4, !tbaa !5
  %2669 = call ptr @s2n_strerror(i32 noundef %2668, ptr noundef @.str.4)
  %2670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2671 = load i32, ptr %2670, align 4, !tbaa !5
  %2672 = call ptr @s2n_strerror_debug(i32 noundef %2671, ptr noundef @.str.4)
  %2673 = call ptr @__errno_location() #10
  %2674 = load i32, ptr %2673, align 4, !tbaa !5
  %2675 = call ptr @strerror(i32 noundef %2674) #9
  %2676 = call ptr @__errno_location() #10
  %2677 = load i32, ptr %2676, align 4, !tbaa !5
  %2678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2665, ptr noundef @.str.5, i32 noundef %2666, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 175, ptr noundef %2669, ptr noundef %2672, ptr noundef %2675, i32 noundef %2677) #9
  br label %2679

2679:                                             ; preds = %2662, %2645
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %2680

2680:                                             ; preds = %2679
  br label %2681

2681:                                             ; preds = %2680
  call void @exit(i32 noundef 1) #11
  unreachable

2682:                                             ; No predecessors!
  br label %2683

2683:                                             ; preds = %2682
  br label %2684

2684:                                             ; preds = %2683, %2626
  br label %2685

2685:                                             ; preds = %2684
  br label %2686

2686:                                             ; preds = %2685
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 1024, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 5, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 72, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #9
  store ptr null, ptr %63, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #9
  store ptr null, ptr %64, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  call void @llvm.lifetime.start.p0(i64 72, ptr %66) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %66, ptr align 16 @__const.main.server_hello_message.43, i64 72, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  store i32 72, ptr %67, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #9
  store i8 2, ptr %68, align 1, !tbaa !15
  %2687 = getelementptr inbounds i8, ptr %68, i64 1
  %2688 = load i32, ptr %67, align 4, !tbaa !5
  %2689 = ashr i32 %2688, 16
  %2690 = and i32 %2689, 255
  %2691 = trunc i32 %2690 to i8
  store i8 %2691, ptr %2687, align 1, !tbaa !15
  %2692 = getelementptr inbounds i8, ptr %68, i64 2
  %2693 = load i32, ptr %67, align 4, !tbaa !5
  %2694 = ashr i32 %2693, 8
  %2695 = and i32 %2694, 255
  %2696 = trunc i32 %2695 to i8
  store i8 %2696, ptr %2692, align 1, !tbaa !15
  %2697 = getelementptr inbounds i8, ptr %68, i64 3
  %2698 = load i32, ptr %67, align 4, !tbaa !5
  %2699 = and i32 %2698, 255
  %2700 = trunc i32 %2699 to i8
  store i8 %2700, ptr %2697, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  %2701 = load i32, ptr %67, align 4, !tbaa !5
  %2702 = sext i32 %2701 to i64
  %2703 = add i64 4, %2702
  %2704 = trunc i64 %2703 to i32
  store i32 %2704, ptr %69, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 5, ptr %70) #9
  store i8 22, ptr %70, align 1, !tbaa !15
  %2705 = getelementptr inbounds i8, ptr %70, i64 1
  store i8 3, ptr %2705, align 1, !tbaa !15
  %2706 = getelementptr inbounds i8, ptr %70, i64 2
  store i8 0, ptr %2706, align 1, !tbaa !15
  %2707 = getelementptr inbounds i8, ptr %70, i64 3
  %2708 = load i32, ptr %69, align 4, !tbaa !5
  %2709 = ashr i32 %2708, 8
  %2710 = and i32 %2709, 255
  %2711 = trunc i32 %2710 to i8
  store i8 %2711, ptr %2707, align 1, !tbaa !15
  %2712 = getelementptr inbounds i8, ptr %70, i64 4
  %2713 = load i32, ptr %69, align 4, !tbaa !5
  %2714 = and i32 %2713, 255
  %2715 = trunc i32 %2714 to i8
  store i8 %2715, ptr %2712, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #9
  br label %2716

2716:                                             ; preds = %2686
  %2717 = load i32, ptr @test_count, align 4, !tbaa !5
  %2718 = add nsw i32 %2717, 1
  store i32 %2718, ptr @test_count, align 4, !tbaa !5
  %2719 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %71)
  %2720 = icmp eq i32 %2719, -1
  br i1 %2720, label %2721, label %2774

2721:                                             ; preds = %2716
  br label %2722

2722:                                             ; preds = %2721
  br label %2723

2723:                                             ; preds = %2722
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #9
  %2724 = call ptr @__errno_location() #10
  %2725 = load i32, ptr %2724, align 4, !tbaa !5
  store i32 %2725, ptr %72, align 4, !tbaa !5
  %2726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2727 = call i32 @s2n_print_stacktrace(ptr noundef %2726)
  %2728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2729 = trunc i8 %2728 to i1
  br i1 %2729, label %2730, label %2752

2730:                                             ; preds = %2723
  %2731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2732 = call i32 @fileno(ptr noundef %2731) #9
  %2733 = call i32 @isatty(i32 noundef %2732) #9
  %2734 = icmp ne i32 %2733, 0
  br i1 %2734, label %2735, label %2752

2735:                                             ; preds = %2730
  %2736 = load i32, ptr %72, align 4, !tbaa !5
  %2737 = call ptr @__errno_location() #10
  store i32 %2736, ptr %2737, align 4, !tbaa !5
  %2738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2739 = load i32, ptr @test_count, align 4, !tbaa !5
  %2740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2741 = load i32, ptr %2740, align 4, !tbaa !5
  %2742 = call ptr @s2n_strerror(i32 noundef %2741, ptr noundef @.str.4)
  %2743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2744 = load i32, ptr %2743, align 4, !tbaa !5
  %2745 = call ptr @s2n_strerror_debug(i32 noundef %2744, ptr noundef @.str.4)
  %2746 = call ptr @__errno_location() #10
  %2747 = load i32, ptr %2746, align 4, !tbaa !5
  %2748 = call ptr @strerror(i32 noundef %2747) #9
  %2749 = call ptr @__errno_location() #10
  %2750 = load i32, ptr %2749, align 4, !tbaa !5
  %2751 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2738, ptr noundef @.str.2, i32 noundef %2739, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 223, ptr noundef %2742, ptr noundef %2745, ptr noundef %2748, i32 noundef %2750) #9
  br label %2769

2752:                                             ; preds = %2730, %2723
  %2753 = load i32, ptr %72, align 4, !tbaa !5
  %2754 = call ptr @__errno_location() #10
  store i32 %2753, ptr %2754, align 4, !tbaa !5
  %2755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2756 = load i32, ptr @test_count, align 4, !tbaa !5
  %2757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2758 = load i32, ptr %2757, align 4, !tbaa !5
  %2759 = call ptr @s2n_strerror(i32 noundef %2758, ptr noundef @.str.4)
  %2760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2761 = load i32, ptr %2760, align 4, !tbaa !5
  %2762 = call ptr @s2n_strerror_debug(i32 noundef %2761, ptr noundef @.str.4)
  %2763 = call ptr @__errno_location() #10
  %2764 = load i32, ptr %2763, align 4, !tbaa !5
  %2765 = call ptr @strerror(i32 noundef %2764) #9
  %2766 = call ptr @__errno_location() #10
  %2767 = load i32, ptr %2766, align 4, !tbaa !5
  %2768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2755, ptr noundef @.str.5, i32 noundef %2756, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 223, ptr noundef %2759, ptr noundef %2762, ptr noundef %2765, i32 noundef %2767) #9
  br label %2769

2769:                                             ; preds = %2752, %2735
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #9
  br label %2770

2770:                                             ; preds = %2769
  br label %2771

2771:                                             ; preds = %2770
  call void @exit(i32 noundef 1) #11
  unreachable

2772:                                             ; No predecessors!
  br label %2773

2773:                                             ; preds = %2772
  br label %2774

2774:                                             ; preds = %2773, %2716
  br label %2775

2775:                                             ; preds = %2774
  br label %2776

2776:                                             ; preds = %2775
  br label %2777

2777:                                             ; preds = %2776
  %2778 = load i32, ptr @test_count, align 4, !tbaa !5
  %2779 = add nsw i32 %2778, 1
  store i32 %2779, ptr @test_count, align 4, !tbaa !5
  %2780 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2780, ptr %63, align 8, !tbaa !9
  %2781 = icmp eq ptr %2780, null
  br i1 %2781, label %2782, label %2835

2782:                                             ; preds = %2777
  br label %2783

2783:                                             ; preds = %2782
  br label %2784

2784:                                             ; preds = %2783
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #9
  %2785 = call ptr @__errno_location() #10
  %2786 = load i32, ptr %2785, align 4, !tbaa !5
  store i32 %2786, ptr %73, align 4, !tbaa !5
  %2787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2788 = call i32 @s2n_print_stacktrace(ptr noundef %2787)
  %2789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2790 = trunc i8 %2789 to i1
  br i1 %2790, label %2791, label %2813

2791:                                             ; preds = %2784
  %2792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2793 = call i32 @fileno(ptr noundef %2792) #9
  %2794 = call i32 @isatty(i32 noundef %2793) #9
  %2795 = icmp ne i32 %2794, 0
  br i1 %2795, label %2796, label %2813

2796:                                             ; preds = %2791
  %2797 = load i32, ptr %73, align 4, !tbaa !5
  %2798 = call ptr @__errno_location() #10
  store i32 %2797, ptr %2798, align 4, !tbaa !5
  %2799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2800 = load i32, ptr @test_count, align 4, !tbaa !5
  %2801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2802 = load i32, ptr %2801, align 4, !tbaa !5
  %2803 = call ptr @s2n_strerror(i32 noundef %2802, ptr noundef @.str.4)
  %2804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2805 = load i32, ptr %2804, align 4, !tbaa !5
  %2806 = call ptr @s2n_strerror_debug(i32 noundef %2805, ptr noundef @.str.4)
  %2807 = call ptr @__errno_location() #10
  %2808 = load i32, ptr %2807, align 4, !tbaa !5
  %2809 = call ptr @strerror(i32 noundef %2808) #9
  %2810 = call ptr @__errno_location() #10
  %2811 = load i32, ptr %2810, align 4, !tbaa !5
  %2812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2799, ptr noundef @.str.2, i32 noundef %2800, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 225, ptr noundef %2803, ptr noundef %2806, ptr noundef %2809, i32 noundef %2811) #9
  br label %2830

2813:                                             ; preds = %2791, %2784
  %2814 = load i32, ptr %73, align 4, !tbaa !5
  %2815 = call ptr @__errno_location() #10
  store i32 %2814, ptr %2815, align 4, !tbaa !5
  %2816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2817 = load i32, ptr @test_count, align 4, !tbaa !5
  %2818 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2819 = load i32, ptr %2818, align 4, !tbaa !5
  %2820 = call ptr @s2n_strerror(i32 noundef %2819, ptr noundef @.str.4)
  %2821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2822 = load i32, ptr %2821, align 4, !tbaa !5
  %2823 = call ptr @s2n_strerror_debug(i32 noundef %2822, ptr noundef @.str.4)
  %2824 = call ptr @__errno_location() #10
  %2825 = load i32, ptr %2824, align 4, !tbaa !5
  %2826 = call ptr @strerror(i32 noundef %2825) #9
  %2827 = call ptr @__errno_location() #10
  %2828 = load i32, ptr %2827, align 4, !tbaa !5
  %2829 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2816, ptr noundef @.str.5, i32 noundef %2817, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 225, ptr noundef %2820, ptr noundef %2823, ptr noundef %2826, i32 noundef %2828) #9
  br label %2830

2830:                                             ; preds = %2813, %2796
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  br label %2831

2831:                                             ; preds = %2830
  br label %2832

2832:                                             ; preds = %2831
  call void @exit(i32 noundef 1) #11
  unreachable

2833:                                             ; No predecessors!
  br label %2834

2834:                                             ; preds = %2833
  br label %2835

2835:                                             ; preds = %2834, %2777
  br label %2836

2836:                                             ; preds = %2835
  br label %2837

2837:                                             ; preds = %2836
  br label %2838

2838:                                             ; preds = %2837
  %2839 = load i32, ptr @test_count, align 4, !tbaa !5
  %2840 = add nsw i32 %2839, 1
  store i32 %2840, ptr @test_count, align 4, !tbaa !5
  %2841 = load ptr, ptr %63, align 8, !tbaa !9
  %2842 = call i32 @s2n_connection_set_io_pair(ptr noundef %2841, ptr noundef %71)
  %2843 = icmp eq i32 %2842, -1
  br i1 %2843, label %2844, label %2897

2844:                                             ; preds = %2838
  br label %2845

2845:                                             ; preds = %2844
  br label %2846

2846:                                             ; preds = %2845
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #9
  %2847 = call ptr @__errno_location() #10
  %2848 = load i32, ptr %2847, align 4, !tbaa !5
  store i32 %2848, ptr %74, align 4, !tbaa !5
  %2849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2850 = call i32 @s2n_print_stacktrace(ptr noundef %2849)
  %2851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2852 = trunc i8 %2851 to i1
  br i1 %2852, label %2853, label %2875

2853:                                             ; preds = %2846
  %2854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2855 = call i32 @fileno(ptr noundef %2854) #9
  %2856 = call i32 @isatty(i32 noundef %2855) #9
  %2857 = icmp ne i32 %2856, 0
  br i1 %2857, label %2858, label %2875

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

2875:                                             ; preds = %2853, %2846
  %2876 = load i32, ptr %74, align 4, !tbaa !5
  %2877 = call ptr @__errno_location() #10
  store i32 %2876, ptr %2877, align 4, !tbaa !5
  %2878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2879 = load i32, ptr @test_count, align 4, !tbaa !5
  %2880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2881 = load i32, ptr %2880, align 4, !tbaa !5
  %2882 = call ptr @s2n_strerror(i32 noundef %2881, ptr noundef @.str.4)
  %2883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2884 = load i32, ptr %2883, align 4, !tbaa !5
  %2885 = call ptr @s2n_strerror_debug(i32 noundef %2884, ptr noundef @.str.4)
  %2886 = call ptr @__errno_location() #10
  %2887 = load i32, ptr %2886, align 4, !tbaa !5
  %2888 = call ptr @strerror(i32 noundef %2887) #9
  %2889 = call ptr @__errno_location() #10
  %2890 = load i32, ptr %2889, align 4, !tbaa !5
  %2891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2878, ptr noundef @.str.5, i32 noundef %2879, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 226, ptr noundef %2882, ptr noundef %2885, ptr noundef %2888, i32 noundef %2890) #9
  br label %2892

2892:                                             ; preds = %2875, %2858
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %2893

2893:                                             ; preds = %2892
  br label %2894

2894:                                             ; preds = %2893
  call void @exit(i32 noundef 1) #11
  unreachable

2895:                                             ; No predecessors!
  br label %2896

2896:                                             ; preds = %2895
  br label %2897

2897:                                             ; preds = %2896, %2838
  br label %2898

2898:                                             ; preds = %2897
  br label %2899

2899:                                             ; preds = %2898
  br label %2900

2900:                                             ; preds = %2899
  %2901 = load i32, ptr @test_count, align 4, !tbaa !5
  %2902 = add nsw i32 %2901, 1
  store i32 %2902, ptr @test_count, align 4, !tbaa !5
  %2903 = call ptr @s2n_config_new()
  store ptr %2903, ptr %64, align 8, !tbaa !9
  %2904 = icmp eq ptr %2903, null
  br i1 %2904, label %2905, label %2958

2905:                                             ; preds = %2900
  br label %2906

2906:                                             ; preds = %2905
  br label %2907

2907:                                             ; preds = %2906
  call void @llvm.lifetime.start.p0(i64 4, ptr %75) #9
  %2908 = call ptr @__errno_location() #10
  %2909 = load i32, ptr %2908, align 4, !tbaa !5
  store i32 %2909, ptr %75, align 4, !tbaa !5
  %2910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2911 = call i32 @s2n_print_stacktrace(ptr noundef %2910)
  %2912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2913 = trunc i8 %2912 to i1
  br i1 %2913, label %2914, label %2936

2914:                                             ; preds = %2907
  %2915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2916 = call i32 @fileno(ptr noundef %2915) #9
  %2917 = call i32 @isatty(i32 noundef %2916) #9
  %2918 = icmp ne i32 %2917, 0
  br i1 %2918, label %2919, label %2936

2919:                                             ; preds = %2914
  %2920 = load i32, ptr %75, align 4, !tbaa !5
  %2921 = call ptr @__errno_location() #10
  store i32 %2920, ptr %2921, align 4, !tbaa !5
  %2922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2923 = load i32, ptr @test_count, align 4, !tbaa !5
  %2924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2925 = load i32, ptr %2924, align 4, !tbaa !5
  %2926 = call ptr @s2n_strerror(i32 noundef %2925, ptr noundef @.str.4)
  %2927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2928 = load i32, ptr %2927, align 4, !tbaa !5
  %2929 = call ptr @s2n_strerror_debug(i32 noundef %2928, ptr noundef @.str.4)
  %2930 = call ptr @__errno_location() #10
  %2931 = load i32, ptr %2930, align 4, !tbaa !5
  %2932 = call ptr @strerror(i32 noundef %2931) #9
  %2933 = call ptr @__errno_location() #10
  %2934 = load i32, ptr %2933, align 4, !tbaa !5
  %2935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2922, ptr noundef @.str.2, i32 noundef %2923, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 228, ptr noundef %2926, ptr noundef %2929, ptr noundef %2932, i32 noundef %2934) #9
  br label %2953

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

2953:                                             ; preds = %2936, %2919
  call void @llvm.lifetime.end.p0(i64 4, ptr %75) #9
  br label %2954

2954:                                             ; preds = %2953
  br label %2955

2955:                                             ; preds = %2954
  call void @exit(i32 noundef 1) #11
  unreachable

2956:                                             ; No predecessors!
  br label %2957

2957:                                             ; preds = %2956
  br label %2958

2958:                                             ; preds = %2957, %2900
  br label %2959

2959:                                             ; preds = %2958
  br label %2960

2960:                                             ; preds = %2959
  br label %2961

2961:                                             ; preds = %2960
  %2962 = load i32, ptr @test_count, align 4, !tbaa !5
  %2963 = add nsw i32 %2962, 1
  store i32 %2963, ptr @test_count, align 4, !tbaa !5
  %2964 = load ptr, ptr %64, align 8, !tbaa !9
  %2965 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2964, ptr noundef @.str.18)
  %2966 = icmp eq i32 %2965, -1
  br i1 %2966, label %2967, label %3020

2967:                                             ; preds = %2961
  br label %2968

2968:                                             ; preds = %2967
  br label %2969

2969:                                             ; preds = %2968
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #9
  %2970 = call ptr @__errno_location() #10
  %2971 = load i32, ptr %2970, align 4, !tbaa !5
  store i32 %2971, ptr %76, align 4, !tbaa !5
  %2972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2973 = call i32 @s2n_print_stacktrace(ptr noundef %2972)
  %2974 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2975 = trunc i8 %2974 to i1
  br i1 %2975, label %2976, label %2998

2976:                                             ; preds = %2969
  %2977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2978 = call i32 @fileno(ptr noundef %2977) #9
  %2979 = call i32 @isatty(i32 noundef %2978) #9
  %2980 = icmp ne i32 %2979, 0
  br i1 %2980, label %2981, label %2998

2981:                                             ; preds = %2976
  %2982 = load i32, ptr %76, align 4, !tbaa !5
  %2983 = call ptr @__errno_location() #10
  store i32 %2982, ptr %2983, align 4, !tbaa !5
  %2984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2985 = load i32, ptr @test_count, align 4, !tbaa !5
  %2986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2987 = load i32, ptr %2986, align 4, !tbaa !5
  %2988 = call ptr @s2n_strerror(i32 noundef %2987, ptr noundef @.str.4)
  %2989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2990 = load i32, ptr %2989, align 4, !tbaa !5
  %2991 = call ptr @s2n_strerror_debug(i32 noundef %2990, ptr noundef @.str.4)
  %2992 = call ptr @__errno_location() #10
  %2993 = load i32, ptr %2992, align 4, !tbaa !5
  %2994 = call ptr @strerror(i32 noundef %2993) #9
  %2995 = call ptr @__errno_location() #10
  %2996 = load i32, ptr %2995, align 4, !tbaa !5
  %2997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2984, ptr noundef @.str.2, i32 noundef %2985, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 229, ptr noundef %2988, ptr noundef %2991, ptr noundef %2994, i32 noundef %2996) #9
  br label %3015

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

3015:                                             ; preds = %2998, %2981
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %3016

3016:                                             ; preds = %3015
  br label %3017

3017:                                             ; preds = %3016
  call void @exit(i32 noundef 1) #11
  unreachable

3018:                                             ; No predecessors!
  br label %3019

3019:                                             ; preds = %3018
  br label %3020

3020:                                             ; preds = %3019, %2961
  br label %3021

3021:                                             ; preds = %3020
  br label %3022

3022:                                             ; preds = %3021
  br label %3023

3023:                                             ; preds = %3022
  %3024 = load i32, ptr @test_count, align 4, !tbaa !5
  %3025 = add nsw i32 %3024, 1
  store i32 %3025, ptr @test_count, align 4, !tbaa !5
  %3026 = load ptr, ptr %63, align 8, !tbaa !9
  %3027 = load ptr, ptr %64, align 8, !tbaa !9
  %3028 = call i32 @s2n_connection_set_config(ptr noundef %3026, ptr noundef %3027)
  %3029 = icmp eq i32 %3028, -1
  br i1 %3029, label %3030, label %3083

3030:                                             ; preds = %3023
  br label %3031

3031:                                             ; preds = %3030
  br label %3032

3032:                                             ; preds = %3031
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #9
  %3033 = call ptr @__errno_location() #10
  %3034 = load i32, ptr %3033, align 4, !tbaa !5
  store i32 %3034, ptr %77, align 4, !tbaa !5
  %3035 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3036 = call i32 @s2n_print_stacktrace(ptr noundef %3035)
  %3037 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3038 = trunc i8 %3037 to i1
  br i1 %3038, label %3039, label %3061

3039:                                             ; preds = %3032
  %3040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3041 = call i32 @fileno(ptr noundef %3040) #9
  %3042 = call i32 @isatty(i32 noundef %3041) #9
  %3043 = icmp ne i32 %3042, 0
  br i1 %3043, label %3044, label %3061

3044:                                             ; preds = %3039
  %3045 = load i32, ptr %77, align 4, !tbaa !5
  %3046 = call ptr @__errno_location() #10
  store i32 %3045, ptr %3046, align 4, !tbaa !5
  %3047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3048 = load i32, ptr @test_count, align 4, !tbaa !5
  %3049 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3050 = load i32, ptr %3049, align 4, !tbaa !5
  %3051 = call ptr @s2n_strerror(i32 noundef %3050, ptr noundef @.str.4)
  %3052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3053 = load i32, ptr %3052, align 4, !tbaa !5
  %3054 = call ptr @s2n_strerror_debug(i32 noundef %3053, ptr noundef @.str.4)
  %3055 = call ptr @__errno_location() #10
  %3056 = load i32, ptr %3055, align 4, !tbaa !5
  %3057 = call ptr @strerror(i32 noundef %3056) #9
  %3058 = call ptr @__errno_location() #10
  %3059 = load i32, ptr %3058, align 4, !tbaa !5
  %3060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3047, ptr noundef @.str.2, i32 noundef %3048, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 230, ptr noundef %3051, ptr noundef %3054, ptr noundef %3057, i32 noundef %3059) #9
  br label %3078

3061:                                             ; preds = %3039, %3032
  %3062 = load i32, ptr %77, align 4, !tbaa !5
  %3063 = call ptr @__errno_location() #10
  store i32 %3062, ptr %3063, align 4, !tbaa !5
  %3064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3065 = load i32, ptr @test_count, align 4, !tbaa !5
  %3066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3067 = load i32, ptr %3066, align 4, !tbaa !5
  %3068 = call ptr @s2n_strerror(i32 noundef %3067, ptr noundef @.str.4)
  %3069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3070 = load i32, ptr %3069, align 4, !tbaa !5
  %3071 = call ptr @s2n_strerror_debug(i32 noundef %3070, ptr noundef @.str.4)
  %3072 = call ptr @__errno_location() #10
  %3073 = load i32, ptr %3072, align 4, !tbaa !5
  %3074 = call ptr @strerror(i32 noundef %3073) #9
  %3075 = call ptr @__errno_location() #10
  %3076 = load i32, ptr %3075, align 4, !tbaa !5
  %3077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3064, ptr noundef @.str.5, i32 noundef %3065, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 230, ptr noundef %3068, ptr noundef %3071, ptr noundef %3074, i32 noundef %3076) #9
  br label %3078

3078:                                             ; preds = %3061, %3044
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %3079

3079:                                             ; preds = %3078
  br label %3080

3080:                                             ; preds = %3079
  call void @exit(i32 noundef 1) #11
  unreachable

3081:                                             ; No predecessors!
  br label %3082

3082:                                             ; preds = %3081
  br label %3083

3083:                                             ; preds = %3082, %3023
  br label %3084

3084:                                             ; preds = %3083
  br label %3085

3085:                                             ; preds = %3084
  br label %3086

3086:                                             ; preds = %3085
  %3087 = load i32, ptr @test_count, align 4, !tbaa !5
  %3088 = add nsw i32 %3087, 1
  store i32 %3088, ptr @test_count, align 4, !tbaa !5
  %3089 = load ptr, ptr %63, align 8, !tbaa !9
  %3090 = call i32 @s2n_negotiate(ptr noundef %3089, ptr noundef %65)
  %3091 = icmp eq i32 %3090, -1
  br i1 %3091, label %3145, label %3092

3092:                                             ; preds = %3086
  br label %3093

3093:                                             ; preds = %3092
  br label %3094

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

3101:                                             ; preds = %3094
  %3102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3103 = call i32 @fileno(ptr noundef %3102) #9
  %3104 = call i32 @isatty(i32 noundef %3103) #9
  %3105 = icmp ne i32 %3104, 0
  br i1 %3105, label %3106, label %3123

3106:                                             ; preds = %3101
  %3107 = load i32, ptr %78, align 4, !tbaa !5
  %3108 = call ptr @__errno_location() #10
  store i32 %3107, ptr %3108, align 4, !tbaa !5
  %3109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3110 = load i32, ptr @test_count, align 4, !tbaa !5
  %3111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3112 = load i32, ptr %3111, align 4, !tbaa !5
  %3113 = call ptr @s2n_strerror(i32 noundef %3112, ptr noundef @.str.4)
  %3114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3115 = load i32, ptr %3114, align 4, !tbaa !5
  %3116 = call ptr @s2n_strerror_debug(i32 noundef %3115, ptr noundef @.str.4)
  %3117 = call ptr @__errno_location() #10
  %3118 = load i32, ptr %3117, align 4, !tbaa !5
  %3119 = call ptr @strerror(i32 noundef %3118) #9
  %3120 = call ptr @__errno_location() #10
  %3121 = load i32, ptr %3120, align 4, !tbaa !5
  %3122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3109, ptr noundef @.str.2, i32 noundef %3110, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 233, ptr noundef %3113, ptr noundef %3116, ptr noundef %3119, i32 noundef %3121) #9
  br label %3140

3123:                                             ; preds = %3101, %3094
  %3124 = load i32, ptr %78, align 4, !tbaa !5
  %3125 = call ptr @__errno_location() #10
  store i32 %3124, ptr %3125, align 4, !tbaa !5
  %3126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3127 = load i32, ptr @test_count, align 4, !tbaa !5
  %3128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3129 = load i32, ptr %3128, align 4, !tbaa !5
  %3130 = call ptr @s2n_strerror(i32 noundef %3129, ptr noundef @.str.4)
  %3131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3132 = load i32, ptr %3131, align 4, !tbaa !5
  %3133 = call ptr @s2n_strerror_debug(i32 noundef %3132, ptr noundef @.str.4)
  %3134 = call ptr @__errno_location() #10
  %3135 = load i32, ptr %3134, align 4, !tbaa !5
  %3136 = call ptr @strerror(i32 noundef %3135) #9
  %3137 = call ptr @__errno_location() #10
  %3138 = load i32, ptr %3137, align 4, !tbaa !5
  %3139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3126, ptr noundef @.str.5, i32 noundef %3127, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 233, ptr noundef %3130, ptr noundef %3133, ptr noundef %3136, i32 noundef %3138) #9
  br label %3140

3140:                                             ; preds = %3123, %3106
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #9
  br label %3141

3141:                                             ; preds = %3140
  br label %3142

3142:                                             ; preds = %3141
  call void @exit(i32 noundef 1) #11
  unreachable

3143:                                             ; No predecessors!
  br label %3144

3144:                                             ; preds = %3143
  br label %3145

3145:                                             ; preds = %3144, %3086
  br label %3146

3146:                                             ; preds = %3145
  br label %3147

3147:                                             ; preds = %3146
  br label %3148

3148:                                             ; preds = %3147
  %3149 = load i32, ptr @test_count, align 4, !tbaa !5
  %3150 = add nsw i32 %3149, 1
  store i32 %3150, ptr @test_count, align 4, !tbaa !5
  %3151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3152 = load i32, ptr %3151, align 4, !tbaa !5
  %3153 = icmp eq i32 %3152, 201326592
  br i1 %3153, label %3207, label %3154

3154:                                             ; preds = %3148
  br label %3155

3155:                                             ; preds = %3154
  br label %3156

3156:                                             ; preds = %3155
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #9
  %3157 = call ptr @__errno_location() #10
  %3158 = load i32, ptr %3157, align 4, !tbaa !5
  store i32 %3158, ptr %79, align 4, !tbaa !5
  %3159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3160 = call i32 @s2n_print_stacktrace(ptr noundef %3159)
  %3161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3162 = trunc i8 %3161 to i1
  br i1 %3162, label %3163, label %3185

3163:                                             ; preds = %3156
  %3164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3165 = call i32 @fileno(ptr noundef %3164) #9
  %3166 = call i32 @isatty(i32 noundef %3165) #9
  %3167 = icmp ne i32 %3166, 0
  br i1 %3167, label %3168, label %3185

3168:                                             ; preds = %3163
  %3169 = load i32, ptr %79, align 4, !tbaa !5
  %3170 = call ptr @__errno_location() #10
  store i32 %3169, ptr %3170, align 4, !tbaa !5
  %3171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3172 = load i32, ptr @test_count, align 4, !tbaa !5
  %3173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3174 = load i32, ptr %3173, align 4, !tbaa !5
  %3175 = call ptr @s2n_strerror(i32 noundef %3174, ptr noundef @.str.4)
  %3176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3177 = load i32, ptr %3176, align 4, !tbaa !5
  %3178 = call ptr @s2n_strerror_debug(i32 noundef %3177, ptr noundef @.str.4)
  %3179 = call ptr @__errno_location() #10
  %3180 = load i32, ptr %3179, align 4, !tbaa !5
  %3181 = call ptr @strerror(i32 noundef %3180) #9
  %3182 = call ptr @__errno_location() #10
  %3183 = load i32, ptr %3182, align 4, !tbaa !5
  %3184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3171, ptr noundef @.str.2, i32 noundef %3172, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 234, ptr noundef %3175, ptr noundef %3178, ptr noundef %3181, i32 noundef %3183) #9
  br label %3202

3185:                                             ; preds = %3163, %3156
  %3186 = load i32, ptr %79, align 4, !tbaa !5
  %3187 = call ptr @__errno_location() #10
  store i32 %3186, ptr %3187, align 4, !tbaa !5
  %3188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3189 = load i32, ptr @test_count, align 4, !tbaa !5
  %3190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3191 = load i32, ptr %3190, align 4, !tbaa !5
  %3192 = call ptr @s2n_strerror(i32 noundef %3191, ptr noundef @.str.4)
  %3193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3194 = load i32, ptr %3193, align 4, !tbaa !5
  %3195 = call ptr @s2n_strerror_debug(i32 noundef %3194, ptr noundef @.str.4)
  %3196 = call ptr @__errno_location() #10
  %3197 = load i32, ptr %3196, align 4, !tbaa !5
  %3198 = call ptr @strerror(i32 noundef %3197) #9
  %3199 = call ptr @__errno_location() #10
  %3200 = load i32, ptr %3199, align 4, !tbaa !5
  %3201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3188, ptr noundef @.str.5, i32 noundef %3189, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 234, ptr noundef %3192, ptr noundef %3195, ptr noundef %3198, i32 noundef %3200) #9
  br label %3202

3202:                                             ; preds = %3185, %3168
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %3203

3203:                                             ; preds = %3202
  br label %3204

3204:                                             ; preds = %3203
  call void @exit(i32 noundef 1) #11
  unreachable

3205:                                             ; No predecessors!
  br label %3206

3206:                                             ; preds = %3205
  br label %3207

3207:                                             ; preds = %3206, %3148
  br label %3208

3208:                                             ; preds = %3207
  br label %3209

3209:                                             ; preds = %3208
  br label %3210

3210:                                             ; preds = %3209
  %3211 = load i32, ptr @test_count, align 4, !tbaa !5
  %3212 = add nsw i32 %3211, 1
  store i32 %3212, ptr @test_count, align 4, !tbaa !5
  %3213 = load i32, ptr %65, align 4, !tbaa !5
  %3214 = icmp eq i32 %3213, 1
  br i1 %3214, label %3268, label %3215

3215:                                             ; preds = %3210
  br label %3216

3216:                                             ; preds = %3215
  br label %3217

3217:                                             ; preds = %3216
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #9
  %3218 = call ptr @__errno_location() #10
  %3219 = load i32, ptr %3218, align 4, !tbaa !5
  store i32 %3219, ptr %80, align 4, !tbaa !5
  %3220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3221 = call i32 @s2n_print_stacktrace(ptr noundef %3220)
  %3222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3223 = trunc i8 %3222 to i1
  br i1 %3223, label %3224, label %3246

3224:                                             ; preds = %3217
  %3225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3226 = call i32 @fileno(ptr noundef %3225) #9
  %3227 = call i32 @isatty(i32 noundef %3226) #9
  %3228 = icmp ne i32 %3227, 0
  br i1 %3228, label %3229, label %3246

3229:                                             ; preds = %3224
  %3230 = load i32, ptr %80, align 4, !tbaa !5
  %3231 = call ptr @__errno_location() #10
  store i32 %3230, ptr %3231, align 4, !tbaa !5
  %3232 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3233 = load i32, ptr @test_count, align 4, !tbaa !5
  %3234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3235 = load i32, ptr %3234, align 4, !tbaa !5
  %3236 = call ptr @s2n_strerror(i32 noundef %3235, ptr noundef @.str.4)
  %3237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3238 = load i32, ptr %3237, align 4, !tbaa !5
  %3239 = call ptr @s2n_strerror_debug(i32 noundef %3238, ptr noundef @.str.4)
  %3240 = call ptr @__errno_location() #10
  %3241 = load i32, ptr %3240, align 4, !tbaa !5
  %3242 = call ptr @strerror(i32 noundef %3241) #9
  %3243 = call ptr @__errno_location() #10
  %3244 = load i32, ptr %3243, align 4, !tbaa !5
  %3245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3232, ptr noundef @.str.2, i32 noundef %3233, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 235, ptr noundef %3236, ptr noundef %3239, ptr noundef %3242, i32 noundef %3244) #9
  br label %3263

3246:                                             ; preds = %3224, %3217
  %3247 = load i32, ptr %80, align 4, !tbaa !5
  %3248 = call ptr @__errno_location() #10
  store i32 %3247, ptr %3248, align 4, !tbaa !5
  %3249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3250 = load i32, ptr @test_count, align 4, !tbaa !5
  %3251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3252 = load i32, ptr %3251, align 4, !tbaa !5
  %3253 = call ptr @s2n_strerror(i32 noundef %3252, ptr noundef @.str.4)
  %3254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3255 = load i32, ptr %3254, align 4, !tbaa !5
  %3256 = call ptr @s2n_strerror_debug(i32 noundef %3255, ptr noundef @.str.4)
  %3257 = call ptr @__errno_location() #10
  %3258 = load i32, ptr %3257, align 4, !tbaa !5
  %3259 = call ptr @strerror(i32 noundef %3258) #9
  %3260 = call ptr @__errno_location() #10
  %3261 = load i32, ptr %3260, align 4, !tbaa !5
  %3262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3249, ptr noundef @.str.5, i32 noundef %3250, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 235, ptr noundef %3253, ptr noundef %3256, ptr noundef %3259, i32 noundef %3261) #9
  br label %3263

3263:                                             ; preds = %3246, %3229
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %3264

3264:                                             ; preds = %3263
  br label %3265

3265:                                             ; preds = %3264
  call void @exit(i32 noundef 1) #11
  unreachable

3266:                                             ; No predecessors!
  br label %3267

3267:                                             ; preds = %3266
  br label %3268

3268:                                             ; preds = %3267, %3210
  br label %3269

3269:                                             ; preds = %3268
  br label %3270

3270:                                             ; preds = %3269
  call void @llvm.lifetime.start.p0(i64 1024, ptr %81) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %82) #9
  store i64 0, ptr %82, align 8, !tbaa !16
  br label %3271

3271:                                             ; preds = %3343, %3270
  %3272 = load i64, ptr %82, align 8, !tbaa !16
  %3273 = icmp ult i64 %3272, 10
  br i1 %3273, label %3274, label %3347

3274:                                             ; preds = %3271
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #9
  %3275 = getelementptr inbounds %struct.s2n_test_io_pair, ptr %71, i32 0, i32 1
  %3276 = load i32, ptr %3275, align 4, !tbaa !18
  %3277 = getelementptr inbounds [1024 x i8], ptr %81, i64 0, i64 0
  %3278 = load i64, ptr %82, align 8, !tbaa !16
  %3279 = getelementptr inbounds i8, ptr %3277, i64 %3278
  %3280 = load i64, ptr %82, align 8, !tbaa !16
  %3281 = sub i64 1024, %3280
  %3282 = call i64 @read(i32 noundef %3276, ptr noundef %3279, i64 noundef %3281)
  store i64 %3282, ptr %83, align 8, !tbaa !16
  br label %3283

3283:                                             ; preds = %3274
  %3284 = load i32, ptr @test_count, align 4, !tbaa !5
  %3285 = add nsw i32 %3284, 1
  store i32 %3285, ptr @test_count, align 4, !tbaa !5
  %3286 = load i64, ptr %83, align 8, !tbaa !16
  %3287 = icmp sgt i64 %3286, 0
  br i1 %3287, label %3341, label %3288

3288:                                             ; preds = %3283
  br label %3289

3289:                                             ; preds = %3288
  br label %3290

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

3297:                                             ; preds = %3290
  %3298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3299 = call i32 @fileno(ptr noundef %3298) #9
  %3300 = call i32 @isatty(i32 noundef %3299) #9
  %3301 = icmp ne i32 %3300, 0
  br i1 %3301, label %3302, label %3319

3302:                                             ; preds = %3297
  %3303 = load i32, ptr %84, align 4, !tbaa !5
  %3304 = call ptr @__errno_location() #10
  store i32 %3303, ptr %3304, align 4, !tbaa !5
  %3305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3306 = load i32, ptr @test_count, align 4, !tbaa !5
  %3307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3308 = load i32, ptr %3307, align 4, !tbaa !5
  %3309 = call ptr @s2n_strerror(i32 noundef %3308, ptr noundef @.str.4)
  %3310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3311 = load i32, ptr %3310, align 4, !tbaa !5
  %3312 = call ptr @s2n_strerror_debug(i32 noundef %3311, ptr noundef @.str.4)
  %3313 = call ptr @__errno_location() #10
  %3314 = load i32, ptr %3313, align 4, !tbaa !5
  %3315 = call ptr @strerror(i32 noundef %3314) #9
  %3316 = call ptr @__errno_location() #10
  %3317 = load i32, ptr %3316, align 4, !tbaa !5
  %3318 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3305, ptr noundef @.str.2, i32 noundef %3306, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 246, ptr noundef %3309, ptr noundef %3312, ptr noundef %3315, i32 noundef %3317) #9
  br label %3336

3319:                                             ; preds = %3297, %3290
  %3320 = load i32, ptr %84, align 4, !tbaa !5
  %3321 = call ptr @__errno_location() #10
  store i32 %3320, ptr %3321, align 4, !tbaa !5
  %3322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3323 = load i32, ptr @test_count, align 4, !tbaa !5
  %3324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3325 = load i32, ptr %3324, align 4, !tbaa !5
  %3326 = call ptr @s2n_strerror(i32 noundef %3325, ptr noundef @.str.4)
  %3327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3328 = load i32, ptr %3327, align 4, !tbaa !5
  %3329 = call ptr @s2n_strerror_debug(i32 noundef %3328, ptr noundef @.str.4)
  %3330 = call ptr @__errno_location() #10
  %3331 = load i32, ptr %3330, align 4, !tbaa !5
  %3332 = call ptr @strerror(i32 noundef %3331) #9
  %3333 = call ptr @__errno_location() #10
  %3334 = load i32, ptr %3333, align 4, !tbaa !5
  %3335 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3322, ptr noundef @.str.5, i32 noundef %3323, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 246, ptr noundef %3326, ptr noundef %3329, ptr noundef %3332, i32 noundef %3334) #9
  br label %3336

3336:                                             ; preds = %3319, %3302
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  br label %3337

3337:                                             ; preds = %3336
  br label %3338

3338:                                             ; preds = %3337
  call void @exit(i32 noundef 1) #11
  unreachable

3339:                                             ; No predecessors!
  br label %3340

3340:                                             ; preds = %3339
  br label %3341

3341:                                             ; preds = %3340, %3283
  br label %3342

3342:                                             ; preds = %3341
  br label %3343

3343:                                             ; preds = %3342
  %3344 = load i64, ptr %83, align 8, !tbaa !16
  %3345 = load i64, ptr %82, align 8, !tbaa !16
  %3346 = add i64 %3345, %3344
  store i64 %3346, ptr %82, align 8, !tbaa !16
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #9
  br label %3271, !llvm.loop !51

3347:                                             ; preds = %3271
  br label %3348

3348:                                             ; preds = %3347
  %3349 = load i32, ptr @test_count, align 4, !tbaa !5
  %3350 = add nsw i32 %3349, 1
  store i32 %3350, ptr @test_count, align 4, !tbaa !5
  %3351 = getelementptr inbounds [1024 x i8], ptr %81, i64 0, i64 0
  %3352 = load i8, ptr %3351, align 16, !tbaa !15
  %3353 = zext i8 %3352 to i32
  %3354 = icmp eq i32 %3353, 22
  br i1 %3354, label %3408, label %3355

3355:                                             ; preds = %3348
  br label %3356

3356:                                             ; preds = %3355
  br label %3357

3357:                                             ; preds = %3356
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #9
  %3358 = call ptr @__errno_location() #10
  %3359 = load i32, ptr %3358, align 4, !tbaa !5
  store i32 %3359, ptr %85, align 4, !tbaa !5
  %3360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3361 = call i32 @s2n_print_stacktrace(ptr noundef %3360)
  %3362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3363 = trunc i8 %3362 to i1
  br i1 %3363, label %3364, label %3386

3364:                                             ; preds = %3357
  %3365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3366 = call i32 @fileno(ptr noundef %3365) #9
  %3367 = call i32 @isatty(i32 noundef %3366) #9
  %3368 = icmp ne i32 %3367, 0
  br i1 %3368, label %3369, label %3386

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

3386:                                             ; preds = %3364, %3357
  %3387 = load i32, ptr %85, align 4, !tbaa !5
  %3388 = call ptr @__errno_location() #10
  store i32 %3387, ptr %3388, align 4, !tbaa !5
  %3389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3390 = load i32, ptr @test_count, align 4, !tbaa !5
  %3391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3392 = load i32, ptr %3391, align 4, !tbaa !5
  %3393 = call ptr @s2n_strerror(i32 noundef %3392, ptr noundef @.str.4)
  %3394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3395 = load i32, ptr %3394, align 4, !tbaa !5
  %3396 = call ptr @s2n_strerror_debug(i32 noundef %3395, ptr noundef @.str.4)
  %3397 = call ptr @__errno_location() #10
  %3398 = load i32, ptr %3397, align 4, !tbaa !5
  %3399 = call ptr @strerror(i32 noundef %3398) #9
  %3400 = call ptr @__errno_location() #10
  %3401 = load i32, ptr %3400, align 4, !tbaa !5
  %3402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3389, ptr noundef @.str.5, i32 noundef %3390, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 250, ptr noundef %3393, ptr noundef %3396, ptr noundef %3399, i32 noundef %3401) #9
  br label %3403

3403:                                             ; preds = %3386, %3369
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #9
  br label %3404

3404:                                             ; preds = %3403
  br label %3405

3405:                                             ; preds = %3404
  call void @exit(i32 noundef 1) #11
  unreachable

3406:                                             ; No predecessors!
  br label %3407

3407:                                             ; preds = %3406
  br label %3408

3408:                                             ; preds = %3407, %3348
  br label %3409

3409:                                             ; preds = %3408
  br label %3410

3410:                                             ; preds = %3409
  br label %3411

3411:                                             ; preds = %3410
  %3412 = load i32, ptr @test_count, align 4, !tbaa !5
  %3413 = add nsw i32 %3412, 1
  store i32 %3413, ptr @test_count, align 4, !tbaa !5
  %3414 = getelementptr inbounds [1024 x i8], ptr %81, i64 0, i64 1
  %3415 = load i8, ptr %3414, align 1, !tbaa !15
  %3416 = zext i8 %3415 to i32
  %3417 = icmp eq i32 %3416, 3
  br i1 %3417, label %3471, label %3418

3418:                                             ; preds = %3411
  br label %3419

3419:                                             ; preds = %3418
  br label %3420

3420:                                             ; preds = %3419
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #9
  %3421 = call ptr @__errno_location() #10
  %3422 = load i32, ptr %3421, align 4, !tbaa !5
  store i32 %3422, ptr %86, align 4, !tbaa !5
  %3423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3424 = call i32 @s2n_print_stacktrace(ptr noundef %3423)
  %3425 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3426 = trunc i8 %3425 to i1
  br i1 %3426, label %3427, label %3449

3427:                                             ; preds = %3420
  %3428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3429 = call i32 @fileno(ptr noundef %3428) #9
  %3430 = call i32 @isatty(i32 noundef %3429) #9
  %3431 = icmp ne i32 %3430, 0
  br i1 %3431, label %3432, label %3449

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

3449:                                             ; preds = %3427, %3420
  %3450 = load i32, ptr %86, align 4, !tbaa !5
  %3451 = call ptr @__errno_location() #10
  store i32 %3450, ptr %3451, align 4, !tbaa !5
  %3452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3453 = load i32, ptr @test_count, align 4, !tbaa !5
  %3454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3455 = load i32, ptr %3454, align 4, !tbaa !5
  %3456 = call ptr @s2n_strerror(i32 noundef %3455, ptr noundef @.str.4)
  %3457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3458 = load i32, ptr %3457, align 4, !tbaa !5
  %3459 = call ptr @s2n_strerror_debug(i32 noundef %3458, ptr noundef @.str.4)
  %3460 = call ptr @__errno_location() #10
  %3461 = load i32, ptr %3460, align 4, !tbaa !5
  %3462 = call ptr @strerror(i32 noundef %3461) #9
  %3463 = call ptr @__errno_location() #10
  %3464 = load i32, ptr %3463, align 4, !tbaa !5
  %3465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3452, ptr noundef @.str.5, i32 noundef %3453, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 252, ptr noundef %3456, ptr noundef %3459, ptr noundef %3462, i32 noundef %3464) #9
  br label %3466

3466:                                             ; preds = %3449, %3432
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #9
  br label %3467

3467:                                             ; preds = %3466
  br label %3468

3468:                                             ; preds = %3467
  call void @exit(i32 noundef 1) #11
  unreachable

3469:                                             ; No predecessors!
  br label %3470

3470:                                             ; preds = %3469
  br label %3471

3471:                                             ; preds = %3470, %3411
  br label %3472

3472:                                             ; preds = %3471
  br label %3473

3473:                                             ; preds = %3472
  br label %3474

3474:                                             ; preds = %3473
  %3475 = load i32, ptr @test_count, align 4, !tbaa !5
  %3476 = add nsw i32 %3475, 1
  store i32 %3476, ptr @test_count, align 4, !tbaa !5
  %3477 = getelementptr inbounds [1024 x i8], ptr %81, i64 0, i64 2
  %3478 = load i8, ptr %3477, align 2, !tbaa !15
  %3479 = zext i8 %3478 to i32
  %3480 = icmp eq i32 %3479, 1
  br i1 %3480, label %3534, label %3481

3481:                                             ; preds = %3474
  br label %3482

3482:                                             ; preds = %3481
  br label %3483

3483:                                             ; preds = %3482
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #9
  %3484 = call ptr @__errno_location() #10
  %3485 = load i32, ptr %3484, align 4, !tbaa !5
  store i32 %3485, ptr %87, align 4, !tbaa !5
  %3486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3487 = call i32 @s2n_print_stacktrace(ptr noundef %3486)
  %3488 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3489 = trunc i8 %3488 to i1
  br i1 %3489, label %3490, label %3512

3490:                                             ; preds = %3483
  %3491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3492 = call i32 @fileno(ptr noundef %3491) #9
  %3493 = call i32 @isatty(i32 noundef %3492) #9
  %3494 = icmp ne i32 %3493, 0
  br i1 %3494, label %3495, label %3512

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

3512:                                             ; preds = %3490, %3483
  %3513 = load i32, ptr %87, align 4, !tbaa !5
  %3514 = call ptr @__errno_location() #10
  store i32 %3513, ptr %3514, align 4, !tbaa !5
  %3515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3516 = load i32, ptr @test_count, align 4, !tbaa !5
  %3517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3518 = load i32, ptr %3517, align 4, !tbaa !5
  %3519 = call ptr @s2n_strerror(i32 noundef %3518, ptr noundef @.str.4)
  %3520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3521 = load i32, ptr %3520, align 4, !tbaa !5
  %3522 = call ptr @s2n_strerror_debug(i32 noundef %3521, ptr noundef @.str.4)
  %3523 = call ptr @__errno_location() #10
  %3524 = load i32, ptr %3523, align 4, !tbaa !5
  %3525 = call ptr @strerror(i32 noundef %3524) #9
  %3526 = call ptr @__errno_location() #10
  %3527 = load i32, ptr %3526, align 4, !tbaa !5
  %3528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3515, ptr noundef @.str.5, i32 noundef %3516, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 253, ptr noundef %3519, ptr noundef %3522, ptr noundef %3525, i32 noundef %3527) #9
  br label %3529

3529:                                             ; preds = %3512, %3495
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #9
  br label %3530

3530:                                             ; preds = %3529
  br label %3531

3531:                                             ; preds = %3530
  call void @exit(i32 noundef 1) #11
  unreachable

3532:                                             ; No predecessors!
  br label %3533

3533:                                             ; preds = %3532
  br label %3534

3534:                                             ; preds = %3533, %3474
  br label %3535

3535:                                             ; preds = %3534
  br label %3536

3536:                                             ; preds = %3535
  br label %3537

3537:                                             ; preds = %3536
  %3538 = load i32, ptr @test_count, align 4, !tbaa !5
  %3539 = add nsw i32 %3538, 1
  store i32 %3539, ptr @test_count, align 4, !tbaa !5
  %3540 = getelementptr inbounds [1024 x i8], ptr %81, i64 0, i64 5
  %3541 = load i8, ptr %3540, align 1, !tbaa !15
  %3542 = zext i8 %3541 to i32
  %3543 = icmp eq i32 %3542, 1
  br i1 %3543, label %3597, label %3544

3544:                                             ; preds = %3537
  br label %3545

3545:                                             ; preds = %3544
  br label %3546

3546:                                             ; preds = %3545
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #9
  %3547 = call ptr @__errno_location() #10
  %3548 = load i32, ptr %3547, align 4, !tbaa !5
  store i32 %3548, ptr %88, align 4, !tbaa !5
  %3549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3550 = call i32 @s2n_print_stacktrace(ptr noundef %3549)
  %3551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3552 = trunc i8 %3551 to i1
  br i1 %3552, label %3553, label %3575

3553:                                             ; preds = %3546
  %3554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3555 = call i32 @fileno(ptr noundef %3554) #9
  %3556 = call i32 @isatty(i32 noundef %3555) #9
  %3557 = icmp ne i32 %3556, 0
  br i1 %3557, label %3558, label %3575

3558:                                             ; preds = %3553
  %3559 = load i32, ptr %88, align 4, !tbaa !5
  %3560 = call ptr @__errno_location() #10
  store i32 %3559, ptr %3560, align 4, !tbaa !5
  %3561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3562 = load i32, ptr @test_count, align 4, !tbaa !5
  %3563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3564 = load i32, ptr %3563, align 4, !tbaa !5
  %3565 = call ptr @s2n_strerror(i32 noundef %3564, ptr noundef @.str.4)
  %3566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3567 = load i32, ptr %3566, align 4, !tbaa !5
  %3568 = call ptr @s2n_strerror_debug(i32 noundef %3567, ptr noundef @.str.4)
  %3569 = call ptr @__errno_location() #10
  %3570 = load i32, ptr %3569, align 4, !tbaa !5
  %3571 = call ptr @strerror(i32 noundef %3570) #9
  %3572 = call ptr @__errno_location() #10
  %3573 = load i32, ptr %3572, align 4, !tbaa !5
  %3574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3561, ptr noundef @.str.2, i32 noundef %3562, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 255, ptr noundef %3565, ptr noundef %3568, ptr noundef %3571, i32 noundef %3573) #9
  br label %3592

3575:                                             ; preds = %3553, %3546
  %3576 = load i32, ptr %88, align 4, !tbaa !5
  %3577 = call ptr @__errno_location() #10
  store i32 %3576, ptr %3577, align 4, !tbaa !5
  %3578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3579 = load i32, ptr @test_count, align 4, !tbaa !5
  %3580 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3581 = load i32, ptr %3580, align 4, !tbaa !5
  %3582 = call ptr @s2n_strerror(i32 noundef %3581, ptr noundef @.str.4)
  %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_debug(i32 noundef %3584, ptr noundef @.str.4)
  %3586 = call ptr @__errno_location() #10
  %3587 = load i32, ptr %3586, align 4, !tbaa !5
  %3588 = call ptr @strerror(i32 noundef %3587) #9
  %3589 = call ptr @__errno_location() #10
  %3590 = load i32, ptr %3589, align 4, !tbaa !5
  %3591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3578, ptr noundef @.str.5, i32 noundef %3579, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 255, ptr noundef %3582, ptr noundef %3585, ptr noundef %3588, i32 noundef %3590) #9
  br label %3592

3592:                                             ; preds = %3575, %3558
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #9
  br label %3593

3593:                                             ; preds = %3592
  br label %3594

3594:                                             ; preds = %3593
  call void @exit(i32 noundef 1) #11
  unreachable

3595:                                             ; No predecessors!
  br label %3596

3596:                                             ; preds = %3595
  br label %3597

3597:                                             ; preds = %3596, %3537
  br label %3598

3598:                                             ; preds = %3597
  br label %3599

3599:                                             ; preds = %3598
  br label %3600

3600:                                             ; preds = %3599
  %3601 = load i32, ptr @test_count, align 4, !tbaa !5
  %3602 = add nsw i32 %3601, 1
  store i32 %3602, ptr @test_count, align 4, !tbaa !5
  %3603 = getelementptr inbounds [1024 x i8], ptr %81, i64 0, i64 9
  %3604 = load i8, ptr %3603, align 1, !tbaa !15
  %3605 = zext i8 %3604 to i32
  %3606 = icmp eq i32 %3605, 3
  br i1 %3606, label %3660, label %3607

3607:                                             ; preds = %3600
  br label %3608

3608:                                             ; preds = %3607
  br label %3609

3609:                                             ; preds = %3608
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #9
  %3610 = call ptr @__errno_location() #10
  %3611 = load i32, ptr %3610, align 4, !tbaa !5
  store i32 %3611, ptr %89, align 4, !tbaa !5
  %3612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3613 = call i32 @s2n_print_stacktrace(ptr noundef %3612)
  %3614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3615 = trunc i8 %3614 to i1
  br i1 %3615, label %3616, label %3638

3616:                                             ; preds = %3609
  %3617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3618 = call i32 @fileno(ptr noundef %3617) #9
  %3619 = call i32 @isatty(i32 noundef %3618) #9
  %3620 = icmp ne i32 %3619, 0
  br i1 %3620, label %3621, label %3638

3621:                                             ; preds = %3616
  %3622 = load i32, ptr %89, align 4, !tbaa !5
  %3623 = call ptr @__errno_location() #10
  store i32 %3622, ptr %3623, align 4, !tbaa !5
  %3624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3625 = load i32, ptr @test_count, align 4, !tbaa !5
  %3626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3627 = load i32, ptr %3626, align 4, !tbaa !5
  %3628 = call ptr @s2n_strerror(i32 noundef %3627, ptr noundef @.str.4)
  %3629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3630 = load i32, ptr %3629, align 4, !tbaa !5
  %3631 = call ptr @s2n_strerror_debug(i32 noundef %3630, ptr noundef @.str.4)
  %3632 = call ptr @__errno_location() #10
  %3633 = load i32, ptr %3632, align 4, !tbaa !5
  %3634 = call ptr @strerror(i32 noundef %3633) #9
  %3635 = call ptr @__errno_location() #10
  %3636 = load i32, ptr %3635, align 4, !tbaa !5
  %3637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3624, ptr noundef @.str.2, i32 noundef %3625, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 257, ptr noundef %3628, ptr noundef %3631, ptr noundef %3634, i32 noundef %3636) #9
  br label %3655

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

3655:                                             ; preds = %3638, %3621
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #9
  br label %3656

3656:                                             ; preds = %3655
  br label %3657

3657:                                             ; preds = %3656
  call void @exit(i32 noundef 1) #11
  unreachable

3658:                                             ; No predecessors!
  br label %3659

3659:                                             ; preds = %3658
  br label %3660

3660:                                             ; preds = %3659, %3600
  br label %3661

3661:                                             ; preds = %3660
  br label %3662

3662:                                             ; preds = %3661
  br label %3663

3663:                                             ; preds = %3662
  %3664 = load i32, ptr @test_count, align 4, !tbaa !5
  %3665 = add nsw i32 %3664, 1
  store i32 %3665, ptr @test_count, align 4, !tbaa !5
  %3666 = getelementptr inbounds [1024 x i8], ptr %81, i64 0, i64 10
  %3667 = load i8, ptr %3666, align 2, !tbaa !15
  %3668 = zext i8 %3667 to i32
  %3669 = icmp eq i32 %3668, 3
  br i1 %3669, label %3723, label %3670

3670:                                             ; preds = %3663
  br label %3671

3671:                                             ; preds = %3670
  br label %3672

3672:                                             ; preds = %3671
  call void @llvm.lifetime.start.p0(i64 4, ptr %90) #9
  %3673 = call ptr @__errno_location() #10
  %3674 = load i32, ptr %3673, align 4, !tbaa !5
  store i32 %3674, ptr %90, align 4, !tbaa !5
  %3675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3676 = call i32 @s2n_print_stacktrace(ptr noundef %3675)
  %3677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3678 = trunc i8 %3677 to i1
  br i1 %3678, label %3679, label %3701

3679:                                             ; preds = %3672
  %3680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3681 = call i32 @fileno(ptr noundef %3680) #9
  %3682 = call i32 @isatty(i32 noundef %3681) #9
  %3683 = icmp ne i32 %3682, 0
  br i1 %3683, label %3684, label %3701

3684:                                             ; preds = %3679
  %3685 = load i32, ptr %90, align 4, !tbaa !5
  %3686 = call ptr @__errno_location() #10
  store i32 %3685, ptr %3686, align 4, !tbaa !5
  %3687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3688 = load i32, ptr @test_count, align 4, !tbaa !5
  %3689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3690 = load i32, ptr %3689, align 4, !tbaa !5
  %3691 = call ptr @s2n_strerror(i32 noundef %3690, ptr noundef @.str.4)
  %3692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3693 = load i32, ptr %3692, align 4, !tbaa !5
  %3694 = call ptr @s2n_strerror_debug(i32 noundef %3693, ptr noundef @.str.4)
  %3695 = call ptr @__errno_location() #10
  %3696 = load i32, ptr %3695, align 4, !tbaa !5
  %3697 = call ptr @strerror(i32 noundef %3696) #9
  %3698 = call ptr @__errno_location() #10
  %3699 = load i32, ptr %3698, align 4, !tbaa !5
  %3700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3687, ptr noundef @.str.2, i32 noundef %3688, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 258, ptr noundef %3691, ptr noundef %3694, ptr noundef %3697, i32 noundef %3699) #9
  br label %3718

3701:                                             ; preds = %3679, %3672
  %3702 = load i32, ptr %90, align 4, !tbaa !5
  %3703 = call ptr @__errno_location() #10
  store i32 %3702, ptr %3703, align 4, !tbaa !5
  %3704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3705 = load i32, ptr @test_count, align 4, !tbaa !5
  %3706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3707 = load i32, ptr %3706, align 4, !tbaa !5
  %3708 = call ptr @s2n_strerror(i32 noundef %3707, ptr noundef @.str.4)
  %3709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3710 = load i32, ptr %3709, align 4, !tbaa !5
  %3711 = call ptr @s2n_strerror_debug(i32 noundef %3710, ptr noundef @.str.4)
  %3712 = call ptr @__errno_location() #10
  %3713 = load i32, ptr %3712, align 4, !tbaa !5
  %3714 = call ptr @strerror(i32 noundef %3713) #9
  %3715 = call ptr @__errno_location() #10
  %3716 = load i32, ptr %3715, align 4, !tbaa !5
  %3717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3704, ptr noundef @.str.5, i32 noundef %3705, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 258, ptr noundef %3708, ptr noundef %3711, ptr noundef %3714, i32 noundef %3716) #9
  br label %3718

3718:                                             ; preds = %3701, %3684
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #9
  br label %3719

3719:                                             ; preds = %3718
  br label %3720

3720:                                             ; preds = %3719
  call void @exit(i32 noundef 1) #11
  unreachable

3721:                                             ; No predecessors!
  br label %3722

3722:                                             ; preds = %3721
  br label %3723

3723:                                             ; preds = %3722, %3663
  br label %3724

3724:                                             ; preds = %3723
  br label %3725

3725:                                             ; preds = %3724
  br label %3726

3726:                                             ; preds = %3808, %3806, %3725
  br label %3727

3727:                                             ; preds = %3726
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #9
  %3728 = getelementptr inbounds %struct.s2n_test_io_pair, ptr %71, i32 0, i32 1
  %3729 = load i32, ptr %3728, align 4, !tbaa !18
  %3730 = getelementptr inbounds [1024 x i8], ptr %81, i64 0, i64 0
  %3731 = call i64 @read(i32 noundef %3729, ptr noundef %3730, i64 noundef 1024)
  store i64 %3731, ptr %91, align 8, !tbaa !16
  %3732 = load i64, ptr %91, align 8, !tbaa !16
  %3733 = icmp sgt i64 %3732, 0
  br i1 %3733, label %3734, label %3735

3734:                                             ; preds = %3727
  store i32 350, ptr %44, align 4
  br label %3806

3735:                                             ; preds = %3727
  br label %3736

3736:                                             ; preds = %3735
  %3737 = load i32, ptr @test_count, align 4, !tbaa !5
  %3738 = add nsw i32 %3737, 1
  store i32 %3738, ptr @test_count, align 4, !tbaa !5
  %3739 = load i64, ptr %91, align 8, !tbaa !16
  %3740 = icmp eq i64 %3739, -1
  br i1 %3740, label %3794, label %3741

3741:                                             ; preds = %3736
  br label %3742

3742:                                             ; preds = %3741
  br label %3743

3743:                                             ; preds = %3742
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #9
  %3744 = call ptr @__errno_location() #10
  %3745 = load i32, ptr %3744, align 4, !tbaa !5
  store i32 %3745, ptr %92, align 4, !tbaa !5
  %3746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3747 = call i32 @s2n_print_stacktrace(ptr noundef %3746)
  %3748 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3749 = trunc i8 %3748 to i1
  br i1 %3749, label %3750, label %3772

3750:                                             ; preds = %3743
  %3751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3752 = call i32 @fileno(ptr noundef %3751) #9
  %3753 = call i32 @isatty(i32 noundef %3752) #9
  %3754 = icmp ne i32 %3753, 0
  br i1 %3754, label %3755, label %3772

3755:                                             ; preds = %3750
  %3756 = load i32, ptr %92, align 4, !tbaa !5
  %3757 = call ptr @__errno_location() #10
  store i32 %3756, ptr %3757, align 4, !tbaa !5
  %3758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3759 = load i32, ptr @test_count, align 4, !tbaa !5
  %3760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3761 = load i32, ptr %3760, align 4, !tbaa !5
  %3762 = call ptr @s2n_strerror(i32 noundef %3761, ptr noundef @.str.4)
  %3763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3764 = load i32, ptr %3763, align 4, !tbaa !5
  %3765 = call ptr @s2n_strerror_debug(i32 noundef %3764, ptr noundef @.str.4)
  %3766 = call ptr @__errno_location() #10
  %3767 = load i32, ptr %3766, align 4, !tbaa !5
  %3768 = call ptr @strerror(i32 noundef %3767) #9
  %3769 = call ptr @__errno_location() #10
  %3770 = load i32, ptr %3769, align 4, !tbaa !5
  %3771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3758, ptr noundef @.str.2, i32 noundef %3759, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 268, ptr noundef %3762, ptr noundef %3765, ptr noundef %3768, i32 noundef %3770) #9
  br label %3789

3772:                                             ; preds = %3750, %3743
  %3773 = load i32, ptr %92, align 4, !tbaa !5
  %3774 = call ptr @__errno_location() #10
  store i32 %3773, ptr %3774, align 4, !tbaa !5
  %3775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3776 = load i32, ptr @test_count, align 4, !tbaa !5
  %3777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3778 = load i32, ptr %3777, align 4, !tbaa !5
  %3779 = call ptr @s2n_strerror(i32 noundef %3778, ptr noundef @.str.4)
  %3780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3781 = load i32, ptr %3780, align 4, !tbaa !5
  %3782 = call ptr @s2n_strerror_debug(i32 noundef %3781, ptr noundef @.str.4)
  %3783 = call ptr @__errno_location() #10
  %3784 = load i32, ptr %3783, align 4, !tbaa !5
  %3785 = call ptr @strerror(i32 noundef %3784) #9
  %3786 = call ptr @__errno_location() #10
  %3787 = load i32, ptr %3786, align 4, !tbaa !5
  %3788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3775, ptr noundef @.str.5, i32 noundef %3776, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 268, ptr noundef %3779, ptr noundef %3782, ptr noundef %3785, i32 noundef %3787) #9
  br label %3789

3789:                                             ; preds = %3772, %3755
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #9
  br label %3790

3790:                                             ; preds = %3789
  br label %3791

3791:                                             ; preds = %3790
  call void @exit(i32 noundef 1) #11
  unreachable

3792:                                             ; No predecessors!
  br label %3793

3793:                                             ; preds = %3792
  br label %3794

3794:                                             ; preds = %3793, %3736
  br label %3795

3795:                                             ; preds = %3794
  br label %3796

3796:                                             ; preds = %3795
  %3797 = call ptr @__errno_location() #10
  %3798 = load i32, ptr %3797, align 4, !tbaa !5
  %3799 = icmp eq i32 %3798, 11
  br i1 %3799, label %3804, label %3800

3800:                                             ; preds = %3796
  %3801 = call ptr @__errno_location() #10
  %3802 = load i32, ptr %3801, align 4, !tbaa !5
  %3803 = icmp eq i32 %3802, 11
  br i1 %3803, label %3804, label %3805

3804:                                             ; preds = %3800, %3796
  store i32 351, ptr %44, align 4
  br label %3806

3805:                                             ; preds = %3800
  store i32 0, ptr %44, align 4
  br label %3806

3806:                                             ; preds = %3805, %3804, %3734
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #9
  %3807 = load i32, ptr %44, align 4
  switch i32 %3807, label %4989 [
    i32 0, label %3808
    i32 350, label %3726
    i32 351, label %3809
  ]

3808:                                             ; preds = %3806
  br label %3726

3809:                                             ; preds = %3806
  br label %3810

3810:                                             ; preds = %3809
  %3811 = load i32, ptr @test_count, align 4, !tbaa !5
  %3812 = add nsw i32 %3811, 1
  store i32 %3812, ptr @test_count, align 4, !tbaa !5
  %3813 = getelementptr inbounds %struct.s2n_test_io_pair, ptr %71, i32 0, i32 1
  %3814 = load i32, ptr %3813, align 4, !tbaa !18
  %3815 = getelementptr inbounds [5 x i8], ptr %70, i64 0, i64 0
  %3816 = call i64 @write(i32 noundef %3814, ptr noundef %3815, i64 noundef 5)
  %3817 = icmp eq i64 %3816, 5
  br i1 %3817, label %3871, label %3818

3818:                                             ; preds = %3810
  br label %3819

3819:                                             ; preds = %3818
  br label %3820

3820:                                             ; preds = %3819
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #9
  %3821 = call ptr @__errno_location() #10
  %3822 = load i32, ptr %3821, align 4, !tbaa !5
  store i32 %3822, ptr %93, align 4, !tbaa !5
  %3823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3824 = call i32 @s2n_print_stacktrace(ptr noundef %3823)
  %3825 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3826 = trunc i8 %3825 to i1
  br i1 %3826, label %3827, label %3849

3827:                                             ; preds = %3820
  %3828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3829 = call i32 @fileno(ptr noundef %3828) #9
  %3830 = call i32 @isatty(i32 noundef %3829) #9
  %3831 = icmp ne i32 %3830, 0
  br i1 %3831, label %3832, label %3849

3832:                                             ; preds = %3827
  %3833 = load i32, ptr %93, align 4, !tbaa !5
  %3834 = call ptr @__errno_location() #10
  store i32 %3833, ptr %3834, align 4, !tbaa !5
  %3835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3836 = load i32, ptr @test_count, align 4, !tbaa !5
  %3837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3838 = load i32, ptr %3837, align 4, !tbaa !5
  %3839 = call ptr @s2n_strerror(i32 noundef %3838, ptr noundef @.str.4)
  %3840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3841 = load i32, ptr %3840, align 4, !tbaa !5
  %3842 = call ptr @s2n_strerror_debug(i32 noundef %3841, ptr noundef @.str.4)
  %3843 = call ptr @__errno_location() #10
  %3844 = load i32, ptr %3843, align 4, !tbaa !5
  %3845 = call ptr @strerror(i32 noundef %3844) #9
  %3846 = call ptr @__errno_location() #10
  %3847 = load i32, ptr %3846, align 4, !tbaa !5
  %3848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3835, ptr noundef @.str.2, i32 noundef %3836, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 275, ptr noundef %3839, ptr noundef %3842, ptr noundef %3845, i32 noundef %3847) #9
  br label %3866

3849:                                             ; preds = %3827, %3820
  %3850 = load i32, ptr %93, align 4, !tbaa !5
  %3851 = call ptr @__errno_location() #10
  store i32 %3850, ptr %3851, align 4, !tbaa !5
  %3852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3853 = load i32, ptr @test_count, align 4, !tbaa !5
  %3854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3855 = load i32, ptr %3854, align 4, !tbaa !5
  %3856 = call ptr @s2n_strerror(i32 noundef %3855, ptr noundef @.str.4)
  %3857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3858 = load i32, ptr %3857, align 4, !tbaa !5
  %3859 = call ptr @s2n_strerror_debug(i32 noundef %3858, ptr noundef @.str.4)
  %3860 = call ptr @__errno_location() #10
  %3861 = load i32, ptr %3860, align 4, !tbaa !5
  %3862 = call ptr @strerror(i32 noundef %3861) #9
  %3863 = call ptr @__errno_location() #10
  %3864 = load i32, ptr %3863, align 4, !tbaa !5
  %3865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3852, ptr noundef @.str.5, i32 noundef %3853, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 275, ptr noundef %3856, ptr noundef %3859, ptr noundef %3862, i32 noundef %3864) #9
  br label %3866

3866:                                             ; preds = %3849, %3832
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #9
  br label %3867

3867:                                             ; preds = %3866
  br label %3868

3868:                                             ; preds = %3867
  call void @exit(i32 noundef 1) #11
  unreachable

3869:                                             ; No predecessors!
  br label %3870

3870:                                             ; preds = %3869
  br label %3871

3871:                                             ; preds = %3870, %3810
  br label %3872

3872:                                             ; preds = %3871
  br label %3873

3873:                                             ; preds = %3872
  br label %3874

3874:                                             ; preds = %3873
  %3875 = load i32, ptr @test_count, align 4, !tbaa !5
  %3876 = add nsw i32 %3875, 1
  store i32 %3876, ptr @test_count, align 4, !tbaa !5
  %3877 = getelementptr inbounds %struct.s2n_test_io_pair, ptr %71, i32 0, i32 1
  %3878 = load i32, ptr %3877, align 4, !tbaa !18
  %3879 = getelementptr inbounds [4 x i8], ptr %68, i64 0, i64 0
  %3880 = call i64 @write(i32 noundef %3878, ptr noundef %3879, i64 noundef 4)
  %3881 = icmp eq i64 %3880, 4
  br i1 %3881, label %3935, label %3882

3882:                                             ; preds = %3874
  br label %3883

3883:                                             ; preds = %3882
  br label %3884

3884:                                             ; preds = %3883
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #9
  %3885 = call ptr @__errno_location() #10
  %3886 = load i32, ptr %3885, align 4, !tbaa !5
  store i32 %3886, ptr %94, align 4, !tbaa !5
  %3887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3888 = call i32 @s2n_print_stacktrace(ptr noundef %3887)
  %3889 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3890 = trunc i8 %3889 to i1
  br i1 %3890, label %3891, label %3913

3891:                                             ; preds = %3884
  %3892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3893 = call i32 @fileno(ptr noundef %3892) #9
  %3894 = call i32 @isatty(i32 noundef %3893) #9
  %3895 = icmp ne i32 %3894, 0
  br i1 %3895, label %3896, label %3913

3896:                                             ; preds = %3891
  %3897 = load i32, ptr %94, align 4, !tbaa !5
  %3898 = call ptr @__errno_location() #10
  store i32 %3897, ptr %3898, align 4, !tbaa !5
  %3899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3900 = load i32, ptr @test_count, align 4, !tbaa !5
  %3901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3902 = load i32, ptr %3901, align 4, !tbaa !5
  %3903 = call ptr @s2n_strerror(i32 noundef %3902, ptr noundef @.str.4)
  %3904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3905 = load i32, ptr %3904, align 4, !tbaa !5
  %3906 = call ptr @s2n_strerror_debug(i32 noundef %3905, ptr noundef @.str.4)
  %3907 = call ptr @__errno_location() #10
  %3908 = load i32, ptr %3907, align 4, !tbaa !5
  %3909 = call ptr @strerror(i32 noundef %3908) #9
  %3910 = call ptr @__errno_location() #10
  %3911 = load i32, ptr %3910, align 4, !tbaa !5
  %3912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3899, ptr noundef @.str.2, i32 noundef %3900, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 276, ptr noundef %3903, ptr noundef %3906, ptr noundef %3909, i32 noundef %3911) #9
  br label %3930

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

3930:                                             ; preds = %3913, %3896
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #9
  br label %3931

3931:                                             ; preds = %3930
  br label %3932

3932:                                             ; preds = %3931
  call void @exit(i32 noundef 1) #11
  unreachable

3933:                                             ; No predecessors!
  br label %3934

3934:                                             ; preds = %3933
  br label %3935

3935:                                             ; preds = %3934, %3874
  br label %3936

3936:                                             ; preds = %3935
  br label %3937

3937:                                             ; preds = %3936
  br label %3938

3938:                                             ; preds = %3937
  %3939 = load i32, ptr @test_count, align 4, !tbaa !5
  %3940 = add nsw i32 %3939, 1
  store i32 %3940, ptr @test_count, align 4, !tbaa !5
  %3941 = getelementptr inbounds %struct.s2n_test_io_pair, ptr %71, i32 0, i32 1
  %3942 = load i32, ptr %3941, align 4, !tbaa !18
  %3943 = getelementptr inbounds [72 x i8], ptr %66, i64 0, i64 0
  %3944 = call i64 @write(i32 noundef %3942, ptr noundef %3943, i64 noundef 72)
  %3945 = icmp eq i64 %3944, 72
  br i1 %3945, label %3999, label %3946

3946:                                             ; preds = %3938
  br label %3947

3947:                                             ; preds = %3946
  br label %3948

3948:                                             ; preds = %3947
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #9
  %3949 = call ptr @__errno_location() #10
  %3950 = load i32, ptr %3949, align 4, !tbaa !5
  store i32 %3950, ptr %95, align 4, !tbaa !5
  %3951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3952 = call i32 @s2n_print_stacktrace(ptr noundef %3951)
  %3953 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3954 = trunc i8 %3953 to i1
  br i1 %3954, label %3955, label %3977

3955:                                             ; preds = %3948
  %3956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3957 = call i32 @fileno(ptr noundef %3956) #9
  %3958 = call i32 @isatty(i32 noundef %3957) #9
  %3959 = icmp ne i32 %3958, 0
  br i1 %3959, label %3960, label %3977

3960:                                             ; preds = %3955
  %3961 = load i32, ptr %95, align 4, !tbaa !5
  %3962 = call ptr @__errno_location() #10
  store i32 %3961, ptr %3962, align 4, !tbaa !5
  %3963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3964 = load i32, ptr @test_count, align 4, !tbaa !5
  %3965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3966 = load i32, ptr %3965, align 4, !tbaa !5
  %3967 = call ptr @s2n_strerror(i32 noundef %3966, ptr noundef @.str.4)
  %3968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3969 = load i32, ptr %3968, align 4, !tbaa !5
  %3970 = call ptr @s2n_strerror_debug(i32 noundef %3969, ptr noundef @.str.4)
  %3971 = call ptr @__errno_location() #10
  %3972 = load i32, ptr %3971, align 4, !tbaa !5
  %3973 = call ptr @strerror(i32 noundef %3972) #9
  %3974 = call ptr @__errno_location() #10
  %3975 = load i32, ptr %3974, align 4, !tbaa !5
  %3976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3963, ptr noundef @.str.2, i32 noundef %3964, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 277, ptr noundef %3967, ptr noundef %3970, ptr noundef %3973, i32 noundef %3975) #9
  br label %3994

3977:                                             ; preds = %3955, %3948
  %3978 = load i32, ptr %95, align 4, !tbaa !5
  %3979 = call ptr @__errno_location() #10
  store i32 %3978, ptr %3979, align 4, !tbaa !5
  %3980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3981 = load i32, ptr @test_count, align 4, !tbaa !5
  %3982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3983 = load i32, ptr %3982, align 4, !tbaa !5
  %3984 = call ptr @s2n_strerror(i32 noundef %3983, ptr noundef @.str.4)
  %3985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3986 = load i32, ptr %3985, align 4, !tbaa !5
  %3987 = call ptr @s2n_strerror_debug(i32 noundef %3986, ptr noundef @.str.4)
  %3988 = call ptr @__errno_location() #10
  %3989 = load i32, ptr %3988, align 4, !tbaa !5
  %3990 = call ptr @strerror(i32 noundef %3989) #9
  %3991 = call ptr @__errno_location() #10
  %3992 = load i32, ptr %3991, align 4, !tbaa !5
  %3993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3980, ptr noundef @.str.5, i32 noundef %3981, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 277, ptr noundef %3984, ptr noundef %3987, ptr noundef %3990, i32 noundef %3992) #9
  br label %3994

3994:                                             ; preds = %3977, %3960
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #9
  br label %3995

3995:                                             ; preds = %3994
  br label %3996

3996:                                             ; preds = %3995
  call void @exit(i32 noundef 1) #11
  unreachable

3997:                                             ; No predecessors!
  br label %3998

3998:                                             ; preds = %3997
  br label %3999

3999:                                             ; preds = %3998, %3938
  br label %4000

4000:                                             ; preds = %3999
  br label %4001

4001:                                             ; preds = %4000
  br label %4002

4002:                                             ; preds = %4001
  %4003 = load i32, ptr @test_count, align 4, !tbaa !5
  %4004 = add nsw i32 %4003, 1
  store i32 %4004, ptr @test_count, align 4, !tbaa !5
  %4005 = load ptr, ptr %63, align 8, !tbaa !9
  %4006 = call i32 @s2n_negotiate(ptr noundef %4005, ptr noundef %65)
  %4007 = icmp eq i32 %4006, -1
  br i1 %4007, label %4061, label %4008

4008:                                             ; preds = %4002
  br label %4009

4009:                                             ; preds = %4008
  br label %4010

4010:                                             ; preds = %4009
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #9
  %4011 = call ptr @__errno_location() #10
  %4012 = load i32, ptr %4011, align 4, !tbaa !5
  store i32 %4012, ptr %96, align 4, !tbaa !5
  %4013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4014 = call i32 @s2n_print_stacktrace(ptr noundef %4013)
  %4015 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4016 = trunc i8 %4015 to i1
  br i1 %4016, label %4017, label %4039

4017:                                             ; preds = %4010
  %4018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4019 = call i32 @fileno(ptr noundef %4018) #9
  %4020 = call i32 @isatty(i32 noundef %4019) #9
  %4021 = icmp ne i32 %4020, 0
  br i1 %4021, label %4022, label %4039

4022:                                             ; preds = %4017
  %4023 = load i32, ptr %96, align 4, !tbaa !5
  %4024 = call ptr @__errno_location() #10
  store i32 %4023, ptr %4024, align 4, !tbaa !5
  %4025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4026 = load i32, ptr @test_count, align 4, !tbaa !5
  %4027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4028 = load i32, ptr %4027, align 4, !tbaa !5
  %4029 = call ptr @s2n_strerror(i32 noundef %4028, ptr noundef @.str.4)
  %4030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4031 = load i32, ptr %4030, align 4, !tbaa !5
  %4032 = call ptr @s2n_strerror_debug(i32 noundef %4031, ptr noundef @.str.4)
  %4033 = call ptr @__errno_location() #10
  %4034 = load i32, ptr %4033, align 4, !tbaa !5
  %4035 = call ptr @strerror(i32 noundef %4034) #9
  %4036 = call ptr @__errno_location() #10
  %4037 = load i32, ptr %4036, align 4, !tbaa !5
  %4038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4025, ptr noundef @.str.2, i32 noundef %4026, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 280, ptr noundef %4029, ptr noundef %4032, ptr noundef %4035, i32 noundef %4037) #9
  br label %4056

4039:                                             ; preds = %4017, %4010
  %4040 = load i32, ptr %96, align 4, !tbaa !5
  %4041 = call ptr @__errno_location() #10
  store i32 %4040, ptr %4041, align 4, !tbaa !5
  %4042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4043 = load i32, ptr @test_count, align 4, !tbaa !5
  %4044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4045 = load i32, ptr %4044, align 4, !tbaa !5
  %4046 = call ptr @s2n_strerror(i32 noundef %4045, ptr noundef @.str.4)
  %4047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4048 = load i32, ptr %4047, align 4, !tbaa !5
  %4049 = call ptr @s2n_strerror_debug(i32 noundef %4048, ptr noundef @.str.4)
  %4050 = call ptr @__errno_location() #10
  %4051 = load i32, ptr %4050, align 4, !tbaa !5
  %4052 = call ptr @strerror(i32 noundef %4051) #9
  %4053 = call ptr @__errno_location() #10
  %4054 = load i32, ptr %4053, align 4, !tbaa !5
  %4055 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4042, ptr noundef @.str.5, i32 noundef %4043, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 280, ptr noundef %4046, ptr noundef %4049, ptr noundef %4052, i32 noundef %4054) #9
  br label %4056

4056:                                             ; preds = %4039, %4022
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #9
  br label %4057

4057:                                             ; preds = %4056
  br label %4058

4058:                                             ; preds = %4057
  call void @exit(i32 noundef 1) #11
  unreachable

4059:                                             ; No predecessors!
  br label %4060

4060:                                             ; preds = %4059
  br label %4061

4061:                                             ; preds = %4060, %4002
  br label %4062

4062:                                             ; preds = %4061
  br label %4063

4063:                                             ; preds = %4062
  br label %4064

4064:                                             ; preds = %4063
  %4065 = load i32, ptr @test_count, align 4, !tbaa !5
  %4066 = add nsw i32 %4065, 1
  store i32 %4066, ptr @test_count, align 4, !tbaa !5
  %4067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4068 = load i32, ptr %4067, align 4, !tbaa !5
  %4069 = icmp eq i32 %4068, 201326592
  br i1 %4069, label %4123, label %4070

4070:                                             ; preds = %4064
  br label %4071

4071:                                             ; preds = %4070
  br label %4072

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

4079:                                             ; preds = %4072
  %4080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4081 = call i32 @fileno(ptr noundef %4080) #9
  %4082 = call i32 @isatty(i32 noundef %4081) #9
  %4083 = icmp ne i32 %4082, 0
  br i1 %4083, label %4084, label %4101

4084:                                             ; preds = %4079
  %4085 = load i32, ptr %97, align 4, !tbaa !5
  %4086 = call ptr @__errno_location() #10
  store i32 %4085, ptr %4086, align 4, !tbaa !5
  %4087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4088 = load i32, ptr @test_count, align 4, !tbaa !5
  %4089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4090 = load i32, ptr %4089, align 4, !tbaa !5
  %4091 = call ptr @s2n_strerror(i32 noundef %4090, ptr noundef @.str.4)
  %4092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4093 = load i32, ptr %4092, align 4, !tbaa !5
  %4094 = call ptr @s2n_strerror_debug(i32 noundef %4093, ptr noundef @.str.4)
  %4095 = call ptr @__errno_location() #10
  %4096 = load i32, ptr %4095, align 4, !tbaa !5
  %4097 = call ptr @strerror(i32 noundef %4096) #9
  %4098 = call ptr @__errno_location() #10
  %4099 = load i32, ptr %4098, align 4, !tbaa !5
  %4100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4087, ptr noundef @.str.2, i32 noundef %4088, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 281, ptr noundef %4091, ptr noundef %4094, ptr noundef %4097, i32 noundef %4099) #9
  br label %4118

4101:                                             ; preds = %4079, %4072
  %4102 = load i32, ptr %97, align 4, !tbaa !5
  %4103 = call ptr @__errno_location() #10
  store i32 %4102, ptr %4103, align 4, !tbaa !5
  %4104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4105 = load i32, ptr @test_count, align 4, !tbaa !5
  %4106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4107 = load i32, ptr %4106, align 4, !tbaa !5
  %4108 = call ptr @s2n_strerror(i32 noundef %4107, ptr noundef @.str.4)
  %4109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4110 = load i32, ptr %4109, align 4, !tbaa !5
  %4111 = call ptr @s2n_strerror_debug(i32 noundef %4110, ptr noundef @.str.4)
  %4112 = call ptr @__errno_location() #10
  %4113 = load i32, ptr %4112, align 4, !tbaa !5
  %4114 = call ptr @strerror(i32 noundef %4113) #9
  %4115 = call ptr @__errno_location() #10
  %4116 = load i32, ptr %4115, align 4, !tbaa !5
  %4117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4104, ptr noundef @.str.5, i32 noundef %4105, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 281, ptr noundef %4108, ptr noundef %4111, ptr noundef %4114, i32 noundef %4116) #9
  br label %4118

4118:                                             ; preds = %4101, %4084
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #9
  br label %4119

4119:                                             ; preds = %4118
  br label %4120

4120:                                             ; preds = %4119
  call void @exit(i32 noundef 1) #11
  unreachable

4121:                                             ; No predecessors!
  br label %4122

4122:                                             ; preds = %4121
  br label %4123

4123:                                             ; preds = %4122, %4064
  br label %4124

4124:                                             ; preds = %4123
  br label %4125

4125:                                             ; preds = %4124
  br label %4126

4126:                                             ; preds = %4125
  %4127 = load i32, ptr @test_count, align 4, !tbaa !5
  %4128 = add nsw i32 %4127, 1
  store i32 %4128, ptr @test_count, align 4, !tbaa !5
  %4129 = load i32, ptr %65, align 4, !tbaa !5
  %4130 = icmp eq i32 %4129, 1
  br i1 %4130, label %4184, label %4131

4131:                                             ; preds = %4126
  br label %4132

4132:                                             ; preds = %4131
  br label %4133

4133:                                             ; preds = %4132
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #9
  %4134 = call ptr @__errno_location() #10
  %4135 = load i32, ptr %4134, align 4, !tbaa !5
  store i32 %4135, ptr %98, align 4, !tbaa !5
  %4136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4137 = call i32 @s2n_print_stacktrace(ptr noundef %4136)
  %4138 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4139 = trunc i8 %4138 to i1
  br i1 %4139, label %4140, label %4162

4140:                                             ; preds = %4133
  %4141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4142 = call i32 @fileno(ptr noundef %4141) #9
  %4143 = call i32 @isatty(i32 noundef %4142) #9
  %4144 = icmp ne i32 %4143, 0
  br i1 %4144, label %4145, label %4162

4145:                                             ; preds = %4140
  %4146 = load i32, ptr %98, align 4, !tbaa !5
  %4147 = call ptr @__errno_location() #10
  store i32 %4146, ptr %4147, align 4, !tbaa !5
  %4148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4149 = load i32, ptr @test_count, align 4, !tbaa !5
  %4150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4151 = load i32, ptr %4150, align 4, !tbaa !5
  %4152 = call ptr @s2n_strerror(i32 noundef %4151, ptr noundef @.str.4)
  %4153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4154 = load i32, ptr %4153, align 4, !tbaa !5
  %4155 = call ptr @s2n_strerror_debug(i32 noundef %4154, ptr noundef @.str.4)
  %4156 = call ptr @__errno_location() #10
  %4157 = load i32, ptr %4156, align 4, !tbaa !5
  %4158 = call ptr @strerror(i32 noundef %4157) #9
  %4159 = call ptr @__errno_location() #10
  %4160 = load i32, ptr %4159, align 4, !tbaa !5
  %4161 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4148, ptr noundef @.str.2, i32 noundef %4149, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 282, ptr noundef %4152, ptr noundef %4155, ptr noundef %4158, i32 noundef %4160) #9
  br label %4179

4162:                                             ; preds = %4140, %4133
  %4163 = load i32, ptr %98, align 4, !tbaa !5
  %4164 = call ptr @__errno_location() #10
  store i32 %4163, ptr %4164, align 4, !tbaa !5
  %4165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4166 = load i32, ptr @test_count, align 4, !tbaa !5
  %4167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4168 = load i32, ptr %4167, align 4, !tbaa !5
  %4169 = call ptr @s2n_strerror(i32 noundef %4168, ptr noundef @.str.4)
  %4170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4171 = load i32, ptr %4170, align 4, !tbaa !5
  %4172 = call ptr @s2n_strerror_debug(i32 noundef %4171, ptr noundef @.str.4)
  %4173 = call ptr @__errno_location() #10
  %4174 = load i32, ptr %4173, align 4, !tbaa !5
  %4175 = call ptr @strerror(i32 noundef %4174) #9
  %4176 = call ptr @__errno_location() #10
  %4177 = load i32, ptr %4176, align 4, !tbaa !5
  %4178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4165, ptr noundef @.str.5, i32 noundef %4166, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 282, ptr noundef %4169, ptr noundef %4172, ptr noundef %4175, i32 noundef %4177) #9
  br label %4179

4179:                                             ; preds = %4162, %4145
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #9
  br label %4180

4180:                                             ; preds = %4179
  br label %4181

4181:                                             ; preds = %4180
  call void @exit(i32 noundef 1) #11
  unreachable

4182:                                             ; No predecessors!
  br label %4183

4183:                                             ; preds = %4182
  br label %4184

4184:                                             ; preds = %4183, %4126
  br label %4185

4185:                                             ; preds = %4184
  br label %4186

4186:                                             ; preds = %4185
  br label %4187

4187:                                             ; preds = %4186
  %4188 = load i32, ptr @test_count, align 4, !tbaa !5
  %4189 = add nsw i32 %4188, 1
  store i32 %4189, ptr @test_count, align 4, !tbaa !5
  %4190 = load ptr, ptr %63, align 8, !tbaa !9
  %4191 = getelementptr inbounds %struct.s2n_connection, ptr %4190, i32 0, i32 21
  %4192 = load i8, ptr %4191, align 2, !tbaa !22
  %4193 = zext i8 %4192 to i32
  %4194 = icmp eq i32 %4193, 33
  br i1 %4194, label %4248, label %4195

4195:                                             ; preds = %4187
  br label %4196

4196:                                             ; preds = %4195
  br label %4197

4197:                                             ; preds = %4196
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #9
  %4198 = call ptr @__errno_location() #10
  %4199 = load i32, ptr %4198, align 4, !tbaa !5
  store i32 %4199, ptr %99, align 4, !tbaa !5
  %4200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4201 = call i32 @s2n_print_stacktrace(ptr noundef %4200)
  %4202 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4203 = trunc i8 %4202 to i1
  br i1 %4203, label %4204, label %4226

4204:                                             ; preds = %4197
  %4205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4206 = call i32 @fileno(ptr noundef %4205) #9
  %4207 = call i32 @isatty(i32 noundef %4206) #9
  %4208 = icmp ne i32 %4207, 0
  br i1 %4208, label %4209, label %4226

4209:                                             ; preds = %4204
  %4210 = load i32, ptr %99, align 4, !tbaa !5
  %4211 = call ptr @__errno_location() #10
  store i32 %4210, ptr %4211, align 4, !tbaa !5
  %4212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4213 = load i32, ptr @test_count, align 4, !tbaa !5
  %4214 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4215 = load i32, ptr %4214, align 4, !tbaa !5
  %4216 = call ptr @s2n_strerror(i32 noundef %4215, ptr noundef @.str.4)
  %4217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4218 = load i32, ptr %4217, align 4, !tbaa !5
  %4219 = call ptr @s2n_strerror_debug(i32 noundef %4218, ptr noundef @.str.4)
  %4220 = call ptr @__errno_location() #10
  %4221 = load i32, ptr %4220, align 4, !tbaa !5
  %4222 = call ptr @strerror(i32 noundef %4221) #9
  %4223 = call ptr @__errno_location() #10
  %4224 = load i32, ptr %4223, align 4, !tbaa !5
  %4225 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4212, ptr noundef @.str.2, i32 noundef %4213, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 285, ptr noundef %4216, ptr noundef %4219, ptr noundef %4222, i32 noundef %4224) #9
  br label %4243

4226:                                             ; preds = %4204, %4197
  %4227 = load i32, ptr %99, align 4, !tbaa !5
  %4228 = call ptr @__errno_location() #10
  store i32 %4227, ptr %4228, align 4, !tbaa !5
  %4229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4230 = load i32, ptr @test_count, align 4, !tbaa !5
  %4231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4232 = load i32, ptr %4231, align 4, !tbaa !5
  %4233 = call ptr @s2n_strerror(i32 noundef %4232, ptr noundef @.str.4)
  %4234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4235 = load i32, ptr %4234, align 4, !tbaa !5
  %4236 = call ptr @s2n_strerror_debug(i32 noundef %4235, ptr noundef @.str.4)
  %4237 = call ptr @__errno_location() #10
  %4238 = load i32, ptr %4237, align 4, !tbaa !5
  %4239 = call ptr @strerror(i32 noundef %4238) #9
  %4240 = call ptr @__errno_location() #10
  %4241 = load i32, ptr %4240, align 4, !tbaa !5
  %4242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4229, ptr noundef @.str.5, i32 noundef %4230, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 285, ptr noundef %4233, ptr noundef %4236, ptr noundef %4239, i32 noundef %4241) #9
  br label %4243

4243:                                             ; preds = %4226, %4209
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #9
  br label %4244

4244:                                             ; preds = %4243
  br label %4245

4245:                                             ; preds = %4244
  call void @exit(i32 noundef 1) #11
  unreachable

4246:                                             ; No predecessors!
  br label %4247

4247:                                             ; preds = %4246
  br label %4248

4248:                                             ; preds = %4247, %4187
  br label %4249

4249:                                             ; preds = %4248
  br label %4250

4250:                                             ; preds = %4249
  br label %4251

4251:                                             ; preds = %4250
  %4252 = load i32, ptr @test_count, align 4, !tbaa !5
  %4253 = add nsw i32 %4252, 1
  store i32 %4253, ptr @test_count, align 4, !tbaa !5
  %4254 = load ptr, ptr %63, align 8, !tbaa !9
  %4255 = getelementptr inbounds %struct.s2n_connection, ptr %4254, i32 0, i32 23
  %4256 = load i8, ptr %4255, align 4, !tbaa !48
  %4257 = zext i8 %4256 to i32
  %4258 = icmp eq i32 %4257, 30
  br i1 %4258, label %4312, label %4259

4259:                                             ; preds = %4251
  br label %4260

4260:                                             ; preds = %4259
  br label %4261

4261:                                             ; preds = %4260
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #9
  %4262 = call ptr @__errno_location() #10
  %4263 = load i32, ptr %4262, align 4, !tbaa !5
  store i32 %4263, ptr %100, align 4, !tbaa !5
  %4264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4265 = call i32 @s2n_print_stacktrace(ptr noundef %4264)
  %4266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4267 = trunc i8 %4266 to i1
  br i1 %4267, label %4268, label %4290

4268:                                             ; preds = %4261
  %4269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4270 = call i32 @fileno(ptr noundef %4269) #9
  %4271 = call i32 @isatty(i32 noundef %4270) #9
  %4272 = icmp ne i32 %4271, 0
  br i1 %4272, label %4273, label %4290

4273:                                             ; preds = %4268
  %4274 = load i32, ptr %100, align 4, !tbaa !5
  %4275 = call ptr @__errno_location() #10
  store i32 %4274, ptr %4275, align 4, !tbaa !5
  %4276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4277 = load i32, ptr @test_count, align 4, !tbaa !5
  %4278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4279 = load i32, ptr %4278, align 4, !tbaa !5
  %4280 = call ptr @s2n_strerror(i32 noundef %4279, ptr noundef @.str.4)
  %4281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4282 = load i32, ptr %4281, align 4, !tbaa !5
  %4283 = call ptr @s2n_strerror_debug(i32 noundef %4282, ptr noundef @.str.4)
  %4284 = call ptr @__errno_location() #10
  %4285 = load i32, ptr %4284, align 4, !tbaa !5
  %4286 = call ptr @strerror(i32 noundef %4285) #9
  %4287 = call ptr @__errno_location() #10
  %4288 = load i32, ptr %4287, align 4, !tbaa !5
  %4289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4276, ptr noundef @.str.2, i32 noundef %4277, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 286, ptr noundef %4280, ptr noundef %4283, ptr noundef %4286, i32 noundef %4288) #9
  br label %4307

4290:                                             ; preds = %4268, %4261
  %4291 = load i32, ptr %100, align 4, !tbaa !5
  %4292 = call ptr @__errno_location() #10
  store i32 %4291, ptr %4292, align 4, !tbaa !5
  %4293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4294 = load i32, ptr @test_count, align 4, !tbaa !5
  %4295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4296 = load i32, ptr %4295, align 4, !tbaa !5
  %4297 = call ptr @s2n_strerror(i32 noundef %4296, ptr noundef @.str.4)
  %4298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4299 = load i32, ptr %4298, align 4, !tbaa !5
  %4300 = call ptr @s2n_strerror_debug(i32 noundef %4299, ptr noundef @.str.4)
  %4301 = call ptr @__errno_location() #10
  %4302 = load i32, ptr %4301, align 4, !tbaa !5
  %4303 = call ptr @strerror(i32 noundef %4302) #9
  %4304 = call ptr @__errno_location() #10
  %4305 = load i32, ptr %4304, align 4, !tbaa !5
  %4306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4293, ptr noundef @.str.5, i32 noundef %4294, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 286, ptr noundef %4297, ptr noundef %4300, ptr noundef %4303, i32 noundef %4305) #9
  br label %4307

4307:                                             ; preds = %4290, %4273
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #9
  br label %4308

4308:                                             ; preds = %4307
  br label %4309

4309:                                             ; preds = %4308
  call void @exit(i32 noundef 1) #11
  unreachable

4310:                                             ; No predecessors!
  br label %4311

4311:                                             ; preds = %4310
  br label %4312

4312:                                             ; preds = %4311, %4251
  br label %4313

4313:                                             ; preds = %4312
  br label %4314

4314:                                             ; preds = %4313
  br label %4315

4315:                                             ; preds = %4314
  %4316 = load i32, ptr @test_count, align 4, !tbaa !5
  %4317 = add nsw i32 %4316, 1
  store i32 %4317, ptr @test_count, align 4, !tbaa !5
  %4318 = load ptr, ptr %63, align 8, !tbaa !9
  %4319 = getelementptr inbounds %struct.s2n_connection, ptr %4318, i32 0, i32 22
  %4320 = load i8, ptr %4319, align 1, !tbaa !49
  %4321 = zext i8 %4320 to i32
  %4322 = icmp eq i32 %4321, 30
  br i1 %4322, label %4376, label %4323

4323:                                             ; preds = %4315
  br label %4324

4324:                                             ; preds = %4323
  br label %4325

4325:                                             ; preds = %4324
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #9
  %4326 = call ptr @__errno_location() #10
  %4327 = load i32, ptr %4326, align 4, !tbaa !5
  store i32 %4327, ptr %101, align 4, !tbaa !5
  %4328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4329 = call i32 @s2n_print_stacktrace(ptr noundef %4328)
  %4330 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4331 = trunc i8 %4330 to i1
  br i1 %4331, label %4332, label %4354

4332:                                             ; preds = %4325
  %4333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4334 = call i32 @fileno(ptr noundef %4333) #9
  %4335 = call i32 @isatty(i32 noundef %4334) #9
  %4336 = icmp ne i32 %4335, 0
  br i1 %4336, label %4337, label %4354

4337:                                             ; preds = %4332
  %4338 = load i32, ptr %101, align 4, !tbaa !5
  %4339 = call ptr @__errno_location() #10
  store i32 %4338, ptr %4339, align 4, !tbaa !5
  %4340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4341 = load i32, ptr @test_count, align 4, !tbaa !5
  %4342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4343 = load i32, ptr %4342, align 4, !tbaa !5
  %4344 = call ptr @s2n_strerror(i32 noundef %4343, ptr noundef @.str.4)
  %4345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4346 = load i32, ptr %4345, align 4, !tbaa !5
  %4347 = call ptr @s2n_strerror_debug(i32 noundef %4346, ptr noundef @.str.4)
  %4348 = call ptr @__errno_location() #10
  %4349 = load i32, ptr %4348, align 4, !tbaa !5
  %4350 = call ptr @strerror(i32 noundef %4349) #9
  %4351 = call ptr @__errno_location() #10
  %4352 = load i32, ptr %4351, align 4, !tbaa !5
  %4353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4340, ptr noundef @.str.2, i32 noundef %4341, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 287, ptr noundef %4344, ptr noundef %4347, ptr noundef %4350, i32 noundef %4352) #9
  br label %4371

4354:                                             ; preds = %4332, %4325
  %4355 = load i32, ptr %101, align 4, !tbaa !5
  %4356 = call ptr @__errno_location() #10
  store i32 %4355, ptr %4356, align 4, !tbaa !5
  %4357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4358 = load i32, ptr @test_count, align 4, !tbaa !5
  %4359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4360 = load i32, ptr %4359, align 4, !tbaa !5
  %4361 = call ptr @s2n_strerror(i32 noundef %4360, ptr noundef @.str.4)
  %4362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4363 = load i32, ptr %4362, align 4, !tbaa !5
  %4364 = call ptr @s2n_strerror_debug(i32 noundef %4363, ptr noundef @.str.4)
  %4365 = call ptr @__errno_location() #10
  %4366 = load i32, ptr %4365, align 4, !tbaa !5
  %4367 = call ptr @strerror(i32 noundef %4366) #9
  %4368 = call ptr @__errno_location() #10
  %4369 = load i32, ptr %4368, align 4, !tbaa !5
  %4370 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4357, ptr noundef @.str.5, i32 noundef %4358, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 287, ptr noundef %4361, ptr noundef %4364, ptr noundef %4367, i32 noundef %4369) #9
  br label %4371

4371:                                             ; preds = %4354, %4337
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #9
  br label %4372

4372:                                             ; preds = %4371
  br label %4373

4373:                                             ; preds = %4372
  call void @exit(i32 noundef 1) #11
  unreachable

4374:                                             ; No predecessors!
  br label %4375

4375:                                             ; preds = %4374
  br label %4376

4376:                                             ; preds = %4375, %4315
  br label %4377

4377:                                             ; preds = %4376
  br label %4378

4378:                                             ; preds = %4377
  br label %4379

4379:                                             ; preds = %4378
  %4380 = load i32, ptr @test_count, align 4, !tbaa !5
  %4381 = add nsw i32 %4380, 1
  store i32 %4381, ptr @test_count, align 4, !tbaa !5
  %4382 = load ptr, ptr %63, align 8, !tbaa !9
  %4383 = call i32 @s2n_shutdown(ptr noundef %4382, ptr noundef %65)
  %4384 = icmp eq i32 %4383, -1
  br i1 %4384, label %4385, label %4438

4385:                                             ; preds = %4379
  br label %4386

4386:                                             ; preds = %4385
  br label %4387

4387:                                             ; preds = %4386
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #9
  %4388 = call ptr @__errno_location() #10
  %4389 = load i32, ptr %4388, align 4, !tbaa !5
  store i32 %4389, ptr %102, align 4, !tbaa !5
  %4390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4391 = call i32 @s2n_print_stacktrace(ptr noundef %4390)
  %4392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4393 = trunc i8 %4392 to i1
  br i1 %4393, label %4394, label %4416

4394:                                             ; preds = %4387
  %4395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4396 = call i32 @fileno(ptr noundef %4395) #9
  %4397 = call i32 @isatty(i32 noundef %4396) #9
  %4398 = icmp ne i32 %4397, 0
  br i1 %4398, label %4399, label %4416

4399:                                             ; preds = %4394
  %4400 = load i32, ptr %102, align 4, !tbaa !5
  %4401 = call ptr @__errno_location() #10
  store i32 %4400, ptr %4401, align 4, !tbaa !5
  %4402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4403 = load i32, ptr @test_count, align 4, !tbaa !5
  %4404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4405 = load i32, ptr %4404, align 4, !tbaa !5
  %4406 = call ptr @s2n_strerror(i32 noundef %4405, ptr noundef @.str.4)
  %4407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4408 = load i32, ptr %4407, align 4, !tbaa !5
  %4409 = call ptr @s2n_strerror_debug(i32 noundef %4408, ptr noundef @.str.4)
  %4410 = call ptr @__errno_location() #10
  %4411 = load i32, ptr %4410, align 4, !tbaa !5
  %4412 = call ptr @strerror(i32 noundef %4411) #9
  %4413 = call ptr @__errno_location() #10
  %4414 = load i32, ptr %4413, align 4, !tbaa !5
  %4415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4402, ptr noundef @.str.2, i32 noundef %4403, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 290, ptr noundef %4406, ptr noundef %4409, ptr noundef %4412, i32 noundef %4414) #9
  br label %4433

4416:                                             ; preds = %4394, %4387
  %4417 = load i32, ptr %102, align 4, !tbaa !5
  %4418 = call ptr @__errno_location() #10
  store i32 %4417, ptr %4418, align 4, !tbaa !5
  %4419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4420 = load i32, ptr @test_count, align 4, !tbaa !5
  %4421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4422 = load i32, ptr %4421, align 4, !tbaa !5
  %4423 = call ptr @s2n_strerror(i32 noundef %4422, ptr noundef @.str.4)
  %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_debug(i32 noundef %4425, ptr noundef @.str.4)
  %4427 = call ptr @__errno_location() #10
  %4428 = load i32, ptr %4427, align 4, !tbaa !5
  %4429 = call ptr @strerror(i32 noundef %4428) #9
  %4430 = call ptr @__errno_location() #10
  %4431 = load i32, ptr %4430, align 4, !tbaa !5
  %4432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4419, ptr noundef @.str.5, i32 noundef %4420, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 290, ptr noundef %4423, ptr noundef %4426, ptr noundef %4429, i32 noundef %4431) #9
  br label %4433

4433:                                             ; preds = %4416, %4399
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #9
  br label %4434

4434:                                             ; preds = %4433
  br label %4435

4435:                                             ; preds = %4434
  call void @exit(i32 noundef 1) #11
  unreachable

4436:                                             ; No predecessors!
  br label %4437

4437:                                             ; preds = %4436
  br label %4438

4438:                                             ; preds = %4437, %4379
  br label %4439

4439:                                             ; preds = %4438
  br label %4440

4440:                                             ; preds = %4439
  store i64 0, ptr %82, align 8, !tbaa !16
  br label %4441

4441:                                             ; preds = %4513, %4440
  %4442 = load i64, ptr %82, align 8, !tbaa !16
  %4443 = icmp ult i64 %4442, 5
  br i1 %4443, label %4444, label %4517

4444:                                             ; preds = %4441
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #9
  %4445 = getelementptr inbounds %struct.s2n_test_io_pair, ptr %71, i32 0, i32 1
  %4446 = load i32, ptr %4445, align 4, !tbaa !18
  %4447 = getelementptr inbounds [1024 x i8], ptr %81, i64 0, i64 0
  %4448 = load i64, ptr %82, align 8, !tbaa !16
  %4449 = getelementptr inbounds i8, ptr %4447, i64 %4448
  %4450 = load i64, ptr %82, align 8, !tbaa !16
  %4451 = sub i64 1024, %4450
  %4452 = call i64 @read(i32 noundef %4446, ptr noundef %4449, i64 noundef %4451)
  store i64 %4452, ptr %103, align 8, !tbaa !16
  br label %4453

4453:                                             ; preds = %4444
  %4454 = load i32, ptr @test_count, align 4, !tbaa !5
  %4455 = add nsw i32 %4454, 1
  store i32 %4455, ptr @test_count, align 4, !tbaa !5
  %4456 = load i64, ptr %103, align 8, !tbaa !16
  %4457 = icmp sgt i64 %4456, 0
  br i1 %4457, label %4511, label %4458

4458:                                             ; preds = %4453
  br label %4459

4459:                                             ; preds = %4458
  br label %4460

4460:                                             ; preds = %4459
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #9
  %4461 = call ptr @__errno_location() #10
  %4462 = load i32, ptr %4461, align 4, !tbaa !5
  store i32 %4462, ptr %104, align 4, !tbaa !5
  %4463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4464 = call i32 @s2n_print_stacktrace(ptr noundef %4463)
  %4465 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4466 = trunc i8 %4465 to i1
  br i1 %4466, label %4467, label %4489

4467:                                             ; preds = %4460
  %4468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4469 = call i32 @fileno(ptr noundef %4468) #9
  %4470 = call i32 @isatty(i32 noundef %4469) #9
  %4471 = icmp ne i32 %4470, 0
  br i1 %4471, label %4472, label %4489

4472:                                             ; preds = %4467
  %4473 = load i32, ptr %104, align 4, !tbaa !5
  %4474 = call ptr @__errno_location() #10
  store i32 %4473, ptr %4474, align 4, !tbaa !5
  %4475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4476 = load i32, ptr @test_count, align 4, !tbaa !5
  %4477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4478 = load i32, ptr %4477, align 4, !tbaa !5
  %4479 = call ptr @s2n_strerror(i32 noundef %4478, ptr noundef @.str.4)
  %4480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4481 = load i32, ptr %4480, align 4, !tbaa !5
  %4482 = call ptr @s2n_strerror_debug(i32 noundef %4481, ptr noundef @.str.4)
  %4483 = call ptr @__errno_location() #10
  %4484 = load i32, ptr %4483, align 4, !tbaa !5
  %4485 = call ptr @strerror(i32 noundef %4484) #9
  %4486 = call ptr @__errno_location() #10
  %4487 = load i32, ptr %4486, align 4, !tbaa !5
  %4488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4475, ptr noundef @.str.2, i32 noundef %4476, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 299, ptr noundef %4479, ptr noundef %4482, ptr noundef %4485, i32 noundef %4487) #9
  br label %4506

4489:                                             ; preds = %4467, %4460
  %4490 = load i32, ptr %104, align 4, !tbaa !5
  %4491 = call ptr @__errno_location() #10
  store i32 %4490, ptr %4491, align 4, !tbaa !5
  %4492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4493 = load i32, ptr @test_count, align 4, !tbaa !5
  %4494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4495 = load i32, ptr %4494, align 4, !tbaa !5
  %4496 = call ptr @s2n_strerror(i32 noundef %4495, ptr noundef @.str.4)
  %4497 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4498 = load i32, ptr %4497, align 4, !tbaa !5
  %4499 = call ptr @s2n_strerror_debug(i32 noundef %4498, ptr noundef @.str.4)
  %4500 = call ptr @__errno_location() #10
  %4501 = load i32, ptr %4500, align 4, !tbaa !5
  %4502 = call ptr @strerror(i32 noundef %4501) #9
  %4503 = call ptr @__errno_location() #10
  %4504 = load i32, ptr %4503, align 4, !tbaa !5
  %4505 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4492, ptr noundef @.str.5, i32 noundef %4493, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 299, ptr noundef %4496, ptr noundef %4499, ptr noundef %4502, i32 noundef %4504) #9
  br label %4506

4506:                                             ; preds = %4489, %4472
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #9
  br label %4507

4507:                                             ; preds = %4506
  br label %4508

4508:                                             ; preds = %4507
  call void @exit(i32 noundef 1) #11
  unreachable

4509:                                             ; No predecessors!
  br label %4510

4510:                                             ; preds = %4509
  br label %4511

4511:                                             ; preds = %4510, %4453
  br label %4512

4512:                                             ; preds = %4511
  br label %4513

4513:                                             ; preds = %4512
  %4514 = load i64, ptr %103, align 8, !tbaa !16
  %4515 = load i64, ptr %82, align 8, !tbaa !16
  %4516 = add i64 %4515, %4514
  store i64 %4516, ptr %82, align 8, !tbaa !16
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #9
  br label %4441, !llvm.loop !52

4517:                                             ; preds = %4441
  br label %4518

4518:                                             ; preds = %4517
  %4519 = load i32, ptr @test_count, align 4, !tbaa !5
  %4520 = add nsw i32 %4519, 1
  store i32 %4520, ptr @test_count, align 4, !tbaa !5
  %4521 = getelementptr inbounds [1024 x i8], ptr %81, i64 0, i64 1
  %4522 = load i8, ptr %4521, align 1, !tbaa !15
  %4523 = zext i8 %4522 to i32
  %4524 = icmp eq i32 %4523, 3
  br i1 %4524, label %4578, label %4525

4525:                                             ; preds = %4518
  br label %4526

4526:                                             ; preds = %4525
  br label %4527

4527:                                             ; preds = %4526
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #9
  %4528 = call ptr @__errno_location() #10
  %4529 = load i32, ptr %4528, align 4, !tbaa !5
  store i32 %4529, ptr %105, align 4, !tbaa !5
  %4530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4531 = call i32 @s2n_print_stacktrace(ptr noundef %4530)
  %4532 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4533 = trunc i8 %4532 to i1
  br i1 %4533, label %4534, label %4556

4534:                                             ; preds = %4527
  %4535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4536 = call i32 @fileno(ptr noundef %4535) #9
  %4537 = call i32 @isatty(i32 noundef %4536) #9
  %4538 = icmp ne i32 %4537, 0
  br i1 %4538, label %4539, label %4556

4539:                                             ; preds = %4534
  %4540 = load i32, ptr %105, align 4, !tbaa !5
  %4541 = call ptr @__errno_location() #10
  store i32 %4540, ptr %4541, align 4, !tbaa !5
  %4542 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4543 = load i32, ptr @test_count, align 4, !tbaa !5
  %4544 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4545 = load i32, ptr %4544, align 4, !tbaa !5
  %4546 = call ptr @s2n_strerror(i32 noundef %4545, ptr noundef @.str.4)
  %4547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4548 = load i32, ptr %4547, align 4, !tbaa !5
  %4549 = call ptr @s2n_strerror_debug(i32 noundef %4548, ptr noundef @.str.4)
  %4550 = call ptr @__errno_location() #10
  %4551 = load i32, ptr %4550, align 4, !tbaa !5
  %4552 = call ptr @strerror(i32 noundef %4551) #9
  %4553 = call ptr @__errno_location() #10
  %4554 = load i32, ptr %4553, align 4, !tbaa !5
  %4555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4542, ptr noundef @.str.2, i32 noundef %4543, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 303, ptr noundef %4546, ptr noundef %4549, ptr noundef %4552, i32 noundef %4554) #9
  br label %4573

4556:                                             ; preds = %4534, %4527
  %4557 = load i32, ptr %105, align 4, !tbaa !5
  %4558 = call ptr @__errno_location() #10
  store i32 %4557, ptr %4558, align 4, !tbaa !5
  %4559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4560 = load i32, ptr @test_count, align 4, !tbaa !5
  %4561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4562 = load i32, ptr %4561, align 4, !tbaa !5
  %4563 = call ptr @s2n_strerror(i32 noundef %4562, ptr noundef @.str.4)
  %4564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4565 = load i32, ptr %4564, align 4, !tbaa !5
  %4566 = call ptr @s2n_strerror_debug(i32 noundef %4565, ptr noundef @.str.4)
  %4567 = call ptr @__errno_location() #10
  %4568 = load i32, ptr %4567, align 4, !tbaa !5
  %4569 = call ptr @strerror(i32 noundef %4568) #9
  %4570 = call ptr @__errno_location() #10
  %4571 = load i32, ptr %4570, align 4, !tbaa !5
  %4572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4559, ptr noundef @.str.5, i32 noundef %4560, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 303, ptr noundef %4563, ptr noundef %4566, ptr noundef %4569, i32 noundef %4571) #9
  br label %4573

4573:                                             ; preds = %4556, %4539
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #9
  br label %4574

4574:                                             ; preds = %4573
  br label %4575

4575:                                             ; preds = %4574
  call void @exit(i32 noundef 1) #11
  unreachable

4576:                                             ; No predecessors!
  br label %4577

4577:                                             ; preds = %4576
  br label %4578

4578:                                             ; preds = %4577, %4518
  br label %4579

4579:                                             ; preds = %4578
  br label %4580

4580:                                             ; preds = %4579
  br label %4581

4581:                                             ; preds = %4580
  %4582 = load i32, ptr @test_count, align 4, !tbaa !5
  %4583 = add nsw i32 %4582, 1
  store i32 %4583, ptr @test_count, align 4, !tbaa !5
  %4584 = getelementptr inbounds [1024 x i8], ptr %81, i64 0, i64 2
  %4585 = load i8, ptr %4584, align 2, !tbaa !15
  %4586 = zext i8 %4585 to i32
  %4587 = icmp eq i32 %4586, 0
  br i1 %4587, label %4641, label %4588

4588:                                             ; preds = %4581
  br label %4589

4589:                                             ; preds = %4588
  br label %4590

4590:                                             ; preds = %4589
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #9
  %4591 = call ptr @__errno_location() #10
  %4592 = load i32, ptr %4591, align 4, !tbaa !5
  store i32 %4592, ptr %106, align 4, !tbaa !5
  %4593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4594 = call i32 @s2n_print_stacktrace(ptr noundef %4593)
  %4595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4596 = trunc i8 %4595 to i1
  br i1 %4596, label %4597, label %4619

4597:                                             ; preds = %4590
  %4598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4599 = call i32 @fileno(ptr noundef %4598) #9
  %4600 = call i32 @isatty(i32 noundef %4599) #9
  %4601 = icmp ne i32 %4600, 0
  br i1 %4601, label %4602, label %4619

4602:                                             ; preds = %4597
  %4603 = load i32, ptr %106, align 4, !tbaa !5
  %4604 = call ptr @__errno_location() #10
  store i32 %4603, ptr %4604, align 4, !tbaa !5
  %4605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4606 = load i32, ptr @test_count, align 4, !tbaa !5
  %4607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4608 = load i32, ptr %4607, align 4, !tbaa !5
  %4609 = call ptr @s2n_strerror(i32 noundef %4608, ptr noundef @.str.4)
  %4610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4611 = load i32, ptr %4610, align 4, !tbaa !5
  %4612 = call ptr @s2n_strerror_debug(i32 noundef %4611, ptr noundef @.str.4)
  %4613 = call ptr @__errno_location() #10
  %4614 = load i32, ptr %4613, align 4, !tbaa !5
  %4615 = call ptr @strerror(i32 noundef %4614) #9
  %4616 = call ptr @__errno_location() #10
  %4617 = load i32, ptr %4616, align 4, !tbaa !5
  %4618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4605, ptr noundef @.str.2, i32 noundef %4606, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 304, ptr noundef %4609, ptr noundef %4612, ptr noundef %4615, i32 noundef %4617) #9
  br label %4636

4619:                                             ; preds = %4597, %4590
  %4620 = load i32, ptr %106, align 4, !tbaa !5
  %4621 = call ptr @__errno_location() #10
  store i32 %4620, ptr %4621, align 4, !tbaa !5
  %4622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4623 = load i32, ptr @test_count, align 4, !tbaa !5
  %4624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4625 = load i32, ptr %4624, align 4, !tbaa !5
  %4626 = call ptr @s2n_strerror(i32 noundef %4625, ptr noundef @.str.4)
  %4627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4628 = load i32, ptr %4627, align 4, !tbaa !5
  %4629 = call ptr @s2n_strerror_debug(i32 noundef %4628, ptr noundef @.str.4)
  %4630 = call ptr @__errno_location() #10
  %4631 = load i32, ptr %4630, align 4, !tbaa !5
  %4632 = call ptr @strerror(i32 noundef %4631) #9
  %4633 = call ptr @__errno_location() #10
  %4634 = load i32, ptr %4633, align 4, !tbaa !5
  %4635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4622, ptr noundef @.str.5, i32 noundef %4623, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 304, ptr noundef %4626, ptr noundef %4629, ptr noundef %4632, i32 noundef %4634) #9
  br label %4636

4636:                                             ; preds = %4619, %4602
  call void @llvm.lifetime.end.p0(i64 4, ptr %106) #9
  br label %4637

4637:                                             ; preds = %4636
  br label %4638

4638:                                             ; preds = %4637
  call void @exit(i32 noundef 1) #11
  unreachable

4639:                                             ; No predecessors!
  br label %4640

4640:                                             ; preds = %4639
  br label %4641

4641:                                             ; preds = %4640, %4581
  br label %4642

4642:                                             ; preds = %4641
  br label %4643

4643:                                             ; preds = %4642
  br label %4644

4644:                                             ; preds = %4643
  %4645 = load i32, ptr @test_count, align 4, !tbaa !5
  %4646 = add nsw i32 %4645, 1
  store i32 %4646, ptr @test_count, align 4, !tbaa !5
  %4647 = load ptr, ptr %63, align 8, !tbaa !9
  %4648 = call i32 @s2n_connection_free(ptr noundef %4647)
  %4649 = icmp eq i32 %4648, -1
  br i1 %4649, label %4650, label %4703

4650:                                             ; preds = %4644
  br label %4651

4651:                                             ; preds = %4650
  br label %4652

4652:                                             ; preds = %4651
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #9
  %4653 = call ptr @__errno_location() #10
  %4654 = load i32, ptr %4653, align 4, !tbaa !5
  store i32 %4654, ptr %107, align 4, !tbaa !5
  %4655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4656 = call i32 @s2n_print_stacktrace(ptr noundef %4655)
  %4657 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4658 = trunc i8 %4657 to i1
  br i1 %4658, label %4659, label %4681

4659:                                             ; preds = %4652
  %4660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4661 = call i32 @fileno(ptr noundef %4660) #9
  %4662 = call i32 @isatty(i32 noundef %4661) #9
  %4663 = icmp ne i32 %4662, 0
  br i1 %4663, label %4664, label %4681

4664:                                             ; preds = %4659
  %4665 = load i32, ptr %107, align 4, !tbaa !5
  %4666 = call ptr @__errno_location() #10
  store i32 %4665, ptr %4666, align 4, !tbaa !5
  %4667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4668 = load i32, ptr @test_count, align 4, !tbaa !5
  %4669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4670 = load i32, ptr %4669, align 4, !tbaa !5
  %4671 = call ptr @s2n_strerror(i32 noundef %4670, ptr noundef @.str.4)
  %4672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4673 = load i32, ptr %4672, align 4, !tbaa !5
  %4674 = call ptr @s2n_strerror_debug(i32 noundef %4673, ptr noundef @.str.4)
  %4675 = call ptr @__errno_location() #10
  %4676 = load i32, ptr %4675, align 4, !tbaa !5
  %4677 = call ptr @strerror(i32 noundef %4676) #9
  %4678 = call ptr @__errno_location() #10
  %4679 = load i32, ptr %4678, align 4, !tbaa !5
  %4680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4667, ptr noundef @.str.2, i32 noundef %4668, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 306, ptr noundef %4671, ptr noundef %4674, ptr noundef %4677, i32 noundef %4679) #9
  br label %4698

4681:                                             ; preds = %4659, %4652
  %4682 = load i32, ptr %107, align 4, !tbaa !5
  %4683 = call ptr @__errno_location() #10
  store i32 %4682, ptr %4683, align 4, !tbaa !5
  %4684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4685 = load i32, ptr @test_count, align 4, !tbaa !5
  %4686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4687 = load i32, ptr %4686, align 4, !tbaa !5
  %4688 = call ptr @s2n_strerror(i32 noundef %4687, ptr noundef @.str.4)
  %4689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4690 = load i32, ptr %4689, align 4, !tbaa !5
  %4691 = call ptr @s2n_strerror_debug(i32 noundef %4690, ptr noundef @.str.4)
  %4692 = call ptr @__errno_location() #10
  %4693 = load i32, ptr %4692, align 4, !tbaa !5
  %4694 = call ptr @strerror(i32 noundef %4693) #9
  %4695 = call ptr @__errno_location() #10
  %4696 = load i32, ptr %4695, align 4, !tbaa !5
  %4697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4684, ptr noundef @.str.5, i32 noundef %4685, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 306, ptr noundef %4688, ptr noundef %4691, ptr noundef %4694, i32 noundef %4696) #9
  br label %4698

4698:                                             ; preds = %4681, %4664
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #9
  br label %4699

4699:                                             ; preds = %4698
  br label %4700

4700:                                             ; preds = %4699
  call void @exit(i32 noundef 1) #11
  unreachable

4701:                                             ; No predecessors!
  br label %4702

4702:                                             ; preds = %4701
  br label %4703

4703:                                             ; preds = %4702, %4644
  br label %4704

4704:                                             ; preds = %4703
  br label %4705

4705:                                             ; preds = %4704
  br label %4706

4706:                                             ; preds = %4705
  %4707 = load i32, ptr @test_count, align 4, !tbaa !5
  %4708 = add nsw i32 %4707, 1
  store i32 %4708, ptr @test_count, align 4, !tbaa !5
  %4709 = load ptr, ptr %64, align 8, !tbaa !9
  %4710 = call i32 @s2n_config_free(ptr noundef %4709)
  %4711 = icmp eq i32 %4710, -1
  br i1 %4711, label %4712, label %4765

4712:                                             ; preds = %4706
  br label %4713

4713:                                             ; preds = %4712
  br label %4714

4714:                                             ; preds = %4713
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #9
  %4715 = call ptr @__errno_location() #10
  %4716 = load i32, ptr %4715, align 4, !tbaa !5
  store i32 %4716, ptr %108, align 4, !tbaa !5
  %4717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4718 = call i32 @s2n_print_stacktrace(ptr noundef %4717)
  %4719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4720 = trunc i8 %4719 to i1
  br i1 %4720, label %4721, label %4743

4721:                                             ; preds = %4714
  %4722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4723 = call i32 @fileno(ptr noundef %4722) #9
  %4724 = call i32 @isatty(i32 noundef %4723) #9
  %4725 = icmp ne i32 %4724, 0
  br i1 %4725, label %4726, label %4743

4726:                                             ; preds = %4721
  %4727 = load i32, ptr %108, align 4, !tbaa !5
  %4728 = call ptr @__errno_location() #10
  store i32 %4727, ptr %4728, align 4, !tbaa !5
  %4729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4730 = load i32, ptr @test_count, align 4, !tbaa !5
  %4731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4732 = load i32, ptr %4731, align 4, !tbaa !5
  %4733 = call ptr @s2n_strerror(i32 noundef %4732, ptr noundef @.str.4)
  %4734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4735 = load i32, ptr %4734, align 4, !tbaa !5
  %4736 = call ptr @s2n_strerror_debug(i32 noundef %4735, ptr noundef @.str.4)
  %4737 = call ptr @__errno_location() #10
  %4738 = load i32, ptr %4737, align 4, !tbaa !5
  %4739 = call ptr @strerror(i32 noundef %4738) #9
  %4740 = call ptr @__errno_location() #10
  %4741 = load i32, ptr %4740, align 4, !tbaa !5
  %4742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4729, ptr noundef @.str.2, i32 noundef %4730, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 307, ptr noundef %4733, ptr noundef %4736, ptr noundef %4739, i32 noundef %4741) #9
  br label %4760

4743:                                             ; preds = %4721, %4714
  %4744 = load i32, ptr %108, align 4, !tbaa !5
  %4745 = call ptr @__errno_location() #10
  store i32 %4744, ptr %4745, align 4, !tbaa !5
  %4746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4747 = load i32, ptr @test_count, align 4, !tbaa !5
  %4748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4749 = load i32, ptr %4748, align 4, !tbaa !5
  %4750 = call ptr @s2n_strerror(i32 noundef %4749, ptr noundef @.str.4)
  %4751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4752 = load i32, ptr %4751, align 4, !tbaa !5
  %4753 = call ptr @s2n_strerror_debug(i32 noundef %4752, ptr noundef @.str.4)
  %4754 = call ptr @__errno_location() #10
  %4755 = load i32, ptr %4754, align 4, !tbaa !5
  %4756 = call ptr @strerror(i32 noundef %4755) #9
  %4757 = call ptr @__errno_location() #10
  %4758 = load i32, ptr %4757, align 4, !tbaa !5
  %4759 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4746, ptr noundef @.str.5, i32 noundef %4747, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 307, ptr noundef %4750, ptr noundef %4753, ptr noundef %4756, i32 noundef %4758) #9
  br label %4760

4760:                                             ; preds = %4743, %4726
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #9
  br label %4761

4761:                                             ; preds = %4760
  br label %4762

4762:                                             ; preds = %4761
  call void @exit(i32 noundef 1) #11
  unreachable

4763:                                             ; No predecessors!
  br label %4764

4764:                                             ; preds = %4763
  br label %4765

4765:                                             ; preds = %4764, %4706
  br label %4766

4766:                                             ; preds = %4765
  br label %4767

4767:                                             ; preds = %4766
  br label %4768

4768:                                             ; preds = %4767
  %4769 = load i32, ptr @test_count, align 4, !tbaa !5
  %4770 = add nsw i32 %4769, 1
  store i32 %4770, ptr @test_count, align 4, !tbaa !5
  %4771 = call i32 @s2n_io_pair_close(ptr noundef %71)
  %4772 = icmp eq i32 %4771, -1
  br i1 %4772, label %4773, label %4826

4773:                                             ; preds = %4768
  br label %4774

4774:                                             ; preds = %4773
  br label %4775

4775:                                             ; preds = %4774
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #9
  %4776 = call ptr @__errno_location() #10
  %4777 = load i32, ptr %4776, align 4, !tbaa !5
  store i32 %4777, ptr %109, align 4, !tbaa !5
  %4778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4779 = call i32 @s2n_print_stacktrace(ptr noundef %4778)
  %4780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4781 = trunc i8 %4780 to i1
  br i1 %4781, label %4782, label %4804

4782:                                             ; preds = %4775
  %4783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4784 = call i32 @fileno(ptr noundef %4783) #9
  %4785 = call i32 @isatty(i32 noundef %4784) #9
  %4786 = icmp ne i32 %4785, 0
  br i1 %4786, label %4787, label %4804

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

4804:                                             ; preds = %4782, %4775
  %4805 = load i32, ptr %109, align 4, !tbaa !5
  %4806 = call ptr @__errno_location() #10
  store i32 %4805, ptr %4806, align 4, !tbaa !5
  %4807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4808 = load i32, ptr @test_count, align 4, !tbaa !5
  %4809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4810 = load i32, ptr %4809, align 4, !tbaa !5
  %4811 = call ptr @s2n_strerror(i32 noundef %4810, ptr noundef @.str.4)
  %4812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4813 = load i32, ptr %4812, align 4, !tbaa !5
  %4814 = call ptr @s2n_strerror_debug(i32 noundef %4813, ptr noundef @.str.4)
  %4815 = call ptr @__errno_location() #10
  %4816 = load i32, ptr %4815, align 4, !tbaa !5
  %4817 = call ptr @strerror(i32 noundef %4816) #9
  %4818 = call ptr @__errno_location() #10
  %4819 = load i32, ptr %4818, align 4, !tbaa !5
  %4820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4807, ptr noundef @.str.5, i32 noundef %4808, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 309, ptr noundef %4811, ptr noundef %4814, ptr noundef %4817, i32 noundef %4819) #9
  br label %4821

4821:                                             ; preds = %4804, %4787
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #9
  br label %4822

4822:                                             ; preds = %4821
  br label %4823

4823:                                             ; preds = %4822
  call void @exit(i32 noundef 1) #11
  unreachable

4824:                                             ; No predecessors!
  br label %4825

4825:                                             ; preds = %4824
  br label %4826

4826:                                             ; preds = %4825, %4768
  br label %4827

4827:                                             ; preds = %4826
  br label %4828

4828:                                             ; preds = %4827
  call void @llvm.lifetime.end.p0(i64 8, ptr %82) #9
  call void @llvm.lifetime.end.p0(i64 1024, ptr %81) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 5, ptr %70) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 72, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  %4829 = load ptr, ptr %6, align 8, !tbaa !9
  call void @free(ptr noundef %4829) #9
  %4830 = load ptr, ptr %7, align 8, !tbaa !9
  call void @free(ptr noundef %4830) #9
  br label %4831

4831:                                             ; preds = %4828
  br label %4832

4832:                                             ; preds = %4831
  %4833 = call i32 @s2n_cleanup()
  %4834 = icmp eq i32 %4833, -1
  br i1 %4834, label %4835, label %4888

4835:                                             ; preds = %4832
  br label %4836

4836:                                             ; preds = %4835
  br label %4837

4837:                                             ; preds = %4836
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #9
  %4838 = call ptr @__errno_location() #10
  %4839 = load i32, ptr %4838, align 4, !tbaa !5
  store i32 %4839, ptr %110, align 4, !tbaa !5
  %4840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4841 = call i32 @s2n_print_stacktrace(ptr noundef %4840)
  %4842 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4843 = trunc i8 %4842 to i1
  br i1 %4843, label %4844, label %4866

4844:                                             ; preds = %4837
  %4845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4846 = call i32 @fileno(ptr noundef %4845) #9
  %4847 = call i32 @isatty(i32 noundef %4846) #9
  %4848 = icmp ne i32 %4847, 0
  br i1 %4848, label %4849, label %4866

4849:                                             ; preds = %4844
  %4850 = load i32, ptr %110, align 4, !tbaa !5
  %4851 = call ptr @__errno_location() #10
  store i32 %4850, ptr %4851, align 4, !tbaa !5
  %4852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4853 = load i32, ptr @test_count, align 4, !tbaa !5
  %4854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4855 = load i32, ptr %4854, align 4, !tbaa !5
  %4856 = call ptr @s2n_strerror(i32 noundef %4855, ptr noundef @.str.4)
  %4857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4858 = load i32, ptr %4857, align 4, !tbaa !5
  %4859 = call ptr @s2n_strerror_debug(i32 noundef %4858, ptr noundef @.str.4)
  %4860 = call ptr @__errno_location() #10
  %4861 = load i32, ptr %4860, align 4, !tbaa !5
  %4862 = call ptr @strerror(i32 noundef %4861) #9
  %4863 = call ptr @__errno_location() #10
  %4864 = load i32, ptr %4863, align 4, !tbaa !5
  %4865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4852, ptr noundef @.str.2, i32 noundef %4853, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 314, ptr noundef %4856, ptr noundef %4859, ptr noundef %4862, i32 noundef %4864) #9
  br label %4883

4866:                                             ; preds = %4844, %4837
  %4867 = load i32, ptr %110, align 4, !tbaa !5
  %4868 = call ptr @__errno_location() #10
  store i32 %4867, ptr %4868, align 4, !tbaa !5
  %4869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4870 = load i32, ptr @test_count, align 4, !tbaa !5
  %4871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4872 = load i32, ptr %4871, align 4, !tbaa !5
  %4873 = call ptr @s2n_strerror(i32 noundef %4872, ptr noundef @.str.4)
  %4874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4875 = load i32, ptr %4874, align 4, !tbaa !5
  %4876 = call ptr @s2n_strerror_debug(i32 noundef %4875, ptr noundef @.str.4)
  %4877 = call ptr @__errno_location() #10
  %4878 = load i32, ptr %4877, align 4, !tbaa !5
  %4879 = call ptr @strerror(i32 noundef %4878) #9
  %4880 = call ptr @__errno_location() #10
  %4881 = load i32, ptr %4880, align 4, !tbaa !5
  %4882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4869, ptr noundef @.str.5, i32 noundef %4870, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 314, ptr noundef %4873, ptr noundef %4876, ptr noundef %4879, i32 noundef %4881) #9
  br label %4883

4883:                                             ; preds = %4866, %4849
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #9
  br label %4884

4884:                                             ; preds = %4883
  br label %4885

4885:                                             ; preds = %4884
  call void @exit(i32 noundef 1) #11
  unreachable

4886:                                             ; No predecessors!
  br label %4887

4887:                                             ; preds = %4886
  br label %4888

4888:                                             ; preds = %4887, %4832
  br label %4889

4889:                                             ; preds = %4888
  br label %4890

4890:                                             ; preds = %4889
  br label %4891

4891:                                             ; preds = %4890
  br label %4892

4892:                                             ; preds = %4891
  %4893 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %4894 = icmp eq i32 %4893, -1
  br i1 %4894, label %4895, label %4948

4895:                                             ; preds = %4892
  br label %4896

4896:                                             ; preds = %4895
  br label %4897

4897:                                             ; preds = %4896
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #9
  %4898 = call ptr @__errno_location() #10
  %4899 = load i32, ptr %4898, align 4, !tbaa !5
  store i32 %4899, ptr %111, align 4, !tbaa !5
  %4900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4901 = call i32 @s2n_print_stacktrace(ptr noundef %4900)
  %4902 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4903 = trunc i8 %4902 to i1
  br i1 %4903, label %4904, label %4926

4904:                                             ; preds = %4897
  %4905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4906 = call i32 @fileno(ptr noundef %4905) #9
  %4907 = call i32 @isatty(i32 noundef %4906) #9
  %4908 = icmp ne i32 %4907, 0
  br i1 %4908, label %4909, label %4926

4909:                                             ; preds = %4904
  %4910 = load i32, ptr %111, align 4, !tbaa !5
  %4911 = call ptr @__errno_location() #10
  store i32 %4910, ptr %4911, align 4, !tbaa !5
  %4912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4913 = load i32, ptr @test_count, align 4, !tbaa !5
  %4914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4915 = load i32, ptr %4914, align 4, !tbaa !5
  %4916 = call ptr @s2n_strerror(i32 noundef %4915, ptr noundef @.str.4)
  %4917 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4918 = load i32, ptr %4917, align 4, !tbaa !5
  %4919 = call ptr @s2n_strerror_debug(i32 noundef %4918, ptr noundef @.str.4)
  %4920 = call ptr @__errno_location() #10
  %4921 = load i32, ptr %4920, align 4, !tbaa !5
  %4922 = call ptr @strerror(i32 noundef %4921) #9
  %4923 = call ptr @__errno_location() #10
  %4924 = load i32, ptr %4923, align 4, !tbaa !5
  %4925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4912, ptr noundef @.str.2, i32 noundef %4913, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 314, ptr noundef %4916, ptr noundef %4919, ptr noundef %4922, i32 noundef %4924) #9
  br label %4943

4926:                                             ; preds = %4904, %4897
  %4927 = load i32, ptr %111, align 4, !tbaa !5
  %4928 = call ptr @__errno_location() #10
  store i32 %4927, ptr %4928, align 4, !tbaa !5
  %4929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4930 = load i32, ptr @test_count, align 4, !tbaa !5
  %4931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4932 = load i32, ptr %4931, align 4, !tbaa !5
  %4933 = call ptr @s2n_strerror(i32 noundef %4932, ptr noundef @.str.4)
  %4934 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4935 = load i32, ptr %4934, align 4, !tbaa !5
  %4936 = call ptr @s2n_strerror_debug(i32 noundef %4935, ptr noundef @.str.4)
  %4937 = call ptr @__errno_location() #10
  %4938 = load i32, ptr %4937, align 4, !tbaa !5
  %4939 = call ptr @strerror(i32 noundef %4938) #9
  %4940 = call ptr @__errno_location() #10
  %4941 = load i32, ptr %4940, align 4, !tbaa !5
  %4942 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4929, ptr noundef @.str.5, i32 noundef %4930, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 314, ptr noundef %4933, ptr noundef %4936, ptr noundef %4939, i32 noundef %4941) #9
  br label %4943

4943:                                             ; preds = %4926, %4909
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #9
  br label %4944

4944:                                             ; preds = %4943
  br label %4945

4945:                                             ; preds = %4944
  call void @exit(i32 noundef 1) #11
  unreachable

4946:                                             ; No predecessors!
  br label %4947

4947:                                             ; preds = %4946
  br label %4948

4948:                                             ; preds = %4947, %4892
  br label %4949

4949:                                             ; preds = %4948
  br label %4950

4950:                                             ; preds = %4949
  %4951 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4952 = trunc i8 %4951 to i1
  br i1 %4952, label %4953, label %4969

4953:                                             ; preds = %4950
  %4954 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4955 = call i32 @fileno(ptr noundef %4954) #9
  %4956 = call i32 @isatty(i32 noundef %4955) #9
  %4957 = icmp ne i32 %4956, 0
  br i1 %4957, label %4958, label %4969

4958:                                             ; preds = %4953
  %4959 = load i32, ptr @test_count, align 4, !tbaa !5
  %4960 = icmp ne i32 %4959, 0
  br i1 %4960, label %4961, label %4965

4961:                                             ; preds = %4958
  %4962 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4963 = load i32, ptr @test_count, align 4, !tbaa !5
  %4964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4962, ptr noundef @.str.49, i32 noundef %4963) #9
  br label %4968

4965:                                             ; preds = %4958
  %4966 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4966, ptr noundef @.str.50) #9
  br label %4968

4968:                                             ; preds = %4965, %4961
  br label %4980

4969:                                             ; preds = %4953, %4950
  %4970 = load i32, ptr @test_count, align 4, !tbaa !5
  %4971 = icmp ne i32 %4970, 0
  br i1 %4971, label %4972, label %4976

4972:                                             ; preds = %4969
  %4973 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4974 = load i32, ptr @test_count, align 4, !tbaa !5
  %4975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4973, ptr noundef @.str.51, i32 noundef %4974) #9
  br label %4979

4976:                                             ; preds = %4969
  %4977 = load ptr, ptr @stdout, align 8, !tbaa !9
  %4978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4977, ptr noundef @.str.52) #9
  br label %4979

4979:                                             ; preds = %4976, %4972
  br label %4980

4980:                                             ; preds = %4979, %4968
  store i32 0, ptr %3, align 4
  store i32 1, ptr %44, align 4
  br label %4985

4981:                                             ; No predecessors!
  br label %4982

4982:                                             ; preds = %4981
  br label %4983

4983:                                             ; preds = %4982
  br label %4984

4984:                                             ; preds = %4983
  store i32 0, ptr %44, align 4
  br label %4985

4985:                                             ; preds = %4984, %4980
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #9
  %4986 = load i32, ptr %44, align 4
  switch i32 %4986, label %4989 [
    i32 0, label %4987
    i32 1, label %4987
  ]

4987:                                             ; preds = %4985, %4985
  %4988 = load i32, ptr %3, align 4
  ret i32 %4988

4989:                                             ; preds = %4985, %3806, %1664
  unreachable
}

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

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

declare i32 @fflush(ptr noundef) #3

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #3

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

declare i32 @s2n_print_stacktrace(ptr noundef) #3

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

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

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

; 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) #3

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

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

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

declare i32 @s2n_enable_atexit() #3

declare i32 @s2n_init() #3

declare i32 @s2n_disable_tls13_in_test(...) #3

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #7

; Function Attrs: nounwind
declare i32 @setenv(ptr noundef, ptr noundef, i32 noundef) #2

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

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #3

declare ptr @s2n_connection_new(i32 noundef) #3

declare i32 @s2n_connection_set_io_pair(ptr noundef, ptr noundef) #3

declare ptr @s2n_config_new() #3

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

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

declare i32 @s2n_negotiate(ptr noundef, ptr noundef) #3

declare i64 @read(i32 noundef, ptr noundef, i64 noundef) #3

declare i64 @write(i32 noundef, ptr noundef, i64 noundef) #3

declare i32 @s2n_shutdown(ptr noundef, ptr noundef) #3

declare i32 @s2n_connection_free(ptr noundef) #3

declare i32 @s2n_config_free(ptr noundef) #3

declare i32 @s2n_io_pair_close(ptr noundef) #3

; Function Attrs: nounwind
declare void @free(ptr noundef) #2

declare i32 @s2n_cleanup() #3

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 = { 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 #3 = { "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 allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { nounwind }
attributes #10 = { nounwind willreturn memory(none) }
attributes #11 = { noreturn nounwind }
attributes #12 = { nounwind allocsize(0) }

!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 = !{!7, !7, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"long", !7, i64 0}
!18 = !{!19, !6, i64 4}
!19 = !{!"s2n_test_io_pair", !6, i64 0, !6, i64 4}
!20 = distinct !{!20, !21}
!21 = !{!"llvm.loop.mustprogress"}
!22 = !{!23, !7, i64 218}
!23 = !{!"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, !24, i64 160, !17, i64 168, !17, 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, !25, i64 240, !10, i64 632, !10, i64 640, !26, i64 648, !32, i64 1144, !35, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !38, i64 1776, !38, i64 1816, !38, i64 1856, !38, i64 1896, !6, i64 1936, !17, i64 1944, !7, i64 1952, !38, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !39, i64 2004, !39, i64 2008, !40, i64 2016, !37, i64 2208, !6, i64 2212, !37, i64 2216, !17, i64 2224, !7, i64 2232, !17, i64 2240, !17, i64 2248, !17, i64 2256, !39, i64 2264, !39, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !31, i64 2792, !6, i64 2816, !31, i64 2824, !31, i64 2848, !31, i64 2872, !42, i64 2896, !44, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !31, i64 3784, !6, i64 3808, !46, i64 3816, !7, i64 3848, !38, i64 3992, !31, i64 4032, !31, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !37, i64 4084, !37, i64 4086, !6, i64 4088, !6, i64 4092, !31, i64 4096, !6, i64 4120, !47, i64 4128, !39, i64 4176, !7, i64 4180, !7, i64 4181}
!24 = !{!"s2n_timer", !17, i64 0}
!25 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!26 = !{!"s2n_kex_parameters", !27, i64 0, !28, i64 8, !7, i64 24, !28, i64 56, !29, i64 72, !29, i64 184, !7, i64 296, !30, i64 360, !31, i64 448, !31, i64 472}
!27 = !{!"s2n_dh_params", !10, i64 0}
!28 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!29 = !{!"s2n_kem_group_params", !10, i64 0, !30, i64 8, !28, i64 96}
!30 = !{!"s2n_kem_params", !10, i64 0, !31, i64 8, !31, i64 32, !31, i64 56, !12, i64 80}
!31 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!32 = !{!"s2n_handshake_parameters", !33, i64 0, !33, i64 48, !31, i64 96, !6, i64 120, !34, 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}
!33 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!34 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!35 = !{!"s2n_psk_parameters", !6, i64 0, !36, i64 8, !37, i64 40, !37, i64 42, !10, i64 48, !6, i64 56}
!36 = !{!"s2n_array", !31, i64 0, !6, i64 24, !6, i64 28}
!37 = !{!"short", !7, i64 0}
!38 = !{!"s2n_stuffer", !31, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!39 = !{!"", !6, i64 0}
!40 = !{!"s2n_handshake", !38, 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, !41, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!41 = !{!"s2n_offered_early_data", !10, i64 0}
!42 = !{!"s2n_client_hello", !31, i64 0, !43, i64 24, !31, i64 728, !31, i64 752, !31, 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}
!43 = !{!"", !7, i64 0, !31, i64 672, !37, i64 696}
!44 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !37, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !45, i64 48, !12, i64 52}
!45 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!46 = !{!"s2n_ticket_fields", !31, i64 0, !6, i64 24}
!47 = !{!"s2n_post_handshake", !38, i64 0, !7, i64 40}
!48 = !{!23, !7, i64 220}
!49 = !{!23, !7, i64 219}
!50 = distinct !{!50, !21}
!51 = distinct !{!51, !21}
!52 = distinct !{!52, !21}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.s2n_test_io_pair = type { i32, i32 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [89 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.11 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [61 x i8], align 1
@__const.main.server_hello_message = external hidden unnamed_addr constant [72 x i8], align 16
@.str.14 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [123 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [56 x i8], align 1
@__const.main.server_hello_message.43 = external hidden unnamed_addr constant [72 x i8], align 16
@.str.44 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca i32, align 4
  %4 = alloca [4 x i8], align 4
  %5 = alloca [5 x i8], align 4
  %6 = alloca %struct.s2n_test_io_pair, align 4
  %7 = alloca [1024 x i8], align 16
  %8 = alloca i32, align 4
  %9 = alloca [4 x i8], align 4
  %10 = alloca [5 x i8], align 4
  %11 = alloca %struct.s2n_test_io_pair, align 4
  %12 = alloca [1024 x i8], align 16
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %13 = load ptr, ptr @stdout, align 8, !tbaa !9
  %14 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #9
  %15 = load ptr, ptr @stdout, align 8, !tbaa !9
  %16 = tail call i32 @fflush(ptr noundef %15)
  %17 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #9
  %18 = icmp eq i32 %17, -1
  br i1 %18, label %19, label %43

19:                                               ; preds = %2
  %20 = tail call ptr @__errno_location() #10
  %21 = load i32, ptr %20, align 4, !tbaa !5
  %22 = load ptr, ptr @stderr, align 8, !tbaa !9
  %23 = tail call i32 @s2n_print_stacktrace(ptr noundef %22) #9
  %24 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %25 = trunc nuw i8 %24 to i1
  br i1 %25, label %26, label %30

26:                                               ; preds = %19
  %27 = load ptr, ptr @stderr, align 8, !tbaa !9
  %28 = tail call i32 @fileno(ptr noundef %27) #9
  %29 = tail call i32 @isatty(i32 noundef %28) #9
  %.not310 = icmp eq i32 %29, 0
  br i1 %.not310, label %30, label %31

30:                                               ; preds = %26, %19
  br label %31

31:                                               ; preds = %26, %30
  %.str.5.sink = phi ptr [ @.str.5, %30 ], [ @.str.2, %26 ]
  store i32 %21, ptr %20, align 4, !tbaa !5
  %32 = load ptr, ptr @stderr, align 8, !tbaa !9
  %33 = load i32, ptr @test_count, align 4, !tbaa !5
  %34 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %35 = load i32, ptr %34, align 4, !tbaa !5
  %36 = tail call ptr @s2n_strerror(i32 noundef %35, ptr noundef nonnull @.str.4) #9
  %37 = load i32, ptr %34, align 4, !tbaa !5
  %38 = tail call ptr @s2n_strerror_debug(i32 noundef %37, ptr noundef nonnull @.str.4) #9
  %39 = load i32, ptr %20, align 4, !tbaa !5
  %40 = tail call ptr @strerror(i32 noundef %39) #9
  %41 = load i32, ptr %20, align 4, !tbaa !5
  %42 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %32, ptr noundef nonnull %.str.5.sink, i32 noundef %33, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 37, ptr noundef %36, ptr noundef %38, ptr noundef %40, i32 noundef %41) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

43:                                               ; preds = %2
  %44 = load i32, ptr @test_count, align 4, !tbaa !5
  %45 = add nsw i32 %44, 1
  store i32 %45, ptr @test_count, align 4, !tbaa !5
  %46 = tail call i32 @s2n_enable_atexit() #9
  %47 = icmp eq i32 %46, -1
  br i1 %47, label %48, label %72

48:                                               ; preds = %43
  %49 = tail call ptr @__errno_location() #10
  %50 = load i32, ptr %49, align 4, !tbaa !5
  %51 = load ptr, ptr @stderr, align 8, !tbaa !9
  %52 = tail call i32 @s2n_print_stacktrace(ptr noundef %51) #9
  %53 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %54 = trunc nuw i8 %53 to i1
  br i1 %54, label %55, label %59

55:                                               ; preds = %48
  %56 = load ptr, ptr @stderr, align 8, !tbaa !9
  %57 = tail call i32 @fileno(ptr noundef %56) #9
  %58 = tail call i32 @isatty(i32 noundef %57) #9
  %.not309 = icmp eq i32 %58, 0
  br i1 %.not309, label %59, label %60

59:                                               ; preds = %55, %48
  br label %60

60:                                               ; preds = %55, %59
  %.str.5.sink340 = phi ptr [ @.str.5, %59 ], [ @.str.2, %55 ]
  store i32 %50, ptr %49, align 4, !tbaa !5
  %61 = load ptr, ptr @stderr, align 8, !tbaa !9
  %62 = load i32, ptr @test_count, align 4, !tbaa !5
  %63 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %64 = load i32, ptr %63, align 4, !tbaa !5
  %65 = tail call ptr @s2n_strerror(i32 noundef %64, ptr noundef nonnull @.str.4) #9
  %66 = load i32, ptr %63, align 4, !tbaa !5
  %67 = tail call ptr @s2n_strerror_debug(i32 noundef %66, ptr noundef nonnull @.str.4) #9
  %68 = load i32, ptr %49, align 4, !tbaa !5
  %69 = tail call ptr @strerror(i32 noundef %68) #9
  %70 = load i32, ptr %49, align 4, !tbaa !5
  %71 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %61, ptr noundef nonnull %.str.5.sink340, i32 noundef %62, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 37, ptr noundef %65, ptr noundef %67, ptr noundef %69, i32 noundef %70) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

72:                                               ; preds = %43
  %73 = tail call i32 @s2n_init() #9
  %74 = icmp eq i32 %73, -1
  br i1 %74, label %75, label %99

75:                                               ; preds = %72
  %76 = tail call ptr @__errno_location() #10
  %77 = load i32, ptr %76, align 4, !tbaa !5
  %78 = load ptr, ptr @stderr, align 8, !tbaa !9
  %79 = tail call i32 @s2n_print_stacktrace(ptr noundef %78) #9
  %80 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %81 = trunc nuw i8 %80 to i1
  br i1 %81, label %82, label %86

82:                                               ; preds = %75
  %83 = load ptr, ptr @stderr, align 8, !tbaa !9
  %84 = tail call i32 @fileno(ptr noundef %83) #9
  %85 = tail call i32 @isatty(i32 noundef %84) #9
  %.not308 = icmp eq i32 %85, 0
  br i1 %.not308, label %86, label %87

86:                                               ; preds = %82, %75
  br label %87

87:                                               ; preds = %82, %86
  %.str.5.sink351 = phi ptr [ @.str.5, %86 ], [ @.str.2, %82 ]
  store i32 %77, ptr %76, align 4, !tbaa !5
  %88 = load ptr, ptr @stderr, align 8, !tbaa !9
  %89 = load i32, ptr @test_count, align 4, !tbaa !5
  %90 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %91 = load i32, ptr %90, align 4, !tbaa !5
  %92 = tail call ptr @s2n_strerror(i32 noundef %91, ptr noundef nonnull @.str.4) #9
  %93 = load i32, ptr %90, align 4, !tbaa !5
  %94 = tail call ptr @s2n_strerror_debug(i32 noundef %93, ptr noundef nonnull @.str.4) #9
  %95 = load i32, ptr %76, align 4, !tbaa !5
  %96 = tail call ptr @strerror(i32 noundef %95) #9
  %97 = load i32, ptr %76, align 4, !tbaa !5
  %98 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %88, ptr noundef nonnull %.str.5.sink351, i32 noundef %89, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 37, ptr noundef %92, ptr noundef %94, ptr noundef %96, i32 noundef %97) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

99:                                               ; preds = %72
  %100 = load i32, ptr @test_count, align 4, !tbaa !5
  %101 = add nsw i32 %100, 1
  store i32 %101, ptr @test_count, align 4, !tbaa !5
  %102 = tail call i32 (...) @s2n_disable_tls13_in_test() #9
  %103 = icmp eq i32 %102, -1
  br i1 %103, label %104, label %128

104:                                              ; preds = %99
  %105 = tail call ptr @__errno_location() #10
  %106 = load i32, ptr %105, align 4, !tbaa !5
  %107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %108 = tail call i32 @s2n_print_stacktrace(ptr noundef %107) #9
  %109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %110 = trunc nuw i8 %109 to i1
  br i1 %110, label %111, label %115

111:                                              ; preds = %104
  %112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %113 = tail call i32 @fileno(ptr noundef %112) #9
  %114 = tail call i32 @isatty(i32 noundef %113) #9
  %.not307 = icmp eq i32 %114, 0
  br i1 %.not307, label %115, label %116

115:                                              ; preds = %111, %104
  br label %116

116:                                              ; preds = %111, %115
  %.str.5.sink362 = phi ptr [ @.str.5, %115 ], [ @.str.2, %111 ]
  store i32 %106, ptr %105, align 4, !tbaa !5
  %117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %118 = load i32, ptr @test_count, align 4, !tbaa !5
  %119 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %120 = load i32, ptr %119, align 4, !tbaa !5
  %121 = tail call ptr @s2n_strerror(i32 noundef %120, ptr noundef nonnull @.str.4) #9
  %122 = load i32, ptr %119, align 4, !tbaa !5
  %123 = tail call ptr @s2n_strerror_debug(i32 noundef %122, ptr noundef nonnull @.str.4) #9
  %124 = load i32, ptr %105, align 4, !tbaa !5
  %125 = tail call ptr @strerror(i32 noundef %124) #9
  %126 = load i32, ptr %105, align 4, !tbaa !5
  %127 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %117, ptr noundef nonnull %.str.5.sink362, i32 noundef %118, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 38, ptr noundef %121, ptr noundef %123, ptr noundef %125, i32 noundef %126) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

128:                                              ; preds = %99
  %129 = load i32, ptr @test_count, align 4, !tbaa !5
  %130 = add nsw i32 %129, 3
  store i32 %130, ptr @test_count, align 4, !tbaa !5
  %131 = tail call i32 @setenv(ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.12, i32 noundef 0) #9
  %132 = icmp eq i32 %131, -1
  br i1 %132, label %133, label %157

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

140:                                              ; preds = %133
  %141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %142 = tail call i32 @fileno(ptr noundef %141) #9
  %143 = tail call i32 @isatty(i32 noundef %142) #9
  %.not306 = icmp eq i32 %143, 0
  br i1 %.not306, label %144, label %145

144:                                              ; preds = %140, %133
  br label %145

145:                                              ; preds = %140, %144
  %.str.5.sink373 = phi ptr [ @.str.5, %144 ], [ @.str.2, %140 ]
  store i32 %135, ptr %134, align 4, !tbaa !5
  %146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %147 = load i32, ptr @test_count, align 4, !tbaa !5
  %148 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %149 = load i32, ptr %148, align 4, !tbaa !5
  %150 = tail call ptr @s2n_strerror(i32 noundef %149, ptr noundef nonnull @.str.4) #9
  %151 = load i32, ptr %148, align 4, !tbaa !5
  %152 = tail call ptr @s2n_strerror_debug(i32 noundef %151, ptr noundef nonnull @.str.4) #9
  %153 = load i32, ptr %134, align 4, !tbaa !5
  %154 = tail call ptr @strerror(i32 noundef %153) #9
  %155 = load i32, ptr %134, align 4, !tbaa !5
  %156 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %146, ptr noundef nonnull %.str.5.sink373, i32 noundef %147, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 42, ptr noundef %150, ptr noundef %152, ptr noundef %154, i32 noundef %155) #11
  tail call void @exit(i32 noundef 1) #12
  unreachable

157:                                              ; preds = %128
  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 <4 x i8> <i8 2, i8 0, i8 0, i8 72>, ptr %4, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 5, ptr nonnull %5) #9
  store <4 x i8> <i8 22, i8 3, i8 3, i8 0>, ptr %5, align 4, !tbaa !15
  %158 = getelementptr inbounds i8, ptr %5, i64 4
  store i8 76, ptr %158, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  %159 = load i32, ptr @test_count, align 4, !tbaa !5
  %160 = add nsw i32 %159, 1
  store i32 %160, ptr @test_count, align 4, !tbaa !5
  %161 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %6) #9
  %162 = icmp eq i32 %161, -1
  br i1 %162, label %163, label %187

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

170:                                              ; preds = %163
  %171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %172 = call i32 @fileno(ptr noundef %171) #9
  %173 = call i32 @isatty(i32 noundef %172) #9
  %.not305 = icmp eq i32 %173, 0
  br i1 %.not305, label %174, label %175

174:                                              ; preds = %170, %163
  br label %175

175:                                              ; preds = %170, %174
  %.str.5.sink384 = phi ptr [ @.str.5, %174 ], [ @.str.2, %170 ]
  store i32 %165, ptr %164, align 4, !tbaa !5
  %176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %177 = load i32, ptr @test_count, align 4, !tbaa !5
  %178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %179 = load i32, ptr %178, align 4, !tbaa !5
  %180 = call ptr @s2n_strerror(i32 noundef %179, ptr noundef nonnull @.str.4) #9
  %181 = load i32, ptr %178, align 4, !tbaa !5
  %182 = call ptr @s2n_strerror_debug(i32 noundef %181, ptr noundef nonnull @.str.4) #9
  %183 = load i32, ptr %164, align 4, !tbaa !5
  %184 = call ptr @strerror(i32 noundef %183) #9
  %185 = load i32, ptr %164, align 4, !tbaa !5
  %186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %176, ptr noundef nonnull %.str.5.sink384, i32 noundef %177, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %180, ptr noundef %182, ptr noundef %184, i32 noundef %185) #11
  call void @exit(i32 noundef 1) #12
  unreachable

187:                                              ; preds = %157
  %188 = load i32, ptr @test_count, align 4, !tbaa !5
  %189 = add nsw i32 %188, 1
  store i32 %189, ptr @test_count, align 4, !tbaa !5
  %190 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %191 = icmp eq ptr %190, null
  br i1 %191, label %192, label %216

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

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

203:                                              ; preds = %199, %192
  br label %204

204:                                              ; preds = %199, %203
  %.str.5.sink395 = phi ptr [ @.str.5, %203 ], [ @.str.2, %199 ]
  store i32 %194, ptr %193, 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 nonnull @.str.4) #9
  %210 = load i32, ptr %207, align 4, !tbaa !5
  %211 = call ptr @s2n_strerror_debug(i32 noundef %210, ptr noundef nonnull @.str.4) #9
  %212 = load i32, ptr %193, align 4, !tbaa !5
  %213 = call ptr @strerror(i32 noundef %212) #9
  %214 = load i32, ptr %193, align 4, !tbaa !5
  %215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %205, ptr noundef nonnull %.str.5.sink395, i32 noundef %206, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %209, ptr noundef %211, ptr noundef %213, i32 noundef %214) #11
  call void @exit(i32 noundef 1) #12
  unreachable

216:                                              ; preds = %187
  %217 = load i32, ptr @test_count, align 4, !tbaa !5
  %218 = add nsw i32 %217, 1
  store i32 %218, ptr @test_count, align 4, !tbaa !5
  %219 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %190, ptr noundef nonnull %6) #9
  %220 = icmp eq i32 %219, -1
  br i1 %220, label %221, label %245

221:                                              ; preds = %216
  %222 = tail call ptr @__errno_location() #10
  %223 = load i32, ptr %222, align 4, !tbaa !5
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = call i32 @s2n_print_stacktrace(ptr noundef %224) #9
  %226 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %227 = trunc nuw i8 %226 to i1
  br i1 %227, label %228, label %232

228:                                              ; preds = %221
  %229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %230 = call i32 @fileno(ptr noundef %229) #9
  %231 = call i32 @isatty(i32 noundef %230) #9
  %.not303 = icmp eq i32 %231, 0
  br i1 %.not303, label %232, label %233

232:                                              ; preds = %228, %221
  br label %233

233:                                              ; preds = %228, %232
  %.str.5.sink406 = phi ptr [ @.str.5, %232 ], [ @.str.2, %228 ]
  store i32 %223, ptr %222, align 4, !tbaa !5
  %234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %235 = load i32, ptr @test_count, align 4, !tbaa !5
  %236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %237 = load i32, ptr %236, align 4, !tbaa !5
  %238 = call ptr @s2n_strerror(i32 noundef %237, ptr noundef nonnull @.str.4) #9
  %239 = load i32, ptr %236, align 4, !tbaa !5
  %240 = call ptr @s2n_strerror_debug(i32 noundef %239, ptr noundef nonnull @.str.4) #9
  %241 = load i32, ptr %222, align 4, !tbaa !5
  %242 = call ptr @strerror(i32 noundef %241) #9
  %243 = load i32, ptr %222, align 4, !tbaa !5
  %244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %234, ptr noundef nonnull %.str.5.sink406, i32 noundef %235, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef %238, ptr noundef %240, ptr noundef %242, i32 noundef %243) #11
  call void @exit(i32 noundef 1) #12
  unreachable

245:                                              ; preds = %216
  %246 = load i32, ptr @test_count, align 4, !tbaa !5
  %247 = add nsw i32 %246, 1
  store i32 %247, ptr @test_count, align 4, !tbaa !5
  %248 = call ptr @s2n_config_new() #9
  %249 = icmp eq ptr %248, null
  br i1 %249, label %250, label %274

250:                                              ; preds = %245
  %251 = tail call ptr @__errno_location() #10
  %252 = load i32, ptr %251, align 4, !tbaa !5
  %253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %254 = call i32 @s2n_print_stacktrace(ptr noundef %253) #9
  %255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %256 = trunc nuw i8 %255 to i1
  br i1 %256, label %257, label %261

257:                                              ; preds = %250
  %258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %259 = call i32 @fileno(ptr noundef %258) #9
  %260 = call i32 @isatty(i32 noundef %259) #9
  %.not302 = icmp eq i32 %260, 0
  br i1 %.not302, label %261, label %262

261:                                              ; preds = %257, %250
  br label %262

262:                                              ; preds = %257, %261
  %.str.5.sink417 = phi ptr [ @.str.5, %261 ], [ @.str.2, %257 ]
  store i32 %252, ptr %251, align 4, !tbaa !5
  %263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %264 = load i32, ptr @test_count, align 4, !tbaa !5
  %265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %266 = load i32, ptr %265, align 4, !tbaa !5
  %267 = call ptr @s2n_strerror(i32 noundef %266, ptr noundef nonnull @.str.4) #9
  %268 = load i32, ptr %265, align 4, !tbaa !5
  %269 = call ptr @s2n_strerror_debug(i32 noundef %268, ptr noundef nonnull @.str.4) #9
  %270 = load i32, ptr %251, align 4, !tbaa !5
  %271 = call ptr @strerror(i32 noundef %270) #9
  %272 = load i32, ptr %251, align 4, !tbaa !5
  %273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %263, ptr noundef nonnull %.str.5.sink417, i32 noundef %264, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 94, ptr noundef %267, ptr noundef %269, ptr noundef %271, i32 noundef %272) #11
  call void @exit(i32 noundef 1) #12
  unreachable

274:                                              ; preds = %245
  %275 = load i32, ptr @test_count, align 4, !tbaa !5
  %276 = add nsw i32 %275, 1
  store i32 %276, ptr @test_count, align 4, !tbaa !5
  %277 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %248, ptr noundef nonnull @.str.18) #9
  %278 = icmp eq i32 %277, -1
  br i1 %278, label %279, label %303

279:                                              ; preds = %274
  %280 = tail call ptr @__errno_location() #10
  %281 = load i32, ptr %280, align 4, !tbaa !5
  %282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %283 = call i32 @s2n_print_stacktrace(ptr noundef %282) #9
  %284 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %285 = trunc nuw i8 %284 to i1
  br i1 %285, label %286, label %290

286:                                              ; preds = %279
  %287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %288 = call i32 @fileno(ptr noundef %287) #9
  %289 = call i32 @isatty(i32 noundef %288) #9
  %.not301 = icmp eq i32 %289, 0
  br i1 %.not301, label %290, label %291

290:                                              ; preds = %286, %279
  br label %291

291:                                              ; preds = %286, %290
  %.str.5.sink428 = phi ptr [ @.str.5, %290 ], [ @.str.2, %286 ]
  store i32 %281, ptr %280, align 4, !tbaa !5
  %292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %293 = load i32, ptr @test_count, align 4, !tbaa !5
  %294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %295 = load i32, ptr %294, align 4, !tbaa !5
  %296 = call ptr @s2n_strerror(i32 noundef %295, ptr noundef nonnull @.str.4) #9
  %297 = load i32, ptr %294, align 4, !tbaa !5
  %298 = call ptr @s2n_strerror_debug(i32 noundef %297, ptr noundef nonnull @.str.4) #9
  %299 = load i32, ptr %280, align 4, !tbaa !5
  %300 = call ptr @strerror(i32 noundef %299) #9
  %301 = load i32, ptr %280, align 4, !tbaa !5
  %302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %292, ptr noundef nonnull %.str.5.sink428, i32 noundef %293, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %296, ptr noundef %298, ptr noundef %300, i32 noundef %301) #11
  call void @exit(i32 noundef 1) #12
  unreachable

303:                                              ; preds = %274
  %304 = load i32, ptr @test_count, align 4, !tbaa !5
  %305 = add nsw i32 %304, 1
  store i32 %305, ptr @test_count, align 4, !tbaa !5
  %306 = call i32 @s2n_connection_set_config(ptr noundef nonnull %190, ptr noundef nonnull %248) #9
  %307 = icmp eq i32 %306, -1
  br i1 %307, label %308, label %332

308:                                              ; preds = %303
  %309 = tail call ptr @__errno_location() #10
  %310 = load i32, ptr %309, align 4, !tbaa !5
  %311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %312 = call i32 @s2n_print_stacktrace(ptr noundef %311) #9
  %313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %314 = trunc nuw i8 %313 to i1
  br i1 %314, label %315, label %319

315:                                              ; preds = %308
  %316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %317 = call i32 @fileno(ptr noundef %316) #9
  %318 = call i32 @isatty(i32 noundef %317) #9
  %.not300 = icmp eq i32 %318, 0
  br i1 %.not300, label %319, label %320

319:                                              ; preds = %315, %308
  br label %320

320:                                              ; preds = %315, %319
  %.str.5.sink439 = phi ptr [ @.str.5, %319 ], [ @.str.2, %315 ]
  store i32 %310, ptr %309, align 4, !tbaa !5
  %321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %322 = load i32, ptr @test_count, align 4, !tbaa !5
  %323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %324 = load i32, ptr %323, align 4, !tbaa !5
  %325 = call ptr @s2n_strerror(i32 noundef %324, ptr noundef nonnull @.str.4) #9
  %326 = load i32, ptr %323, align 4, !tbaa !5
  %327 = call ptr @s2n_strerror_debug(i32 noundef %326, ptr noundef nonnull @.str.4) #9
  %328 = load i32, ptr %309, align 4, !tbaa !5
  %329 = call ptr @strerror(i32 noundef %328) #9
  %330 = load i32, ptr %309, align 4, !tbaa !5
  %331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %321, ptr noundef nonnull %.str.5.sink439, i32 noundef %322, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %325, ptr noundef %327, ptr noundef %329, i32 noundef %330) #11
  call void @exit(i32 noundef 1) #12
  unreachable

332:                                              ; preds = %303
  %333 = load i32, ptr @test_count, align 4, !tbaa !5
  %334 = add nsw i32 %333, 1
  store i32 %334, ptr @test_count, align 4, !tbaa !5
  %335 = call i32 @s2n_negotiate(ptr noundef nonnull %190, ptr noundef nonnull %3) #9
  %336 = icmp eq i32 %335, -1
  br i1 %336, label %361, label %337

337:                                              ; preds = %332
  %338 = tail call ptr @__errno_location() #10
  %339 = load i32, ptr %338, align 4, !tbaa !5
  %340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %341 = call i32 @s2n_print_stacktrace(ptr noundef %340) #9
  %342 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %343 = trunc nuw i8 %342 to i1
  br i1 %343, label %344, label %348

344:                                              ; preds = %337
  %345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %346 = call i32 @fileno(ptr noundef %345) #9
  %347 = call i32 @isatty(i32 noundef %346) #9
  %.not = icmp eq i32 %347, 0
  br i1 %.not, label %348, label %349

348:                                              ; preds = %344, %337
  br label %349

349:                                              ; preds = %344, %348
  %.str.5.sink450 = phi ptr [ @.str.5, %348 ], [ @.str.2, %344 ]
  store i32 %339, ptr %338, align 4, !tbaa !5
  %350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %351 = load i32, ptr @test_count, align 4, !tbaa !5
  %352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %353 = load i32, ptr %352, align 4, !tbaa !5
  %354 = call ptr @s2n_strerror(i32 noundef %353, ptr noundef nonnull @.str.4) #9
  %355 = load i32, ptr %352, align 4, !tbaa !5
  %356 = call ptr @s2n_strerror_debug(i32 noundef %355, ptr noundef nonnull @.str.4) #9
  %357 = load i32, ptr %338, align 4, !tbaa !5
  %358 = call ptr @strerror(i32 noundef %357) #9
  %359 = load i32, ptr %338, align 4, !tbaa !5
  %360 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %350, ptr noundef nonnull %.str.5.sink450, i32 noundef %351, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %354, ptr noundef %356, ptr noundef %358, i32 noundef %359) #11
  call void @exit(i32 noundef 1) #12
  unreachable

361:                                              ; preds = %332
  %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
  %364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %365 = load i32, ptr %364, align 4, !tbaa !5
  %366 = icmp eq i32 %365, 201326592
  br i1 %366, label %390, label %367

367:                                              ; preds = %361
  %368 = tail call ptr @__errno_location() #10
  %369 = load i32, ptr %368, align 4, !tbaa !5
  %370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %371 = call i32 @s2n_print_stacktrace(ptr noundef %370) #9
  %372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %373 = trunc nuw i8 %372 to i1
  br i1 %373, label %374, label %378

374:                                              ; preds = %367
  %375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %376 = call i32 @fileno(ptr noundef %375) #9
  %377 = call i32 @isatty(i32 noundef %376) #9
  %.not236 = icmp eq i32 %377, 0
  br i1 %.not236, label %378, label %379

378:                                              ; preds = %374, %367
  br label %379

379:                                              ; preds = %374, %378
  %.str.5.sink461 = phi ptr [ @.str.5, %378 ], [ @.str.2, %374 ]
  store i32 %369, ptr %368, align 4, !tbaa !5
  %380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %381 = load i32, ptr @test_count, align 4, !tbaa !5
  %382 = load i32, ptr %364, align 4, !tbaa !5
  %383 = call ptr @s2n_strerror(i32 noundef %382, ptr noundef nonnull @.str.4) #9
  %384 = load i32, ptr %364, align 4, !tbaa !5
  %385 = call ptr @s2n_strerror_debug(i32 noundef %384, ptr noundef nonnull @.str.4) #9
  %386 = load i32, ptr %368, align 4, !tbaa !5
  %387 = call ptr @strerror(i32 noundef %386) #9
  %388 = load i32, ptr %368, align 4, !tbaa !5
  %389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %380, ptr noundef nonnull %.str.5.sink461, i32 noundef %381, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 100, ptr noundef %383, ptr noundef %385, ptr noundef %387, i32 noundef %388) #11
  call void @exit(i32 noundef 1) #12
  unreachable

390:                                              ; preds = %361
  %391 = add nsw i32 %362, 2
  store i32 %391, ptr @test_count, align 4, !tbaa !5
  %392 = load i32, ptr %3, align 4, !tbaa !5
  %393 = icmp eq i32 %392, 1
  br i1 %393, label %417, label %394

394:                                              ; preds = %390
  %395 = tail call ptr @__errno_location() #10
  %396 = load i32, ptr %395, align 4, !tbaa !5
  %397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %398 = call i32 @s2n_print_stacktrace(ptr noundef %397) #9
  %399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %400 = trunc nuw i8 %399 to i1
  br i1 %400, label %401, label %405

401:                                              ; preds = %394
  %402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %403 = call i32 @fileno(ptr noundef %402) #9
  %404 = call i32 @isatty(i32 noundef %403) #9
  %.not237 = icmp eq i32 %404, 0
  br i1 %.not237, label %405, label %406

405:                                              ; preds = %401, %394
  br label %406

406:                                              ; preds = %401, %405
  %.str.5.sink470 = phi ptr [ @.str.5, %405 ], [ @.str.2, %401 ]
  store i32 %396, ptr %395, align 4, !tbaa !5
  %407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %408 = load i32, ptr @test_count, align 4, !tbaa !5
  %409 = load i32, ptr %364, align 4, !tbaa !5
  %410 = call ptr @s2n_strerror(i32 noundef %409, ptr noundef nonnull @.str.4) #9
  %411 = load i32, ptr %364, align 4, !tbaa !5
  %412 = call ptr @s2n_strerror_debug(i32 noundef %411, ptr noundef nonnull @.str.4) #9
  %413 = load i32, ptr %395, align 4, !tbaa !5
  %414 = call ptr @strerror(i32 noundef %413) #9
  %415 = load i32, ptr %395, align 4, !tbaa !5
  %416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %407, ptr noundef nonnull %.str.5.sink470, i32 noundef %408, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 101, ptr noundef %410, ptr noundef %412, ptr noundef %414, i32 noundef %415) #11
  call void @exit(i32 noundef 1) #12
  unreachable

417:                                              ; preds = %390
  call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %7) #9
  %418 = getelementptr inbounds i8, ptr %6, i64 4
  br label %422

419:                                              ; preds = %422
  %420 = add nuw i64 %426, %.0319
  %421 = icmp ult i64 %420, 10
  br i1 %421, label %422, label %453, !llvm.loop !16

422:                                              ; preds = %417, %419
  %.0319 = phi i64 [ 0, %417 ], [ %420, %419 ]
  %423 = load i32, ptr %418, align 4, !tbaa !18
  %424 = getelementptr inbounds i8, ptr %7, i64 %.0319
  %425 = sub nuw nsw i64 1024, %.0319
  %426 = call i64 @read(i32 noundef %423, ptr noundef nonnull %424, i64 noundef %425) #9
  %427 = load i32, ptr @test_count, align 4, !tbaa !5
  %428 = add nsw i32 %427, 1
  store i32 %428, ptr @test_count, align 4, !tbaa !5
  %429 = icmp sgt i64 %426, 0
  br i1 %429, label %419, label %430

430:                                              ; preds = %422
  %431 = tail call ptr @__errno_location() #10
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %434 = call i32 @s2n_print_stacktrace(ptr noundef %433) #9
  %435 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %436 = trunc nuw i8 %435 to i1
  br i1 %436, label %437, label %441

437:                                              ; preds = %430
  %438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %439 = call i32 @fileno(ptr noundef %438) #9
  %440 = call i32 @isatty(i32 noundef %439) #9
  %.not299 = icmp eq i32 %440, 0
  br i1 %.not299, label %441, label %442

441:                                              ; preds = %437, %430
  br label %442

442:                                              ; preds = %437, %441
  %.str.5.sink479 = phi ptr [ @.str.5, %441 ], [ @.str.2, %437 ]
  store i32 %432, ptr %431, align 4, !tbaa !5
  %443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %444 = load i32, ptr @test_count, align 4, !tbaa !5
  %445 = load i32, ptr %364, align 4, !tbaa !5
  %446 = call ptr @s2n_strerror(i32 noundef %445, ptr noundef nonnull @.str.4) #9
  %447 = load i32, ptr %364, align 4, !tbaa !5
  %448 = call ptr @s2n_strerror_debug(i32 noundef %447, ptr noundef nonnull @.str.4) #9
  %449 = load i32, ptr %431, align 4, !tbaa !5
  %450 = call ptr @strerror(i32 noundef %449) #9
  %451 = load i32, ptr %431, align 4, !tbaa !5
  %452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %443, ptr noundef nonnull %.str.5.sink479, i32 noundef %444, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %446, ptr noundef %448, ptr noundef %450, i32 noundef %451) #11
  call void @exit(i32 noundef 1) #12
  unreachable

453:                                              ; preds = %419
  %454 = add nsw i32 %427, 2
  store i32 %454, ptr @test_count, align 4, !tbaa !5
  %455 = load i8, ptr %7, align 16, !tbaa !15
  %456 = icmp eq i8 %455, 22
  br i1 %456, label %480, label %457

457:                                              ; preds = %453
  %458 = tail call ptr @__errno_location() #10
  %459 = load i32, ptr %458, align 4, !tbaa !5
  %460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %461 = call i32 @s2n_print_stacktrace(ptr noundef %460) #9
  %462 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %463 = trunc nuw i8 %462 to i1
  br i1 %463, label %464, label %468

464:                                              ; preds = %457
  %465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %466 = call i32 @fileno(ptr noundef %465) #9
  %467 = call i32 @isatty(i32 noundef %466) #9
  %.not238 = icmp eq i32 %467, 0
  br i1 %.not238, label %468, label %469

468:                                              ; preds = %464, %457
  br label %469

469:                                              ; preds = %464, %468
  %.str.5.sink488 = phi ptr [ @.str.5, %468 ], [ @.str.2, %464 ]
  store i32 %459, ptr %458, align 4, !tbaa !5
  %470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %471 = load i32, ptr @test_count, align 4, !tbaa !5
  %472 = load i32, ptr %364, align 4, !tbaa !5
  %473 = call ptr @s2n_strerror(i32 noundef %472, ptr noundef nonnull @.str.4) #9
  %474 = load i32, ptr %364, align 4, !tbaa !5
  %475 = call ptr @s2n_strerror_debug(i32 noundef %474, ptr noundef nonnull @.str.4) #9
  %476 = load i32, ptr %458, align 4, !tbaa !5
  %477 = call ptr @strerror(i32 noundef %476) #9
  %478 = load i32, ptr %458, align 4, !tbaa !5
  %479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %470, ptr noundef nonnull %.str.5.sink488, i32 noundef %471, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %473, ptr noundef %475, ptr noundef %477, i32 noundef %478) #11
  call void @exit(i32 noundef 1) #12
  unreachable

480:                                              ; preds = %453
  %481 = add nsw i32 %427, 3
  store i32 %481, ptr @test_count, align 4, !tbaa !5
  %482 = getelementptr inbounds i8, ptr %7, i64 1
  %483 = load i8, ptr %482, align 1, !tbaa !15
  %484 = icmp eq i8 %483, 3
  br i1 %484, label %508, label %485

485:                                              ; preds = %480
  %486 = tail call ptr @__errno_location() #10
  %487 = load i32, ptr %486, align 4, !tbaa !5
  %488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %489 = call i32 @s2n_print_stacktrace(ptr noundef %488) #9
  %490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %491 = trunc nuw i8 %490 to i1
  br i1 %491, label %492, label %496

492:                                              ; preds = %485
  %493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %494 = call i32 @fileno(ptr noundef %493) #9
  %495 = call i32 @isatty(i32 noundef %494) #9
  %.not239 = icmp eq i32 %495, 0
  br i1 %.not239, label %496, label %497

496:                                              ; preds = %492, %485
  br label %497

497:                                              ; preds = %492, %496
  %.str.5.sink497 = phi ptr [ @.str.5, %496 ], [ @.str.2, %492 ]
  store i32 %487, ptr %486, align 4, !tbaa !5
  %498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %499 = load i32, ptr @test_count, align 4, !tbaa !5
  %500 = load i32, ptr %364, align 4, !tbaa !5
  %501 = call ptr @s2n_strerror(i32 noundef %500, ptr noundef nonnull @.str.4) #9
  %502 = load i32, ptr %364, align 4, !tbaa !5
  %503 = call ptr @s2n_strerror_debug(i32 noundef %502, ptr noundef nonnull @.str.4) #9
  %504 = load i32, ptr %486, align 4, !tbaa !5
  %505 = call ptr @strerror(i32 noundef %504) #9
  %506 = load i32, ptr %486, align 4, !tbaa !5
  %507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %498, ptr noundef nonnull %.str.5.sink497, i32 noundef %499, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %501, ptr noundef %503, ptr noundef %505, i32 noundef %506) #11
  call void @exit(i32 noundef 1) #12
  unreachable

508:                                              ; preds = %480
  %509 = add nsw i32 %427, 4
  store i32 %509, ptr @test_count, align 4, !tbaa !5
  %510 = getelementptr inbounds i8, ptr %7, i64 2
  %511 = load i8, ptr %510, align 2, !tbaa !15
  %512 = icmp eq i8 %511, 1
  br i1 %512, label %536, label %513

513:                                              ; preds = %508
  %514 = tail call ptr @__errno_location() #10
  %515 = load i32, ptr %514, align 4, !tbaa !5
  %516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %517 = call i32 @s2n_print_stacktrace(ptr noundef %516) #9
  %518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %519 = trunc nuw i8 %518 to i1
  br i1 %519, label %520, label %524

520:                                              ; preds = %513
  %521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %522 = call i32 @fileno(ptr noundef %521) #9
  %523 = call i32 @isatty(i32 noundef %522) #9
  %.not240 = icmp eq i32 %523, 0
  br i1 %.not240, label %524, label %525

524:                                              ; preds = %520, %513
  br label %525

525:                                              ; preds = %520, %524
  %.str.5.sink506 = phi ptr [ @.str.5, %524 ], [ @.str.2, %520 ]
  store i32 %515, ptr %514, align 4, !tbaa !5
  %526 = load ptr, ptr @stderr, align 8, !tbaa !9
  %527 = load i32, ptr @test_count, align 4, !tbaa !5
  %528 = load i32, ptr %364, align 4, !tbaa !5
  %529 = call ptr @s2n_strerror(i32 noundef %528, ptr noundef nonnull @.str.4) #9
  %530 = load i32, ptr %364, align 4, !tbaa !5
  %531 = call ptr @s2n_strerror_debug(i32 noundef %530, ptr noundef nonnull @.str.4) #9
  %532 = load i32, ptr %514, align 4, !tbaa !5
  %533 = call ptr @strerror(i32 noundef %532) #9
  %534 = load i32, ptr %514, align 4, !tbaa !5
  %535 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %526, ptr noundef nonnull %.str.5.sink506, i32 noundef %527, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 119, ptr noundef %529, ptr noundef %531, ptr noundef %533, i32 noundef %534) #11
  call void @exit(i32 noundef 1) #12
  unreachable

536:                                              ; preds = %508
  %537 = add nsw i32 %427, 5
  store i32 %537, ptr @test_count, align 4, !tbaa !5
  %538 = getelementptr inbounds i8, ptr %7, i64 5
  %539 = load i8, ptr %538, align 1, !tbaa !15
  %540 = icmp eq i8 %539, 1
  br i1 %540, label %564, label %541

541:                                              ; preds = %536
  %542 = tail call ptr @__errno_location() #10
  %543 = load i32, ptr %542, align 4, !tbaa !5
  %544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %545 = call i32 @s2n_print_stacktrace(ptr noundef %544) #9
  %546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %547 = trunc nuw i8 %546 to i1
  br i1 %547, label %548, label %552

548:                                              ; preds = %541
  %549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %550 = call i32 @fileno(ptr noundef %549) #9
  %551 = call i32 @isatty(i32 noundef %550) #9
  %.not241 = icmp eq i32 %551, 0
  br i1 %.not241, label %552, label %553

552:                                              ; preds = %548, %541
  br label %553

553:                                              ; preds = %548, %552
  %.str.5.sink515 = phi ptr [ @.str.5, %552 ], [ @.str.2, %548 ]
  store i32 %543, ptr %542, align 4, !tbaa !5
  %554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %555 = load i32, ptr @test_count, align 4, !tbaa !5
  %556 = load i32, ptr %364, align 4, !tbaa !5
  %557 = call ptr @s2n_strerror(i32 noundef %556, ptr noundef nonnull @.str.4) #9
  %558 = load i32, ptr %364, align 4, !tbaa !5
  %559 = call ptr @s2n_strerror_debug(i32 noundef %558, ptr noundef nonnull @.str.4) #9
  %560 = load i32, ptr %542, align 4, !tbaa !5
  %561 = call ptr @strerror(i32 noundef %560) #9
  %562 = load i32, ptr %542, align 4, !tbaa !5
  %563 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %554, ptr noundef nonnull %.str.5.sink515, i32 noundef %555, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef %557, ptr noundef %559, ptr noundef %561, i32 noundef %562) #11
  call void @exit(i32 noundef 1) #12
  unreachable

564:                                              ; preds = %536
  %565 = add nsw i32 %427, 6
  store i32 %565, ptr @test_count, align 4, !tbaa !5
  %566 = getelementptr inbounds i8, ptr %7, i64 9
  %567 = load i8, ptr %566, align 1, !tbaa !15
  %568 = icmp eq i8 %567, 3
  br i1 %568, label %592, label %569

569:                                              ; preds = %564
  %570 = tail call ptr @__errno_location() #10
  %571 = load i32, ptr %570, align 4, !tbaa !5
  %572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %573 = call i32 @s2n_print_stacktrace(ptr noundef %572) #9
  %574 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %575 = trunc nuw i8 %574 to i1
  br i1 %575, label %576, label %580

576:                                              ; preds = %569
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = call i32 @fileno(ptr noundef %577) #9
  %579 = call i32 @isatty(i32 noundef %578) #9
  %.not242 = icmp eq i32 %579, 0
  br i1 %.not242, label %580, label %581

580:                                              ; preds = %576, %569
  br label %581

581:                                              ; preds = %576, %580
  %.str.5.sink524 = phi ptr [ @.str.5, %580 ], [ @.str.2, %576 ]
  store i32 %571, ptr %570, align 4, !tbaa !5
  %582 = load ptr, ptr @stderr, align 8, !tbaa !9
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = load i32, ptr %364, align 4, !tbaa !5
  %585 = call ptr @s2n_strerror(i32 noundef %584, ptr noundef nonnull @.str.4) #9
  %586 = load i32, ptr %364, align 4, !tbaa !5
  %587 = call ptr @s2n_strerror_debug(i32 noundef %586, ptr noundef nonnull @.str.4) #9
  %588 = load i32, ptr %570, align 4, !tbaa !5
  %589 = call ptr @strerror(i32 noundef %588) #9
  %590 = load i32, ptr %570, align 4, !tbaa !5
  %591 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %582, ptr noundef nonnull %.str.5.sink524, i32 noundef %583, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %585, ptr noundef %587, ptr noundef %589, i32 noundef %590) #11
  call void @exit(i32 noundef 1) #12
  unreachable

592:                                              ; preds = %564
  %593 = add nsw i32 %427, 7
  store i32 %593, ptr @test_count, align 4, !tbaa !5
  %594 = getelementptr inbounds i8, ptr %7, i64 10
  %595 = load i8, ptr %594, align 2, !tbaa !15
  %596 = icmp eq i8 %595, 3
  br i1 %596, label %.critedge, label %597

597:                                              ; preds = %592
  %598 = tail call ptr @__errno_location() #10
  %599 = load i32, ptr %598, align 4, !tbaa !5
  %600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %601 = call i32 @s2n_print_stacktrace(ptr noundef %600) #9
  %602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %603 = trunc nuw i8 %602 to i1
  br i1 %603, label %604, label %608

604:                                              ; preds = %597
  %605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %606 = call i32 @fileno(ptr noundef %605) #9
  %607 = call i32 @isatty(i32 noundef %606) #9
  %.not243 = icmp eq i32 %607, 0
  br i1 %.not243, label %608, label %609

608:                                              ; preds = %604, %597
  br label %609

609:                                              ; preds = %604, %608
  %.str.5.sink533 = phi ptr [ @.str.5, %608 ], [ @.str.2, %604 ]
  store i32 %599, ptr %598, align 4, !tbaa !5
  %610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %611 = load i32, ptr @test_count, align 4, !tbaa !5
  %612 = load i32, ptr %364, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror(i32 noundef %612, ptr noundef nonnull @.str.4) #9
  %614 = load i32, ptr %364, align 4, !tbaa !5
  %615 = call ptr @s2n_strerror_debug(i32 noundef %614, ptr noundef nonnull @.str.4) #9
  %616 = load i32, ptr %598, align 4, !tbaa !5
  %617 = call ptr @strerror(i32 noundef %616) #9
  %618 = load i32, ptr %598, align 4, !tbaa !5
  %619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %610, ptr noundef nonnull %.str.5.sink533, i32 noundef %611, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 124, ptr noundef %613, ptr noundef %615, ptr noundef %617, i32 noundef %618) #11
  call void @exit(i32 noundef 1) #12
  unreachable

.critedge:                                        ; preds = %592, %.critedge.backedge
  %620 = load i32, ptr %418, align 4, !tbaa !18
  %621 = call i64 @read(i32 noundef %620, ptr noundef nonnull %7, i64 noundef 1024) #9
  %622 = icmp sgt i64 %621, 0
  br i1 %622, label %.critedge.backedge, label %623

623:                                              ; preds = %.critedge
  %624 = load i32, ptr @test_count, align 4, !tbaa !5
  %625 = add nsw i32 %624, 1
  store i32 %625, ptr @test_count, align 4, !tbaa !5
  %626 = icmp eq i64 %621, -1
  %627 = tail call ptr @__errno_location() #10
  %628 = load i32, ptr %627, align 4, !tbaa !5
  br i1 %626, label %650, label %629

629:                                              ; preds = %623
  %630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %631 = call i32 @s2n_print_stacktrace(ptr noundef %630) #9
  %632 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %633 = trunc nuw i8 %632 to i1
  br i1 %633, label %634, label %638

634:                                              ; preds = %629
  %635 = load ptr, ptr @stderr, align 8, !tbaa !9
  %636 = call i32 @fileno(ptr noundef %635) #9
  %637 = call i32 @isatty(i32 noundef %636) #9
  %.not244 = icmp eq i32 %637, 0
  br i1 %.not244, label %638, label %639

638:                                              ; preds = %634, %629
  br label %639

639:                                              ; preds = %634, %638
  %.str.5.sink542 = phi ptr [ @.str.5, %638 ], [ @.str.2, %634 ]
  store i32 %628, ptr %627, align 4, !tbaa !5
  %640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %641 = load i32, ptr @test_count, align 4, !tbaa !5
  %642 = load i32, ptr %364, align 4, !tbaa !5
  %643 = call ptr @s2n_strerror(i32 noundef %642, ptr noundef nonnull @.str.4) #9
  %644 = load i32, ptr %364, align 4, !tbaa !5
  %645 = call ptr @s2n_strerror_debug(i32 noundef %644, ptr noundef nonnull @.str.4) #9
  %646 = load i32, ptr %627, align 4, !tbaa !5
  %647 = call ptr @strerror(i32 noundef %646) #9
  %648 = load i32, ptr %627, align 4, !tbaa !5
  %649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %640, ptr noundef nonnull %.str.5.sink542, i32 noundef %641, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 134, ptr noundef %643, ptr noundef %645, ptr noundef %647, i32 noundef %648) #11
  call void @exit(i32 noundef 1) #12
  unreachable

650:                                              ; preds = %623
  %651 = icmp eq i32 %628, 11
  br i1 %651, label %652, label %.critedge.backedge

.critedge.backedge:                               ; preds = %650, %.critedge
  br label %.critedge

652:                                              ; preds = %650
  %653 = add nsw i32 %624, 2
  store i32 %653, ptr @test_count, align 4, !tbaa !5
  %654 = load i32, ptr %418, align 4, !tbaa !18
  %655 = call i64 @write(i32 noundef %654, ptr noundef nonnull %5, i64 noundef 5) #9
  %656 = icmp eq i64 %655, 5
  br i1 %656, label %679, label %657

657:                                              ; preds = %652
  %658 = load i32, ptr %627, align 4, !tbaa !5
  %659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %660 = call i32 @s2n_print_stacktrace(ptr noundef %659) #9
  %661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %662 = trunc nuw i8 %661 to i1
  br i1 %662, label %663, label %667

663:                                              ; preds = %657
  %664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %665 = call i32 @fileno(ptr noundef %664) #9
  %666 = call i32 @isatty(i32 noundef %665) #9
  %.not245 = icmp eq i32 %666, 0
  br i1 %.not245, label %667, label %668

667:                                              ; preds = %663, %657
  br label %668

668:                                              ; preds = %663, %667
  %.str.5.sink551 = phi ptr [ @.str.5, %667 ], [ @.str.2, %663 ]
  store i32 %658, ptr %627, align 4, !tbaa !5
  %669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %670 = load i32, ptr @test_count, align 4, !tbaa !5
  %671 = load i32, ptr %364, align 4, !tbaa !5
  %672 = call ptr @s2n_strerror(i32 noundef %671, ptr noundef nonnull @.str.4) #9
  %673 = load i32, ptr %364, align 4, !tbaa !5
  %674 = call ptr @s2n_strerror_debug(i32 noundef %673, ptr noundef nonnull @.str.4) #9
  %675 = load i32, ptr %627, align 4, !tbaa !5
  %676 = call ptr @strerror(i32 noundef %675) #9
  %677 = load i32, ptr %627, align 4, !tbaa !5
  %678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %669, ptr noundef nonnull %.str.5.sink551, i32 noundef %670, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %672, ptr noundef %674, ptr noundef %676, i32 noundef %677) #11
  call void @exit(i32 noundef 1) #12
  unreachable

679:                                              ; preds = %652
  %680 = load i32, ptr @test_count, align 4, !tbaa !5
  %681 = add nsw i32 %680, 1
  store i32 %681, ptr @test_count, align 4, !tbaa !5
  %682 = load i32, ptr %418, align 4, !tbaa !18
  %683 = call i64 @write(i32 noundef %682, ptr noundef nonnull %4, i64 noundef 4) #9
  %684 = icmp eq i64 %683, 4
  br i1 %684, label %707, label %685

685:                                              ; preds = %679
  %686 = load i32, ptr %627, align 4, !tbaa !5
  %687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %688 = call i32 @s2n_print_stacktrace(ptr noundef %687) #9
  %689 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %690 = trunc nuw i8 %689 to i1
  br i1 %690, label %691, label %695

691:                                              ; preds = %685
  %692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %693 = call i32 @fileno(ptr noundef %692) #9
  %694 = call i32 @isatty(i32 noundef %693) #9
  %.not246 = icmp eq i32 %694, 0
  br i1 %.not246, label %695, label %696

695:                                              ; preds = %691, %685
  br label %696

696:                                              ; preds = %691, %695
  %.str.5.sink560 = phi ptr [ @.str.5, %695 ], [ @.str.2, %691 ]
  store i32 %686, ptr %627, align 4, !tbaa !5
  %697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %698 = load i32, ptr @test_count, align 4, !tbaa !5
  %699 = load i32, ptr %364, align 4, !tbaa !5
  %700 = call ptr @s2n_strerror(i32 noundef %699, ptr noundef nonnull @.str.4) #9
  %701 = load i32, ptr %364, align 4, !tbaa !5
  %702 = call ptr @s2n_strerror_debug(i32 noundef %701, ptr noundef nonnull @.str.4) #9
  %703 = load i32, ptr %627, align 4, !tbaa !5
  %704 = call ptr @strerror(i32 noundef %703) #9
  %705 = load i32, ptr %627, align 4, !tbaa !5
  %706 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %697, ptr noundef nonnull %.str.5.sink560, i32 noundef %698, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 142, ptr noundef %700, ptr noundef %702, ptr noundef %704, i32 noundef %705) #11
  call void @exit(i32 noundef 1) #12
  unreachable

707:                                              ; preds = %679
  %708 = load i32, ptr @test_count, align 4, !tbaa !5
  %709 = add nsw i32 %708, 1
  store i32 %709, ptr @test_count, align 4, !tbaa !5
  %710 = load i32, ptr %418, align 4, !tbaa !18
  %711 = call i64 @write(i32 noundef %710, ptr noundef nonnull @__const.main.server_hello_message, i64 noundef 72) #9
  %712 = icmp eq i64 %711, 72
  br i1 %712, label %735, label %713

713:                                              ; preds = %707
  %714 = load i32, ptr %627, align 4, !tbaa !5
  %715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %716 = call i32 @s2n_print_stacktrace(ptr noundef %715) #9
  %717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %718 = trunc nuw i8 %717 to i1
  br i1 %718, label %719, label %723

719:                                              ; preds = %713
  %720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %721 = call i32 @fileno(ptr noundef %720) #9
  %722 = call i32 @isatty(i32 noundef %721) #9
  %.not247 = icmp eq i32 %722, 0
  br i1 %.not247, label %723, label %724

723:                                              ; preds = %719, %713
  br label %724

724:                                              ; preds = %719, %723
  %.str.5.sink569 = phi ptr [ @.str.5, %723 ], [ @.str.2, %719 ]
  store i32 %714, ptr %627, align 4, !tbaa !5
  %725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %726 = load i32, ptr @test_count, align 4, !tbaa !5
  %727 = load i32, ptr %364, align 4, !tbaa !5
  %728 = call ptr @s2n_strerror(i32 noundef %727, ptr noundef nonnull @.str.4) #9
  %729 = load i32, ptr %364, align 4, !tbaa !5
  %730 = call ptr @s2n_strerror_debug(i32 noundef %729, ptr noundef nonnull @.str.4) #9
  %731 = load i32, ptr %627, align 4, !tbaa !5
  %732 = call ptr @strerror(i32 noundef %731) #9
  %733 = load i32, ptr %627, align 4, !tbaa !5
  %734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %725, ptr noundef nonnull %.str.5.sink569, i32 noundef %726, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 143, ptr noundef %728, ptr noundef %730, ptr noundef %732, i32 noundef %733) #11
  call void @exit(i32 noundef 1) #12
  unreachable

735:                                              ; preds = %707
  %736 = load i32, ptr @test_count, align 4, !tbaa !5
  %737 = add nsw i32 %736, 1
  store i32 %737, ptr @test_count, align 4, !tbaa !5
  %738 = call i32 @s2n_negotiate(ptr noundef nonnull %190, ptr noundef nonnull %3) #9
  %739 = icmp eq i32 %738, -1
  br i1 %739, label %762, label %740

740:                                              ; preds = %735
  %741 = load i32, ptr %627, align 4, !tbaa !5
  %742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %743 = call i32 @s2n_print_stacktrace(ptr noundef %742) #9
  %744 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %745 = trunc nuw i8 %744 to i1
  br i1 %745, label %746, label %750

746:                                              ; preds = %740
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = call i32 @fileno(ptr noundef %747) #9
  %749 = call i32 @isatty(i32 noundef %748) #9
  %.not248 = icmp eq i32 %749, 0
  br i1 %.not248, label %750, label %751

750:                                              ; preds = %746, %740
  br label %751

751:                                              ; preds = %746, %750
  %.str.5.sink578 = phi ptr [ @.str.5, %750 ], [ @.str.2, %746 ]
  store i32 %741, ptr %627, align 4, !tbaa !5
  %752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %753 = load i32, ptr @test_count, align 4, !tbaa !5
  %754 = load i32, ptr %364, align 4, !tbaa !5
  %755 = call ptr @s2n_strerror(i32 noundef %754, ptr noundef nonnull @.str.4) #9
  %756 = load i32, ptr %364, align 4, !tbaa !5
  %757 = call ptr @s2n_strerror_debug(i32 noundef %756, ptr noundef nonnull @.str.4) #9
  %758 = load i32, ptr %627, align 4, !tbaa !5
  %759 = call ptr @strerror(i32 noundef %758) #9
  %760 = load i32, ptr %627, align 4, !tbaa !5
  %761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %752, ptr noundef nonnull %.str.5.sink578, i32 noundef %753, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 146, ptr noundef %755, ptr noundef %757, ptr noundef %759, i32 noundef %760) #11
  call void @exit(i32 noundef 1) #12
  unreachable

762:                                              ; preds = %735
  %763 = load i32, ptr @test_count, align 4, !tbaa !5
  %764 = add nsw i32 %763, 1
  store i32 %764, ptr @test_count, align 4, !tbaa !5
  %765 = load i32, ptr %364, align 4, !tbaa !5
  %766 = icmp eq i32 %765, 201326592
  br i1 %766, label %789, label %767

767:                                              ; preds = %762
  %768 = load i32, ptr %627, align 4, !tbaa !5
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = call i32 @s2n_print_stacktrace(ptr noundef %769) #9
  %771 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %772 = trunc nuw i8 %771 to i1
  br i1 %772, label %773, label %777

773:                                              ; preds = %767
  %774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %775 = call i32 @fileno(ptr noundef %774) #9
  %776 = call i32 @isatty(i32 noundef %775) #9
  %.not249 = icmp eq i32 %776, 0
  br i1 %.not249, label %777, label %778

777:                                              ; preds = %773, %767
  br label %778

778:                                              ; preds = %773, %777
  %.str.5.sink587 = phi ptr [ @.str.5, %777 ], [ @.str.2, %773 ]
  store i32 %768, ptr %627, align 4, !tbaa !5
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = load i32, ptr @test_count, align 4, !tbaa !5
  %781 = load i32, ptr %364, align 4, !tbaa !5
  %782 = call ptr @s2n_strerror(i32 noundef %781, ptr noundef nonnull @.str.4) #9
  %783 = load i32, ptr %364, align 4, !tbaa !5
  %784 = call ptr @s2n_strerror_debug(i32 noundef %783, ptr noundef nonnull @.str.4) #9
  %785 = load i32, ptr %627, align 4, !tbaa !5
  %786 = call ptr @strerror(i32 noundef %785) #9
  %787 = load i32, ptr %627, align 4, !tbaa !5
  %788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %779, ptr noundef nonnull %.str.5.sink587, i32 noundef %780, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 147, ptr noundef %782, ptr noundef %784, ptr noundef %786, i32 noundef %787) #11
  call void @exit(i32 noundef 1) #12
  unreachable

789:                                              ; preds = %762
  %790 = add nsw i32 %763, 2
  store i32 %790, ptr @test_count, align 4, !tbaa !5
  %791 = load i32, ptr %3, align 4, !tbaa !5
  %792 = icmp eq i32 %791, 1
  br i1 %792, label %815, label %793

793:                                              ; preds = %789
  %794 = load i32, ptr %627, 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
  %.not250 = icmp eq i32 %802, 0
  br i1 %.not250, label %803, label %804

803:                                              ; preds = %799, %793
  br label %804

804:                                              ; preds = %799, %803
  %.str.5.sink596 = phi ptr [ @.str.5, %803 ], [ @.str.2, %799 ]
  store i32 %794, ptr %627, 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 %364, align 4, !tbaa !5
  %808 = call ptr @s2n_strerror(i32 noundef %807, ptr noundef nonnull @.str.4) #9
  %809 = load i32, ptr %364, align 4, !tbaa !5
  %810 = call ptr @s2n_strerror_debug(i32 noundef %809, ptr noundef nonnull @.str.4) #9
  %811 = load i32, ptr %627, align 4, !tbaa !5
  %812 = call ptr @strerror(i32 noundef %811) #9
  %813 = load i32, ptr %627, align 4, !tbaa !5
  %814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %805, ptr noundef nonnull %.str.5.sink596, i32 noundef %806, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 148, 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 = add nsw i32 %763, 3
  store i32 %816, ptr @test_count, align 4, !tbaa !5
  %817 = getelementptr inbounds i8, ptr %190, i64 218
  %818 = load i8, ptr %817, align 2, !tbaa !20
  %819 = icmp eq i8 %818, 33
  br i1 %819, label %842, label %820

820:                                              ; preds = %815
  %821 = load i32, ptr %627, align 4, !tbaa !5
  %822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %823 = call i32 @s2n_print_stacktrace(ptr noundef %822) #9
  %824 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %825 = trunc nuw i8 %824 to i1
  br i1 %825, label %826, label %830

826:                                              ; preds = %820
  %827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %828 = call i32 @fileno(ptr noundef %827) #9
  %829 = call i32 @isatty(i32 noundef %828) #9
  %.not251 = icmp eq i32 %829, 0
  br i1 %.not251, label %830, label %831

830:                                              ; preds = %826, %820
  br label %831

831:                                              ; preds = %826, %830
  %.str.5.sink605 = phi ptr [ @.str.5, %830 ], [ @.str.2, %826 ]
  store i32 %821, ptr %627, align 4, !tbaa !5
  %832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %833 = load i32, ptr @test_count, align 4, !tbaa !5
  %834 = load i32, ptr %364, align 4, !tbaa !5
  %835 = call ptr @s2n_strerror(i32 noundef %834, ptr noundef nonnull @.str.4) #9
  %836 = load i32, ptr %364, align 4, !tbaa !5
  %837 = call ptr @s2n_strerror_debug(i32 noundef %836, ptr noundef nonnull @.str.4) #9
  %838 = load i32, ptr %627, align 4, !tbaa !5
  %839 = call ptr @strerror(i32 noundef %838) #9
  %840 = load i32, ptr %627, align 4, !tbaa !5
  %841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %832, ptr noundef nonnull %.str.5.sink605, i32 noundef %833, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %835, ptr noundef %837, ptr noundef %839, i32 noundef %840) #11
  call void @exit(i32 noundef 1) #12
  unreachable

842:                                              ; preds = %815
  %843 = add nsw i32 %763, 4
  store i32 %843, ptr @test_count, align 4, !tbaa !5
  %844 = getelementptr inbounds i8, ptr %190, i64 220
  %845 = load i8, ptr %844, align 4, !tbaa !47
  %846 = icmp eq i8 %845, 33
  br i1 %846, label %869, label %847

847:                                              ; preds = %842
  %848 = load i32, ptr %627, align 4, !tbaa !5
  %849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %850 = call i32 @s2n_print_stacktrace(ptr noundef %849) #9
  %851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %852 = trunc nuw i8 %851 to i1
  br i1 %852, label %853, label %857

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

857:                                              ; preds = %853, %847
  br label %858

858:                                              ; preds = %853, %857
  %.str.5.sink614 = phi ptr [ @.str.5, %857 ], [ @.str.2, %853 ]
  store i32 %848, ptr %627, align 4, !tbaa !5
  %859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %860 = load i32, ptr @test_count, align 4, !tbaa !5
  %861 = load i32, ptr %364, align 4, !tbaa !5
  %862 = call ptr @s2n_strerror(i32 noundef %861, ptr noundef nonnull @.str.4) #9
  %863 = load i32, ptr %364, align 4, !tbaa !5
  %864 = call ptr @s2n_strerror_debug(i32 noundef %863, ptr noundef nonnull @.str.4) #9
  %865 = load i32, ptr %627, align 4, !tbaa !5
  %866 = call ptr @strerror(i32 noundef %865) #9
  %867 = load i32, ptr %627, align 4, !tbaa !5
  %868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %859, ptr noundef nonnull %.str.5.sink614, i32 noundef %860, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %862, ptr noundef %864, ptr noundef %866, i32 noundef %867) #11
  call void @exit(i32 noundef 1) #12
  unreachable

869:                                              ; preds = %842
  %870 = add nsw i32 %763, 5
  store i32 %870, ptr @test_count, align 4, !tbaa !5
  %871 = getelementptr inbounds i8, ptr %190, i64 219
  %872 = load i8, ptr %871, align 1, !tbaa !48
  %873 = icmp eq i8 %872, 33
  br i1 %873, label %896, label %874

874:                                              ; preds = %869
  %875 = load i32, ptr %627, align 4, !tbaa !5
  %876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %877 = call i32 @s2n_print_stacktrace(ptr noundef %876) #9
  %878 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %879 = trunc nuw i8 %878 to i1
  br i1 %879, label %880, label %884

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

884:                                              ; preds = %880, %874
  br label %885

885:                                              ; preds = %880, %884
  %.str.5.sink623 = phi ptr [ @.str.5, %884 ], [ @.str.2, %880 ]
  store i32 %875, ptr %627, align 4, !tbaa !5
  %886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %887 = load i32, ptr @test_count, align 4, !tbaa !5
  %888 = load i32, ptr %364, align 4, !tbaa !5
  %889 = call ptr @s2n_strerror(i32 noundef %888, ptr noundef nonnull @.str.4) #9
  %890 = load i32, ptr %364, align 4, !tbaa !5
  %891 = call ptr @s2n_strerror_debug(i32 noundef %890, ptr noundef nonnull @.str.4) #9
  %892 = load i32, ptr %627, align 4, !tbaa !5
  %893 = call ptr @strerror(i32 noundef %892) #9
  %894 = load i32, ptr %627, align 4, !tbaa !5
  %895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %886, ptr noundef nonnull %.str.5.sink623, i32 noundef %887, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %889, ptr noundef %891, ptr noundef %893, i32 noundef %894) #11
  call void @exit(i32 noundef 1) #12
  unreachable

896:                                              ; preds = %869
  %897 = add nsw i32 %763, 6
  store i32 %897, ptr @test_count, align 4, !tbaa !5
  %898 = call i32 @s2n_shutdown(ptr noundef nonnull %190, ptr noundef nonnull %3) #9
  %899 = icmp eq i32 %898, -1
  br i1 %899, label %900, label %.preheader316

900:                                              ; preds = %896
  %901 = load i32, ptr %627, align 4, !tbaa !5
  %902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %903 = call i32 @s2n_print_stacktrace(ptr noundef %902) #9
  %904 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %905 = trunc nuw i8 %904 to i1
  br i1 %905, label %906, label %910

906:                                              ; preds = %900
  %907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %908 = call i32 @fileno(ptr noundef %907) #9
  %909 = call i32 @isatty(i32 noundef %908) #9
  %.not298 = icmp eq i32 %909, 0
  br i1 %.not298, label %910, label %911

910:                                              ; preds = %906, %900
  br label %911

911:                                              ; preds = %906, %910
  %.str.5.sink632 = phi ptr [ @.str.5, %910 ], [ @.str.2, %906 ]
  store i32 %901, ptr %627, align 4, !tbaa !5
  %912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %913 = load i32, ptr @test_count, align 4, !tbaa !5
  %914 = load i32, ptr %364, align 4, !tbaa !5
  %915 = call ptr @s2n_strerror(i32 noundef %914, ptr noundef nonnull @.str.4) #9
  %916 = load i32, ptr %364, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror_debug(i32 noundef %916, ptr noundef nonnull @.str.4) #9
  %918 = load i32, ptr %627, align 4, !tbaa !5
  %919 = call ptr @strerror(i32 noundef %918) #9
  %920 = load i32, ptr %627, align 4, !tbaa !5
  %921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %912, ptr noundef nonnull %.str.5.sink632, i32 noundef %913, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 156, ptr noundef %915, ptr noundef %917, ptr noundef %919, i32 noundef %920) #11
  call void @exit(i32 noundef 1) #12
  unreachable

922:                                              ; preds = %.preheader316
  %923 = add nuw i64 %928, %.1320
  %924 = icmp ult i64 %923, 5
  br i1 %924, label %.preheader316, label %954, !llvm.loop !49

.preheader316:                                    ; preds = %896, %922
  %.1320 = phi i64 [ %923, %922 ], [ 0, %896 ]
  %925 = load i32, ptr %418, align 4, !tbaa !18
  %926 = getelementptr inbounds i8, ptr %7, i64 %.1320
  %927 = sub nuw nsw i64 1024, %.1320
  %928 = call i64 @read(i32 noundef %925, ptr noundef nonnull %926, i64 noundef %927) #9
  %929 = load i32, ptr @test_count, align 4, !tbaa !5
  %930 = add nsw i32 %929, 1
  store i32 %930, ptr @test_count, align 4, !tbaa !5
  %931 = icmp sgt i64 %928, 0
  br i1 %931, label %922, label %932

932:                                              ; preds = %.preheader316
  %933 = load i32, ptr %627, align 4, !tbaa !5
  %934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %935 = call i32 @s2n_print_stacktrace(ptr noundef %934) #9
  %936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %937 = trunc nuw i8 %936 to i1
  br i1 %937, label %938, label %942

938:                                              ; preds = %932
  %939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %940 = call i32 @fileno(ptr noundef %939) #9
  %941 = call i32 @isatty(i32 noundef %940) #9
  %.not297 = icmp eq i32 %941, 0
  br i1 %.not297, label %942, label %943

942:                                              ; preds = %938, %932
  br label %943

943:                                              ; preds = %938, %942
  %.str.5.sink641 = phi ptr [ @.str.5, %942 ], [ @.str.2, %938 ]
  store i32 %933, ptr %627, align 4, !tbaa !5
  %944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %945 = load i32, ptr @test_count, align 4, !tbaa !5
  %946 = load i32, ptr %364, align 4, !tbaa !5
  %947 = call ptr @s2n_strerror(i32 noundef %946, ptr noundef nonnull @.str.4) #9
  %948 = load i32, ptr %364, align 4, !tbaa !5
  %949 = call ptr @s2n_strerror_debug(i32 noundef %948, ptr noundef nonnull @.str.4) #9
  %950 = load i32, ptr %627, align 4, !tbaa !5
  %951 = call ptr @strerror(i32 noundef %950) #9
  %952 = load i32, ptr %627, align 4, !tbaa !5
  %953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %944, ptr noundef nonnull %.str.5.sink641, i32 noundef %945, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 165, ptr noundef %947, ptr noundef %949, ptr noundef %951, i32 noundef %952) #11
  call void @exit(i32 noundef 1) #12
  unreachable

954:                                              ; preds = %922
  %955 = add nsw i32 %929, 2
  store i32 %955, ptr @test_count, align 4, !tbaa !5
  %956 = load i8, ptr %482, align 1, !tbaa !15
  %957 = icmp eq i8 %956, 3
  br i1 %957, label %980, label %958

958:                                              ; preds = %954
  %959 = load i32, ptr %627, align 4, !tbaa !5
  %960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %961 = call i32 @s2n_print_stacktrace(ptr noundef %960) #9
  %962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %963 = trunc nuw i8 %962 to i1
  br i1 %963, label %964, label %968

964:                                              ; preds = %958
  %965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %966 = call i32 @fileno(ptr noundef %965) #9
  %967 = call i32 @isatty(i32 noundef %966) #9
  %.not254 = icmp eq i32 %967, 0
  br i1 %.not254, label %968, label %969

968:                                              ; preds = %964, %958
  br label %969

969:                                              ; preds = %964, %968
  %.str.5.sink650 = phi ptr [ @.str.5, %968 ], [ @.str.2, %964 ]
  store i32 %959, ptr %627, align 4, !tbaa !5
  %970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %971 = load i32, ptr @test_count, align 4, !tbaa !5
  %972 = load i32, ptr %364, align 4, !tbaa !5
  %973 = call ptr @s2n_strerror(i32 noundef %972, ptr noundef nonnull @.str.4) #9
  %974 = load i32, ptr %364, align 4, !tbaa !5
  %975 = call ptr @s2n_strerror_debug(i32 noundef %974, ptr noundef nonnull @.str.4) #9
  %976 = load i32, ptr %627, align 4, !tbaa !5
  %977 = call ptr @strerror(i32 noundef %976) #9
  %978 = load i32, ptr %627, align 4, !tbaa !5
  %979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %970, ptr noundef nonnull %.str.5.sink650, i32 noundef %971, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 169, ptr noundef %973, ptr noundef %975, ptr noundef %977, i32 noundef %978) #11
  call void @exit(i32 noundef 1) #12
  unreachable

980:                                              ; preds = %954
  %981 = add nsw i32 %929, 3
  store i32 %981, ptr @test_count, align 4, !tbaa !5
  %982 = load i8, ptr %510, align 2, !tbaa !15
  %983 = icmp eq i8 %982, 3
  br i1 %983, label %1006, label %984

984:                                              ; preds = %980
  %985 = load i32, ptr %627, align 4, !tbaa !5
  %986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %987 = call i32 @s2n_print_stacktrace(ptr noundef %986) #9
  %988 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %989 = trunc nuw i8 %988 to i1
  br i1 %989, label %990, label %994

990:                                              ; preds = %984
  %991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %992 = call i32 @fileno(ptr noundef %991) #9
  %993 = call i32 @isatty(i32 noundef %992) #9
  %.not255 = icmp eq i32 %993, 0
  br i1 %.not255, label %994, label %995

994:                                              ; preds = %990, %984
  br label %995

995:                                              ; preds = %990, %994
  %.str.5.sink659 = phi ptr [ @.str.5, %994 ], [ @.str.2, %990 ]
  store i32 %985, ptr %627, align 4, !tbaa !5
  %996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %997 = load i32, ptr @test_count, align 4, !tbaa !5
  %998 = load i32, ptr %364, align 4, !tbaa !5
  %999 = call ptr @s2n_strerror(i32 noundef %998, ptr noundef nonnull @.str.4) #9
  %1000 = load i32, ptr %364, align 4, !tbaa !5
  %1001 = call ptr @s2n_strerror_debug(i32 noundef %1000, ptr noundef nonnull @.str.4) #9
  %1002 = load i32, ptr %627, align 4, !tbaa !5
  %1003 = call ptr @strerror(i32 noundef %1002) #9
  %1004 = load i32, ptr %627, align 4, !tbaa !5
  %1005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %996, ptr noundef nonnull %.str.5.sink659, i32 noundef %997, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %999, ptr noundef %1001, ptr noundef %1003, i32 noundef %1004) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1006:                                             ; preds = %980
  %1007 = add nsw i32 %929, 4
  store i32 %1007, ptr @test_count, align 4, !tbaa !5
  %1008 = call i32 @s2n_connection_free(ptr noundef nonnull %190) #9
  %1009 = icmp eq i32 %1008, -1
  br i1 %1009, label %1010, label %1032

1010:                                             ; preds = %1006
  %1011 = load i32, ptr %627, align 4, !tbaa !5
  %1012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1013 = call i32 @s2n_print_stacktrace(ptr noundef %1012) #9
  %1014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1015 = trunc nuw i8 %1014 to i1
  br i1 %1015, label %1016, label %1020

1016:                                             ; preds = %1010
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1018 = call i32 @fileno(ptr noundef %1017) #9
  %1019 = call i32 @isatty(i32 noundef %1018) #9
  %.not296 = icmp eq i32 %1019, 0
  br i1 %.not296, label %1020, label %1021

1020:                                             ; preds = %1016, %1010
  br label %1021

1021:                                             ; preds = %1016, %1020
  %.str.5.sink668 = phi ptr [ @.str.5, %1020 ], [ @.str.2, %1016 ]
  store i32 %1011, ptr %627, align 4, !tbaa !5
  %1022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1023 = load i32, ptr @test_count, align 4, !tbaa !5
  %1024 = load i32, ptr %364, align 4, !tbaa !5
  %1025 = call ptr @s2n_strerror(i32 noundef %1024, ptr noundef nonnull @.str.4) #9
  %1026 = load i32, ptr %364, align 4, !tbaa !5
  %1027 = call ptr @s2n_strerror_debug(i32 noundef %1026, ptr noundef nonnull @.str.4) #9
  %1028 = load i32, ptr %627, align 4, !tbaa !5
  %1029 = call ptr @strerror(i32 noundef %1028) #9
  %1030 = load i32, ptr %627, align 4, !tbaa !5
  %1031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1022, ptr noundef nonnull %.str.5.sink668, i32 noundef %1023, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 172, ptr noundef %1025, ptr noundef %1027, ptr noundef %1029, i32 noundef %1030) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1032:                                             ; preds = %1006
  %1033 = load i32, ptr @test_count, align 4, !tbaa !5
  %1034 = add nsw i32 %1033, 1
  store i32 %1034, ptr @test_count, align 4, !tbaa !5
  %1035 = call i32 @s2n_config_free(ptr noundef nonnull %248) #9
  %1036 = icmp eq i32 %1035, -1
  br i1 %1036, label %1037, label %1059

1037:                                             ; preds = %1032
  %1038 = load i32, ptr %627, align 4, !tbaa !5
  %1039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1040 = call i32 @s2n_print_stacktrace(ptr noundef %1039) #9
  %1041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1042 = trunc nuw i8 %1041 to i1
  br i1 %1042, label %1043, label %1047

1043:                                             ; preds = %1037
  %1044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1045 = call i32 @fileno(ptr noundef %1044) #9
  %1046 = call i32 @isatty(i32 noundef %1045) #9
  %.not295 = icmp eq i32 %1046, 0
  br i1 %.not295, label %1047, label %1048

1047:                                             ; preds = %1043, %1037
  br label %1048

1048:                                             ; preds = %1043, %1047
  %.str.5.sink677 = phi ptr [ @.str.5, %1047 ], [ @.str.2, %1043 ]
  store i32 %1038, ptr %627, align 4, !tbaa !5
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = load i32, ptr @test_count, align 4, !tbaa !5
  %1051 = load i32, ptr %364, align 4, !tbaa !5
  %1052 = call ptr @s2n_strerror(i32 noundef %1051, ptr noundef nonnull @.str.4) #9
  %1053 = load i32, ptr %364, align 4, !tbaa !5
  %1054 = call ptr @s2n_strerror_debug(i32 noundef %1053, ptr noundef nonnull @.str.4) #9
  %1055 = load i32, ptr %627, align 4, !tbaa !5
  %1056 = call ptr @strerror(i32 noundef %1055) #9
  %1057 = load i32, ptr %627, align 4, !tbaa !5
  %1058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1049, ptr noundef nonnull %.str.5.sink677, i32 noundef %1050, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 173, ptr noundef %1052, ptr noundef %1054, ptr noundef %1056, i32 noundef %1057) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1059:                                             ; preds = %1032
  %1060 = load i32, ptr @test_count, align 4, !tbaa !5
  %1061 = add nsw i32 %1060, 1
  store i32 %1061, ptr @test_count, align 4, !tbaa !5
  %1062 = call i32 @s2n_io_pair_close(ptr noundef nonnull %6) #9
  %1063 = icmp eq i32 %1062, -1
  br i1 %1063, label %1064, label %1086

1064:                                             ; preds = %1059
  %1065 = load i32, ptr %627, align 4, !tbaa !5
  %1066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1067 = call i32 @s2n_print_stacktrace(ptr noundef %1066) #9
  %1068 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1069 = trunc nuw i8 %1068 to i1
  br i1 %1069, label %1070, label %1074

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

1074:                                             ; preds = %1070, %1064
  br label %1075

1075:                                             ; preds = %1070, %1074
  %.str.5.sink686 = phi ptr [ @.str.5, %1074 ], [ @.str.2, %1070 ]
  store i32 %1065, ptr %627, align 4, !tbaa !5
  %1076 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1077 = load i32, ptr @test_count, align 4, !tbaa !5
  %1078 = load i32, ptr %364, align 4, !tbaa !5
  %1079 = call ptr @s2n_strerror(i32 noundef %1078, ptr noundef nonnull @.str.4) #9
  %1080 = load i32, ptr %364, align 4, !tbaa !5
  %1081 = call ptr @s2n_strerror_debug(i32 noundef %1080, ptr noundef nonnull @.str.4) #9
  %1082 = load i32, ptr %627, align 4, !tbaa !5
  %1083 = call ptr @strerror(i32 noundef %1082) #9
  %1084 = load i32, ptr %627, align 4, !tbaa !5
  %1085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1076, ptr noundef nonnull %.str.5.sink686, i32 noundef %1077, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 175, ptr noundef %1079, ptr noundef %1081, ptr noundef %1083, i32 noundef %1084) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1086:                                             ; preds = %1059
  call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  call void @llvm.lifetime.end.p0(i64 5, 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
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) #9
  store <4 x i8> <i8 2, i8 0, i8 0, i8 72>, ptr %9, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 5, ptr nonnull %10) #9
  store <4 x i8> <i8 22, i8 3, i8 0, i8 0>, ptr %10, align 4, !tbaa !15
  %1087 = getelementptr inbounds i8, ptr %10, i64 4
  store i8 76, ptr %1087, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #9
  %1088 = load i32, ptr @test_count, align 4, !tbaa !5
  %1089 = add nsw i32 %1088, 1
  store i32 %1089, ptr @test_count, align 4, !tbaa !5
  %1090 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %11) #9
  %1091 = icmp eq i32 %1090, -1
  br i1 %1091, label %1092, label %1114

1092:                                             ; preds = %1086
  %1093 = load i32, ptr %627, align 4, !tbaa !5
  %1094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1095 = call i32 @s2n_print_stacktrace(ptr noundef %1094) #9
  %1096 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1097 = trunc nuw i8 %1096 to i1
  br i1 %1097, label %1098, label %1102

1098:                                             ; preds = %1092
  %1099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1100 = call i32 @fileno(ptr noundef %1099) #9
  %1101 = call i32 @isatty(i32 noundef %1100) #9
  %.not293 = icmp eq i32 %1101, 0
  br i1 %.not293, label %1102, label %1103

1102:                                             ; preds = %1098, %1092
  br label %1103

1103:                                             ; preds = %1098, %1102
  %.str.5.sink695 = phi ptr [ @.str.5, %1102 ], [ @.str.2, %1098 ]
  store i32 %1093, ptr %627, align 4, !tbaa !5
  %1104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1105 = load i32, ptr @test_count, align 4, !tbaa !5
  %1106 = load i32, ptr %364, align 4, !tbaa !5
  %1107 = call ptr @s2n_strerror(i32 noundef %1106, ptr noundef nonnull @.str.4) #9
  %1108 = load i32, ptr %364, align 4, !tbaa !5
  %1109 = call ptr @s2n_strerror_debug(i32 noundef %1108, ptr noundef nonnull @.str.4) #9
  %1110 = load i32, ptr %627, align 4, !tbaa !5
  %1111 = call ptr @strerror(i32 noundef %1110) #9
  %1112 = load i32, ptr %627, align 4, !tbaa !5
  %1113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1104, ptr noundef nonnull %.str.5.sink695, i32 noundef %1105, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 223, ptr noundef %1107, ptr noundef %1109, ptr noundef %1111, i32 noundef %1112) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1114:                                             ; preds = %1086
  %1115 = load i32, ptr @test_count, align 4, !tbaa !5
  %1116 = add nsw i32 %1115, 1
  store i32 %1116, ptr @test_count, align 4, !tbaa !5
  %1117 = call ptr @s2n_connection_new(i32 noundef 1) #9
  %1118 = icmp eq ptr %1117, null
  br i1 %1118, label %1119, label %1141

1119:                                             ; preds = %1114
  %1120 = load i32, ptr %627, align 4, !tbaa !5
  %1121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1122 = call i32 @s2n_print_stacktrace(ptr noundef %1121) #9
  %1123 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1124 = trunc nuw i8 %1123 to i1
  br i1 %1124, label %1125, label %1129

1125:                                             ; preds = %1119
  %1126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1127 = call i32 @fileno(ptr noundef %1126) #9
  %1128 = call i32 @isatty(i32 noundef %1127) #9
  %.not292 = icmp eq i32 %1128, 0
  br i1 %.not292, label %1129, label %1130

1129:                                             ; preds = %1125, %1119
  br label %1130

1130:                                             ; preds = %1125, %1129
  %.str.5.sink704 = phi ptr [ @.str.5, %1129 ], [ @.str.2, %1125 ]
  store i32 %1120, ptr %627, align 4, !tbaa !5
  %1131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1132 = load i32, ptr @test_count, align 4, !tbaa !5
  %1133 = load i32, ptr %364, align 4, !tbaa !5
  %1134 = call ptr @s2n_strerror(i32 noundef %1133, ptr noundef nonnull @.str.4) #9
  %1135 = load i32, ptr %364, align 4, !tbaa !5
  %1136 = call ptr @s2n_strerror_debug(i32 noundef %1135, ptr noundef nonnull @.str.4) #9
  %1137 = load i32, ptr %627, align 4, !tbaa !5
  %1138 = call ptr @strerror(i32 noundef %1137) #9
  %1139 = load i32, ptr %627, align 4, !tbaa !5
  %1140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1131, ptr noundef nonnull %.str.5.sink704, i32 noundef %1132, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 225, ptr noundef %1134, ptr noundef %1136, ptr noundef %1138, i32 noundef %1139) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1141:                                             ; preds = %1114
  %1142 = load i32, ptr @test_count, align 4, !tbaa !5
  %1143 = add nsw i32 %1142, 1
  store i32 %1143, ptr @test_count, align 4, !tbaa !5
  %1144 = call i32 @s2n_connection_set_io_pair(ptr noundef nonnull %1117, ptr noundef nonnull %11) #9
  %1145 = icmp eq i32 %1144, -1
  br i1 %1145, label %1146, label %1168

1146:                                             ; preds = %1141
  %1147 = load i32, ptr %627, align 4, !tbaa !5
  %1148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1149 = call i32 @s2n_print_stacktrace(ptr noundef %1148) #9
  %1150 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1151 = trunc nuw i8 %1150 to i1
  br i1 %1151, label %1152, label %1156

1152:                                             ; preds = %1146
  %1153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1154 = call i32 @fileno(ptr noundef %1153) #9
  %1155 = call i32 @isatty(i32 noundef %1154) #9
  %.not291 = icmp eq i32 %1155, 0
  br i1 %.not291, label %1156, label %1157

1156:                                             ; preds = %1152, %1146
  br label %1157

1157:                                             ; preds = %1152, %1156
  %.str.5.sink713 = phi ptr [ @.str.5, %1156 ], [ @.str.2, %1152 ]
  store i32 %1147, ptr %627, align 4, !tbaa !5
  %1158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1159 = load i32, ptr @test_count, align 4, !tbaa !5
  %1160 = load i32, ptr %364, align 4, !tbaa !5
  %1161 = call ptr @s2n_strerror(i32 noundef %1160, ptr noundef nonnull @.str.4) #9
  %1162 = load i32, ptr %364, align 4, !tbaa !5
  %1163 = call ptr @s2n_strerror_debug(i32 noundef %1162, ptr noundef nonnull @.str.4) #9
  %1164 = load i32, ptr %627, align 4, !tbaa !5
  %1165 = call ptr @strerror(i32 noundef %1164) #9
  %1166 = load i32, ptr %627, align 4, !tbaa !5
  %1167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1158, ptr noundef nonnull %.str.5.sink713, i32 noundef %1159, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 226, ptr noundef %1161, ptr noundef %1163, ptr noundef %1165, i32 noundef %1166) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1168:                                             ; preds = %1141
  %1169 = load i32, ptr @test_count, align 4, !tbaa !5
  %1170 = add nsw i32 %1169, 1
  store i32 %1170, ptr @test_count, align 4, !tbaa !5
  %1171 = call ptr @s2n_config_new() #9
  %1172 = icmp eq ptr %1171, null
  br i1 %1172, label %1173, label %1195

1173:                                             ; preds = %1168
  %1174 = load i32, ptr %627, align 4, !tbaa !5
  %1175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1176 = call i32 @s2n_print_stacktrace(ptr noundef %1175) #9
  %1177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1178 = trunc nuw i8 %1177 to i1
  br i1 %1178, label %1179, label %1183

1179:                                             ; preds = %1173
  %1180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1181 = call i32 @fileno(ptr noundef %1180) #9
  %1182 = call i32 @isatty(i32 noundef %1181) #9
  %.not290 = icmp eq i32 %1182, 0
  br i1 %.not290, label %1183, label %1184

1183:                                             ; preds = %1179, %1173
  br label %1184

1184:                                             ; preds = %1179, %1183
  %.str.5.sink722 = phi ptr [ @.str.5, %1183 ], [ @.str.2, %1179 ]
  store i32 %1174, ptr %627, align 4, !tbaa !5
  %1185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1186 = load i32, ptr @test_count, align 4, !tbaa !5
  %1187 = load i32, ptr %364, align 4, !tbaa !5
  %1188 = call ptr @s2n_strerror(i32 noundef %1187, ptr noundef nonnull @.str.4) #9
  %1189 = load i32, ptr %364, align 4, !tbaa !5
  %1190 = call ptr @s2n_strerror_debug(i32 noundef %1189, ptr noundef nonnull @.str.4) #9
  %1191 = load i32, ptr %627, align 4, !tbaa !5
  %1192 = call ptr @strerror(i32 noundef %1191) #9
  %1193 = load i32, ptr %627, align 4, !tbaa !5
  %1194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1185, ptr noundef nonnull %.str.5.sink722, i32 noundef %1186, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %1188, ptr noundef %1190, ptr noundef %1192, i32 noundef %1193) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1195:                                             ; preds = %1168
  %1196 = load i32, ptr @test_count, align 4, !tbaa !5
  %1197 = add nsw i32 %1196, 1
  store i32 %1197, ptr @test_count, align 4, !tbaa !5
  %1198 = call i32 @s2n_config_set_cipher_preferences(ptr noundef nonnull %1171, ptr noundef nonnull @.str.18) #9
  %1199 = icmp eq i32 %1198, -1
  br i1 %1199, label %1200, label %1222

1200:                                             ; preds = %1195
  %1201 = load i32, ptr %627, align 4, !tbaa !5
  %1202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1203 = call i32 @s2n_print_stacktrace(ptr noundef %1202) #9
  %1204 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1205 = trunc nuw i8 %1204 to i1
  br i1 %1205, label %1206, label %1210

1206:                                             ; preds = %1200
  %1207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1208 = call i32 @fileno(ptr noundef %1207) #9
  %1209 = call i32 @isatty(i32 noundef %1208) #9
  %.not289 = icmp eq i32 %1209, 0
  br i1 %.not289, label %1210, label %1211

1210:                                             ; preds = %1206, %1200
  br label %1211

1211:                                             ; preds = %1206, %1210
  %.str.5.sink731 = phi ptr [ @.str.5, %1210 ], [ @.str.2, %1206 ]
  store i32 %1201, ptr %627, align 4, !tbaa !5
  %1212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1213 = load i32, ptr @test_count, align 4, !tbaa !5
  %1214 = load i32, ptr %364, align 4, !tbaa !5
  %1215 = call ptr @s2n_strerror(i32 noundef %1214, ptr noundef nonnull @.str.4) #9
  %1216 = load i32, ptr %364, align 4, !tbaa !5
  %1217 = call ptr @s2n_strerror_debug(i32 noundef %1216, ptr noundef nonnull @.str.4) #9
  %1218 = load i32, ptr %627, align 4, !tbaa !5
  %1219 = call ptr @strerror(i32 noundef %1218) #9
  %1220 = load i32, ptr %627, align 4, !tbaa !5
  %1221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1212, ptr noundef nonnull %.str.5.sink731, i32 noundef %1213, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %1215, ptr noundef %1217, ptr noundef %1219, i32 noundef %1220) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1222:                                             ; preds = %1195
  %1223 = load i32, ptr @test_count, align 4, !tbaa !5
  %1224 = add nsw i32 %1223, 1
  store i32 %1224, ptr @test_count, align 4, !tbaa !5
  %1225 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1117, ptr noundef nonnull %1171) #9
  %1226 = icmp eq i32 %1225, -1
  br i1 %1226, label %1227, label %1249

1227:                                             ; preds = %1222
  %1228 = load i32, ptr %627, align 4, !tbaa !5
  %1229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1230 = call i32 @s2n_print_stacktrace(ptr noundef %1229) #9
  %1231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1232 = trunc nuw i8 %1231 to i1
  br i1 %1232, label %1233, label %1237

1233:                                             ; preds = %1227
  %1234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1235 = call i32 @fileno(ptr noundef %1234) #9
  %1236 = call i32 @isatty(i32 noundef %1235) #9
  %.not288 = icmp eq i32 %1236, 0
  br i1 %.not288, label %1237, label %1238

1237:                                             ; preds = %1233, %1227
  br label %1238

1238:                                             ; preds = %1233, %1237
  %.str.5.sink740 = phi ptr [ @.str.5, %1237 ], [ @.str.2, %1233 ]
  store i32 %1228, ptr %627, align 4, !tbaa !5
  %1239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1240 = load i32, ptr @test_count, align 4, !tbaa !5
  %1241 = load i32, ptr %364, align 4, !tbaa !5
  %1242 = call ptr @s2n_strerror(i32 noundef %1241, ptr noundef nonnull @.str.4) #9
  %1243 = load i32, ptr %364, align 4, !tbaa !5
  %1244 = call ptr @s2n_strerror_debug(i32 noundef %1243, ptr noundef nonnull @.str.4) #9
  %1245 = load i32, ptr %627, align 4, !tbaa !5
  %1246 = call ptr @strerror(i32 noundef %1245) #9
  %1247 = load i32, ptr %627, align 4, !tbaa !5
  %1248 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1239, ptr noundef nonnull %.str.5.sink740, i32 noundef %1240, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 230, ptr noundef %1242, ptr noundef %1244, ptr noundef %1246, i32 noundef %1247) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1249:                                             ; preds = %1222
  %1250 = load i32, ptr @test_count, align 4, !tbaa !5
  %1251 = add nsw i32 %1250, 1
  store i32 %1251, ptr @test_count, align 4, !tbaa !5
  %1252 = call i32 @s2n_negotiate(ptr noundef nonnull %1117, ptr noundef nonnull %8) #9
  %1253 = icmp eq i32 %1252, -1
  br i1 %1253, label %1276, label %1254

1254:                                             ; preds = %1249
  %1255 = load i32, ptr %627, align 4, !tbaa !5
  %1256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1257 = call i32 @s2n_print_stacktrace(ptr noundef %1256) #9
  %1258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1259 = trunc nuw i8 %1258 to i1
  br i1 %1259, label %1260, label %1264

1260:                                             ; preds = %1254
  %1261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1262 = call i32 @fileno(ptr noundef %1261) #9
  %1263 = call i32 @isatty(i32 noundef %1262) #9
  %.not256 = icmp eq i32 %1263, 0
  br i1 %.not256, label %1264, label %1265

1264:                                             ; preds = %1260, %1254
  br label %1265

1265:                                             ; preds = %1260, %1264
  %.str.5.sink749 = phi ptr [ @.str.5, %1264 ], [ @.str.2, %1260 ]
  store i32 %1255, ptr %627, align 4, !tbaa !5
  %1266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1267 = load i32, ptr @test_count, align 4, !tbaa !5
  %1268 = load i32, ptr %364, align 4, !tbaa !5
  %1269 = call ptr @s2n_strerror(i32 noundef %1268, ptr noundef nonnull @.str.4) #9
  %1270 = load i32, ptr %364, align 4, !tbaa !5
  %1271 = call ptr @s2n_strerror_debug(i32 noundef %1270, ptr noundef nonnull @.str.4) #9
  %1272 = load i32, ptr %627, align 4, !tbaa !5
  %1273 = call ptr @strerror(i32 noundef %1272) #9
  %1274 = load i32, ptr %627, align 4, !tbaa !5
  %1275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1266, ptr noundef nonnull %.str.5.sink749, i32 noundef %1267, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %1269, ptr noundef %1271, ptr noundef %1273, i32 noundef %1274) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1276:                                             ; preds = %1249
  %1277 = load i32, ptr @test_count, align 4, !tbaa !5
  %1278 = add nsw i32 %1277, 1
  store i32 %1278, ptr @test_count, align 4, !tbaa !5
  %1279 = load i32, ptr %364, align 4, !tbaa !5
  %1280 = icmp eq i32 %1279, 201326592
  br i1 %1280, label %1303, label %1281

1281:                                             ; preds = %1276
  %1282 = load i32, ptr %627, align 4, !tbaa !5
  %1283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1284 = call i32 @s2n_print_stacktrace(ptr noundef %1283) #9
  %1285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1286 = trunc nuw i8 %1285 to i1
  br i1 %1286, label %1287, label %1291

1287:                                             ; preds = %1281
  %1288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1289 = call i32 @fileno(ptr noundef %1288) #9
  %1290 = call i32 @isatty(i32 noundef %1289) #9
  %.not257 = icmp eq i32 %1290, 0
  br i1 %.not257, label %1291, label %1292

1291:                                             ; preds = %1287, %1281
  br label %1292

1292:                                             ; preds = %1287, %1291
  %.str.5.sink758 = phi ptr [ @.str.5, %1291 ], [ @.str.2, %1287 ]
  store i32 %1282, ptr %627, align 4, !tbaa !5
  %1293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1294 = load i32, ptr @test_count, align 4, !tbaa !5
  %1295 = load i32, ptr %364, align 4, !tbaa !5
  %1296 = call ptr @s2n_strerror(i32 noundef %1295, ptr noundef nonnull @.str.4) #9
  %1297 = load i32, ptr %364, align 4, !tbaa !5
  %1298 = call ptr @s2n_strerror_debug(i32 noundef %1297, ptr noundef nonnull @.str.4) #9
  %1299 = load i32, ptr %627, align 4, !tbaa !5
  %1300 = call ptr @strerror(i32 noundef %1299) #9
  %1301 = load i32, ptr %627, align 4, !tbaa !5
  %1302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1293, ptr noundef nonnull %.str.5.sink758, i32 noundef %1294, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 234, ptr noundef %1296, ptr noundef %1298, ptr noundef %1300, i32 noundef %1301) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1303:                                             ; preds = %1276
  %1304 = add nsw i32 %1277, 2
  store i32 %1304, ptr @test_count, align 4, !tbaa !5
  %1305 = load i32, ptr %8, align 4, !tbaa !5
  %1306 = icmp eq i32 %1305, 1
  br i1 %1306, label %1329, label %1307

1307:                                             ; preds = %1303
  %1308 = load i32, ptr %627, align 4, !tbaa !5
  %1309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1310 = call i32 @s2n_print_stacktrace(ptr noundef %1309) #9
  %1311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1312 = trunc nuw i8 %1311 to i1
  br i1 %1312, label %1313, label %1317

1313:                                             ; preds = %1307
  %1314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1315 = call i32 @fileno(ptr noundef %1314) #9
  %1316 = call i32 @isatty(i32 noundef %1315) #9
  %.not258 = icmp eq i32 %1316, 0
  br i1 %.not258, label %1317, label %1318

1317:                                             ; preds = %1313, %1307
  br label %1318

1318:                                             ; preds = %1313, %1317
  %.str.5.sink767 = phi ptr [ @.str.5, %1317 ], [ @.str.2, %1313 ]
  store i32 %1308, ptr %627, align 4, !tbaa !5
  %1319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1320 = load i32, ptr @test_count, align 4, !tbaa !5
  %1321 = load i32, ptr %364, align 4, !tbaa !5
  %1322 = call ptr @s2n_strerror(i32 noundef %1321, ptr noundef nonnull @.str.4) #9
  %1323 = load i32, ptr %364, align 4, !tbaa !5
  %1324 = call ptr @s2n_strerror_debug(i32 noundef %1323, ptr noundef nonnull @.str.4) #9
  %1325 = load i32, ptr %627, align 4, !tbaa !5
  %1326 = call ptr @strerror(i32 noundef %1325) #9
  %1327 = load i32, ptr %627, align 4, !tbaa !5
  %1328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1319, ptr noundef nonnull %.str.5.sink767, i32 noundef %1320, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 235, ptr noundef %1322, ptr noundef %1324, ptr noundef %1326, i32 noundef %1327) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1329:                                             ; preds = %1303
  call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %12) #9
  %1330 = getelementptr inbounds i8, ptr %11, i64 4
  br label %1334

1331:                                             ; preds = %1334
  %1332 = add nuw i64 %1338, %.0220321
  %1333 = icmp ult i64 %1332, 10
  br i1 %1333, label %1334, label %1364, !llvm.loop !50

1334:                                             ; preds = %1329, %1331
  %.0220321 = phi i64 [ 0, %1329 ], [ %1332, %1331 ]
  %1335 = load i32, ptr %1330, align 4, !tbaa !18
  %1336 = getelementptr inbounds i8, ptr %12, i64 %.0220321
  %1337 = sub nuw nsw i64 1024, %.0220321
  %1338 = call i64 @read(i32 noundef %1335, ptr noundef nonnull %1336, i64 noundef %1337) #9
  %1339 = load i32, ptr @test_count, align 4, !tbaa !5
  %1340 = add nsw i32 %1339, 1
  store i32 %1340, ptr @test_count, align 4, !tbaa !5
  %1341 = icmp sgt i64 %1338, 0
  br i1 %1341, label %1331, label %1342

1342:                                             ; preds = %1334
  %1343 = load i32, ptr %627, align 4, !tbaa !5
  %1344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1345 = call i32 @s2n_print_stacktrace(ptr noundef %1344) #9
  %1346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1347 = trunc nuw i8 %1346 to i1
  br i1 %1347, label %1348, label %1352

1348:                                             ; preds = %1342
  %1349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1350 = call i32 @fileno(ptr noundef %1349) #9
  %1351 = call i32 @isatty(i32 noundef %1350) #9
  %.not287 = icmp eq i32 %1351, 0
  br i1 %.not287, label %1352, label %1353

1352:                                             ; preds = %1348, %1342
  br label %1353

1353:                                             ; preds = %1348, %1352
  %.str.5.sink776 = phi ptr [ @.str.5, %1352 ], [ @.str.2, %1348 ]
  store i32 %1343, ptr %627, align 4, !tbaa !5
  %1354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1355 = load i32, ptr @test_count, align 4, !tbaa !5
  %1356 = load i32, ptr %364, align 4, !tbaa !5
  %1357 = call ptr @s2n_strerror(i32 noundef %1356, ptr noundef nonnull @.str.4) #9
  %1358 = load i32, ptr %364, align 4, !tbaa !5
  %1359 = call ptr @s2n_strerror_debug(i32 noundef %1358, ptr noundef nonnull @.str.4) #9
  %1360 = load i32, ptr %627, align 4, !tbaa !5
  %1361 = call ptr @strerror(i32 noundef %1360) #9
  %1362 = load i32, ptr %627, align 4, !tbaa !5
  %1363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1354, ptr noundef nonnull %.str.5.sink776, i32 noundef %1355, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 246, ptr noundef %1357, ptr noundef %1359, ptr noundef %1361, i32 noundef %1362) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1364:                                             ; preds = %1331
  %1365 = add nsw i32 %1339, 2
  store i32 %1365, ptr @test_count, align 4, !tbaa !5
  %1366 = load i8, ptr %12, align 16, !tbaa !15
  %1367 = icmp eq i8 %1366, 22
  br i1 %1367, label %1390, label %1368

1368:                                             ; preds = %1364
  %1369 = load i32, ptr %627, align 4, !tbaa !5
  %1370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1371 = call i32 @s2n_print_stacktrace(ptr noundef %1370) #9
  %1372 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1373 = trunc nuw i8 %1372 to i1
  br i1 %1373, label %1374, label %1378

1374:                                             ; preds = %1368
  %1375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1376 = call i32 @fileno(ptr noundef %1375) #9
  %1377 = call i32 @isatty(i32 noundef %1376) #9
  %.not259 = icmp eq i32 %1377, 0
  br i1 %.not259, label %1378, label %1379

1378:                                             ; preds = %1374, %1368
  br label %1379

1379:                                             ; preds = %1374, %1378
  %.str.5.sink785 = phi ptr [ @.str.5, %1378 ], [ @.str.2, %1374 ]
  store i32 %1369, ptr %627, align 4, !tbaa !5
  %1380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1381 = load i32, ptr @test_count, align 4, !tbaa !5
  %1382 = load i32, ptr %364, align 4, !tbaa !5
  %1383 = call ptr @s2n_strerror(i32 noundef %1382, ptr noundef nonnull @.str.4) #9
  %1384 = load i32, ptr %364, align 4, !tbaa !5
  %1385 = call ptr @s2n_strerror_debug(i32 noundef %1384, ptr noundef nonnull @.str.4) #9
  %1386 = load i32, ptr %627, align 4, !tbaa !5
  %1387 = call ptr @strerror(i32 noundef %1386) #9
  %1388 = load i32, ptr %627, align 4, !tbaa !5
  %1389 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1380, ptr noundef nonnull %.str.5.sink785, i32 noundef %1381, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 250, ptr noundef %1383, ptr noundef %1385, ptr noundef %1387, i32 noundef %1388) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1390:                                             ; preds = %1364
  %1391 = add nsw i32 %1339, 3
  store i32 %1391, ptr @test_count, align 4, !tbaa !5
  %1392 = getelementptr inbounds i8, ptr %12, i64 1
  %1393 = load i8, ptr %1392, align 1, !tbaa !15
  %1394 = icmp eq i8 %1393, 3
  br i1 %1394, label %1417, label %1395

1395:                                             ; preds = %1390
  %1396 = load i32, ptr %627, align 4, !tbaa !5
  %1397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1398 = call i32 @s2n_print_stacktrace(ptr noundef %1397) #9
  %1399 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1400 = trunc nuw i8 %1399 to i1
  br i1 %1400, label %1401, label %1405

1401:                                             ; preds = %1395
  %1402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1403 = call i32 @fileno(ptr noundef %1402) #9
  %1404 = call i32 @isatty(i32 noundef %1403) #9
  %.not260 = icmp eq i32 %1404, 0
  br i1 %.not260, label %1405, label %1406

1405:                                             ; preds = %1401, %1395
  br label %1406

1406:                                             ; preds = %1401, %1405
  %.str.5.sink794 = phi ptr [ @.str.5, %1405 ], [ @.str.2, %1401 ]
  store i32 %1396, ptr %627, align 4, !tbaa !5
  %1407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1408 = load i32, ptr @test_count, align 4, !tbaa !5
  %1409 = load i32, ptr %364, align 4, !tbaa !5
  %1410 = call ptr @s2n_strerror(i32 noundef %1409, ptr noundef nonnull @.str.4) #9
  %1411 = load i32, ptr %364, align 4, !tbaa !5
  %1412 = call ptr @s2n_strerror_debug(i32 noundef %1411, ptr noundef nonnull @.str.4) #9
  %1413 = load i32, ptr %627, align 4, !tbaa !5
  %1414 = call ptr @strerror(i32 noundef %1413) #9
  %1415 = load i32, ptr %627, align 4, !tbaa !5
  %1416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1407, ptr noundef nonnull %.str.5.sink794, i32 noundef %1408, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 252, ptr noundef %1410, ptr noundef %1412, ptr noundef %1414, i32 noundef %1415) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1417:                                             ; preds = %1390
  %1418 = add nsw i32 %1339, 4
  store i32 %1418, ptr @test_count, align 4, !tbaa !5
  %1419 = getelementptr inbounds i8, ptr %12, i64 2
  %1420 = load i8, ptr %1419, align 2, !tbaa !15
  %1421 = icmp eq i8 %1420, 1
  br i1 %1421, label %1444, label %1422

1422:                                             ; preds = %1417
  %1423 = load i32, ptr %627, align 4, !tbaa !5
  %1424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1425 = call i32 @s2n_print_stacktrace(ptr noundef %1424) #9
  %1426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1427 = trunc nuw i8 %1426 to i1
  br i1 %1427, label %1428, label %1432

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

1432:                                             ; preds = %1428, %1422
  br label %1433

1433:                                             ; preds = %1428, %1432
  %.str.5.sink803 = phi ptr [ @.str.5, %1432 ], [ @.str.2, %1428 ]
  store i32 %1423, ptr %627, align 4, !tbaa !5
  %1434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1435 = load i32, ptr @test_count, align 4, !tbaa !5
  %1436 = load i32, ptr %364, align 4, !tbaa !5
  %1437 = call ptr @s2n_strerror(i32 noundef %1436, ptr noundef nonnull @.str.4) #9
  %1438 = load i32, ptr %364, align 4, !tbaa !5
  %1439 = call ptr @s2n_strerror_debug(i32 noundef %1438, ptr noundef nonnull @.str.4) #9
  %1440 = load i32, ptr %627, align 4, !tbaa !5
  %1441 = call ptr @strerror(i32 noundef %1440) #9
  %1442 = load i32, ptr %627, align 4, !tbaa !5
  %1443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1434, ptr noundef nonnull %.str.5.sink803, i32 noundef %1435, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 253, ptr noundef %1437, ptr noundef %1439, ptr noundef %1441, i32 noundef %1442) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1444:                                             ; preds = %1417
  %1445 = add nsw i32 %1339, 5
  store i32 %1445, ptr @test_count, align 4, !tbaa !5
  %1446 = getelementptr inbounds i8, ptr %12, i64 5
  %1447 = load i8, ptr %1446, align 1, !tbaa !15
  %1448 = icmp eq i8 %1447, 1
  br i1 %1448, label %1471, label %1449

1449:                                             ; preds = %1444
  %1450 = load i32, ptr %627, align 4, !tbaa !5
  %1451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1452 = call i32 @s2n_print_stacktrace(ptr noundef %1451) #9
  %1453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1454 = trunc nuw i8 %1453 to i1
  br i1 %1454, label %1455, label %1459

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

1459:                                             ; preds = %1455, %1449
  br label %1460

1460:                                             ; preds = %1455, %1459
  %.str.5.sink812 = phi ptr [ @.str.5, %1459 ], [ @.str.2, %1455 ]
  store i32 %1450, ptr %627, align 4, !tbaa !5
  %1461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1462 = load i32, ptr @test_count, align 4, !tbaa !5
  %1463 = load i32, ptr %364, align 4, !tbaa !5
  %1464 = call ptr @s2n_strerror(i32 noundef %1463, ptr noundef nonnull @.str.4) #9
  %1465 = load i32, ptr %364, align 4, !tbaa !5
  %1466 = call ptr @s2n_strerror_debug(i32 noundef %1465, ptr noundef nonnull @.str.4) #9
  %1467 = load i32, ptr %627, align 4, !tbaa !5
  %1468 = call ptr @strerror(i32 noundef %1467) #9
  %1469 = load i32, ptr %627, align 4, !tbaa !5
  %1470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1461, ptr noundef nonnull %.str.5.sink812, i32 noundef %1462, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 255, ptr noundef %1464, ptr noundef %1466, ptr noundef %1468, i32 noundef %1469) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1471:                                             ; preds = %1444
  %1472 = add nsw i32 %1339, 6
  store i32 %1472, ptr @test_count, align 4, !tbaa !5
  %1473 = getelementptr inbounds i8, ptr %12, i64 9
  %1474 = load i8, ptr %1473, align 1, !tbaa !15
  %1475 = icmp eq i8 %1474, 3
  br i1 %1475, label %1498, label %1476

1476:                                             ; preds = %1471
  %1477 = load i32, ptr %627, align 4, !tbaa !5
  %1478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1479 = call i32 @s2n_print_stacktrace(ptr noundef %1478) #9
  %1480 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1481 = trunc nuw i8 %1480 to i1
  br i1 %1481, label %1482, label %1486

1482:                                             ; preds = %1476
  %1483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1484 = call i32 @fileno(ptr noundef %1483) #9
  %1485 = call i32 @isatty(i32 noundef %1484) #9
  %.not263 = icmp eq i32 %1485, 0
  br i1 %.not263, label %1486, label %1487

1486:                                             ; preds = %1482, %1476
  br label %1487

1487:                                             ; preds = %1482, %1486
  %.str.5.sink821 = phi ptr [ @.str.5, %1486 ], [ @.str.2, %1482 ]
  store i32 %1477, ptr %627, align 4, !tbaa !5
  %1488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1489 = load i32, ptr @test_count, align 4, !tbaa !5
  %1490 = load i32, ptr %364, align 4, !tbaa !5
  %1491 = call ptr @s2n_strerror(i32 noundef %1490, ptr noundef nonnull @.str.4) #9
  %1492 = load i32, ptr %364, align 4, !tbaa !5
  %1493 = call ptr @s2n_strerror_debug(i32 noundef %1492, ptr noundef nonnull @.str.4) #9
  %1494 = load i32, ptr %627, align 4, !tbaa !5
  %1495 = call ptr @strerror(i32 noundef %1494) #9
  %1496 = load i32, ptr %627, align 4, !tbaa !5
  %1497 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1488, ptr noundef nonnull %.str.5.sink821, i32 noundef %1489, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 257, ptr noundef %1491, ptr noundef %1493, ptr noundef %1495, i32 noundef %1496) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1498:                                             ; preds = %1471
  %1499 = add nsw i32 %1339, 7
  store i32 %1499, ptr @test_count, align 4, !tbaa !5
  %1500 = getelementptr inbounds i8, ptr %12, i64 10
  %1501 = load i8, ptr %1500, align 2, !tbaa !15
  %1502 = icmp eq i8 %1501, 3
  br i1 %1502, label %.critedge315, label %1503

1503:                                             ; preds = %1498
  %1504 = load i32, ptr %627, align 4, !tbaa !5
  %1505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1506 = call i32 @s2n_print_stacktrace(ptr noundef %1505) #9
  %1507 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1508 = trunc nuw i8 %1507 to i1
  br i1 %1508, label %1509, label %1513

1509:                                             ; preds = %1503
  %1510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1511 = call i32 @fileno(ptr noundef %1510) #9
  %1512 = call i32 @isatty(i32 noundef %1511) #9
  %.not264 = icmp eq i32 %1512, 0
  br i1 %.not264, label %1513, label %1514

1513:                                             ; preds = %1509, %1503
  br label %1514

1514:                                             ; preds = %1509, %1513
  %.str.5.sink830 = phi ptr [ @.str.5, %1513 ], [ @.str.2, %1509 ]
  store i32 %1504, ptr %627, align 4, !tbaa !5
  %1515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1516 = load i32, ptr @test_count, align 4, !tbaa !5
  %1517 = load i32, ptr %364, align 4, !tbaa !5
  %1518 = call ptr @s2n_strerror(i32 noundef %1517, ptr noundef nonnull @.str.4) #9
  %1519 = load i32, ptr %364, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror_debug(i32 noundef %1519, ptr noundef nonnull @.str.4) #9
  %1521 = load i32, ptr %627, align 4, !tbaa !5
  %1522 = call ptr @strerror(i32 noundef %1521) #9
  %1523 = load i32, ptr %627, align 4, !tbaa !5
  %1524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1515, ptr noundef nonnull %.str.5.sink830, i32 noundef %1516, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 258, ptr noundef %1518, ptr noundef %1520, ptr noundef %1522, i32 noundef %1523) #11
  call void @exit(i32 noundef 1) #12
  unreachable

.critedge315:                                     ; preds = %1498, %.critedge315.backedge
  %1525 = load i32, ptr %1330, align 4, !tbaa !18
  %1526 = call i64 @read(i32 noundef %1525, ptr noundef nonnull %12, i64 noundef 1024) #9
  %1527 = icmp sgt i64 %1526, 0
  br i1 %1527, label %.critedge315.backedge, label %1528

1528:                                             ; preds = %.critedge315
  %1529 = load i32, ptr @test_count, align 4, !tbaa !5
  %1530 = add nsw i32 %1529, 1
  store i32 %1530, ptr @test_count, align 4, !tbaa !5
  %1531 = icmp eq i64 %1526, -1
  %1532 = load i32, ptr %627, align 4, !tbaa !5
  br i1 %1531, label %1554, label %1533

1533:                                             ; preds = %1528
  %1534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1535 = call i32 @s2n_print_stacktrace(ptr noundef %1534) #9
  %1536 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1537 = trunc nuw i8 %1536 to i1
  br i1 %1537, label %1538, label %1542

1538:                                             ; preds = %1533
  %1539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1540 = call i32 @fileno(ptr noundef %1539) #9
  %1541 = call i32 @isatty(i32 noundef %1540) #9
  %.not265 = icmp eq i32 %1541, 0
  br i1 %.not265, label %1542, label %1543

1542:                                             ; preds = %1538, %1533
  br label %1543

1543:                                             ; preds = %1538, %1542
  %.str.5.sink839 = phi ptr [ @.str.5, %1542 ], [ @.str.2, %1538 ]
  store i32 %1532, ptr %627, align 4, !tbaa !5
  %1544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1545 = load i32, ptr @test_count, align 4, !tbaa !5
  %1546 = load i32, ptr %364, align 4, !tbaa !5
  %1547 = call ptr @s2n_strerror(i32 noundef %1546, ptr noundef nonnull @.str.4) #9
  %1548 = load i32, ptr %364, align 4, !tbaa !5
  %1549 = call ptr @s2n_strerror_debug(i32 noundef %1548, ptr noundef nonnull @.str.4) #9
  %1550 = load i32, ptr %627, align 4, !tbaa !5
  %1551 = call ptr @strerror(i32 noundef %1550) #9
  %1552 = load i32, ptr %627, align 4, !tbaa !5
  %1553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1544, ptr noundef nonnull %.str.5.sink839, i32 noundef %1545, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 268, ptr noundef %1547, ptr noundef %1549, ptr noundef %1551, i32 noundef %1552) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1554:                                             ; preds = %1528
  %1555 = icmp eq i32 %1532, 11
  br i1 %1555, label %1556, label %.critedge315.backedge

.critedge315.backedge:                            ; preds = %1554, %.critedge315
  br label %.critedge315

1556:                                             ; preds = %1554
  %1557 = add nsw i32 %1529, 2
  store i32 %1557, ptr @test_count, align 4, !tbaa !5
  %1558 = load i32, ptr %1330, align 4, !tbaa !18
  %1559 = call i64 @write(i32 noundef %1558, ptr noundef nonnull %10, i64 noundef 5) #9
  %1560 = icmp eq i64 %1559, 5
  br i1 %1560, label %1583, label %1561

1561:                                             ; preds = %1556
  %1562 = load i32, ptr %627, align 4, !tbaa !5
  %1563 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1564 = call i32 @s2n_print_stacktrace(ptr noundef %1563) #9
  %1565 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1566 = trunc nuw i8 %1565 to i1
  br i1 %1566, label %1567, label %1571

1567:                                             ; preds = %1561
  %1568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1569 = call i32 @fileno(ptr noundef %1568) #9
  %1570 = call i32 @isatty(i32 noundef %1569) #9
  %.not266 = icmp eq i32 %1570, 0
  br i1 %.not266, label %1571, label %1572

1571:                                             ; preds = %1567, %1561
  br label %1572

1572:                                             ; preds = %1567, %1571
  %.str.5.sink848 = phi ptr [ @.str.5, %1571 ], [ @.str.2, %1567 ]
  store i32 %1562, ptr %627, align 4, !tbaa !5
  %1573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1574 = load i32, ptr @test_count, align 4, !tbaa !5
  %1575 = load i32, ptr %364, align 4, !tbaa !5
  %1576 = call ptr @s2n_strerror(i32 noundef %1575, ptr noundef nonnull @.str.4) #9
  %1577 = load i32, ptr %364, align 4, !tbaa !5
  %1578 = call ptr @s2n_strerror_debug(i32 noundef %1577, ptr noundef nonnull @.str.4) #9
  %1579 = load i32, ptr %627, align 4, !tbaa !5
  %1580 = call ptr @strerror(i32 noundef %1579) #9
  %1581 = load i32, ptr %627, align 4, !tbaa !5
  %1582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1573, ptr noundef nonnull %.str.5.sink848, i32 noundef %1574, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 275, ptr noundef %1576, ptr noundef %1578, ptr noundef %1580, i32 noundef %1581) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1583:                                             ; preds = %1556
  %1584 = load i32, ptr @test_count, align 4, !tbaa !5
  %1585 = add nsw i32 %1584, 1
  store i32 %1585, ptr @test_count, align 4, !tbaa !5
  %1586 = load i32, ptr %1330, align 4, !tbaa !18
  %1587 = call i64 @write(i32 noundef %1586, ptr noundef nonnull %9, i64 noundef 4) #9
  %1588 = icmp eq i64 %1587, 4
  br i1 %1588, label %1611, label %1589

1589:                                             ; preds = %1583
  %1590 = load i32, ptr %627, align 4, !tbaa !5
  %1591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1592 = call i32 @s2n_print_stacktrace(ptr noundef %1591) #9
  %1593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1594 = trunc nuw i8 %1593 to i1
  br i1 %1594, label %1595, label %1599

1595:                                             ; preds = %1589
  %1596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1597 = call i32 @fileno(ptr noundef %1596) #9
  %1598 = call i32 @isatty(i32 noundef %1597) #9
  %.not267 = icmp eq i32 %1598, 0
  br i1 %.not267, label %1599, label %1600

1599:                                             ; preds = %1595, %1589
  br label %1600

1600:                                             ; preds = %1595, %1599
  %.str.5.sink857 = phi ptr [ @.str.5, %1599 ], [ @.str.2, %1595 ]
  store i32 %1590, ptr %627, align 4, !tbaa !5
  %1601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1602 = load i32, ptr @test_count, align 4, !tbaa !5
  %1603 = load i32, ptr %364, align 4, !tbaa !5
  %1604 = call ptr @s2n_strerror(i32 noundef %1603, ptr noundef nonnull @.str.4) #9
  %1605 = load i32, ptr %364, align 4, !tbaa !5
  %1606 = call ptr @s2n_strerror_debug(i32 noundef %1605, ptr noundef nonnull @.str.4) #9
  %1607 = load i32, ptr %627, align 4, !tbaa !5
  %1608 = call ptr @strerror(i32 noundef %1607) #9
  %1609 = load i32, ptr %627, align 4, !tbaa !5
  %1610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1601, ptr noundef nonnull %.str.5.sink857, i32 noundef %1602, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 276, ptr noundef %1604, ptr noundef %1606, ptr noundef %1608, i32 noundef %1609) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1611:                                             ; preds = %1583
  %1612 = load i32, ptr @test_count, align 4, !tbaa !5
  %1613 = add nsw i32 %1612, 1
  store i32 %1613, ptr @test_count, align 4, !tbaa !5
  %1614 = load i32, ptr %1330, align 4, !tbaa !18
  %1615 = call i64 @write(i32 noundef %1614, ptr noundef nonnull @__const.main.server_hello_message.43, i64 noundef 72) #9
  %1616 = icmp eq i64 %1615, 72
  br i1 %1616, label %1639, label %1617

1617:                                             ; preds = %1611
  %1618 = load i32, ptr %627, align 4, !tbaa !5
  %1619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1620 = call i32 @s2n_print_stacktrace(ptr noundef %1619) #9
  %1621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1622 = trunc nuw i8 %1621 to i1
  br i1 %1622, label %1623, label %1627

1623:                                             ; preds = %1617
  %1624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1625 = call i32 @fileno(ptr noundef %1624) #9
  %1626 = call i32 @isatty(i32 noundef %1625) #9
  %.not268 = icmp eq i32 %1626, 0
  br i1 %.not268, label %1627, label %1628

1627:                                             ; preds = %1623, %1617
  br label %1628

1628:                                             ; preds = %1623, %1627
  %.str.5.sink866 = phi ptr [ @.str.5, %1627 ], [ @.str.2, %1623 ]
  store i32 %1618, ptr %627, align 4, !tbaa !5
  %1629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1630 = load i32, ptr @test_count, align 4, !tbaa !5
  %1631 = load i32, ptr %364, align 4, !tbaa !5
  %1632 = call ptr @s2n_strerror(i32 noundef %1631, ptr noundef nonnull @.str.4) #9
  %1633 = load i32, ptr %364, align 4, !tbaa !5
  %1634 = call ptr @s2n_strerror_debug(i32 noundef %1633, ptr noundef nonnull @.str.4) #9
  %1635 = load i32, ptr %627, align 4, !tbaa !5
  %1636 = call ptr @strerror(i32 noundef %1635) #9
  %1637 = load i32, ptr %627, align 4, !tbaa !5
  %1638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1629, ptr noundef nonnull %.str.5.sink866, i32 noundef %1630, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 277, ptr noundef %1632, ptr noundef %1634, ptr noundef %1636, i32 noundef %1637) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1639:                                             ; preds = %1611
  %1640 = load i32, ptr @test_count, align 4, !tbaa !5
  %1641 = add nsw i32 %1640, 1
  store i32 %1641, ptr @test_count, align 4, !tbaa !5
  %1642 = call i32 @s2n_negotiate(ptr noundef nonnull %1117, ptr noundef nonnull %8) #9
  %1643 = icmp eq i32 %1642, -1
  br i1 %1643, label %1666, label %1644

1644:                                             ; preds = %1639
  %1645 = load i32, ptr %627, align 4, !tbaa !5
  %1646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1647 = call i32 @s2n_print_stacktrace(ptr noundef %1646) #9
  %1648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1649 = trunc nuw i8 %1648 to i1
  br i1 %1649, label %1650, label %1654

1650:                                             ; preds = %1644
  %1651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1652 = call i32 @fileno(ptr noundef %1651) #9
  %1653 = call i32 @isatty(i32 noundef %1652) #9
  %.not269 = icmp eq i32 %1653, 0
  br i1 %.not269, label %1654, label %1655

1654:                                             ; preds = %1650, %1644
  br label %1655

1655:                                             ; preds = %1650, %1654
  %.str.5.sink875 = phi ptr [ @.str.5, %1654 ], [ @.str.2, %1650 ]
  store i32 %1645, ptr %627, align 4, !tbaa !5
  %1656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1657 = load i32, ptr @test_count, align 4, !tbaa !5
  %1658 = load i32, ptr %364, align 4, !tbaa !5
  %1659 = call ptr @s2n_strerror(i32 noundef %1658, ptr noundef nonnull @.str.4) #9
  %1660 = load i32, ptr %364, align 4, !tbaa !5
  %1661 = call ptr @s2n_strerror_debug(i32 noundef %1660, ptr noundef nonnull @.str.4) #9
  %1662 = load i32, ptr %627, align 4, !tbaa !5
  %1663 = call ptr @strerror(i32 noundef %1662) #9
  %1664 = load i32, ptr %627, align 4, !tbaa !5
  %1665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1656, ptr noundef nonnull %.str.5.sink875, i32 noundef %1657, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 280, ptr noundef %1659, ptr noundef %1661, ptr noundef %1663, i32 noundef %1664) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1666:                                             ; preds = %1639
  %1667 = load i32, ptr @test_count, align 4, !tbaa !5
  %1668 = add nsw i32 %1667, 1
  store i32 %1668, ptr @test_count, align 4, !tbaa !5
  %1669 = load i32, ptr %364, align 4, !tbaa !5
  %1670 = icmp eq i32 %1669, 201326592
  br i1 %1670, label %1693, label %1671

1671:                                             ; preds = %1666
  %1672 = load i32, ptr %627, align 4, !tbaa !5
  %1673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1674 = call i32 @s2n_print_stacktrace(ptr noundef %1673) #9
  %1675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1676 = trunc nuw i8 %1675 to i1
  br i1 %1676, label %1677, label %1681

1677:                                             ; preds = %1671
  %1678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1679 = call i32 @fileno(ptr noundef %1678) #9
  %1680 = call i32 @isatty(i32 noundef %1679) #9
  %.not270 = icmp eq i32 %1680, 0
  br i1 %.not270, label %1681, label %1682

1681:                                             ; preds = %1677, %1671
  br label %1682

1682:                                             ; preds = %1677, %1681
  %.str.5.sink884 = phi ptr [ @.str.5, %1681 ], [ @.str.2, %1677 ]
  store i32 %1672, ptr %627, align 4, !tbaa !5
  %1683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1684 = load i32, ptr @test_count, align 4, !tbaa !5
  %1685 = load i32, ptr %364, align 4, !tbaa !5
  %1686 = call ptr @s2n_strerror(i32 noundef %1685, ptr noundef nonnull @.str.4) #9
  %1687 = load i32, ptr %364, align 4, !tbaa !5
  %1688 = call ptr @s2n_strerror_debug(i32 noundef %1687, ptr noundef nonnull @.str.4) #9
  %1689 = load i32, ptr %627, align 4, !tbaa !5
  %1690 = call ptr @strerror(i32 noundef %1689) #9
  %1691 = load i32, ptr %627, align 4, !tbaa !5
  %1692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1683, ptr noundef nonnull %.str.5.sink884, i32 noundef %1684, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 281, ptr noundef %1686, ptr noundef %1688, ptr noundef %1690, i32 noundef %1691) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1693:                                             ; preds = %1666
  %1694 = add nsw i32 %1667, 2
  store i32 %1694, ptr @test_count, align 4, !tbaa !5
  %1695 = load i32, ptr %8, align 4, !tbaa !5
  %1696 = icmp eq i32 %1695, 1
  br i1 %1696, label %1719, label %1697

1697:                                             ; preds = %1693
  %1698 = load i32, ptr %627, align 4, !tbaa !5
  %1699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1700 = call i32 @s2n_print_stacktrace(ptr noundef %1699) #9
  %1701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1702 = trunc nuw i8 %1701 to i1
  br i1 %1702, label %1703, label %1707

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

1707:                                             ; preds = %1703, %1697
  br label %1708

1708:                                             ; preds = %1703, %1707
  %.str.5.sink893 = phi ptr [ @.str.5, %1707 ], [ @.str.2, %1703 ]
  store i32 %1698, ptr %627, align 4, !tbaa !5
  %1709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1710 = load i32, ptr @test_count, align 4, !tbaa !5
  %1711 = load i32, ptr %364, align 4, !tbaa !5
  %1712 = call ptr @s2n_strerror(i32 noundef %1711, ptr noundef nonnull @.str.4) #9
  %1713 = load i32, ptr %364, align 4, !tbaa !5
  %1714 = call ptr @s2n_strerror_debug(i32 noundef %1713, ptr noundef nonnull @.str.4) #9
  %1715 = load i32, ptr %627, align 4, !tbaa !5
  %1716 = call ptr @strerror(i32 noundef %1715) #9
  %1717 = load i32, ptr %627, align 4, !tbaa !5
  %1718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1709, ptr noundef nonnull %.str.5.sink893, i32 noundef %1710, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 282, ptr noundef %1712, ptr noundef %1714, ptr noundef %1716, i32 noundef %1717) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1719:                                             ; preds = %1693
  %1720 = add nsw i32 %1667, 3
  store i32 %1720, ptr @test_count, align 4, !tbaa !5
  %1721 = getelementptr inbounds i8, ptr %1117, i64 218
  %1722 = load i8, ptr %1721, align 2, !tbaa !20
  %1723 = icmp eq i8 %1722, 33
  br i1 %1723, label %1746, label %1724

1724:                                             ; preds = %1719
  %1725 = load i32, ptr %627, align 4, !tbaa !5
  %1726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1727 = call i32 @s2n_print_stacktrace(ptr noundef %1726) #9
  %1728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1729 = trunc nuw i8 %1728 to i1
  br i1 %1729, label %1730, label %1734

1730:                                             ; preds = %1724
  %1731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1732 = call i32 @fileno(ptr noundef %1731) #9
  %1733 = call i32 @isatty(i32 noundef %1732) #9
  %.not272 = icmp eq i32 %1733, 0
  br i1 %.not272, label %1734, label %1735

1734:                                             ; preds = %1730, %1724
  br label %1735

1735:                                             ; preds = %1730, %1734
  %.str.5.sink902 = phi ptr [ @.str.5, %1734 ], [ @.str.2, %1730 ]
  store i32 %1725, ptr %627, align 4, !tbaa !5
  %1736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1737 = load i32, ptr @test_count, align 4, !tbaa !5
  %1738 = load i32, ptr %364, align 4, !tbaa !5
  %1739 = call ptr @s2n_strerror(i32 noundef %1738, ptr noundef nonnull @.str.4) #9
  %1740 = load i32, ptr %364, align 4, !tbaa !5
  %1741 = call ptr @s2n_strerror_debug(i32 noundef %1740, ptr noundef nonnull @.str.4) #9
  %1742 = load i32, ptr %627, align 4, !tbaa !5
  %1743 = call ptr @strerror(i32 noundef %1742) #9
  %1744 = load i32, ptr %627, align 4, !tbaa !5
  %1745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1736, ptr noundef nonnull %.str.5.sink902, i32 noundef %1737, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 285, ptr noundef %1739, ptr noundef %1741, ptr noundef %1743, i32 noundef %1744) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1746:                                             ; preds = %1719
  %1747 = add nsw i32 %1667, 4
  store i32 %1747, ptr @test_count, align 4, !tbaa !5
  %1748 = getelementptr inbounds i8, ptr %1117, i64 220
  %1749 = load i8, ptr %1748, align 4, !tbaa !47
  %1750 = icmp eq i8 %1749, 30
  br i1 %1750, label %1773, label %1751

1751:                                             ; preds = %1746
  %1752 = load i32, ptr %627, align 4, !tbaa !5
  %1753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1754 = call i32 @s2n_print_stacktrace(ptr noundef %1753) #9
  %1755 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1756 = trunc nuw i8 %1755 to i1
  br i1 %1756, label %1757, label %1761

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

1761:                                             ; preds = %1757, %1751
  br label %1762

1762:                                             ; preds = %1757, %1761
  %.str.5.sink911 = phi ptr [ @.str.5, %1761 ], [ @.str.2, %1757 ]
  store i32 %1752, ptr %627, align 4, !tbaa !5
  %1763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1764 = load i32, ptr @test_count, align 4, !tbaa !5
  %1765 = load i32, ptr %364, align 4, !tbaa !5
  %1766 = call ptr @s2n_strerror(i32 noundef %1765, ptr noundef nonnull @.str.4) #9
  %1767 = load i32, ptr %364, align 4, !tbaa !5
  %1768 = call ptr @s2n_strerror_debug(i32 noundef %1767, ptr noundef nonnull @.str.4) #9
  %1769 = load i32, ptr %627, align 4, !tbaa !5
  %1770 = call ptr @strerror(i32 noundef %1769) #9
  %1771 = load i32, ptr %627, align 4, !tbaa !5
  %1772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1763, ptr noundef nonnull %.str.5.sink911, i32 noundef %1764, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 286, ptr noundef %1766, ptr noundef %1768, ptr noundef %1770, i32 noundef %1771) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1773:                                             ; preds = %1746
  %1774 = add nsw i32 %1667, 5
  store i32 %1774, ptr @test_count, align 4, !tbaa !5
  %1775 = getelementptr inbounds i8, ptr %1117, i64 219
  %1776 = load i8, ptr %1775, align 1, !tbaa !48
  %1777 = icmp eq i8 %1776, 30
  br i1 %1777, label %1800, label %1778

1778:                                             ; preds = %1773
  %1779 = load i32, ptr %627, align 4, !tbaa !5
  %1780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1781 = call i32 @s2n_print_stacktrace(ptr noundef %1780) #9
  %1782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1783 = trunc nuw i8 %1782 to i1
  br i1 %1783, label %1784, label %1788

1784:                                             ; preds = %1778
  %1785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1786 = call i32 @fileno(ptr noundef %1785) #9
  %1787 = call i32 @isatty(i32 noundef %1786) #9
  %.not274 = icmp eq i32 %1787, 0
  br i1 %.not274, label %1788, label %1789

1788:                                             ; preds = %1784, %1778
  br label %1789

1789:                                             ; preds = %1784, %1788
  %.str.5.sink920 = phi ptr [ @.str.5, %1788 ], [ @.str.2, %1784 ]
  store i32 %1779, ptr %627, align 4, !tbaa !5
  %1790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1791 = load i32, ptr @test_count, align 4, !tbaa !5
  %1792 = load i32, ptr %364, align 4, !tbaa !5
  %1793 = call ptr @s2n_strerror(i32 noundef %1792, ptr noundef nonnull @.str.4) #9
  %1794 = load i32, ptr %364, align 4, !tbaa !5
  %1795 = call ptr @s2n_strerror_debug(i32 noundef %1794, ptr noundef nonnull @.str.4) #9
  %1796 = load i32, ptr %627, align 4, !tbaa !5
  %1797 = call ptr @strerror(i32 noundef %1796) #9
  %1798 = load i32, ptr %627, align 4, !tbaa !5
  %1799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1790, ptr noundef nonnull %.str.5.sink920, i32 noundef %1791, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 287, ptr noundef %1793, ptr noundef %1795, ptr noundef %1797, i32 noundef %1798) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1800:                                             ; preds = %1773
  %1801 = add nsw i32 %1667, 6
  store i32 %1801, ptr @test_count, align 4, !tbaa !5
  %1802 = call i32 @s2n_shutdown(ptr noundef nonnull %1117, ptr noundef nonnull %8) #9
  %1803 = icmp eq i32 %1802, -1
  br i1 %1803, label %1804, label %.preheader

1804:                                             ; preds = %1800
  %1805 = load i32, ptr %627, align 4, !tbaa !5
  %1806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1807 = call i32 @s2n_print_stacktrace(ptr noundef %1806) #9
  %1808 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1809 = trunc nuw i8 %1808 to i1
  br i1 %1809, label %1810, label %1814

1810:                                             ; preds = %1804
  %1811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1812 = call i32 @fileno(ptr noundef %1811) #9
  %1813 = call i32 @isatty(i32 noundef %1812) #9
  %.not286 = icmp eq i32 %1813, 0
  br i1 %.not286, label %1814, label %1815

1814:                                             ; preds = %1810, %1804
  br label %1815

1815:                                             ; preds = %1810, %1814
  %.str.5.sink929 = phi ptr [ @.str.5, %1814 ], [ @.str.2, %1810 ]
  store i32 %1805, ptr %627, align 4, !tbaa !5
  %1816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1817 = load i32, ptr @test_count, align 4, !tbaa !5
  %1818 = load i32, ptr %364, align 4, !tbaa !5
  %1819 = call ptr @s2n_strerror(i32 noundef %1818, ptr noundef nonnull @.str.4) #9
  %1820 = load i32, ptr %364, align 4, !tbaa !5
  %1821 = call ptr @s2n_strerror_debug(i32 noundef %1820, ptr noundef nonnull @.str.4) #9
  %1822 = load i32, ptr %627, align 4, !tbaa !5
  %1823 = call ptr @strerror(i32 noundef %1822) #9
  %1824 = load i32, ptr %627, align 4, !tbaa !5
  %1825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1816, ptr noundef nonnull %.str.5.sink929, i32 noundef %1817, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 290, ptr noundef %1819, ptr noundef %1821, ptr noundef %1823, i32 noundef %1824) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1826:                                             ; preds = %.preheader
  %1827 = add nuw i64 %1832, %.1221322
  %1828 = icmp ult i64 %1827, 5
  br i1 %1828, label %.preheader, label %1858, !llvm.loop !51

.preheader:                                       ; preds = %1800, %1826
  %.1221322 = phi i64 [ %1827, %1826 ], [ 0, %1800 ]
  %1829 = load i32, ptr %1330, align 4, !tbaa !18
  %1830 = getelementptr inbounds i8, ptr %12, i64 %.1221322
  %1831 = sub nuw nsw i64 1024, %.1221322
  %1832 = call i64 @read(i32 noundef %1829, ptr noundef nonnull %1830, i64 noundef %1831) #9
  %1833 = load i32, ptr @test_count, align 4, !tbaa !5
  %1834 = add nsw i32 %1833, 1
  store i32 %1834, ptr @test_count, align 4, !tbaa !5
  %1835 = icmp sgt i64 %1832, 0
  br i1 %1835, label %1826, label %1836

1836:                                             ; preds = %.preheader
  %1837 = load i32, ptr %627, align 4, !tbaa !5
  %1838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1839 = call i32 @s2n_print_stacktrace(ptr noundef %1838) #9
  %1840 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1841 = trunc nuw i8 %1840 to i1
  br i1 %1841, label %1842, label %1846

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

1846:                                             ; preds = %1842, %1836
  br label %1847

1847:                                             ; preds = %1842, %1846
  %.str.5.sink938 = phi ptr [ @.str.5, %1846 ], [ @.str.2, %1842 ]
  store i32 %1837, ptr %627, align 4, !tbaa !5
  %1848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1849 = load i32, ptr @test_count, align 4, !tbaa !5
  %1850 = load i32, ptr %364, align 4, !tbaa !5
  %1851 = call ptr @s2n_strerror(i32 noundef %1850, ptr noundef nonnull @.str.4) #9
  %1852 = load i32, ptr %364, align 4, !tbaa !5
  %1853 = call ptr @s2n_strerror_debug(i32 noundef %1852, ptr noundef nonnull @.str.4) #9
  %1854 = load i32, ptr %627, align 4, !tbaa !5
  %1855 = call ptr @strerror(i32 noundef %1854) #9
  %1856 = load i32, ptr %627, align 4, !tbaa !5
  %1857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1848, ptr noundef nonnull %.str.5.sink938, i32 noundef %1849, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 299, ptr noundef %1851, ptr noundef %1853, ptr noundef %1855, i32 noundef %1856) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1858:                                             ; preds = %1826
  %1859 = add nsw i32 %1833, 2
  store i32 %1859, ptr @test_count, align 4, !tbaa !5
  %1860 = load i8, ptr %1392, align 1, !tbaa !15
  %1861 = icmp eq i8 %1860, 3
  br i1 %1861, label %1884, label %1862

1862:                                             ; preds = %1858
  %1863 = load i32, ptr %627, align 4, !tbaa !5
  %1864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1865 = call i32 @s2n_print_stacktrace(ptr noundef %1864) #9
  %1866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1867 = trunc nuw i8 %1866 to i1
  br i1 %1867, label %1868, label %1872

1868:                                             ; preds = %1862
  %1869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1870 = call i32 @fileno(ptr noundef %1869) #9
  %1871 = call i32 @isatty(i32 noundef %1870) #9
  %.not275 = icmp eq i32 %1871, 0
  br i1 %.not275, label %1872, label %1873

1872:                                             ; preds = %1868, %1862
  br label %1873

1873:                                             ; preds = %1868, %1872
  %.str.5.sink947 = phi ptr [ @.str.5, %1872 ], [ @.str.2, %1868 ]
  store i32 %1863, ptr %627, align 4, !tbaa !5
  %1874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1875 = load i32, ptr @test_count, align 4, !tbaa !5
  %1876 = load i32, ptr %364, align 4, !tbaa !5
  %1877 = call ptr @s2n_strerror(i32 noundef %1876, ptr noundef nonnull @.str.4) #9
  %1878 = load i32, ptr %364, align 4, !tbaa !5
  %1879 = call ptr @s2n_strerror_debug(i32 noundef %1878, ptr noundef nonnull @.str.4) #9
  %1880 = load i32, ptr %627, align 4, !tbaa !5
  %1881 = call ptr @strerror(i32 noundef %1880) #9
  %1882 = load i32, ptr %627, align 4, !tbaa !5
  %1883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1874, ptr noundef nonnull %.str.5.sink947, i32 noundef %1875, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 303, ptr noundef %1877, ptr noundef %1879, ptr noundef %1881, i32 noundef %1882) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1884:                                             ; preds = %1858
  %1885 = add nsw i32 %1833, 3
  store i32 %1885, ptr @test_count, align 4, !tbaa !5
  %1886 = load i8, ptr %1419, align 2, !tbaa !15
  %1887 = icmp eq i8 %1886, 0
  br i1 %1887, label %1910, label %1888

1888:                                             ; preds = %1884
  %1889 = load i32, ptr %627, align 4, !tbaa !5
  %1890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1891 = call i32 @s2n_print_stacktrace(ptr noundef %1890) #9
  %1892 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1893 = trunc nuw i8 %1892 to i1
  br i1 %1893, label %1894, label %1898

1894:                                             ; preds = %1888
  %1895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1896 = call i32 @fileno(ptr noundef %1895) #9
  %1897 = call i32 @isatty(i32 noundef %1896) #9
  %.not276 = icmp eq i32 %1897, 0
  br i1 %.not276, label %1898, label %1899

1898:                                             ; preds = %1894, %1888
  br label %1899

1899:                                             ; preds = %1894, %1898
  %.str.5.sink956 = phi ptr [ @.str.5, %1898 ], [ @.str.2, %1894 ]
  store i32 %1889, ptr %627, align 4, !tbaa !5
  %1900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1901 = load i32, ptr @test_count, align 4, !tbaa !5
  %1902 = load i32, ptr %364, align 4, !tbaa !5
  %1903 = call ptr @s2n_strerror(i32 noundef %1902, ptr noundef nonnull @.str.4) #9
  %1904 = load i32, ptr %364, align 4, !tbaa !5
  %1905 = call ptr @s2n_strerror_debug(i32 noundef %1904, ptr noundef nonnull @.str.4) #9
  %1906 = load i32, ptr %627, align 4, !tbaa !5
  %1907 = call ptr @strerror(i32 noundef %1906) #9
  %1908 = load i32, ptr %627, align 4, !tbaa !5
  %1909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1900, ptr noundef nonnull %.str.5.sink956, i32 noundef %1901, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 304, ptr noundef %1903, ptr noundef %1905, ptr noundef %1907, i32 noundef %1908) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1910:                                             ; preds = %1884
  %1911 = add nsw i32 %1833, 4
  store i32 %1911, ptr @test_count, align 4, !tbaa !5
  %1912 = call i32 @s2n_connection_free(ptr noundef nonnull %1117) #9
  %1913 = icmp eq i32 %1912, -1
  br i1 %1913, label %1914, label %1936

1914:                                             ; preds = %1910
  %1915 = load i32, ptr %627, align 4, !tbaa !5
  %1916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1917 = call i32 @s2n_print_stacktrace(ptr noundef %1916) #9
  %1918 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1919 = trunc nuw i8 %1918 to i1
  br i1 %1919, label %1920, label %1924

1920:                                             ; preds = %1914
  %1921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1922 = call i32 @fileno(ptr noundef %1921) #9
  %1923 = call i32 @isatty(i32 noundef %1922) #9
  %.not284 = icmp eq i32 %1923, 0
  br i1 %.not284, label %1924, label %1925

1924:                                             ; preds = %1920, %1914
  br label %1925

1925:                                             ; preds = %1920, %1924
  %.str.5.sink965 = phi ptr [ @.str.5, %1924 ], [ @.str.2, %1920 ]
  store i32 %1915, ptr %627, align 4, !tbaa !5
  %1926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1927 = load i32, ptr @test_count, align 4, !tbaa !5
  %1928 = load i32, ptr %364, align 4, !tbaa !5
  %1929 = call ptr @s2n_strerror(i32 noundef %1928, ptr noundef nonnull @.str.4) #9
  %1930 = load i32, ptr %364, align 4, !tbaa !5
  %1931 = call ptr @s2n_strerror_debug(i32 noundef %1930, ptr noundef nonnull @.str.4) #9
  %1932 = load i32, ptr %627, align 4, !tbaa !5
  %1933 = call ptr @strerror(i32 noundef %1932) #9
  %1934 = load i32, ptr %627, align 4, !tbaa !5
  %1935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1926, ptr noundef nonnull %.str.5.sink965, i32 noundef %1927, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 306, ptr noundef %1929, ptr noundef %1931, ptr noundef %1933, i32 noundef %1934) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1936:                                             ; preds = %1910
  %1937 = load i32, ptr @test_count, align 4, !tbaa !5
  %1938 = add nsw i32 %1937, 1
  store i32 %1938, ptr @test_count, align 4, !tbaa !5
  %1939 = call i32 @s2n_config_free(ptr noundef nonnull %1171) #9
  %1940 = icmp eq i32 %1939, -1
  br i1 %1940, label %1941, label %1963

1941:                                             ; preds = %1936
  %1942 = load i32, ptr %627, align 4, !tbaa !5
  %1943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1944 = call i32 @s2n_print_stacktrace(ptr noundef %1943) #9
  %1945 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1946 = trunc nuw i8 %1945 to i1
  br i1 %1946, label %1947, label %1951

1947:                                             ; preds = %1941
  %1948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1949 = call i32 @fileno(ptr noundef %1948) #9
  %1950 = call i32 @isatty(i32 noundef %1949) #9
  %.not283 = icmp eq i32 %1950, 0
  br i1 %.not283, label %1951, label %1952

1951:                                             ; preds = %1947, %1941
  br label %1952

1952:                                             ; preds = %1947, %1951
  %.str.5.sink974 = phi ptr [ @.str.5, %1951 ], [ @.str.2, %1947 ]
  store i32 %1942, ptr %627, align 4, !tbaa !5
  %1953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1954 = load i32, ptr @test_count, align 4, !tbaa !5
  %1955 = load i32, ptr %364, align 4, !tbaa !5
  %1956 = call ptr @s2n_strerror(i32 noundef %1955, ptr noundef nonnull @.str.4) #9
  %1957 = load i32, ptr %364, align 4, !tbaa !5
  %1958 = call ptr @s2n_strerror_debug(i32 noundef %1957, ptr noundef nonnull @.str.4) #9
  %1959 = load i32, ptr %627, align 4, !tbaa !5
  %1960 = call ptr @strerror(i32 noundef %1959) #9
  %1961 = load i32, ptr %627, align 4, !tbaa !5
  %1962 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1953, ptr noundef nonnull %.str.5.sink974, i32 noundef %1954, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 307, ptr noundef %1956, ptr noundef %1958, ptr noundef %1960, i32 noundef %1961) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1963:                                             ; preds = %1936
  %1964 = load i32, ptr @test_count, align 4, !tbaa !5
  %1965 = add nsw i32 %1964, 1
  store i32 %1965, ptr @test_count, align 4, !tbaa !5
  %1966 = call i32 @s2n_io_pair_close(ptr noundef nonnull %11) #9
  %1967 = icmp eq i32 %1966, -1
  br i1 %1967, label %1968, label %1990

1968:                                             ; preds = %1963
  %1969 = load i32, ptr %627, align 4, !tbaa !5
  %1970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1971 = call i32 @s2n_print_stacktrace(ptr noundef %1970) #9
  %1972 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1973 = trunc nuw i8 %1972 to i1
  br i1 %1973, label %1974, label %1978

1974:                                             ; preds = %1968
  %1975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1976 = call i32 @fileno(ptr noundef %1975) #9
  %1977 = call i32 @isatty(i32 noundef %1976) #9
  %.not282 = icmp eq i32 %1977, 0
  br i1 %.not282, label %1978, label %1979

1978:                                             ; preds = %1974, %1968
  br label %1979

1979:                                             ; preds = %1974, %1978
  %.str.5.sink983 = phi ptr [ @.str.5, %1978 ], [ @.str.2, %1974 ]
  store i32 %1969, ptr %627, align 4, !tbaa !5
  %1980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1981 = load i32, ptr @test_count, align 4, !tbaa !5
  %1982 = load i32, ptr %364, align 4, !tbaa !5
  %1983 = call ptr @s2n_strerror(i32 noundef %1982, ptr noundef nonnull @.str.4) #9
  %1984 = load i32, ptr %364, align 4, !tbaa !5
  %1985 = call ptr @s2n_strerror_debug(i32 noundef %1984, ptr noundef nonnull @.str.4) #9
  %1986 = load i32, ptr %627, align 4, !tbaa !5
  %1987 = call ptr @strerror(i32 noundef %1986) #9
  %1988 = load i32, ptr %627, align 4, !tbaa !5
  %1989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1980, ptr noundef nonnull %.str.5.sink983, i32 noundef %1981, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 309, ptr noundef %1983, ptr noundef %1985, ptr noundef %1987, i32 noundef %1988) #11
  call void @exit(i32 noundef 1) #12
  unreachable

1990:                                             ; preds = %1963
  call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #9
  call void @llvm.lifetime.end.p0(i64 5, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %9) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #9
  %1991 = call i32 @s2n_cleanup() #9
  %1992 = icmp eq i32 %1991, -1
  br i1 %1992, label %1993, label %2015

1993:                                             ; preds = %1990
  %1994 = load i32, ptr %627, align 4, !tbaa !5
  %1995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1996 = call i32 @s2n_print_stacktrace(ptr noundef %1995) #9
  %1997 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1998 = trunc nuw i8 %1997 to i1
  br i1 %1998, label %1999, label %2003

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

2003:                                             ; preds = %1999, %1993
  br label %2004

2004:                                             ; preds = %1999, %2003
  %.str.5.sink992 = phi ptr [ @.str.5, %2003 ], [ @.str.2, %1999 ]
  store i32 %1994, ptr %627, align 4, !tbaa !5
  %2005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2006 = load i32, ptr @test_count, align 4, !tbaa !5
  %2007 = load i32, ptr %364, align 4, !tbaa !5
  %2008 = call ptr @s2n_strerror(i32 noundef %2007, ptr noundef nonnull @.str.4) #9
  %2009 = load i32, ptr %364, align 4, !tbaa !5
  %2010 = call ptr @s2n_strerror_debug(i32 noundef %2009, ptr noundef nonnull @.str.4) #9
  %2011 = load i32, ptr %627, align 4, !tbaa !5
  %2012 = call ptr @strerror(i32 noundef %2011) #9
  %2013 = load i32, ptr %627, align 4, !tbaa !5
  %2014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2005, ptr noundef nonnull %.str.5.sink992, i32 noundef %2006, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 314, ptr noundef %2008, ptr noundef %2010, ptr noundef %2012, i32 noundef %2013) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2015:                                             ; preds = %1990
  %2016 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #9
  %2017 = icmp eq i32 %2016, -1
  br i1 %2017, label %2018, label %2040

2018:                                             ; preds = %2015
  %2019 = load i32, ptr %627, align 4, !tbaa !5
  %2020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2021 = call i32 @s2n_print_stacktrace(ptr noundef %2020) #9
  %2022 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2023 = trunc nuw i8 %2022 to i1
  br i1 %2023, label %2024, label %2028

2024:                                             ; preds = %2018
  %2025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2026 = call i32 @fileno(ptr noundef %2025) #9
  %2027 = call i32 @isatty(i32 noundef %2026) #9
  %.not280 = icmp eq i32 %2027, 0
  br i1 %.not280, label %2028, label %2029

2028:                                             ; preds = %2024, %2018
  br label %2029

2029:                                             ; preds = %2024, %2028
  %.str.5.sink1001 = phi ptr [ @.str.5, %2028 ], [ @.str.2, %2024 ]
  store i32 %2019, ptr %627, align 4, !tbaa !5
  %2030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2031 = load i32, ptr @test_count, align 4, !tbaa !5
  %2032 = load i32, ptr %364, align 4, !tbaa !5
  %2033 = call ptr @s2n_strerror(i32 noundef %2032, ptr noundef nonnull @.str.4) #9
  %2034 = load i32, ptr %364, align 4, !tbaa !5
  %2035 = call ptr @s2n_strerror_debug(i32 noundef %2034, ptr noundef nonnull @.str.4) #9
  %2036 = load i32, ptr %627, align 4, !tbaa !5
  %2037 = call ptr @strerror(i32 noundef %2036) #9
  %2038 = load i32, ptr %627, align 4, !tbaa !5
  %2039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2030, ptr noundef nonnull %.str.5.sink1001, i32 noundef %2031, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 314, ptr noundef %2033, ptr noundef %2035, ptr noundef %2037, i32 noundef %2038) #11
  call void @exit(i32 noundef 1) #12
  unreachable

2040:                                             ; preds = %2015
  %2041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2042 = trunc nuw i8 %2041 to i1
  br i1 %2042, label %2043, label %2054

2043:                                             ; preds = %2040
  %2044 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2045 = call i32 @fileno(ptr noundef %2044) #9
  %2046 = call i32 @isatty(i32 noundef %2045) #9
  %.not277 = icmp eq i32 %2046, 0
  br i1 %.not277, label %2054, label %2047

2047:                                             ; preds = %2043
  %2048 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not279 = icmp eq i32 %2048, 0
  %2049 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not279, label %2052, label %2050

2050:                                             ; preds = %2047
  %2051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2049, ptr noundef nonnull @.str.49, i32 noundef %2048) #9
  br label %2061

2052:                                             ; preds = %2047
  %2053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2049, ptr noundef nonnull @.str.50) #9
  br label %2061

2054:                                             ; preds = %2043, %2040
  %2055 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not278 = icmp eq i32 %2055, 0
  %2056 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not278, label %2059, label %2057

2057:                                             ; preds = %2054
  %2058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2056, ptr noundef nonnull @.str.51, i32 noundef %2055) #9
  br label %2061

2059:                                             ; preds = %2054
  %2060 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2056, ptr noundef nonnull @.str.52) #9
  br label %2061

2061:                                             ; preds = %2057, %2059, %2050, %2052
  ret i32 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: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #2

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #3

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #3

; 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 #2

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #3

; 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 #3

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #3

declare i32 @s2n_init() local_unnamed_addr #3

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #3

; Function Attrs: nounwind
declare i32 @setenv(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #5

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #3

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_io_pair(ptr noundef, ptr noundef) local_unnamed_addr #3

declare ptr @s2n_config_new() local_unnamed_addr #3

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_negotiate(ptr noundef, ptr noundef) local_unnamed_addr #3

; Function Attrs: nofree
declare noundef i64 @read(i32 noundef, ptr nocapture noundef, i64 noundef) local_unnamed_addr #8

; Function Attrs: nofree
declare noundef i64 @write(i32 noundef, ptr nocapture noundef readonly, i64 noundef) local_unnamed_addr #8

declare i32 @s2n_shutdown(ptr noundef, ptr noundef) local_unnamed_addr #3

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #3

declare i32 @s2n_cleanup() local_unnamed_addr #3

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 = { 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 #3 = { "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 "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 #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 = !{!7, !7, i64 0}
!16 = distinct !{!16, !17}
!17 = !{!"llvm.loop.mustprogress"}
!18 = !{!19, !6, i64 4}
!19 = !{!"s2n_test_io_pair", !6, i64 0, !6, i64 4}
!20 = !{!21, !7, i64 218}
!21 = !{!"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, !22, i64 160, !23, i64 168, !23, 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, !24, i64 240, !10, i64 632, !10, i64 640, !25, i64 648, !31, i64 1144, !34, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !37, i64 1776, !37, i64 1816, !37, i64 1856, !37, i64 1896, !6, i64 1936, !23, i64 1944, !7, i64 1952, !37, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !38, i64 2004, !38, i64 2008, !39, i64 2016, !36, i64 2208, !6, i64 2212, !36, i64 2216, !23, i64 2224, !7, i64 2232, !23, i64 2240, !23, i64 2248, !23, i64 2256, !38, i64 2264, !38, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !30, i64 2792, !6, i64 2816, !30, i64 2824, !30, i64 2848, !30, i64 2872, !41, i64 2896, !43, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !30, i64 3784, !6, i64 3808, !45, i64 3816, !7, i64 3848, !37, i64 3992, !30, i64 4032, !30, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !36, i64 4084, !36, i64 4086, !6, i64 4088, !6, i64 4092, !30, i64 4096, !6, i64 4120, !46, i64 4128, !38, i64 4176, !7, i64 4180, !7, i64 4181}
!22 = !{!"s2n_timer", !23, i64 0}
!23 = !{!"long", !7, i64 0}
!24 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!25 = !{!"s2n_kex_parameters", !26, i64 0, !27, i64 8, !7, i64 24, !27, i64 56, !28, i64 72, !28, i64 184, !7, i64 296, !29, i64 360, !30, i64 448, !30, i64 472}
!26 = !{!"s2n_dh_params", !10, i64 0}
!27 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!28 = !{!"s2n_kem_group_params", !10, i64 0, !29, i64 8, !27, i64 96}
!29 = !{!"s2n_kem_params", !10, i64 0, !30, i64 8, !30, i64 32, !30, i64 56, !12, i64 80}
!30 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!31 = !{!"s2n_handshake_parameters", !32, i64 0, !32, i64 48, !30, i64 96, !6, i64 120, !33, 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}
!32 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!33 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!34 = !{!"s2n_psk_parameters", !6, i64 0, !35, i64 8, !36, i64 40, !36, i64 42, !10, i64 48, !6, i64 56}
!35 = !{!"s2n_array", !30, i64 0, !6, i64 24, !6, i64 28}
!36 = !{!"short", !7, i64 0}
!37 = !{!"s2n_stuffer", !30, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!38 = !{!"", !6, i64 0}
!39 = !{!"s2n_handshake", !37, 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, !40, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!40 = !{!"s2n_offered_early_data", !10, i64 0}
!41 = !{!"s2n_client_hello", !30, i64 0, !42, i64 24, !30, i64 728, !30, i64 752, !30, 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}
!42 = !{!"", !7, i64 0, !30, i64 672, !36, i64 696}
!43 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !36, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !44, i64 48, !12, i64 52}
!44 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!45 = !{!"s2n_ticket_fields", !30, i64 0, !6, i64 24}
!46 = !{!"s2n_post_handshake", !37, i64 0, !7, i64 40}
!47 = !{!21, !7, i64 220}
!48 = !{!21, !7, i64 219}
!49 = distinct !{!49, !17}
!50 = distinct !{!50, !17}
!51 = distinct !{!51, !17}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SLPVectorizerPass,SROAPass,SimplifyCFGPass,TailCallElimPass