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

@s2n_use_color_in_output = external dso_local global i8, align 1
@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 [79 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 [60 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [200 x i8], align 1
@__const.main.test_cases = external hidden unnamed_addr constant [11 x %struct.anon], align 16
@.str.11 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [65 x i8], align 1
@__const.main.policy_test_cases = external hidden unnamed_addr constant [2 x %struct.anon.0], align 16
@.str.27 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [81 x i8], align 1
@__const.main.test_data = external hidden unnamed_addr constant [12 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca [11 x %struct.anon], align 16
  %12 = alloca i64, align 8
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i8, align 1
  %17 = alloca i8, align 1
  %18 = alloca i16, align 2
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca %struct.s2n_result, align 4
  %26 = alloca ptr, align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i8, align 1
  %30 = alloca i8, align 1
  %31 = alloca i16, align 2
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca %struct.s2n_result, align 4
  %46 = alloca [2 x %struct.anon.0], align 16
  %47 = alloca i64, align 8
  %48 = alloca ptr, align 8
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca ptr, align 8
  %54 = alloca i32, align 4
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %61 = alloca %struct.s2n_result, align 4
  %62 = alloca i32, align 4
  %63 = alloca %struct.s2n_result, align 4
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca [12 x i8], align 1
  %68 = alloca i32, align 4
  %69 = alloca i64, align 8
  %70 = alloca i32, align 4
  %71 = alloca %struct.s2n_stuffer, align 8
  %72 = alloca i32, align 4
  %73 = alloca ptr, align 8
  %74 = alloca i32, align 4
  %75 = alloca [12 x i8], align 1
  %76 = alloca i64, align 8
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca %struct.s2n_result, align 4
  %82 = alloca %struct.s2n_result, align 4
  %83 = alloca %struct.s2n_result, align 4
  %84 = alloca %struct.s2n_result, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca i32, align 4
  %88 = alloca %struct.s2n_result, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %89

89:                                               ; preds = %2
  br label %90

90:                                               ; preds = %89
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %91 = load ptr, ptr @stdout, align 8, !tbaa !9
  %92 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %91, ptr noundef @.str, ptr noundef @.str.1) #11
  %93 = load ptr, ptr @stdout, align 8, !tbaa !9
  %94 = call i32 @fflush(ptr noundef %93)
  br label %95

95:                                               ; preds = %90
  %96 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %97 = icmp eq i32 %96, -1
  br i1 %97, label %98, label %149

98:                                               ; preds = %95
  br label %99

99:                                               ; preds = %98
  br label %100

100:                                              ; preds = %99
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %101 = call ptr @__errno_location() #12
  %102 = load i32, ptr %101, align 4, !tbaa !5
  store i32 %102, ptr %6, align 4, !tbaa !5
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = call i32 @s2n_print_stacktrace(ptr noundef %103)
  %105 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %106 = trunc i8 %105 to i1
  br i1 %106, label %107, label %129

107:                                              ; preds = %100
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = call i32 @fileno(ptr noundef %108) #11
  %110 = call i32 @isatty(i32 noundef %109) #11
  %111 = icmp ne i32 %110, 0
  br i1 %111, label %112, label %129

112:                                              ; preds = %107
  %113 = load i32, ptr %6, align 4, !tbaa !5
  %114 = call ptr @__errno_location() #12
  store i32 %113, ptr %114, align 4, !tbaa !5
  %115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %116 = load i32, ptr @test_count, align 4, !tbaa !5
  %117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %118 = load i32, ptr %117, align 4, !tbaa !5
  %119 = call ptr @s2n_strerror(i32 noundef %118, ptr noundef @.str.4)
  %120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %121 = load i32, ptr %120, align 4, !tbaa !5
  %122 = call ptr @s2n_strerror_debug(i32 noundef %121, ptr noundef @.str.4)
  %123 = call ptr @__errno_location() #12
  %124 = load i32, ptr %123, align 4, !tbaa !5
  %125 = call ptr @strerror(i32 noundef %124) #11
  %126 = call ptr @__errno_location() #12
  %127 = load i32, ptr %126, align 4, !tbaa !5
  %128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %115, ptr noundef @.str.2, i32 noundef %116, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 26, ptr noundef %119, ptr noundef %122, ptr noundef %125, i32 noundef %127) #11
  br label %146

129:                                              ; preds = %107, %100
  %130 = load i32, ptr %6, align 4, !tbaa !5
  %131 = call ptr @__errno_location() #12
  store i32 %130, ptr %131, align 4, !tbaa !5
  %132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %133 = load i32, ptr @test_count, align 4, !tbaa !5
  %134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %135 = load i32, ptr %134, align 4, !tbaa !5
  %136 = call ptr @s2n_strerror(i32 noundef %135, ptr noundef @.str.4)
  %137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %138 = load i32, ptr %137, align 4, !tbaa !5
  %139 = call ptr @s2n_strerror_debug(i32 noundef %138, ptr noundef @.str.4)
  %140 = call ptr @__errno_location() #12
  %141 = load i32, ptr %140, align 4, !tbaa !5
  %142 = call ptr @strerror(i32 noundef %141) #11
  %143 = call ptr @__errno_location() #12
  %144 = load i32, ptr %143, align 4, !tbaa !5
  %145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %132, ptr noundef @.str.5, i32 noundef %133, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 26, ptr noundef %136, ptr noundef %139, ptr noundef %142, i32 noundef %144) #11
  br label %146

146:                                              ; preds = %129, %112
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %147

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

148:                                              ; No predecessors!
  br label %149

149:                                              ; preds = %148, %95
  br label %150

150:                                              ; preds = %149
  br label %151

151:                                              ; preds = %150
  %152 = load i32, ptr @test_count, align 4, !tbaa !5
  %153 = add nsw i32 %152, 1
  store i32 %153, ptr @test_count, align 4, !tbaa !5
  %154 = call i32 @s2n_enable_atexit()
  %155 = icmp eq i32 %154, -1
  br i1 %155, label %156, label %207

156:                                              ; preds = %151
  br label %157

157:                                              ; preds = %156
  br label %158

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

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

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

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

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

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

206:                                              ; No predecessors!
  br label %207

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

208:                                              ; preds = %207
  br label %209

209:                                              ; preds = %208
  br label %210

210:                                              ; preds = %209
  %211 = call i32 @s2n_init()
  %212 = icmp eq i32 %211, -1
  br i1 %212, label %213, label %264

213:                                              ; preds = %210
  br label %214

214:                                              ; preds = %213
  br label %215

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

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

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

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

261:                                              ; preds = %244, %227
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %262

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

263:                                              ; No predecessors!
  br label %264

264:                                              ; preds = %263, %210
  br label %265

265:                                              ; preds = %264
  br label %266

266:                                              ; preds = %265
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #11
  store ptr null, ptr %9, align 8, !tbaa !9
  br label %267

267:                                              ; preds = %266
  %268 = load i32, ptr @test_count, align 4, !tbaa !5
  %269 = add nsw i32 %268, 1
  store i32 %269, ptr @test_count, align 4, !tbaa !5
  %270 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %9, ptr noundef @.str.8, ptr noundef @.str.9)
  %271 = icmp eq i32 %270, -1
  br i1 %271, label %272, label %325

272:                                              ; preds = %267
  br label %273

273:                                              ; preds = %272
  br label %274

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

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

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

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

320:                                              ; preds = %303, %286
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #11
  br label %321

321:                                              ; preds = %320
  br label %322

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

323:                                              ; No predecessors!
  br label %324

324:                                              ; preds = %323
  br label %325

325:                                              ; preds = %324, %267
  br label %326

326:                                              ; preds = %325
  br label %327

327:                                              ; preds = %326
  call void @llvm.lifetime.start.p0(i64 110, ptr %11) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %11, ptr align 16 @__const.main.test_cases, i64 110, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #11
  store i64 0, ptr %12, align 8, !tbaa !15
  br label %328

328:                                              ; preds = %867, %327
  %329 = load i64, ptr %12, align 8, !tbaa !15
  %330 = icmp ult i64 %329, 11
  br i1 %330, label %332, label %331

331:                                              ; preds = %328
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #11
  br label %870

332:                                              ; preds = %328
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #11
  %333 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %333, ptr %13, align 8, !tbaa !9
  br label %334

334:                                              ; preds = %332
  %335 = load i32, ptr @test_count, align 4, !tbaa !5
  %336 = add nsw i32 %335, 1
  store i32 %336, ptr @test_count, align 4, !tbaa !5
  %337 = load ptr, ptr %13, align 8, !tbaa !9
  %338 = icmp eq ptr %337, null
  br i1 %338, label %339, label %392

339:                                              ; preds = %334
  br label %340

340:                                              ; preds = %339
  br label %341

341:                                              ; preds = %340
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  %342 = call ptr @__errno_location() #12
  %343 = load i32, ptr %342, align 4, !tbaa !5
  store i32 %343, ptr %14, align 4, !tbaa !5
  %344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %345 = call i32 @s2n_print_stacktrace(ptr noundef %344)
  %346 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %347 = trunc i8 %346 to i1
  br i1 %347, label %348, label %370

348:                                              ; preds = %341
  %349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %350 = call i32 @fileno(ptr noundef %349) #11
  %351 = call i32 @isatty(i32 noundef %350) #11
  %352 = icmp ne i32 %351, 0
  br i1 %352, label %353, label %370

353:                                              ; preds = %348
  %354 = load i32, ptr %14, align 4, !tbaa !5
  %355 = call ptr @__errno_location() #12
  store i32 %354, ptr %355, align 4, !tbaa !5
  %356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %357 = load i32, ptr @test_count, align 4, !tbaa !5
  %358 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %359 = load i32, ptr %358, align 4, !tbaa !5
  %360 = call ptr @s2n_strerror(i32 noundef %359, ptr noundef @.str.4)
  %361 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %362 = load i32, ptr %361, align 4, !tbaa !5
  %363 = call ptr @s2n_strerror_debug(i32 noundef %362, ptr noundef @.str.4)
  %364 = call ptr @__errno_location() #12
  %365 = load i32, ptr %364, align 4, !tbaa !5
  %366 = call ptr @strerror(i32 noundef %365) #11
  %367 = call ptr @__errno_location() #12
  %368 = load i32, ptr %367, align 4, !tbaa !5
  %369 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %356, ptr noundef @.str.2, i32 noundef %357, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 113, ptr noundef %360, ptr noundef %363, ptr noundef %366, i32 noundef %368) #11
  br label %387

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

387:                                              ; preds = %370, %353
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  br label %388

388:                                              ; preds = %387
  br label %389

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

390:                                              ; No predecessors!
  br label %391

391:                                              ; preds = %390
  br label %392

392:                                              ; preds = %391, %334
  br label %393

393:                                              ; preds = %392
  br label %394

394:                                              ; preds = %393
  br label %395

395:                                              ; preds = %394
  %396 = load i32, ptr @test_count, align 4, !tbaa !5
  %397 = add nsw i32 %396, 1
  store i32 %397, ptr @test_count, align 4, !tbaa !5
  %398 = load ptr, ptr %13, align 8, !tbaa !9
  %399 = getelementptr inbounds %struct.s2n_connection, ptr %398, i32 0, i32 38
  %400 = load i64, ptr %12, align 8, !tbaa !15
  %401 = getelementptr inbounds [11 x %struct.anon], ptr %11, i64 0, i64 %400
  %402 = getelementptr inbounds %struct.anon, ptr %401, i32 0, i32 0
  %403 = getelementptr inbounds [5 x i8], ptr %402, i64 0, i64 0
  %404 = call i32 @s2n_stuffer_write_bytes(ptr noundef %399, ptr noundef %403, i32 noundef 5)
  %405 = icmp eq i32 %404, -1
  br i1 %405, label %406, label %459

406:                                              ; preds = %395
  br label %407

407:                                              ; preds = %406
  br label %408

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

415:                                              ; preds = %408
  %416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %417 = call i32 @fileno(ptr noundef %416) #11
  %418 = call i32 @isatty(i32 noundef %417) #11
  %419 = icmp ne i32 %418, 0
  br i1 %419, label %420, label %437

420:                                              ; preds = %415
  %421 = load i32, ptr %15, align 4, !tbaa !5
  %422 = call ptr @__errno_location() #12
  store i32 %421, ptr %422, align 4, !tbaa !5
  %423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %424 = load i32, ptr @test_count, align 4, !tbaa !5
  %425 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %426 = load i32, ptr %425, align 4, !tbaa !5
  %427 = call ptr @s2n_strerror(i32 noundef %426, ptr noundef @.str.4)
  %428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %429 = load i32, ptr %428, align 4, !tbaa !5
  %430 = call ptr @s2n_strerror_debug(i32 noundef %429, ptr noundef @.str.4)
  %431 = call ptr @__errno_location() #12
  %432 = load i32, ptr %431, align 4, !tbaa !5
  %433 = call ptr @strerror(i32 noundef %432) #11
  %434 = call ptr @__errno_location() #12
  %435 = load i32, ptr %434, align 4, !tbaa !5
  %436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %423, ptr noundef @.str.2, i32 noundef %424, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 116, ptr noundef %427, ptr noundef %430, ptr noundef %433, i32 noundef %435) #11
  br label %454

437:                                              ; preds = %415, %408
  %438 = load i32, ptr %15, align 4, !tbaa !5
  %439 = call ptr @__errno_location() #12
  store i32 %438, ptr %439, align 4, !tbaa !5
  %440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %441 = load i32, ptr @test_count, align 4, !tbaa !5
  %442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %443 = load i32, ptr %442, align 4, !tbaa !5
  %444 = call ptr @s2n_strerror(i32 noundef %443, ptr noundef @.str.4)
  %445 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %446 = load i32, ptr %445, align 4, !tbaa !5
  %447 = call ptr @s2n_strerror_debug(i32 noundef %446, ptr noundef @.str.4)
  %448 = call ptr @__errno_location() #12
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = call ptr @strerror(i32 noundef %449) #11
  %451 = call ptr @__errno_location() #12
  %452 = load i32, ptr %451, align 4, !tbaa !5
  %453 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %440, ptr noundef @.str.5, i32 noundef %441, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 116, ptr noundef %444, ptr noundef %447, ptr noundef %450, i32 noundef %452) #11
  br label %454

454:                                              ; preds = %437, %420
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %455

455:                                              ; preds = %454
  br label %456

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

457:                                              ; No predecessors!
  br label %458

458:                                              ; preds = %457
  br label %459

459:                                              ; preds = %458, %395
  br label %460

460:                                              ; preds = %459
  br label %461

461:                                              ; preds = %460
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #11
  store i8 0, ptr %16, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %17) #11
  store i8 0, ptr %17, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 2, ptr %18) #11
  store i16 0, ptr %18, align 2, !tbaa !18
  br label %462

462:                                              ; preds = %461
  %463 = load i32, ptr @test_count, align 4, !tbaa !5
  %464 = add nsw i32 %463, 1
  store i32 %464, ptr @test_count, align 4, !tbaa !5
  %465 = load ptr, ptr %13, align 8, !tbaa !9
  %466 = call i32 @s2n_sslv2_record_header_parse(ptr noundef %465, ptr noundef %16, ptr noundef %17, ptr noundef %18)
  %467 = icmp eq i32 %466, -1
  br i1 %467, label %468, label %521

468:                                              ; preds = %462
  br label %469

469:                                              ; preds = %468
  br label %470

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

477:                                              ; preds = %470
  %478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %479 = call i32 @fileno(ptr noundef %478) #11
  %480 = call i32 @isatty(i32 noundef %479) #11
  %481 = icmp ne i32 %480, 0
  br i1 %481, label %482, label %499

482:                                              ; preds = %477
  %483 = load i32, ptr %19, align 4, !tbaa !5
  %484 = call ptr @__errno_location() #12
  store i32 %483, ptr %484, align 4, !tbaa !5
  %485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %486 = load i32, ptr @test_count, align 4, !tbaa !5
  %487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %488 = load i32, ptr %487, align 4, !tbaa !5
  %489 = call ptr @s2n_strerror(i32 noundef %488, ptr noundef @.str.4)
  %490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %491 = load i32, ptr %490, align 4, !tbaa !5
  %492 = call ptr @s2n_strerror_debug(i32 noundef %491, ptr noundef @.str.4)
  %493 = call ptr @__errno_location() #12
  %494 = load i32, ptr %493, align 4, !tbaa !5
  %495 = call ptr @strerror(i32 noundef %494) #11
  %496 = call ptr @__errno_location() #12
  %497 = load i32, ptr %496, align 4, !tbaa !5
  %498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %485, ptr noundef @.str.2, i32 noundef %486, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 120, ptr noundef %489, ptr noundef %492, ptr noundef %495, i32 noundef %497) #11
  br label %516

499:                                              ; preds = %477, %470
  %500 = load i32, ptr %19, align 4, !tbaa !5
  %501 = call ptr @__errno_location() #12
  store i32 %500, ptr %501, align 4, !tbaa !5
  %502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %503 = load i32, ptr @test_count, align 4, !tbaa !5
  %504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %505 = load i32, ptr %504, align 4, !tbaa !5
  %506 = call ptr @s2n_strerror(i32 noundef %505, ptr noundef @.str.4)
  %507 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %508 = load i32, ptr %507, align 4, !tbaa !5
  %509 = call ptr @s2n_strerror_debug(i32 noundef %508, ptr noundef @.str.4)
  %510 = call ptr @__errno_location() #12
  %511 = load i32, ptr %510, align 4, !tbaa !5
  %512 = call ptr @strerror(i32 noundef %511) #11
  %513 = call ptr @__errno_location() #12
  %514 = load i32, ptr %513, align 4, !tbaa !5
  %515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %502, ptr noundef @.str.5, i32 noundef %503, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 120, ptr noundef %506, ptr noundef %509, ptr noundef %512, i32 noundef %514) #11
  br label %516

516:                                              ; preds = %499, %482
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #11
  br label %517

517:                                              ; preds = %516
  br label %518

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

519:                                              ; No predecessors!
  br label %520

520:                                              ; preds = %519
  br label %521

521:                                              ; preds = %520, %462
  br label %522

522:                                              ; preds = %521
  br label %523

523:                                              ; preds = %522
  br label %524

524:                                              ; preds = %523
  %525 = load i32, ptr @test_count, align 4, !tbaa !5
  %526 = add nsw i32 %525, 1
  store i32 %526, ptr @test_count, align 4, !tbaa !5
  %527 = load i64, ptr %12, align 8, !tbaa !15
  %528 = getelementptr inbounds [11 x %struct.anon], ptr %11, i64 0, i64 %527
  %529 = getelementptr inbounds %struct.anon, ptr %528, i32 0, i32 2
  %530 = load i8, ptr %529, align 2, !tbaa !20
  %531 = zext i8 %530 to i32
  %532 = load i8, ptr %16, align 1, !tbaa !17
  %533 = zext i8 %532 to i32
  %534 = icmp eq i32 %531, %533
  br i1 %534, label %588, label %535

535:                                              ; preds = %524
  br label %536

536:                                              ; preds = %535
  br label %537

537:                                              ; preds = %536
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  %538 = call ptr @__errno_location() #12
  %539 = load i32, ptr %538, align 4, !tbaa !5
  store i32 %539, ptr %20, align 4, !tbaa !5
  %540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %541 = call i32 @s2n_print_stacktrace(ptr noundef %540)
  %542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %543 = trunc i8 %542 to i1
  br i1 %543, label %544, label %566

544:                                              ; preds = %537
  %545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %546 = call i32 @fileno(ptr noundef %545) #11
  %547 = call i32 @isatty(i32 noundef %546) #11
  %548 = icmp ne i32 %547, 0
  br i1 %548, label %549, label %566

549:                                              ; preds = %544
  %550 = load i32, ptr %20, align 4, !tbaa !5
  %551 = call ptr @__errno_location() #12
  store i32 %550, ptr %551, align 4, !tbaa !5
  %552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %553 = load i32, ptr @test_count, align 4, !tbaa !5
  %554 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %555 = load i32, ptr %554, align 4, !tbaa !5
  %556 = call ptr @s2n_strerror(i32 noundef %555, ptr noundef @.str.4)
  %557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %558 = load i32, ptr %557, align 4, !tbaa !5
  %559 = call ptr @s2n_strerror_debug(i32 noundef %558, ptr noundef @.str.4)
  %560 = call ptr @__errno_location() #12
  %561 = load i32, ptr %560, align 4, !tbaa !5
  %562 = call ptr @strerror(i32 noundef %561) #11
  %563 = call ptr @__errno_location() #12
  %564 = load i32, ptr %563, align 4, !tbaa !5
  %565 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %552, ptr noundef @.str.2, i32 noundef %553, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 121, ptr noundef %556, ptr noundef %559, ptr noundef %562, i32 noundef %564) #11
  br label %583

566:                                              ; preds = %544, %537
  %567 = load i32, ptr %20, align 4, !tbaa !5
  %568 = call ptr @__errno_location() #12
  store i32 %567, ptr %568, align 4, !tbaa !5
  %569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %570 = load i32, ptr @test_count, align 4, !tbaa !5
  %571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %572 = load i32, ptr %571, align 4, !tbaa !5
  %573 = call ptr @s2n_strerror(i32 noundef %572, ptr noundef @.str.4)
  %574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %575 = load i32, ptr %574, align 4, !tbaa !5
  %576 = call ptr @s2n_strerror_debug(i32 noundef %575, ptr noundef @.str.4)
  %577 = call ptr @__errno_location() #12
  %578 = load i32, ptr %577, align 4, !tbaa !5
  %579 = call ptr @strerror(i32 noundef %578) #11
  %580 = call ptr @__errno_location() #12
  %581 = load i32, ptr %580, align 4, !tbaa !5
  %582 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %569, ptr noundef @.str.5, i32 noundef %570, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 121, ptr noundef %573, ptr noundef %576, ptr noundef %579, i32 noundef %581) #11
  br label %583

583:                                              ; preds = %566, %549
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %584

584:                                              ; preds = %583
  br label %585

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

586:                                              ; No predecessors!
  br label %587

587:                                              ; preds = %586
  br label %588

588:                                              ; preds = %587, %524
  br label %589

589:                                              ; preds = %588
  br label %590

590:                                              ; preds = %589
  br label %591

591:                                              ; preds = %590
  %592 = load i32, ptr @test_count, align 4, !tbaa !5
  %593 = add nsw i32 %592, 1
  store i32 %593, ptr @test_count, align 4, !tbaa !5
  %594 = load i64, ptr %12, align 8, !tbaa !15
  %595 = getelementptr inbounds [11 x %struct.anon], ptr %11, i64 0, i64 %594
  %596 = getelementptr inbounds %struct.anon, ptr %595, i32 0, i32 3
  %597 = load i8, ptr %596, align 1, !tbaa !22
  %598 = zext i8 %597 to i32
  %599 = load i8, ptr %17, align 1, !tbaa !17
  %600 = zext i8 %599 to i32
  %601 = icmp eq i32 %598, %600
  br i1 %601, label %655, label %602

602:                                              ; preds = %591
  br label %603

603:                                              ; preds = %602
  br label %604

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

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

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

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

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

651:                                              ; preds = %650
  br label %652

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

653:                                              ; No predecessors!
  br label %654

654:                                              ; preds = %653
  br label %655

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

656:                                              ; preds = %655
  br label %657

657:                                              ; preds = %656
  br label %658

658:                                              ; preds = %657
  %659 = load i32, ptr @test_count, align 4, !tbaa !5
  %660 = add nsw i32 %659, 1
  store i32 %660, ptr @test_count, align 4, !tbaa !5
  %661 = load i64, ptr %12, align 8, !tbaa !15
  %662 = getelementptr inbounds [11 x %struct.anon], ptr %11, i64 0, i64 %661
  %663 = getelementptr inbounds %struct.anon, ptr %662, i32 0, i32 1
  %664 = load i16, ptr %663, align 2, !tbaa !23
  %665 = zext i16 %664 to i32
  %666 = load i16, ptr %18, align 2, !tbaa !18
  %667 = zext i16 %666 to i32
  %668 = icmp eq i32 %665, %667
  br i1 %668, label %722, label %669

669:                                              ; preds = %658
  br label %670

670:                                              ; preds = %669
  br label %671

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

678:                                              ; preds = %671
  %679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %680 = call i32 @fileno(ptr noundef %679) #11
  %681 = call i32 @isatty(i32 noundef %680) #11
  %682 = icmp ne i32 %681, 0
  br i1 %682, label %683, label %700

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

700:                                              ; preds = %678, %671
  %701 = load i32, ptr %22, align 4, !tbaa !5
  %702 = call ptr @__errno_location() #12
  store i32 %701, ptr %702, align 4, !tbaa !5
  %703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %704 = load i32, ptr @test_count, align 4, !tbaa !5
  %705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %706 = load i32, ptr %705, align 4, !tbaa !5
  %707 = call ptr @s2n_strerror(i32 noundef %706, ptr noundef @.str.4)
  %708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %709 = load i32, ptr %708, align 4, !tbaa !5
  %710 = call ptr @s2n_strerror_debug(i32 noundef %709, ptr noundef @.str.4)
  %711 = call ptr @__errno_location() #12
  %712 = load i32, ptr %711, align 4, !tbaa !5
  %713 = call ptr @strerror(i32 noundef %712) #11
  %714 = call ptr @__errno_location() #12
  %715 = load i32, ptr %714, align 4, !tbaa !5
  %716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %703, ptr noundef @.str.5, i32 noundef %704, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 123, ptr noundef %707, ptr noundef %710, ptr noundef %713, i32 noundef %715) #11
  br label %717

717:                                              ; preds = %700, %683
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %718

718:                                              ; preds = %717
  br label %719

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

720:                                              ; No predecessors!
  br label %721

721:                                              ; preds = %720
  br label %722

722:                                              ; preds = %721, %658
  br label %723

723:                                              ; preds = %722
  br label %724

724:                                              ; preds = %723
  br label %725

725:                                              ; preds = %724
  br label %726

726:                                              ; preds = %725
  %727 = load i32, ptr @test_count, align 4, !tbaa !5
  %728 = add nsw i32 %727, 1
  store i32 %728, ptr @test_count, align 4, !tbaa !5
  %729 = load ptr, ptr %13, align 8, !tbaa !9
  %730 = getelementptr inbounds %struct.s2n_connection, ptr %729, i32 0, i32 37
  %731 = getelementptr inbounds [5 x i8], ptr %730, i64 0, i64 0
  %732 = load i64, ptr %12, align 8, !tbaa !15
  %733 = getelementptr inbounds [11 x %struct.anon], ptr %11, i64 0, i64 %732
  %734 = getelementptr inbounds %struct.anon, ptr %733, i32 0, i32 0
  %735 = getelementptr inbounds [5 x i8], ptr %734, i64 0, i64 0
  %736 = call i32 @memcmp(ptr noundef %731, ptr noundef %735, i64 noundef 5) #14
  %737 = icmp eq i32 %736, 0
  br i1 %737, label %791, label %738

738:                                              ; preds = %726
  br label %739

739:                                              ; preds = %738
  br label %740

740:                                              ; preds = %739
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #11
  %741 = call ptr @__errno_location() #12
  %742 = load i32, ptr %741, align 4, !tbaa !5
  store i32 %742, ptr %23, align 4, !tbaa !5
  %743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %744 = call i32 @s2n_print_stacktrace(ptr noundef %743)
  %745 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %746 = trunc i8 %745 to i1
  br i1 %746, label %747, label %769

747:                                              ; preds = %740
  %748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %749 = call i32 @fileno(ptr noundef %748) #11
  %750 = call i32 @isatty(i32 noundef %749) #11
  %751 = icmp ne i32 %750, 0
  br i1 %751, label %752, label %769

752:                                              ; preds = %747
  %753 = load i32, ptr %23, align 4, !tbaa !5
  %754 = call ptr @__errno_location() #12
  store i32 %753, ptr %754, align 4, !tbaa !5
  %755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %756 = load i32, ptr @test_count, align 4, !tbaa !5
  %757 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %758 = load i32, ptr %757, align 4, !tbaa !5
  %759 = call ptr @s2n_strerror(i32 noundef %758, ptr noundef @.str.4)
  %760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %761 = load i32, ptr %760, align 4, !tbaa !5
  %762 = call ptr @s2n_strerror_debug(i32 noundef %761, ptr noundef @.str.4)
  %763 = call ptr @__errno_location() #12
  %764 = load i32, ptr %763, align 4, !tbaa !5
  %765 = call ptr @strerror(i32 noundef %764) #11
  %766 = call ptr @__errno_location() #12
  %767 = load i32, ptr %766, align 4, !tbaa !5
  %768 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %755, ptr noundef @.str.2, i32 noundef %756, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 126, ptr noundef %759, ptr noundef %762, ptr noundef %765, i32 noundef %767) #11
  br label %786

769:                                              ; preds = %747, %740
  %770 = load i32, ptr %23, align 4, !tbaa !5
  %771 = call ptr @__errno_location() #12
  store i32 %770, ptr %771, align 4, !tbaa !5
  %772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %773 = load i32, ptr @test_count, align 4, !tbaa !5
  %774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %775 = load i32, ptr %774, align 4, !tbaa !5
  %776 = call ptr @s2n_strerror(i32 noundef %775, ptr noundef @.str.4)
  %777 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %778 = load i32, ptr %777, align 4, !tbaa !5
  %779 = call ptr @s2n_strerror_debug(i32 noundef %778, ptr noundef @.str.4)
  %780 = call ptr @__errno_location() #12
  %781 = load i32, ptr %780, align 4, !tbaa !5
  %782 = call ptr @strerror(i32 noundef %781) #11
  %783 = call ptr @__errno_location() #12
  %784 = load i32, ptr %783, align 4, !tbaa !5
  %785 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %772, ptr noundef @.str.5, i32 noundef %773, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 126, ptr noundef %776, ptr noundef %779, ptr noundef %782, i32 noundef %784) #11
  br label %786

786:                                              ; preds = %769, %752
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  br label %787

787:                                              ; preds = %786
  br label %788

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

789:                                              ; No predecessors!
  br label %790

790:                                              ; preds = %789
  br label %791

791:                                              ; preds = %790, %726
  br label %792

792:                                              ; preds = %791
  br label %793

793:                                              ; preds = %792
  br label %794

794:                                              ; preds = %793
  br label %795

795:                                              ; preds = %794
  br label %796

796:                                              ; preds = %795
  %797 = load i32, ptr @test_count, align 4, !tbaa !5
  %798 = add nsw i32 %797, 1
  store i32 %798, ptr @test_count, align 4, !tbaa !5
  %799 = load ptr, ptr %13, align 8, !tbaa !9
  %800 = getelementptr inbounds %struct.s2n_connection, ptr %799, i32 0, i32 38
  %801 = getelementptr inbounds %struct.s2n_stuffer, ptr %800, i32 0, i32 2
  %802 = load i32, ptr %801, align 4, !tbaa !24
  %803 = load ptr, ptr %13, align 8, !tbaa !9
  %804 = getelementptr inbounds %struct.s2n_connection, ptr %803, i32 0, i32 38
  %805 = getelementptr inbounds %struct.s2n_stuffer, ptr %804, i32 0, i32 1
  %806 = load i32, ptr %805, align 8, !tbaa !49
  %807 = sub i32 %802, %806
  %808 = icmp eq i32 %807, 5
  br i1 %808, label %862, label %809

809:                                              ; preds = %796
  br label %810

810:                                              ; preds = %809
  br label %811

811:                                              ; preds = %810
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #11
  %812 = call ptr @__errno_location() #12
  %813 = load i32, ptr %812, align 4, !tbaa !5
  store i32 %813, ptr %24, align 4, !tbaa !5
  %814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %815 = call i32 @s2n_print_stacktrace(ptr noundef %814)
  %816 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %817 = trunc i8 %816 to i1
  br i1 %817, label %818, label %840

818:                                              ; preds = %811
  %819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %820 = call i32 @fileno(ptr noundef %819) #11
  %821 = call i32 @isatty(i32 noundef %820) #11
  %822 = icmp ne i32 %821, 0
  br i1 %822, label %823, label %840

823:                                              ; preds = %818
  %824 = load i32, ptr %24, align 4, !tbaa !5
  %825 = call ptr @__errno_location() #12
  store i32 %824, ptr %825, align 4, !tbaa !5
  %826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %827 = load i32, ptr @test_count, align 4, !tbaa !5
  %828 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %829 = load i32, ptr %828, align 4, !tbaa !5
  %830 = call ptr @s2n_strerror(i32 noundef %829, ptr noundef @.str.4)
  %831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %832 = load i32, ptr %831, align 4, !tbaa !5
  %833 = call ptr @s2n_strerror_debug(i32 noundef %832, ptr noundef @.str.4)
  %834 = call ptr @__errno_location() #12
  %835 = load i32, ptr %834, align 4, !tbaa !5
  %836 = call ptr @strerror(i32 noundef %835) #11
  %837 = call ptr @__errno_location() #12
  %838 = load i32, ptr %837, align 4, !tbaa !5
  %839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %826, ptr noundef @.str.2, i32 noundef %827, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 128, ptr noundef %830, ptr noundef %833, ptr noundef %836, i32 noundef %838) #11
  br label %857

840:                                              ; preds = %818, %811
  %841 = load i32, ptr %24, align 4, !tbaa !5
  %842 = call ptr @__errno_location() #12
  store i32 %841, ptr %842, align 4, !tbaa !5
  %843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %844 = load i32, ptr @test_count, align 4, !tbaa !5
  %845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %846 = load i32, ptr %845, align 4, !tbaa !5
  %847 = call ptr @s2n_strerror(i32 noundef %846, ptr noundef @.str.4)
  %848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %849 = load i32, ptr %848, align 4, !tbaa !5
  %850 = call ptr @s2n_strerror_debug(i32 noundef %849, ptr noundef @.str.4)
  %851 = call ptr @__errno_location() #12
  %852 = load i32, ptr %851, align 4, !tbaa !5
  %853 = call ptr @strerror(i32 noundef %852) #11
  %854 = call ptr @__errno_location() #12
  %855 = load i32, ptr %854, align 4, !tbaa !5
  %856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %843, ptr noundef @.str.5, i32 noundef %844, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 128, ptr noundef %847, ptr noundef %850, ptr noundef %853, i32 noundef %855) #11
  br label %857

857:                                              ; preds = %840, %823
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  br label %858

858:                                              ; preds = %857
  br label %859

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

860:                                              ; No predecessors!
  br label %861

861:                                              ; preds = %860
  br label %862

862:                                              ; preds = %861, %796
  br label %863

863:                                              ; preds = %862
  br label %864

864:                                              ; preds = %863
  call void @llvm.lifetime.end.p0(i64 2, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #11
  %865 = call i32 @s2n_connection_ptr_free(ptr noundef %13)
  %866 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  store i32 %865, ptr %866, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #11
  br label %867

867:                                              ; preds = %864
  %868 = load i64, ptr %12, align 8, !tbaa !15
  %869 = add i64 %868, 1
  store i64 %869, ptr %12, align 8, !tbaa !15
  br label %328, !llvm.loop !50

870:                                              ; preds = %331
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #11
  %871 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %871, ptr %26, align 8, !tbaa !9
  br label %872

872:                                              ; preds = %870
  %873 = load i32, ptr @test_count, align 4, !tbaa !5
  %874 = add nsw i32 %873, 1
  store i32 %874, ptr @test_count, align 4, !tbaa !5
  %875 = load ptr, ptr %26, align 8, !tbaa !9
  %876 = icmp eq ptr %875, null
  br i1 %876, label %877, label %930

877:                                              ; preds = %872
  br label %878

878:                                              ; preds = %877
  br label %879

879:                                              ; preds = %878
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #11
  %880 = call ptr @__errno_location() #12
  %881 = load i32, ptr %880, align 4, !tbaa !5
  store i32 %881, ptr %27, align 4, !tbaa !5
  %882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %883 = call i32 @s2n_print_stacktrace(ptr noundef %882)
  %884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %885 = trunc i8 %884 to i1
  br i1 %885, label %886, label %908

886:                                              ; preds = %879
  %887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %888 = call i32 @fileno(ptr noundef %887) #11
  %889 = call i32 @isatty(i32 noundef %888) #11
  %890 = icmp ne i32 %889, 0
  br i1 %890, label %891, label %908

891:                                              ; preds = %886
  %892 = load i32, ptr %27, align 4, !tbaa !5
  %893 = call ptr @__errno_location() #12
  store i32 %892, ptr %893, align 4, !tbaa !5
  %894 = load ptr, ptr @stderr, align 8, !tbaa !9
  %895 = load i32, ptr @test_count, align 4, !tbaa !5
  %896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %897 = load i32, ptr %896, align 4, !tbaa !5
  %898 = call ptr @s2n_strerror(i32 noundef %897, ptr noundef @.str.4)
  %899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %900 = load i32, ptr %899, align 4, !tbaa !5
  %901 = call ptr @s2n_strerror_debug(i32 noundef %900, ptr noundef @.str.4)
  %902 = call ptr @__errno_location() #12
  %903 = load i32, ptr %902, align 4, !tbaa !5
  %904 = call ptr @strerror(i32 noundef %903) #11
  %905 = call ptr @__errno_location() #12
  %906 = load i32, ptr %905, align 4, !tbaa !5
  %907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %894, ptr noundef @.str.2, i32 noundef %895, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 139, ptr noundef %898, ptr noundef %901, ptr noundef %904, i32 noundef %906) #11
  br label %925

908:                                              ; preds = %886, %879
  %909 = load i32, ptr %27, align 4, !tbaa !5
  %910 = call ptr @__errno_location() #12
  store i32 %909, ptr %910, align 4, !tbaa !5
  %911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %912 = load i32, ptr @test_count, align 4, !tbaa !5
  %913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %914 = load i32, ptr %913, align 4, !tbaa !5
  %915 = call ptr @s2n_strerror(i32 noundef %914, ptr noundef @.str.4)
  %916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %917 = load i32, ptr %916, align 4, !tbaa !5
  %918 = call ptr @s2n_strerror_debug(i32 noundef %917, ptr noundef @.str.4)
  %919 = call ptr @__errno_location() #12
  %920 = load i32, ptr %919, align 4, !tbaa !5
  %921 = call ptr @strerror(i32 noundef %920) #11
  %922 = call ptr @__errno_location() #12
  %923 = load i32, ptr %922, align 4, !tbaa !5
  %924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %911, ptr noundef @.str.5, i32 noundef %912, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 139, ptr noundef %915, ptr noundef %918, ptr noundef %921, i32 noundef %923) #11
  br label %925

925:                                              ; preds = %908, %891
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  br label %926

926:                                              ; preds = %925
  br label %927

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

928:                                              ; No predecessors!
  br label %929

929:                                              ; preds = %928
  br label %930

930:                                              ; preds = %929, %872
  br label %931

931:                                              ; preds = %930
  br label %932

932:                                              ; preds = %931
  br label %933

933:                                              ; preds = %932
  %934 = load i32, ptr @test_count, align 4, !tbaa !5
  %935 = add nsw i32 %934, 1
  store i32 %935, ptr @test_count, align 4, !tbaa !5
  %936 = load ptr, ptr %26, align 8, !tbaa !9
  %937 = getelementptr inbounds %struct.s2n_connection, ptr %936, i32 0, i32 38
  %938 = call i32 @s2n_stuffer_skip_write(ptr noundef %937, i32 noundef 5)
  %939 = icmp eq i32 %938, -1
  br i1 %939, label %940, label %993

940:                                              ; preds = %933
  br label %941

941:                                              ; preds = %940
  br label %942

942:                                              ; preds = %941
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #11
  %943 = call ptr @__errno_location() #12
  %944 = load i32, ptr %943, align 4, !tbaa !5
  store i32 %944, ptr %28, align 4, !tbaa !5
  %945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %946 = call i32 @s2n_print_stacktrace(ptr noundef %945)
  %947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %948 = trunc i8 %947 to i1
  br i1 %948, label %949, label %971

949:                                              ; preds = %942
  %950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %951 = call i32 @fileno(ptr noundef %950) #11
  %952 = call i32 @isatty(i32 noundef %951) #11
  %953 = icmp ne i32 %952, 0
  br i1 %953, label %954, label %971

954:                                              ; preds = %949
  %955 = load i32, ptr %28, align 4, !tbaa !5
  %956 = call ptr @__errno_location() #12
  store i32 %955, ptr %956, align 4, !tbaa !5
  %957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %958 = load i32, ptr @test_count, align 4, !tbaa !5
  %959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %960 = load i32, ptr %959, align 4, !tbaa !5
  %961 = call ptr @s2n_strerror(i32 noundef %960, ptr noundef @.str.4)
  %962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %963 = load i32, ptr %962, align 4, !tbaa !5
  %964 = call ptr @s2n_strerror_debug(i32 noundef %963, ptr noundef @.str.4)
  %965 = call ptr @__errno_location() #12
  %966 = load i32, ptr %965, align 4, !tbaa !5
  %967 = call ptr @strerror(i32 noundef %966) #11
  %968 = call ptr @__errno_location() #12
  %969 = load i32, ptr %968, align 4, !tbaa !5
  %970 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %957, ptr noundef @.str.2, i32 noundef %958, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 140, ptr noundef %961, ptr noundef %964, ptr noundef %967, i32 noundef %969) #11
  br label %988

971:                                              ; preds = %949, %942
  %972 = load i32, ptr %28, align 4, !tbaa !5
  %973 = call ptr @__errno_location() #12
  store i32 %972, ptr %973, align 4, !tbaa !5
  %974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %975 = load i32, ptr @test_count, align 4, !tbaa !5
  %976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %977 = load i32, ptr %976, align 4, !tbaa !5
  %978 = call ptr @s2n_strerror(i32 noundef %977, ptr noundef @.str.4)
  %979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %980 = load i32, ptr %979, align 4, !tbaa !5
  %981 = call ptr @s2n_strerror_debug(i32 noundef %980, ptr noundef @.str.4)
  %982 = call ptr @__errno_location() #12
  %983 = load i32, ptr %982, align 4, !tbaa !5
  %984 = call ptr @strerror(i32 noundef %983) #11
  %985 = call ptr @__errno_location() #12
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %974, ptr noundef @.str.5, i32 noundef %975, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 140, ptr noundef %978, ptr noundef %981, ptr noundef %984, i32 noundef %986) #11
  br label %988

988:                                              ; preds = %971, %954
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %989

989:                                              ; preds = %988
  br label %990

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

991:                                              ; No predecessors!
  br label %992

992:                                              ; preds = %991
  br label %993

993:                                              ; preds = %992, %933
  br label %994

994:                                              ; preds = %993
  br label %995

995:                                              ; preds = %994
  %996 = load ptr, ptr %26, align 8, !tbaa !9
  %997 = getelementptr inbounds %struct.s2n_connection, ptr %996, i32 0, i32 37
  %998 = getelementptr inbounds [5 x i8], ptr %997, i64 0, i64 0
  store i8 -128, ptr %998, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #11
  store i8 0, ptr %29, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #11
  store i8 0, ptr %30, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 2, ptr %31) #11
  store i16 0, ptr %31, align 2, !tbaa !18
  %999 = load ptr, ptr %26, align 8, !tbaa !9
  %1000 = getelementptr inbounds %struct.s2n_connection, ptr %999, i32 0, i32 37
  %1001 = getelementptr inbounds [5 x i8], ptr %1000, i64 0, i64 1
  store i8 2, ptr %1001, align 1, !tbaa !17
  br label %1002

1002:                                             ; preds = %995
  br label %1003

1003:                                             ; preds = %1002
  br label %1004

1004:                                             ; preds = %1003
  %1005 = load i32, ptr @test_count, align 4, !tbaa !5
  %1006 = add nsw i32 %1005, 1
  store i32 %1006, ptr @test_count, align 4, !tbaa !5
  %1007 = load ptr, ptr %26, align 8, !tbaa !9
  %1008 = call i32 @s2n_sslv2_record_header_parse(ptr noundef %1007, ptr noundef %29, ptr noundef %30, ptr noundef %31)
  %1009 = icmp eq i32 %1008, -1
  br i1 %1009, label %1063, label %1010

1010:                                             ; preds = %1004
  br label %1011

1011:                                             ; preds = %1010
  br label %1012

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

1019:                                             ; preds = %1012
  %1020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1021 = call i32 @fileno(ptr noundef %1020) #11
  %1022 = call i32 @isatty(i32 noundef %1021) #11
  %1023 = icmp ne i32 %1022, 0
  br i1 %1023, label %1024, label %1041

1024:                                             ; preds = %1019
  %1025 = load i32, ptr %32, align 4, !tbaa !5
  %1026 = call ptr @__errno_location() #12
  store i32 %1025, ptr %1026, align 4, !tbaa !5
  %1027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1028 = load i32, ptr @test_count, align 4, !tbaa !5
  %1029 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1030 = load i32, ptr %1029, align 4, !tbaa !5
  %1031 = call ptr @s2n_strerror(i32 noundef %1030, ptr noundef @.str.4)
  %1032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1033 = load i32, ptr %1032, align 4, !tbaa !5
  %1034 = call ptr @s2n_strerror_debug(i32 noundef %1033, ptr noundef @.str.4)
  %1035 = call ptr @__errno_location() #12
  %1036 = load i32, ptr %1035, align 4, !tbaa !5
  %1037 = call ptr @strerror(i32 noundef %1036) #11
  %1038 = call ptr @__errno_location() #12
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  %1040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1027, ptr noundef @.str.2, i32 noundef %1028, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 149, ptr noundef %1031, ptr noundef %1034, ptr noundef %1037, i32 noundef %1039) #11
  br label %1058

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

1058:                                             ; preds = %1041, %1024
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %1059

1059:                                             ; preds = %1058
  br label %1060

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

1061:                                             ; No predecessors!
  br label %1062

1062:                                             ; preds = %1061
  br label %1063

1063:                                             ; preds = %1062, %1004
  br label %1064

1064:                                             ; preds = %1063
  br label %1065

1065:                                             ; preds = %1064
  br label %1066

1066:                                             ; preds = %1065
  %1067 = load i32, ptr @test_count, align 4, !tbaa !5
  %1068 = add nsw i32 %1067, 1
  store i32 %1068, ptr @test_count, align 4, !tbaa !5
  %1069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1070 = load i32, ptr %1069, align 4, !tbaa !5
  %1071 = icmp eq i32 %1070, 335544322
  br i1 %1071, label %1125, label %1072

1072:                                             ; preds = %1066
  br label %1073

1073:                                             ; preds = %1072
  br label %1074

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

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

1086:                                             ; preds = %1081
  %1087 = load i32, ptr %33, align 4, !tbaa !5
  %1088 = call ptr @__errno_location() #12
  store i32 %1087, ptr %1088, align 4, !tbaa !5
  %1089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1090 = load i32, ptr @test_count, align 4, !tbaa !5
  %1091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1092 = load i32, ptr %1091, align 4, !tbaa !5
  %1093 = call ptr @s2n_strerror(i32 noundef %1092, ptr noundef @.str.4)
  %1094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1095 = load i32, ptr %1094, align 4, !tbaa !5
  %1096 = call ptr @s2n_strerror_debug(i32 noundef %1095, ptr noundef @.str.4)
  %1097 = call ptr @__errno_location() #12
  %1098 = load i32, ptr %1097, align 4, !tbaa !5
  %1099 = call ptr @strerror(i32 noundef %1098) #11
  %1100 = call ptr @__errno_location() #12
  %1101 = load i32, ptr %1100, align 4, !tbaa !5
  %1102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1089, ptr noundef @.str.2, i32 noundef %1090, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 149, ptr noundef %1093, ptr noundef %1096, ptr noundef %1099, i32 noundef %1101) #11
  br label %1120

1103:                                             ; preds = %1081, %1074
  %1104 = load i32, ptr %33, align 4, !tbaa !5
  %1105 = call ptr @__errno_location() #12
  store i32 %1104, ptr %1105, align 4, !tbaa !5
  %1106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1107 = load i32, ptr @test_count, align 4, !tbaa !5
  %1108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1109 = load i32, ptr %1108, align 4, !tbaa !5
  %1110 = call ptr @s2n_strerror(i32 noundef %1109, ptr noundef @.str.4)
  %1111 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1112 = load i32, ptr %1111, align 4, !tbaa !5
  %1113 = call ptr @s2n_strerror_debug(i32 noundef %1112, ptr noundef @.str.4)
  %1114 = call ptr @__errno_location() #12
  %1115 = load i32, ptr %1114, align 4, !tbaa !5
  %1116 = call ptr @strerror(i32 noundef %1115) #11
  %1117 = call ptr @__errno_location() #12
  %1118 = load i32, ptr %1117, align 4, !tbaa !5
  %1119 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1106, ptr noundef @.str.5, i32 noundef %1107, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 149, ptr noundef %1110, ptr noundef %1113, ptr noundef %1116, i32 noundef %1118) #11
  br label %1120

1120:                                             ; preds = %1103, %1086
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %1121

1121:                                             ; preds = %1120
  br label %1122

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

1123:                                             ; No predecessors!
  br label %1124

1124:                                             ; preds = %1123
  br label %1125

1125:                                             ; preds = %1124, %1066
  br label %1126

1126:                                             ; preds = %1125
  br label %1127

1127:                                             ; preds = %1126
  br label %1128

1128:                                             ; preds = %1127
  %1129 = load i32, ptr @test_count, align 4, !tbaa !5
  %1130 = add nsw i32 %1129, 1
  store i32 %1130, ptr @test_count, align 4, !tbaa !5
  %1131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1132 = load i32, ptr %1131, align 4, !tbaa !5
  %1133 = call ptr @s2n_strerror_debug(i32 noundef %1132, ptr noundef @.str.4)
  %1134 = icmp eq ptr %1133, null
  br i1 %1134, label %1135, label %1188

1135:                                             ; preds = %1128
  br label %1136

1136:                                             ; preds = %1135
  br label %1137

1137:                                             ; preds = %1136
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #11
  %1138 = call ptr @__errno_location() #12
  %1139 = load i32, ptr %1138, align 4, !tbaa !5
  store i32 %1139, ptr %34, align 4, !tbaa !5
  %1140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1141 = call i32 @s2n_print_stacktrace(ptr noundef %1140)
  %1142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1143 = trunc i8 %1142 to i1
  br i1 %1143, label %1144, label %1166

1144:                                             ; preds = %1137
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = call i32 @fileno(ptr noundef %1145) #11
  %1147 = call i32 @isatty(i32 noundef %1146) #11
  %1148 = icmp ne i32 %1147, 0
  br i1 %1148, label %1149, label %1166

1149:                                             ; preds = %1144
  %1150 = load i32, ptr %34, align 4, !tbaa !5
  %1151 = call ptr @__errno_location() #12
  store i32 %1150, ptr %1151, align 4, !tbaa !5
  %1152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1153 = load i32, ptr @test_count, align 4, !tbaa !5
  %1154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1155 = load i32, ptr %1154, align 4, !tbaa !5
  %1156 = call ptr @s2n_strerror(i32 noundef %1155, ptr noundef @.str.4)
  %1157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1158 = load i32, ptr %1157, align 4, !tbaa !5
  %1159 = call ptr @s2n_strerror_debug(i32 noundef %1158, ptr noundef @.str.4)
  %1160 = call ptr @__errno_location() #12
  %1161 = load i32, ptr %1160, align 4, !tbaa !5
  %1162 = call ptr @strerror(i32 noundef %1161) #11
  %1163 = call ptr @__errno_location() #12
  %1164 = load i32, ptr %1163, align 4, !tbaa !5
  %1165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1152, ptr noundef @.str.2, i32 noundef %1153, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 149, ptr noundef %1156, ptr noundef %1159, ptr noundef %1162, i32 noundef %1164) #11
  br label %1183

1166:                                             ; preds = %1144, %1137
  %1167 = load i32, ptr %34, align 4, !tbaa !5
  %1168 = call ptr @__errno_location() #12
  store i32 %1167, ptr %1168, align 4, !tbaa !5
  %1169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1170 = load i32, ptr @test_count, align 4, !tbaa !5
  %1171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1172 = load i32, ptr %1171, align 4, !tbaa !5
  %1173 = call ptr @s2n_strerror(i32 noundef %1172, ptr noundef @.str.4)
  %1174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1175 = load i32, ptr %1174, align 4, !tbaa !5
  %1176 = call ptr @s2n_strerror_debug(i32 noundef %1175, ptr noundef @.str.4)
  %1177 = call ptr @__errno_location() #12
  %1178 = load i32, ptr %1177, align 4, !tbaa !5
  %1179 = call ptr @strerror(i32 noundef %1178) #11
  %1180 = call ptr @__errno_location() #12
  %1181 = load i32, ptr %1180, align 4, !tbaa !5
  %1182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1169, ptr noundef @.str.5, i32 noundef %1170, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 149, ptr noundef %1173, ptr noundef %1176, ptr noundef %1179, i32 noundef %1181) #11
  br label %1183

1183:                                             ; preds = %1166, %1149
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  br label %1184

1184:                                             ; preds = %1183
  br label %1185

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

1186:                                             ; No predecessors!
  br label %1187

1187:                                             ; preds = %1186
  br label %1188

1188:                                             ; preds = %1187, %1128
  br label %1189

1189:                                             ; preds = %1188
  br label %1190

1190:                                             ; preds = %1189
  br label %1191

1191:                                             ; preds = %1190
  br label %1192

1192:                                             ; preds = %1191
  br label %1193

1193:                                             ; preds = %1192
  %1194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1194, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1195 = call ptr @__errno_location() #12
  store i32 0, ptr %1195, align 4, !tbaa !5
  br label %1196

1196:                                             ; preds = %1193
  br label %1197

1197:                                             ; preds = %1196
  br label %1198

1198:                                             ; preds = %1197
  br label %1199

1199:                                             ; preds = %1198
  br label %1200

1200:                                             ; preds = %1199
  %1201 = load i32, ptr @test_count, align 4, !tbaa !5
  %1202 = add nsw i32 %1201, 1
  store i32 %1202, ptr @test_count, align 4, !tbaa !5
  %1203 = load ptr, ptr %26, align 8, !tbaa !9
  %1204 = getelementptr inbounds %struct.s2n_connection, ptr %1203, i32 0, i32 38
  %1205 = getelementptr inbounds %struct.s2n_stuffer, ptr %1204, i32 0, i32 2
  %1206 = load i32, ptr %1205, align 4, !tbaa !24
  %1207 = load ptr, ptr %26, align 8, !tbaa !9
  %1208 = getelementptr inbounds %struct.s2n_connection, ptr %1207, i32 0, i32 38
  %1209 = getelementptr inbounds %struct.s2n_stuffer, ptr %1208, i32 0, i32 1
  %1210 = load i32, ptr %1209, align 8, !tbaa !49
  %1211 = sub i32 %1206, %1210
  %1212 = icmp eq i32 %1211, 3
  br i1 %1212, label %1266, label %1213

1213:                                             ; preds = %1200
  br label %1214

1214:                                             ; preds = %1213
  br label %1215

1215:                                             ; preds = %1214
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #11
  %1216 = call ptr @__errno_location() #12
  %1217 = load i32, ptr %1216, align 4, !tbaa !5
  store i32 %1217, ptr %35, 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) #11
  %1225 = call i32 @isatty(i32 noundef %1224) #11
  %1226 = icmp ne i32 %1225, 0
  br i1 %1226, label %1227, label %1244

1227:                                             ; preds = %1222
  %1228 = load i32, ptr %35, align 4, !tbaa !5
  %1229 = call ptr @__errno_location() #12
  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() #12
  %1239 = load i32, ptr %1238, align 4, !tbaa !5
  %1240 = call ptr @strerror(i32 noundef %1239) #11
  %1241 = call ptr @__errno_location() #12
  %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.23, ptr noundef @.str.1, i32 noundef 150, ptr noundef %1234, ptr noundef %1237, ptr noundef %1240, i32 noundef %1242) #11
  br label %1261

1244:                                             ; preds = %1222, %1215
  %1245 = load i32, ptr %35, align 4, !tbaa !5
  %1246 = call ptr @__errno_location() #12
  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() #12
  %1256 = load i32, ptr %1255, align 4, !tbaa !5
  %1257 = call ptr @strerror(i32 noundef %1256) #11
  %1258 = call ptr @__errno_location() #12
  %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.23, ptr noundef @.str.1, i32 noundef 150, ptr noundef %1251, ptr noundef %1254, ptr noundef %1257, i32 noundef %1259) #11
  br label %1261

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

1262:                                             ; preds = %1261
  br label %1263

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

1264:                                             ; No predecessors!
  br label %1265

1265:                                             ; preds = %1264
  br label %1266

1266:                                             ; preds = %1265, %1200
  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 = load ptr, ptr %26, align 8, !tbaa !9
  %1273 = getelementptr inbounds %struct.s2n_connection, ptr %1272, i32 0, i32 38
  %1274 = call i32 @s2n_stuffer_reread(ptr noundef %1273)
  %1275 = icmp eq i32 %1274, -1
  br i1 %1275, label %1276, label %1329

1276:                                             ; preds = %1269
  br label %1277

1277:                                             ; preds = %1276
  br label %1278

1278:                                             ; preds = %1277
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #11
  %1279 = call ptr @__errno_location() #12
  %1280 = load i32, ptr %1279, align 4, !tbaa !5
  store i32 %1280, ptr %36, 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) #11
  %1288 = call i32 @isatty(i32 noundef %1287) #11
  %1289 = icmp ne i32 %1288, 0
  br i1 %1289, label %1290, label %1307

1290:                                             ; preds = %1285
  %1291 = load i32, ptr %36, align 4, !tbaa !5
  %1292 = call ptr @__errno_location() #12
  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() #12
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = call ptr @strerror(i32 noundef %1302) #11
  %1304 = call ptr @__errno_location() #12
  %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.24, ptr noundef @.str.1, i32 noundef 151, ptr noundef %1297, ptr noundef %1300, ptr noundef %1303, i32 noundef %1305) #11
  br label %1324

1307:                                             ; preds = %1285, %1278
  %1308 = load i32, ptr %36, align 4, !tbaa !5
  %1309 = call ptr @__errno_location() #12
  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() #12
  %1319 = load i32, ptr %1318, align 4, !tbaa !5
  %1320 = call ptr @strerror(i32 noundef %1319) #11
  %1321 = call ptr @__errno_location() #12
  %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.24, ptr noundef @.str.1, i32 noundef 151, ptr noundef %1314, ptr noundef %1317, ptr noundef %1320, i32 noundef %1322) #11
  br label %1324

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

1325:                                             ; preds = %1324
  br label %1326

1326:                                             ; preds = %1325
  call void @exit(i32 noundef 1) #13
  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
  %1332 = load ptr, ptr %26, align 8, !tbaa !9
  %1333 = getelementptr inbounds %struct.s2n_connection, ptr %1332, i32 0, i32 37
  %1334 = getelementptr inbounds [5 x i8], ptr %1333, i64 0, i64 1
  store i8 3, ptr %1334, align 1, !tbaa !17
  br label %1335

1335:                                             ; preds = %1331
  %1336 = load i32, ptr @test_count, align 4, !tbaa !5
  %1337 = add nsw i32 %1336, 1
  store i32 %1337, ptr @test_count, align 4, !tbaa !5
  %1338 = load ptr, ptr %26, align 8, !tbaa !9
  %1339 = call i32 @s2n_sslv2_record_header_parse(ptr noundef %1338, ptr noundef %29, ptr noundef %30, ptr noundef %31)
  %1340 = icmp eq i32 %1339, -1
  br i1 %1340, label %1341, label %1394

1341:                                             ; preds = %1335
  br label %1342

1342:                                             ; preds = %1341
  br label %1343

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

1350:                                             ; preds = %1343
  %1351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1352 = call i32 @fileno(ptr noundef %1351) #11
  %1353 = call i32 @isatty(i32 noundef %1352) #11
  %1354 = icmp ne i32 %1353, 0
  br i1 %1354, label %1355, label %1372

1355:                                             ; preds = %1350
  %1356 = load i32, ptr %37, align 4, !tbaa !5
  %1357 = call ptr @__errno_location() #12
  store i32 %1356, ptr %1357, align 4, !tbaa !5
  %1358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1359 = load i32, ptr @test_count, align 4, !tbaa !5
  %1360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1361 = load i32, ptr %1360, align 4, !tbaa !5
  %1362 = call ptr @s2n_strerror(i32 noundef %1361, ptr noundef @.str.4)
  %1363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1364 = load i32, ptr %1363, align 4, !tbaa !5
  %1365 = call ptr @s2n_strerror_debug(i32 noundef %1364, ptr noundef @.str.4)
  %1366 = call ptr @__errno_location() #12
  %1367 = load i32, ptr %1366, align 4, !tbaa !5
  %1368 = call ptr @strerror(i32 noundef %1367) #11
  %1369 = call ptr @__errno_location() #12
  %1370 = load i32, ptr %1369, align 4, !tbaa !5
  %1371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1358, ptr noundef @.str.2, i32 noundef %1359, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 154, ptr noundef %1362, ptr noundef %1365, ptr noundef %1368, i32 noundef %1370) #11
  br label %1389

1372:                                             ; preds = %1350, %1343
  %1373 = load i32, ptr %37, align 4, !tbaa !5
  %1374 = call ptr @__errno_location() #12
  store i32 %1373, ptr %1374, align 4, !tbaa !5
  %1375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1376 = load i32, ptr @test_count, align 4, !tbaa !5
  %1377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1378 = load i32, ptr %1377, align 4, !tbaa !5
  %1379 = call ptr @s2n_strerror(i32 noundef %1378, ptr noundef @.str.4)
  %1380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1381 = load i32, ptr %1380, align 4, !tbaa !5
  %1382 = call ptr @s2n_strerror_debug(i32 noundef %1381, ptr noundef @.str.4)
  %1383 = call ptr @__errno_location() #12
  %1384 = load i32, ptr %1383, align 4, !tbaa !5
  %1385 = call ptr @strerror(i32 noundef %1384) #11
  %1386 = call ptr @__errno_location() #12
  %1387 = load i32, ptr %1386, align 4, !tbaa !5
  %1388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1375, ptr noundef @.str.5, i32 noundef %1376, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 154, ptr noundef %1379, ptr noundef %1382, ptr noundef %1385, i32 noundef %1387) #11
  br label %1389

1389:                                             ; preds = %1372, %1355
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #11
  br label %1390

1390:                                             ; preds = %1389
  br label %1391

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

1392:                                             ; No predecessors!
  br label %1393

1393:                                             ; preds = %1392
  br label %1394

1394:                                             ; preds = %1393, %1335
  br label %1395

1395:                                             ; preds = %1394
  br label %1396

1396:                                             ; preds = %1395
  br label %1397

1397:                                             ; preds = %1396
  %1398 = load i32, ptr @test_count, align 4, !tbaa !5
  %1399 = add nsw i32 %1398, 1
  store i32 %1399, ptr @test_count, align 4, !tbaa !5
  %1400 = load ptr, ptr %26, align 8, !tbaa !9
  %1401 = getelementptr inbounds %struct.s2n_connection, ptr %1400, i32 0, i32 38
  %1402 = getelementptr inbounds %struct.s2n_stuffer, ptr %1401, i32 0, i32 2
  %1403 = load i32, ptr %1402, align 4, !tbaa !24
  %1404 = load ptr, ptr %26, align 8, !tbaa !9
  %1405 = getelementptr inbounds %struct.s2n_connection, ptr %1404, i32 0, i32 38
  %1406 = getelementptr inbounds %struct.s2n_stuffer, ptr %1405, i32 0, i32 1
  %1407 = load i32, ptr %1406, align 8, !tbaa !49
  %1408 = sub i32 %1403, %1407
  %1409 = icmp eq i32 %1408, 5
  br i1 %1409, label %1463, label %1410

1410:                                             ; preds = %1397
  br label %1411

1411:                                             ; preds = %1410
  br label %1412

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

1419:                                             ; preds = %1412
  %1420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1421 = call i32 @fileno(ptr noundef %1420) #11
  %1422 = call i32 @isatty(i32 noundef %1421) #11
  %1423 = icmp ne i32 %1422, 0
  br i1 %1423, label %1424, label %1441

1424:                                             ; preds = %1419
  %1425 = load i32, ptr %38, align 4, !tbaa !5
  %1426 = call ptr @__errno_location() #12
  store i32 %1425, ptr %1426, align 4, !tbaa !5
  %1427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1428 = load i32, ptr @test_count, align 4, !tbaa !5
  %1429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call ptr @s2n_strerror(i32 noundef %1430, ptr noundef @.str.4)
  %1432 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1433 = load i32, ptr %1432, align 4, !tbaa !5
  %1434 = call ptr @s2n_strerror_debug(i32 noundef %1433, ptr noundef @.str.4)
  %1435 = call ptr @__errno_location() #12
  %1436 = load i32, ptr %1435, align 4, !tbaa !5
  %1437 = call ptr @strerror(i32 noundef %1436) #11
  %1438 = call ptr @__errno_location() #12
  %1439 = load i32, ptr %1438, align 4, !tbaa !5
  %1440 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1427, ptr noundef @.str.2, i32 noundef %1428, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 155, ptr noundef %1431, ptr noundef %1434, ptr noundef %1437, i32 noundef %1439) #11
  br label %1458

1441:                                             ; preds = %1419, %1412
  %1442 = load i32, ptr %38, align 4, !tbaa !5
  %1443 = call ptr @__errno_location() #12
  store i32 %1442, ptr %1443, align 4, !tbaa !5
  %1444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1445 = load i32, ptr @test_count, align 4, !tbaa !5
  %1446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1447 = load i32, ptr %1446, align 4, !tbaa !5
  %1448 = call ptr @s2n_strerror(i32 noundef %1447, ptr noundef @.str.4)
  %1449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  %1451 = call ptr @s2n_strerror_debug(i32 noundef %1450, ptr noundef @.str.4)
  %1452 = call ptr @__errno_location() #12
  %1453 = load i32, ptr %1452, align 4, !tbaa !5
  %1454 = call ptr @strerror(i32 noundef %1453) #11
  %1455 = call ptr @__errno_location() #12
  %1456 = load i32, ptr %1455, align 4, !tbaa !5
  %1457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1444, ptr noundef @.str.5, i32 noundef %1445, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 155, ptr noundef %1448, ptr noundef %1451, ptr noundef %1454, i32 noundef %1456) #11
  br label %1458

1458:                                             ; preds = %1441, %1424
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1459

1459:                                             ; preds = %1458
  br label %1460

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

1461:                                             ; No predecessors!
  br label %1462

1462:                                             ; preds = %1461
  br label %1463

1463:                                             ; preds = %1462, %1397
  br label %1464

1464:                                             ; preds = %1463
  br label %1465

1465:                                             ; preds = %1464
  br label %1466

1466:                                             ; preds = %1465
  %1467 = load i32, ptr @test_count, align 4, !tbaa !5
  %1468 = add nsw i32 %1467, 1
  store i32 %1468, ptr @test_count, align 4, !tbaa !5
  %1469 = load ptr, ptr %26, align 8, !tbaa !9
  %1470 = getelementptr inbounds %struct.s2n_connection, ptr %1469, i32 0, i32 38
  %1471 = call i32 @s2n_stuffer_reread(ptr noundef %1470)
  %1472 = icmp eq i32 %1471, -1
  br i1 %1472, label %1473, label %1526

1473:                                             ; preds = %1466
  br label %1474

1474:                                             ; preds = %1473
  br label %1475

1475:                                             ; preds = %1474
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #11
  %1476 = call ptr @__errno_location() #12
  %1477 = load i32, ptr %1476, align 4, !tbaa !5
  store i32 %1477, ptr %39, align 4, !tbaa !5
  %1478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1479 = call i32 @s2n_print_stacktrace(ptr noundef %1478)
  %1480 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1481 = trunc i8 %1480 to i1
  br i1 %1481, label %1482, label %1504

1482:                                             ; preds = %1475
  %1483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1484 = call i32 @fileno(ptr noundef %1483) #11
  %1485 = call i32 @isatty(i32 noundef %1484) #11
  %1486 = icmp ne i32 %1485, 0
  br i1 %1486, label %1487, label %1504

1487:                                             ; preds = %1482
  %1488 = load i32, ptr %39, align 4, !tbaa !5
  %1489 = call ptr @__errno_location() #12
  store i32 %1488, ptr %1489, align 4, !tbaa !5
  %1490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1491 = load i32, ptr @test_count, align 4, !tbaa !5
  %1492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1493 = load i32, ptr %1492, align 4, !tbaa !5
  %1494 = call ptr @s2n_strerror(i32 noundef %1493, ptr noundef @.str.4)
  %1495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1496 = load i32, ptr %1495, align 4, !tbaa !5
  %1497 = call ptr @s2n_strerror_debug(i32 noundef %1496, ptr noundef @.str.4)
  %1498 = call ptr @__errno_location() #12
  %1499 = load i32, ptr %1498, align 4, !tbaa !5
  %1500 = call ptr @strerror(i32 noundef %1499) #11
  %1501 = call ptr @__errno_location() #12
  %1502 = load i32, ptr %1501, align 4, !tbaa !5
  %1503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1490, ptr noundef @.str.2, i32 noundef %1491, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 156, ptr noundef %1494, ptr noundef %1497, ptr noundef %1500, i32 noundef %1502) #11
  br label %1521

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

1521:                                             ; preds = %1504, %1487
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #11
  br label %1522

1522:                                             ; preds = %1521
  br label %1523

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

1524:                                             ; No predecessors!
  br label %1525

1525:                                             ; preds = %1524
  br label %1526

1526:                                             ; preds = %1525, %1466
  br label %1527

1527:                                             ; preds = %1526
  br label %1528

1528:                                             ; preds = %1527
  %1529 = load ptr, ptr %26, align 8, !tbaa !9
  %1530 = getelementptr inbounds %struct.s2n_connection, ptr %1529, i32 0, i32 37
  %1531 = getelementptr inbounds [5 x i8], ptr %1530, i64 0, i64 1
  store i8 0, ptr %1531, align 1, !tbaa !17
  br label %1532

1532:                                             ; preds = %1528
  br label %1533

1533:                                             ; preds = %1532
  br label %1534

1534:                                             ; preds = %1533
  %1535 = load i32, ptr @test_count, align 4, !tbaa !5
  %1536 = add nsw i32 %1535, 1
  store i32 %1536, ptr @test_count, align 4, !tbaa !5
  %1537 = load ptr, ptr %26, align 8, !tbaa !9
  %1538 = call i32 @s2n_sslv2_record_header_parse(ptr noundef %1537, ptr noundef %29, ptr noundef %30, ptr noundef %31)
  %1539 = icmp eq i32 %1538, -1
  br i1 %1539, label %1593, label %1540

1540:                                             ; preds = %1534
  br label %1541

1541:                                             ; preds = %1540
  br label %1542

1542:                                             ; preds = %1541
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #11
  %1543 = call ptr @__errno_location() #12
  %1544 = load i32, ptr %1543, align 4, !tbaa !5
  store i32 %1544, ptr %40, align 4, !tbaa !5
  %1545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1546 = call i32 @s2n_print_stacktrace(ptr noundef %1545)
  %1547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1548 = trunc i8 %1547 to i1
  br i1 %1548, label %1549, label %1571

1549:                                             ; preds = %1542
  %1550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1551 = call i32 @fileno(ptr noundef %1550) #11
  %1552 = call i32 @isatty(i32 noundef %1551) #11
  %1553 = icmp ne i32 %1552, 0
  br i1 %1553, label %1554, label %1571

1554:                                             ; preds = %1549
  %1555 = load i32, ptr %40, align 4, !tbaa !5
  %1556 = call ptr @__errno_location() #12
  store i32 %1555, ptr %1556, align 4, !tbaa !5
  %1557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1558 = load i32, ptr @test_count, align 4, !tbaa !5
  %1559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1560 = load i32, ptr %1559, align 4, !tbaa !5
  %1561 = call ptr @s2n_strerror(i32 noundef %1560, ptr noundef @.str.4)
  %1562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1563 = load i32, ptr %1562, align 4, !tbaa !5
  %1564 = call ptr @s2n_strerror_debug(i32 noundef %1563, ptr noundef @.str.4)
  %1565 = call ptr @__errno_location() #12
  %1566 = load i32, ptr %1565, align 4, !tbaa !5
  %1567 = call ptr @strerror(i32 noundef %1566) #11
  %1568 = call ptr @__errno_location() #12
  %1569 = load i32, ptr %1568, align 4, !tbaa !5
  %1570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1557, ptr noundef @.str.2, i32 noundef %1558, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 161, ptr noundef %1561, ptr noundef %1564, ptr noundef %1567, i32 noundef %1569) #11
  br label %1588

1571:                                             ; preds = %1549, %1542
  %1572 = load i32, ptr %40, align 4, !tbaa !5
  %1573 = call ptr @__errno_location() #12
  store i32 %1572, ptr %1573, align 4, !tbaa !5
  %1574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1575 = load i32, ptr @test_count, align 4, !tbaa !5
  %1576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1577 = load i32, ptr %1576, align 4, !tbaa !5
  %1578 = call ptr @s2n_strerror(i32 noundef %1577, ptr noundef @.str.4)
  %1579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1580 = load i32, ptr %1579, align 4, !tbaa !5
  %1581 = call ptr @s2n_strerror_debug(i32 noundef %1580, ptr noundef @.str.4)
  %1582 = call ptr @__errno_location() #12
  %1583 = load i32, ptr %1582, align 4, !tbaa !5
  %1584 = call ptr @strerror(i32 noundef %1583) #11
  %1585 = call ptr @__errno_location() #12
  %1586 = load i32, ptr %1585, align 4, !tbaa !5
  %1587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1574, ptr noundef @.str.5, i32 noundef %1575, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 161, ptr noundef %1578, ptr noundef %1581, ptr noundef %1584, i32 noundef %1586) #11
  br label %1588

1588:                                             ; preds = %1571, %1554
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %1589

1589:                                             ; preds = %1588
  br label %1590

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

1591:                                             ; No predecessors!
  br label %1592

1592:                                             ; preds = %1591
  br label %1593

1593:                                             ; preds = %1592, %1534
  br label %1594

1594:                                             ; preds = %1593
  br label %1595

1595:                                             ; preds = %1594
  br label %1596

1596:                                             ; preds = %1595
  %1597 = load i32, ptr @test_count, align 4, !tbaa !5
  %1598 = add nsw i32 %1597, 1
  store i32 %1598, ptr @test_count, align 4, !tbaa !5
  %1599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1600 = load i32, ptr %1599, align 4, !tbaa !5
  %1601 = icmp eq i32 %1600, 335544322
  br i1 %1601, label %1655, label %1602

1602:                                             ; preds = %1596
  br label %1603

1603:                                             ; preds = %1602
  br label %1604

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

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

1616:                                             ; preds = %1611
  %1617 = load i32, ptr %41, align 4, !tbaa !5
  %1618 = call ptr @__errno_location() #12
  store i32 %1617, ptr %1618, align 4, !tbaa !5
  %1619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1620 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1622, ptr noundef @.str.4)
  %1624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1625 = load i32, ptr %1624, align 4, !tbaa !5
  %1626 = call ptr @s2n_strerror_debug(i32 noundef %1625, ptr noundef @.str.4)
  %1627 = call ptr @__errno_location() #12
  %1628 = load i32, ptr %1627, align 4, !tbaa !5
  %1629 = call ptr @strerror(i32 noundef %1628) #11
  %1630 = call ptr @__errno_location() #12
  %1631 = load i32, ptr %1630, align 4, !tbaa !5
  %1632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1619, ptr noundef @.str.2, i32 noundef %1620, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 161, ptr noundef %1623, ptr noundef %1626, ptr noundef %1629, i32 noundef %1631) #11
  br label %1650

1633:                                             ; preds = %1611, %1604
  %1634 = load i32, ptr %41, align 4, !tbaa !5
  %1635 = call ptr @__errno_location() #12
  store i32 %1634, ptr %1635, align 4, !tbaa !5
  %1636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1637 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1639, ptr noundef @.str.4)
  %1641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call ptr @s2n_strerror_debug(i32 noundef %1642, ptr noundef @.str.4)
  %1644 = call ptr @__errno_location() #12
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  %1646 = call ptr @strerror(i32 noundef %1645) #11
  %1647 = call ptr @__errno_location() #12
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1636, ptr noundef @.str.5, i32 noundef %1637, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 161, ptr noundef %1640, ptr noundef %1643, ptr noundef %1646, i32 noundef %1648) #11
  br label %1650

1650:                                             ; preds = %1633, %1616
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %1651

1651:                                             ; preds = %1650
  br label %1652

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

1653:                                             ; No predecessors!
  br label %1654

1654:                                             ; preds = %1653
  br label %1655

1655:                                             ; preds = %1654, %1596
  br label %1656

1656:                                             ; preds = %1655
  br label %1657

1657:                                             ; preds = %1656
  br label %1658

1658:                                             ; preds = %1657
  %1659 = load i32, ptr @test_count, align 4, !tbaa !5
  %1660 = add nsw i32 %1659, 1
  store i32 %1660, ptr @test_count, align 4, !tbaa !5
  %1661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1662 = load i32, ptr %1661, align 4, !tbaa !5
  %1663 = call ptr @s2n_strerror_debug(i32 noundef %1662, ptr noundef @.str.4)
  %1664 = icmp eq ptr %1663, null
  br i1 %1664, label %1665, label %1718

1665:                                             ; preds = %1658
  br label %1666

1666:                                             ; preds = %1665
  br label %1667

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

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

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

1696:                                             ; preds = %1674, %1667
  %1697 = load i32, ptr %42, align 4, !tbaa !5
  %1698 = call ptr @__errno_location() #12
  store i32 %1697, ptr %1698, align 4, !tbaa !5
  %1699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1700 = load i32, ptr @test_count, align 4, !tbaa !5
  %1701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1702 = load i32, ptr %1701, align 4, !tbaa !5
  %1703 = call ptr @s2n_strerror(i32 noundef %1702, ptr noundef @.str.4)
  %1704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1705 = load i32, ptr %1704, align 4, !tbaa !5
  %1706 = call ptr @s2n_strerror_debug(i32 noundef %1705, ptr noundef @.str.4)
  %1707 = call ptr @__errno_location() #12
  %1708 = load i32, ptr %1707, align 4, !tbaa !5
  %1709 = call ptr @strerror(i32 noundef %1708) #11
  %1710 = call ptr @__errno_location() #12
  %1711 = load i32, ptr %1710, align 4, !tbaa !5
  %1712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1699, ptr noundef @.str.5, i32 noundef %1700, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 161, ptr noundef %1703, ptr noundef %1706, ptr noundef %1709, i32 noundef %1711) #11
  br label %1713

1713:                                             ; preds = %1696, %1679
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %1714

1714:                                             ; preds = %1713
  br label %1715

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

1716:                                             ; No predecessors!
  br label %1717

1717:                                             ; preds = %1716
  br label %1718

1718:                                             ; preds = %1717, %1658
  br label %1719

1719:                                             ; preds = %1718
  br label %1720

1720:                                             ; preds = %1719
  br label %1721

1721:                                             ; preds = %1720
  br label %1722

1722:                                             ; preds = %1721
  br label %1723

1723:                                             ; preds = %1722
  %1724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1724, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1725 = call ptr @__errno_location() #12
  store i32 0, ptr %1725, align 4, !tbaa !5
  br label %1726

1726:                                             ; preds = %1723
  br label %1727

1727:                                             ; preds = %1726
  br label %1728

1728:                                             ; preds = %1727
  br label %1729

1729:                                             ; preds = %1728
  br label %1730

1730:                                             ; preds = %1729
  %1731 = load i32, ptr @test_count, align 4, !tbaa !5
  %1732 = add nsw i32 %1731, 1
  store i32 %1732, ptr @test_count, align 4, !tbaa !5
  %1733 = load ptr, ptr %26, align 8, !tbaa !9
  %1734 = getelementptr inbounds %struct.s2n_connection, ptr %1733, i32 0, i32 38
  %1735 = getelementptr inbounds %struct.s2n_stuffer, ptr %1734, i32 0, i32 2
  %1736 = load i32, ptr %1735, align 4, !tbaa !24
  %1737 = load ptr, ptr %26, align 8, !tbaa !9
  %1738 = getelementptr inbounds %struct.s2n_connection, ptr %1737, i32 0, i32 38
  %1739 = getelementptr inbounds %struct.s2n_stuffer, ptr %1738, i32 0, i32 1
  %1740 = load i32, ptr %1739, align 8, !tbaa !49
  %1741 = sub i32 %1736, %1740
  %1742 = icmp eq i32 %1741, 3
  br i1 %1742, label %1796, label %1743

1743:                                             ; preds = %1730
  br label %1744

1744:                                             ; preds = %1743
  br label %1745

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

1752:                                             ; preds = %1745
  %1753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1754 = call i32 @fileno(ptr noundef %1753) #11
  %1755 = call i32 @isatty(i32 noundef %1754) #11
  %1756 = icmp ne i32 %1755, 0
  br i1 %1756, label %1757, label %1774

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

1774:                                             ; preds = %1752, %1745
  %1775 = load i32, ptr %43, align 4, !tbaa !5
  %1776 = call ptr @__errno_location() #12
  store i32 %1775, ptr %1776, align 4, !tbaa !5
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1780, ptr noundef @.str.4)
  %1782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1783 = load i32, ptr %1782, align 4, !tbaa !5
  %1784 = call ptr @s2n_strerror_debug(i32 noundef %1783, ptr noundef @.str.4)
  %1785 = call ptr @__errno_location() #12
  %1786 = load i32, ptr %1785, align 4, !tbaa !5
  %1787 = call ptr @strerror(i32 noundef %1786) #11
  %1788 = call ptr @__errno_location() #12
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1777, ptr noundef @.str.5, i32 noundef %1778, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 162, ptr noundef %1781, ptr noundef %1784, ptr noundef %1787, i32 noundef %1789) #11
  br label %1791

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

1792:                                             ; preds = %1791
  br label %1793

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

1794:                                             ; No predecessors!
  br label %1795

1795:                                             ; preds = %1794
  br label %1796

1796:                                             ; preds = %1795, %1730
  br label %1797

1797:                                             ; preds = %1796
  br label %1798

1798:                                             ; preds = %1797
  br label %1799

1799:                                             ; preds = %1798
  %1800 = load i32, ptr @test_count, align 4, !tbaa !5
  %1801 = add nsw i32 %1800, 1
  store i32 %1801, ptr @test_count, align 4, !tbaa !5
  %1802 = load ptr, ptr %26, align 8, !tbaa !9
  %1803 = getelementptr inbounds %struct.s2n_connection, ptr %1802, i32 0, i32 38
  %1804 = call i32 @s2n_stuffer_reread(ptr noundef %1803)
  %1805 = icmp eq i32 %1804, -1
  br i1 %1805, label %1806, label %1859

1806:                                             ; preds = %1799
  br label %1807

1807:                                             ; preds = %1806
  br label %1808

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

1815:                                             ; preds = %1808
  %1816 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1817 = call i32 @fileno(ptr noundef %1816) #11
  %1818 = call i32 @isatty(i32 noundef %1817) #11
  %1819 = icmp ne i32 %1818, 0
  br i1 %1819, label %1820, label %1837

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

1837:                                             ; preds = %1815, %1808
  %1838 = load i32, ptr %44, align 4, !tbaa !5
  %1839 = call ptr @__errno_location() #12
  store i32 %1838, ptr %1839, align 4, !tbaa !5
  %1840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1841 = load i32, ptr @test_count, align 4, !tbaa !5
  %1842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1843 = load i32, ptr %1842, align 4, !tbaa !5
  %1844 = call ptr @s2n_strerror(i32 noundef %1843, ptr noundef @.str.4)
  %1845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1846 = load i32, ptr %1845, align 4, !tbaa !5
  %1847 = call ptr @s2n_strerror_debug(i32 noundef %1846, ptr noundef @.str.4)
  %1848 = call ptr @__errno_location() #12
  %1849 = load i32, ptr %1848, align 4, !tbaa !5
  %1850 = call ptr @strerror(i32 noundef %1849) #11
  %1851 = call ptr @__errno_location() #12
  %1852 = load i32, ptr %1851, align 4, !tbaa !5
  %1853 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1840, ptr noundef @.str.5, i32 noundef %1841, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 163, ptr noundef %1844, ptr noundef %1847, ptr noundef %1850, i32 noundef %1852) #11
  br label %1854

1854:                                             ; preds = %1837, %1820
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %1855

1855:                                             ; preds = %1854
  br label %1856

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

1857:                                             ; No predecessors!
  br label %1858

1858:                                             ; preds = %1857
  br label %1859

1859:                                             ; preds = %1858, %1799
  br label %1860

1860:                                             ; preds = %1859
  br label %1861

1861:                                             ; preds = %1860
  call void @llvm.lifetime.end.p0(i64 2, ptr %31) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #11
  %1862 = call i32 @s2n_connection_ptr_free(ptr noundef %26)
  %1863 = getelementptr inbounds %struct.s2n_result, ptr %45, i32 0, i32 0
  store i32 %1862, ptr %1863, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #11
  call void @llvm.lifetime.end.p0(i64 110, ptr %11) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %46) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %46, ptr align 16 @__const.main.policy_test_cases, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #11
  store i64 0, ptr %47, align 8, !tbaa !15
  br label %1864

1864:                                             ; preds = %3171, %1861
  %1865 = load i64, ptr %47, align 8, !tbaa !15
  %1866 = icmp ult i64 %1865, 2
  br i1 %1866, label %1868, label %1867

1867:                                             ; preds = %1864
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #11
  br label %3174

1868:                                             ; preds = %1864
  %1869 = load i64, ptr %47, align 8, !tbaa !15
  %1870 = getelementptr inbounds [2 x %struct.anon.0], ptr %46, i64 0, i64 %1869
  %1871 = getelementptr inbounds %struct.anon.0, ptr %1870, i32 0, i32 1
  %1872 = load i8, ptr %1871, align 8, !tbaa !52
  %1873 = zext i8 %1872 to i32
  %1874 = icmp eq i32 %1873, 34
  br i1 %1874, label %1875, label %1878

1875:                                             ; preds = %1868
  %1876 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %1876, label %1878, label %1877

1877:                                             ; preds = %1875
  br label %3171

1878:                                             ; preds = %1875, %1868
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #11
  %1879 = call ptr @s2n_config_new_minimal()
  store ptr %1879, ptr %48, align 8, !tbaa !9
  br label %1880

1880:                                             ; preds = %1878
  %1881 = load i32, ptr @test_count, align 4, !tbaa !5
  %1882 = add nsw i32 %1881, 1
  store i32 %1882, ptr @test_count, align 4, !tbaa !5
  %1883 = load ptr, ptr %48, align 8, !tbaa !9
  %1884 = icmp eq ptr %1883, null
  br i1 %1884, label %1885, label %1938

1885:                                             ; preds = %1880
  br label %1886

1886:                                             ; preds = %1885
  br label %1887

1887:                                             ; preds = %1886
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #11
  %1888 = call ptr @__errno_location() #12
  %1889 = load i32, ptr %1888, align 4, !tbaa !5
  store i32 %1889, ptr %49, align 4, !tbaa !5
  %1890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1891 = call i32 @s2n_print_stacktrace(ptr noundef %1890)
  %1892 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1893 = trunc i8 %1892 to i1
  br i1 %1893, label %1894, label %1916

1894:                                             ; preds = %1887
  %1895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1896 = call i32 @fileno(ptr noundef %1895) #11
  %1897 = call i32 @isatty(i32 noundef %1896) #11
  %1898 = icmp ne i32 %1897, 0
  br i1 %1898, label %1899, label %1916

1899:                                             ; preds = %1894
  %1900 = load i32, ptr %49, align 4, !tbaa !5
  %1901 = call ptr @__errno_location() #12
  store i32 %1900, ptr %1901, align 4, !tbaa !5
  %1902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1903 = load i32, ptr @test_count, align 4, !tbaa !5
  %1904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1905 = load i32, ptr %1904, align 4, !tbaa !5
  %1906 = call ptr @s2n_strerror(i32 noundef %1905, ptr noundef @.str.4)
  %1907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1908 = load i32, ptr %1907, align 4, !tbaa !5
  %1909 = call ptr @s2n_strerror_debug(i32 noundef %1908, ptr noundef @.str.4)
  %1910 = call ptr @__errno_location() #12
  %1911 = load i32, ptr %1910, align 4, !tbaa !5
  %1912 = call ptr @strerror(i32 noundef %1911) #11
  %1913 = call ptr @__errno_location() #12
  %1914 = load i32, ptr %1913, align 4, !tbaa !5
  %1915 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1902, ptr noundef @.str.2, i32 noundef %1903, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 182, ptr noundef %1906, ptr noundef %1909, ptr noundef %1912, i32 noundef %1914) #11
  br label %1933

1916:                                             ; preds = %1894, %1887
  %1917 = load i32, ptr %49, align 4, !tbaa !5
  %1918 = call ptr @__errno_location() #12
  store i32 %1917, ptr %1918, align 4, !tbaa !5
  %1919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1920 = load i32, ptr @test_count, align 4, !tbaa !5
  %1921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1922 = load i32, ptr %1921, align 4, !tbaa !5
  %1923 = call ptr @s2n_strerror(i32 noundef %1922, ptr noundef @.str.4)
  %1924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1925 = load i32, ptr %1924, align 4, !tbaa !5
  %1926 = call ptr @s2n_strerror_debug(i32 noundef %1925, ptr noundef @.str.4)
  %1927 = call ptr @__errno_location() #12
  %1928 = load i32, ptr %1927, align 4, !tbaa !5
  %1929 = call ptr @strerror(i32 noundef %1928) #11
  %1930 = call ptr @__errno_location() #12
  %1931 = load i32, ptr %1930, align 4, !tbaa !5
  %1932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1919, ptr noundef @.str.5, i32 noundef %1920, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 182, ptr noundef %1923, ptr noundef %1926, ptr noundef %1929, i32 noundef %1931) #11
  br label %1933

1933:                                             ; preds = %1916, %1899
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %1934

1934:                                             ; preds = %1933
  br label %1935

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

1936:                                             ; No predecessors!
  br label %1937

1937:                                             ; preds = %1936
  br label %1938

1938:                                             ; preds = %1937, %1880
  br label %1939

1939:                                             ; preds = %1938
  br label %1940

1940:                                             ; preds = %1939
  br label %1941

1941:                                             ; preds = %1940
  %1942 = load i32, ptr @test_count, align 4, !tbaa !5
  %1943 = add nsw i32 %1942, 1
  store i32 %1943, ptr @test_count, align 4, !tbaa !5
  %1944 = load ptr, ptr %48, align 8, !tbaa !9
  %1945 = load ptr, ptr %9, align 8, !tbaa !9
  %1946 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1944, ptr noundef %1945)
  %1947 = icmp eq i32 %1946, -1
  br i1 %1947, label %1948, label %2001

1948:                                             ; preds = %1941
  br label %1949

1949:                                             ; preds = %1948
  br label %1950

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

1957:                                             ; preds = %1950
  %1958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1959 = call i32 @fileno(ptr noundef %1958) #11
  %1960 = call i32 @isatty(i32 noundef %1959) #11
  %1961 = icmp ne i32 %1960, 0
  br i1 %1961, label %1962, label %1979

1962:                                             ; preds = %1957
  %1963 = load i32, ptr %50, align 4, !tbaa !5
  %1964 = call ptr @__errno_location() #12
  store i32 %1963, ptr %1964, align 4, !tbaa !5
  %1965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1966 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1968, ptr noundef @.str.4)
  %1970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1971 = load i32, ptr %1970, align 4, !tbaa !5
  %1972 = call ptr @s2n_strerror_debug(i32 noundef %1971, ptr noundef @.str.4)
  %1973 = call ptr @__errno_location() #12
  %1974 = load i32, ptr %1973, align 4, !tbaa !5
  %1975 = call ptr @strerror(i32 noundef %1974) #11
  %1976 = call ptr @__errno_location() #12
  %1977 = load i32, ptr %1976, align 4, !tbaa !5
  %1978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1965, ptr noundef @.str.2, i32 noundef %1966, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 183, ptr noundef %1969, ptr noundef %1972, ptr noundef %1975, i32 noundef %1977) #11
  br label %1996

1979:                                             ; preds = %1957, %1950
  %1980 = load i32, ptr %50, align 4, !tbaa !5
  %1981 = call ptr @__errno_location() #12
  store i32 %1980, ptr %1981, align 4, !tbaa !5
  %1982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1983 = load i32, ptr @test_count, align 4, !tbaa !5
  %1984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1985 = load i32, ptr %1984, align 4, !tbaa !5
  %1986 = call ptr @s2n_strerror(i32 noundef %1985, ptr noundef @.str.4)
  %1987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1988 = load i32, ptr %1987, align 4, !tbaa !5
  %1989 = call ptr @s2n_strerror_debug(i32 noundef %1988, ptr noundef @.str.4)
  %1990 = call ptr @__errno_location() #12
  %1991 = load i32, ptr %1990, align 4, !tbaa !5
  %1992 = call ptr @strerror(i32 noundef %1991) #11
  %1993 = call ptr @__errno_location() #12
  %1994 = load i32, ptr %1993, align 4, !tbaa !5
  %1995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1982, ptr noundef @.str.5, i32 noundef %1983, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 183, ptr noundef %1986, ptr noundef %1989, ptr noundef %1992, i32 noundef %1994) #11
  br label %1996

1996:                                             ; preds = %1979, %1962
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %1997

1997:                                             ; preds = %1996
  br label %1998

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

1999:                                             ; No predecessors!
  br label %2000

2000:                                             ; preds = %1999
  br label %2001

2001:                                             ; preds = %2000, %1941
  br label %2002

2002:                                             ; preds = %2001
  br label %2003

2003:                                             ; preds = %2002
  br label %2004

2004:                                             ; preds = %2003
  %2005 = load i32, ptr @test_count, align 4, !tbaa !5
  %2006 = add nsw i32 %2005, 1
  store i32 %2006, ptr @test_count, align 4, !tbaa !5
  %2007 = load ptr, ptr %48, align 8, !tbaa !9
  %2008 = call i32 @s2n_config_disable_x509_verification(ptr noundef %2007)
  %2009 = icmp eq i32 %2008, -1
  br i1 %2009, label %2010, label %2063

2010:                                             ; preds = %2004
  br label %2011

2011:                                             ; preds = %2010
  br label %2012

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

2019:                                             ; preds = %2012
  %2020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2021 = call i32 @fileno(ptr noundef %2020) #11
  %2022 = call i32 @isatty(i32 noundef %2021) #11
  %2023 = icmp ne i32 %2022, 0
  br i1 %2023, label %2024, label %2041

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

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

2058:                                             ; preds = %2041, %2024
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %2059

2059:                                             ; preds = %2058
  br label %2060

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

2061:                                             ; No predecessors!
  br label %2062

2062:                                             ; preds = %2061
  br label %2063

2063:                                             ; preds = %2062, %2004
  br label %2064

2064:                                             ; preds = %2063
  br label %2065

2065:                                             ; preds = %2064
  br label %2066

2066:                                             ; preds = %2065
  %2067 = load i32, ptr @test_count, align 4, !tbaa !5
  %2068 = add nsw i32 %2067, 1
  store i32 %2068, ptr @test_count, align 4, !tbaa !5
  %2069 = load ptr, ptr %48, align 8, !tbaa !9
  %2070 = load i64, ptr %47, align 8, !tbaa !15
  %2071 = getelementptr inbounds [2 x %struct.anon.0], ptr %46, i64 0, i64 %2070
  %2072 = getelementptr inbounds %struct.anon.0, ptr %2071, i32 0, i32 0
  %2073 = load ptr, ptr %2072, align 16, !tbaa !54
  %2074 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %2069, ptr noundef %2073)
  %2075 = icmp eq i32 %2074, -1
  br i1 %2075, label %2076, label %2129

2076:                                             ; preds = %2066
  br label %2077

2077:                                             ; preds = %2076
  br label %2078

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

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

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

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

2124:                                             ; preds = %2107, %2090
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %2125

2125:                                             ; preds = %2124
  br label %2126

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

2127:                                             ; No predecessors!
  br label %2128

2128:                                             ; preds = %2127
  br label %2129

2129:                                             ; preds = %2128, %2066
  br label %2130

2130:                                             ; preds = %2129
  br label %2131

2131:                                             ; preds = %2130
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #11
  %2132 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2132, ptr %53, align 8, !tbaa !9
  br label %2133

2133:                                             ; preds = %2131
  %2134 = load i32, ptr @test_count, align 4, !tbaa !5
  %2135 = add nsw i32 %2134, 1
  store i32 %2135, ptr @test_count, align 4, !tbaa !5
  %2136 = load ptr, ptr %53, align 8, !tbaa !9
  %2137 = icmp eq ptr %2136, null
  br i1 %2137, label %2138, label %2191

2138:                                             ; preds = %2133
  br label %2139

2139:                                             ; preds = %2138
  br label %2140

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

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

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

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

2186:                                             ; preds = %2169, %2152
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %2187

2187:                                             ; preds = %2186
  br label %2188

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

2189:                                             ; No predecessors!
  br label %2190

2190:                                             ; preds = %2189
  br label %2191

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

2192:                                             ; preds = %2191
  br label %2193

2193:                                             ; preds = %2192
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #11
  %2194 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2194, ptr %55, align 8, !tbaa !9
  br label %2195

2195:                                             ; preds = %2193
  %2196 = load i32, ptr @test_count, align 4, !tbaa !5
  %2197 = add nsw i32 %2196, 1
  store i32 %2197, ptr @test_count, align 4, !tbaa !5
  %2198 = load ptr, ptr %55, align 8, !tbaa !9
  %2199 = icmp eq ptr %2198, null
  br i1 %2199, label %2200, label %2253

2200:                                             ; preds = %2195
  br label %2201

2201:                                             ; preds = %2200
  br label %2202

2202:                                             ; preds = %2201
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #11
  %2203 = call ptr @__errno_location() #12
  %2204 = load i32, ptr %2203, align 4, !tbaa !5
  store i32 %2204, ptr %56, align 4, !tbaa !5
  %2205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2206 = call i32 @s2n_print_stacktrace(ptr noundef %2205)
  %2207 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2208 = trunc i8 %2207 to i1
  br i1 %2208, label %2209, label %2231

2209:                                             ; preds = %2202
  %2210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2211 = call i32 @fileno(ptr noundef %2210) #11
  %2212 = call i32 @isatty(i32 noundef %2211) #11
  %2213 = icmp ne i32 %2212, 0
  br i1 %2213, label %2214, label %2231

2214:                                             ; preds = %2209
  %2215 = load i32, ptr %56, align 4, !tbaa !5
  %2216 = call ptr @__errno_location() #12
  store i32 %2215, ptr %2216, align 4, !tbaa !5
  %2217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2218 = load i32, ptr @test_count, align 4, !tbaa !5
  %2219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2220 = load i32, ptr %2219, align 4, !tbaa !5
  %2221 = call ptr @s2n_strerror(i32 noundef %2220, ptr noundef @.str.4)
  %2222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2223 = load i32, ptr %2222, align 4, !tbaa !5
  %2224 = call ptr @s2n_strerror_debug(i32 noundef %2223, ptr noundef @.str.4)
  %2225 = call ptr @__errno_location() #12
  %2226 = load i32, ptr %2225, align 4, !tbaa !5
  %2227 = call ptr @strerror(i32 noundef %2226) #11
  %2228 = call ptr @__errno_location() #12
  %2229 = load i32, ptr %2228, align 4, !tbaa !5
  %2230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2217, ptr noundef @.str.2, i32 noundef %2218, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 192, ptr noundef %2221, ptr noundef %2224, ptr noundef %2227, i32 noundef %2229) #11
  br label %2248

2231:                                             ; preds = %2209, %2202
  %2232 = load i32, ptr %56, align 4, !tbaa !5
  %2233 = call ptr @__errno_location() #12
  store i32 %2232, ptr %2233, align 4, !tbaa !5
  %2234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2235 = load i32, ptr @test_count, align 4, !tbaa !5
  %2236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2237 = load i32, ptr %2236, align 4, !tbaa !5
  %2238 = call ptr @s2n_strerror(i32 noundef %2237, ptr noundef @.str.4)
  %2239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2240 = load i32, ptr %2239, align 4, !tbaa !5
  %2241 = call ptr @s2n_strerror_debug(i32 noundef %2240, ptr noundef @.str.4)
  %2242 = call ptr @__errno_location() #12
  %2243 = load i32, ptr %2242, align 4, !tbaa !5
  %2244 = call ptr @strerror(i32 noundef %2243) #11
  %2245 = call ptr @__errno_location() #12
  %2246 = load i32, ptr %2245, align 4, !tbaa !5
  %2247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2234, ptr noundef @.str.5, i32 noundef %2235, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 192, ptr noundef %2238, ptr noundef %2241, ptr noundef %2244, i32 noundef %2246) #11
  br label %2248

2248:                                             ; preds = %2231, %2214
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %2249

2249:                                             ; preds = %2248
  br label %2250

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

2251:                                             ; No predecessors!
  br label %2252

2252:                                             ; preds = %2251
  br label %2253

2253:                                             ; preds = %2252, %2195
  br label %2254

2254:                                             ; preds = %2253
  br label %2255

2255:                                             ; preds = %2254
  br label %2256

2256:                                             ; preds = %2255
  %2257 = load i32, ptr @test_count, align 4, !tbaa !5
  %2258 = add nsw i32 %2257, 1
  store i32 %2258, ptr @test_count, align 4, !tbaa !5
  %2259 = load ptr, ptr %53, align 8, !tbaa !9
  %2260 = load ptr, ptr %48, align 8, !tbaa !9
  %2261 = call i32 @s2n_connection_set_config(ptr noundef %2259, ptr noundef %2260)
  %2262 = icmp eq i32 %2261, -1
  br i1 %2262, label %2263, label %2316

2263:                                             ; preds = %2256
  br label %2264

2264:                                             ; preds = %2263
  br label %2265

2265:                                             ; preds = %2264
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #11
  %2266 = call ptr @__errno_location() #12
  %2267 = load i32, ptr %2266, align 4, !tbaa !5
  store i32 %2267, ptr %57, align 4, !tbaa !5
  %2268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2269 = call i32 @s2n_print_stacktrace(ptr noundef %2268)
  %2270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2271 = trunc i8 %2270 to i1
  br i1 %2271, label %2272, label %2294

2272:                                             ; preds = %2265
  %2273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2274 = call i32 @fileno(ptr noundef %2273) #11
  %2275 = call i32 @isatty(i32 noundef %2274) #11
  %2276 = icmp ne i32 %2275, 0
  br i1 %2276, label %2277, label %2294

2277:                                             ; preds = %2272
  %2278 = load i32, ptr %57, align 4, !tbaa !5
  %2279 = call ptr @__errno_location() #12
  store i32 %2278, ptr %2279, align 4, !tbaa !5
  %2280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2281 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2283, ptr noundef @.str.4)
  %2285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2286 = load i32, ptr %2285, align 4, !tbaa !5
  %2287 = call ptr @s2n_strerror_debug(i32 noundef %2286, ptr noundef @.str.4)
  %2288 = call ptr @__errno_location() #12
  %2289 = load i32, ptr %2288, align 4, !tbaa !5
  %2290 = call ptr @strerror(i32 noundef %2289) #11
  %2291 = call ptr @__errno_location() #12
  %2292 = load i32, ptr %2291, align 4, !tbaa !5
  %2293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2280, ptr noundef @.str.2, i32 noundef %2281, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 194, ptr noundef %2284, ptr noundef %2287, ptr noundef %2290, i32 noundef %2292) #11
  br label %2311

2294:                                             ; preds = %2272, %2265
  %2295 = load i32, ptr %57, align 4, !tbaa !5
  %2296 = call ptr @__errno_location() #12
  store i32 %2295, ptr %2296, align 4, !tbaa !5
  %2297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2298 = load i32, ptr @test_count, align 4, !tbaa !5
  %2299 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2300 = load i32, ptr %2299, align 4, !tbaa !5
  %2301 = call ptr @s2n_strerror(i32 noundef %2300, ptr noundef @.str.4)
  %2302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2303 = load i32, ptr %2302, align 4, !tbaa !5
  %2304 = call ptr @s2n_strerror_debug(i32 noundef %2303, ptr noundef @.str.4)
  %2305 = call ptr @__errno_location() #12
  %2306 = load i32, ptr %2305, align 4, !tbaa !5
  %2307 = call ptr @strerror(i32 noundef %2306) #11
  %2308 = call ptr @__errno_location() #12
  %2309 = load i32, ptr %2308, align 4, !tbaa !5
  %2310 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2297, ptr noundef @.str.5, i32 noundef %2298, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 194, ptr noundef %2301, ptr noundef %2304, ptr noundef %2307, i32 noundef %2309) #11
  br label %2311

2311:                                             ; preds = %2294, %2277
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %2312

2312:                                             ; preds = %2311
  br label %2313

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

2314:                                             ; No predecessors!
  br label %2315

2315:                                             ; preds = %2314
  br label %2316

2316:                                             ; preds = %2315, %2256
  br label %2317

2317:                                             ; preds = %2316
  br label %2318

2318:                                             ; preds = %2317
  br label %2319

2319:                                             ; preds = %2318
  %2320 = load i32, ptr @test_count, align 4, !tbaa !5
  %2321 = add nsw i32 %2320, 1
  store i32 %2321, ptr @test_count, align 4, !tbaa !5
  %2322 = load ptr, ptr %55, align 8, !tbaa !9
  %2323 = load ptr, ptr %48, align 8, !tbaa !9
  %2324 = call i32 @s2n_connection_set_config(ptr noundef %2322, ptr noundef %2323)
  %2325 = icmp eq i32 %2324, -1
  br i1 %2325, label %2326, label %2379

2326:                                             ; preds = %2319
  br label %2327

2327:                                             ; preds = %2326
  br label %2328

2328:                                             ; preds = %2327
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %2329 = call ptr @__errno_location() #12
  %2330 = load i32, ptr %2329, align 4, !tbaa !5
  store i32 %2330, ptr %58, align 4, !tbaa !5
  %2331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2332 = call i32 @s2n_print_stacktrace(ptr noundef %2331)
  %2333 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2334 = trunc i8 %2333 to i1
  br i1 %2334, label %2335, label %2357

2335:                                             ; preds = %2328
  %2336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2337 = call i32 @fileno(ptr noundef %2336) #11
  %2338 = call i32 @isatty(i32 noundef %2337) #11
  %2339 = icmp ne i32 %2338, 0
  br i1 %2339, label %2340, label %2357

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

2357:                                             ; preds = %2335, %2328
  %2358 = load i32, ptr %58, align 4, !tbaa !5
  %2359 = call ptr @__errno_location() #12
  store i32 %2358, ptr %2359, align 4, !tbaa !5
  %2360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2361 = load i32, ptr @test_count, align 4, !tbaa !5
  %2362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2363 = load i32, ptr %2362, align 4, !tbaa !5
  %2364 = call ptr @s2n_strerror(i32 noundef %2363, ptr noundef @.str.4)
  %2365 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2366 = load i32, ptr %2365, align 4, !tbaa !5
  %2367 = call ptr @s2n_strerror_debug(i32 noundef %2366, ptr noundef @.str.4)
  %2368 = call ptr @__errno_location() #12
  %2369 = load i32, ptr %2368, align 4, !tbaa !5
  %2370 = call ptr @strerror(i32 noundef %2369) #11
  %2371 = call ptr @__errno_location() #12
  %2372 = load i32, ptr %2371, align 4, !tbaa !5
  %2373 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2360, ptr noundef @.str.5, i32 noundef %2361, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 195, ptr noundef %2364, ptr noundef %2367, ptr noundef %2370, i32 noundef %2372) #11
  br label %2374

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

2375:                                             ; preds = %2374
  br label %2376

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

2377:                                             ; No predecessors!
  br label %2378

2378:                                             ; preds = %2377
  br label %2379

2379:                                             ; preds = %2378, %2319
  br label %2380

2380:                                             ; preds = %2379
  br label %2381

2381:                                             ; preds = %2380
  br label %2382

2382:                                             ; preds = %2381
  %2383 = load i32, ptr @test_count, align 4, !tbaa !5
  %2384 = add nsw i32 %2383, 1
  store i32 %2384, ptr @test_count, align 4, !tbaa !5
  %2385 = load ptr, ptr %55, align 8, !tbaa !9
  %2386 = call i32 @s2n_connection_set_blinding(ptr noundef %2385, i32 noundef 1)
  %2387 = icmp eq i32 %2386, -1
  br i1 %2387, label %2388, label %2441

2388:                                             ; preds = %2382
  br label %2389

2389:                                             ; preds = %2388
  br label %2390

2390:                                             ; preds = %2389
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #11
  %2391 = call ptr @__errno_location() #12
  %2392 = load i32, ptr %2391, align 4, !tbaa !5
  store i32 %2392, ptr %59, align 4, !tbaa !5
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2394 = call i32 @s2n_print_stacktrace(ptr noundef %2393)
  %2395 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2396 = trunc i8 %2395 to i1
  br i1 %2396, label %2397, label %2419

2397:                                             ; preds = %2390
  %2398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2399 = call i32 @fileno(ptr noundef %2398) #11
  %2400 = call i32 @isatty(i32 noundef %2399) #11
  %2401 = icmp ne i32 %2400, 0
  br i1 %2401, label %2402, label %2419

2402:                                             ; preds = %2397
  %2403 = load i32, ptr %59, align 4, !tbaa !5
  %2404 = call ptr @__errno_location() #12
  store i32 %2403, ptr %2404, align 4, !tbaa !5
  %2405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2406 = load i32, ptr @test_count, align 4, !tbaa !5
  %2407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2408 = load i32, ptr %2407, align 4, !tbaa !5
  %2409 = call ptr @s2n_strerror(i32 noundef %2408, ptr noundef @.str.4)
  %2410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2411 = load i32, ptr %2410, align 4, !tbaa !5
  %2412 = call ptr @s2n_strerror_debug(i32 noundef %2411, ptr noundef @.str.4)
  %2413 = call ptr @__errno_location() #12
  %2414 = load i32, ptr %2413, align 4, !tbaa !5
  %2415 = call ptr @strerror(i32 noundef %2414) #11
  %2416 = call ptr @__errno_location() #12
  %2417 = load i32, ptr %2416, align 4, !tbaa !5
  %2418 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2405, ptr noundef @.str.2, i32 noundef %2406, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 197, ptr noundef %2409, ptr noundef %2412, ptr noundef %2415, i32 noundef %2417) #11
  br label %2436

2419:                                             ; preds = %2397, %2390
  %2420 = load i32, ptr %59, align 4, !tbaa !5
  %2421 = call ptr @__errno_location() #12
  store i32 %2420, ptr %2421, align 4, !tbaa !5
  %2422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2423 = load i32, ptr @test_count, align 4, !tbaa !5
  %2424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2425 = load i32, ptr %2424, align 4, !tbaa !5
  %2426 = call ptr @s2n_strerror(i32 noundef %2425, ptr noundef @.str.4)
  %2427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2428 = load i32, ptr %2427, align 4, !tbaa !5
  %2429 = call ptr @s2n_strerror_debug(i32 noundef %2428, ptr noundef @.str.4)
  %2430 = call ptr @__errno_location() #12
  %2431 = load i32, ptr %2430, align 4, !tbaa !5
  %2432 = call ptr @strerror(i32 noundef %2431) #11
  %2433 = call ptr @__errno_location() #12
  %2434 = load i32, ptr %2433, align 4, !tbaa !5
  %2435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2422, ptr noundef @.str.5, i32 noundef %2423, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 197, ptr noundef %2426, ptr noundef %2429, ptr noundef %2432, i32 noundef %2434) #11
  br label %2436

2436:                                             ; preds = %2419, %2402
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %2437

2437:                                             ; preds = %2436
  br label %2438

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

2439:                                             ; No predecessors!
  br label %2440

2440:                                             ; preds = %2439
  br label %2441

2441:                                             ; preds = %2440, %2382
  br label %2442

2442:                                             ; preds = %2441
  br label %2443

2443:                                             ; preds = %2442
  call void @llvm.lifetime.start.p0(i64 80, ptr %60) #11
  call void @llvm.memset.p0.i64(ptr align 8 %60, i8 0, i64 80, i1 false)
  br label %2444

2444:                                             ; preds = %2443
  %2445 = load i32, ptr @test_count, align 4, !tbaa !5
  %2446 = add nsw i32 %2445, 1
  store i32 %2446, ptr @test_count, align 4, !tbaa !5
  %2447 = call i32 @s2n_io_stuffer_pair_init(ptr noundef %60)
  %2448 = getelementptr inbounds %struct.s2n_result, ptr %61, i32 0, i32 0
  store i32 %2447, ptr %2448, align 4
  %2449 = getelementptr inbounds %struct.s2n_result, ptr %61, i32 0, i32 0
  %2450 = load i32, ptr %2449, align 4
  %2451 = call zeroext i1 @s2n_result_is_ok(i32 %2450)
  br i1 %2451, label %2505, label %2452

2452:                                             ; preds = %2444
  br label %2453

2453:                                             ; preds = %2452
  br label %2454

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

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

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

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

2500:                                             ; preds = %2483, %2466
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %2501

2501:                                             ; preds = %2500
  br label %2502

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

2503:                                             ; No predecessors!
  br label %2504

2504:                                             ; preds = %2503
  br label %2505

2505:                                             ; preds = %2504, %2444
  br label %2506

2506:                                             ; preds = %2505
  br label %2507

2507:                                             ; preds = %2506
  br label %2508

2508:                                             ; preds = %2507
  %2509 = load i32, ptr @test_count, align 4, !tbaa !5
  %2510 = add nsw i32 %2509, 1
  store i32 %2510, ptr @test_count, align 4, !tbaa !5
  %2511 = load ptr, ptr %53, align 8, !tbaa !9
  %2512 = load ptr, ptr %55, align 8, !tbaa !9
  %2513 = call i32 @s2n_connections_set_io_stuffer_pair(ptr noundef %2511, ptr noundef %2512, ptr noundef %60)
  %2514 = getelementptr inbounds %struct.s2n_result, ptr %63, i32 0, i32 0
  store i32 %2513, ptr %2514, align 4
  %2515 = getelementptr inbounds %struct.s2n_result, ptr %63, i32 0, i32 0
  %2516 = load i32, ptr %2515, align 4
  %2517 = call zeroext i1 @s2n_result_is_ok(i32 %2516)
  br i1 %2517, label %2571, label %2518

2518:                                             ; preds = %2508
  br label %2519

2519:                                             ; preds = %2518
  br label %2520

2520:                                             ; preds = %2519
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  %2521 = call ptr @__errno_location() #12
  %2522 = load i32, ptr %2521, align 4, !tbaa !5
  store i32 %2522, ptr %64, align 4, !tbaa !5
  %2523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2524 = call i32 @s2n_print_stacktrace(ptr noundef %2523)
  %2525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2526 = trunc i8 %2525 to i1
  br i1 %2526, label %2527, label %2549

2527:                                             ; preds = %2520
  %2528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2529 = call i32 @fileno(ptr noundef %2528) #11
  %2530 = call i32 @isatty(i32 noundef %2529) #11
  %2531 = icmp ne i32 %2530, 0
  br i1 %2531, label %2532, label %2549

2532:                                             ; preds = %2527
  %2533 = load i32, ptr %64, align 4, !tbaa !5
  %2534 = call ptr @__errno_location() #12
  store i32 %2533, ptr %2534, align 4, !tbaa !5
  %2535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2536 = load i32, ptr @test_count, align 4, !tbaa !5
  %2537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2538 = load i32, ptr %2537, align 4, !tbaa !5
  %2539 = call ptr @s2n_strerror(i32 noundef %2538, ptr noundef @.str.4)
  %2540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2541 = load i32, ptr %2540, align 4, !tbaa !5
  %2542 = call ptr @s2n_strerror_debug(i32 noundef %2541, ptr noundef @.str.4)
  %2543 = call ptr @__errno_location() #12
  %2544 = load i32, ptr %2543, align 4, !tbaa !5
  %2545 = call ptr @strerror(i32 noundef %2544) #11
  %2546 = call ptr @__errno_location() #12
  %2547 = load i32, ptr %2546, align 4, !tbaa !5
  %2548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2535, ptr noundef @.str.2, i32 noundef %2536, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 202, ptr noundef %2539, ptr noundef %2542, ptr noundef %2545, i32 noundef %2547) #11
  br label %2566

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

2566:                                             ; preds = %2549, %2532
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %2567

2567:                                             ; preds = %2566
  br label %2568

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

2569:                                             ; No predecessors!
  br label %2570

2570:                                             ; preds = %2569
  br label %2571

2571:                                             ; preds = %2570, %2508
  br label %2572

2572:                                             ; preds = %2571
  br label %2573

2573:                                             ; preds = %2572
  br label %2574

2574:                                             ; preds = %2573
  %2575 = load i32, ptr @test_count, align 4, !tbaa !5
  %2576 = add nsw i32 %2575, 1
  store i32 %2576, ptr @test_count, align 4, !tbaa !5
  %2577 = load ptr, ptr %55, align 8, !tbaa !9
  %2578 = load ptr, ptr %53, align 8, !tbaa !9
  %2579 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %2577, ptr noundef %2578)
  %2580 = icmp eq i32 %2579, -1
  br i1 %2580, label %2581, label %2634

2581:                                             ; preds = %2574
  br label %2582

2582:                                             ; preds = %2581
  br label %2583

2583:                                             ; preds = %2582
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #11
  %2584 = call ptr @__errno_location() #12
  %2585 = load i32, ptr %2584, align 4, !tbaa !5
  store i32 %2585, ptr %65, align 4, !tbaa !5
  %2586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2587 = call i32 @s2n_print_stacktrace(ptr noundef %2586)
  %2588 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2589 = trunc i8 %2588 to i1
  br i1 %2589, label %2590, label %2612

2590:                                             ; preds = %2583
  %2591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2592 = call i32 @fileno(ptr noundef %2591) #11
  %2593 = call i32 @isatty(i32 noundef %2592) #11
  %2594 = icmp ne i32 %2593, 0
  br i1 %2594, label %2595, label %2612

2595:                                             ; preds = %2590
  %2596 = load i32, ptr %65, align 4, !tbaa !5
  %2597 = call ptr @__errno_location() #12
  store i32 %2596, ptr %2597, align 4, !tbaa !5
  %2598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2599 = load i32, ptr @test_count, align 4, !tbaa !5
  %2600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2601 = load i32, ptr %2600, align 4, !tbaa !5
  %2602 = call ptr @s2n_strerror(i32 noundef %2601, ptr noundef @.str.4)
  %2603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2604 = load i32, ptr %2603, align 4, !tbaa !5
  %2605 = call ptr @s2n_strerror_debug(i32 noundef %2604, ptr noundef @.str.4)
  %2606 = call ptr @__errno_location() #12
  %2607 = load i32, ptr %2606, align 4, !tbaa !5
  %2608 = call ptr @strerror(i32 noundef %2607) #11
  %2609 = call ptr @__errno_location() #12
  %2610 = load i32, ptr %2609, align 4, !tbaa !5
  %2611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2598, ptr noundef @.str.2, i32 noundef %2599, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 204, ptr noundef %2602, ptr noundef %2605, ptr noundef %2608, i32 noundef %2610) #11
  br label %2629

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

2629:                                             ; preds = %2612, %2595
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %2630

2630:                                             ; preds = %2629
  br label %2631

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

2632:                                             ; No predecessors!
  br label %2633

2633:                                             ; preds = %2632
  br label %2634

2634:                                             ; preds = %2633, %2574
  br label %2635

2635:                                             ; preds = %2634
  br label %2636

2636:                                             ; preds = %2635
  br label %2637

2637:                                             ; preds = %2636
  %2638 = load i32, ptr @test_count, align 4, !tbaa !5
  %2639 = add nsw i32 %2638, 1
  store i32 %2639, ptr @test_count, align 4, !tbaa !5
  %2640 = load ptr, ptr %55, align 8, !tbaa !9
  %2641 = getelementptr inbounds %struct.s2n_connection, ptr %2640, i32 0, i32 23
  %2642 = load i8, ptr %2641, align 4, !tbaa !55
  %2643 = zext i8 %2642 to i32
  %2644 = load i64, ptr %47, align 8, !tbaa !15
  %2645 = getelementptr inbounds [2 x %struct.anon.0], ptr %46, i64 0, i64 %2644
  %2646 = getelementptr inbounds %struct.anon.0, ptr %2645, i32 0, i32 1
  %2647 = load i8, ptr %2646, align 8, !tbaa !52
  %2648 = zext i8 %2647 to i32
  %2649 = icmp eq i32 %2643, %2648
  br i1 %2649, label %2703, label %2650

2650:                                             ; preds = %2637
  br label %2651

2651:                                             ; preds = %2650
  br label %2652

2652:                                             ; preds = %2651
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  %2653 = call ptr @__errno_location() #12
  %2654 = load i32, ptr %2653, align 4, !tbaa !5
  store i32 %2654, ptr %66, align 4, !tbaa !5
  %2655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2656 = call i32 @s2n_print_stacktrace(ptr noundef %2655)
  %2657 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2658 = trunc i8 %2657 to i1
  br i1 %2658, label %2659, label %2681

2659:                                             ; preds = %2652
  %2660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2661 = call i32 @fileno(ptr noundef %2660) #11
  %2662 = call i32 @isatty(i32 noundef %2661) #11
  %2663 = icmp ne i32 %2662, 0
  br i1 %2663, label %2664, label %2681

2664:                                             ; preds = %2659
  %2665 = load i32, ptr %66, align 4, !tbaa !5
  %2666 = call ptr @__errno_location() #12
  store i32 %2665, ptr %2666, align 4, !tbaa !5
  %2667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2668 = load i32, ptr @test_count, align 4, !tbaa !5
  %2669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2670 = load i32, ptr %2669, align 4, !tbaa !5
  %2671 = call ptr @s2n_strerror(i32 noundef %2670, ptr noundef @.str.4)
  %2672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2673 = load i32, ptr %2672, align 4, !tbaa !5
  %2674 = call ptr @s2n_strerror_debug(i32 noundef %2673, ptr noundef @.str.4)
  %2675 = call ptr @__errno_location() #12
  %2676 = load i32, ptr %2675, align 4, !tbaa !5
  %2677 = call ptr @strerror(i32 noundef %2676) #11
  %2678 = call ptr @__errno_location() #12
  %2679 = load i32, ptr %2678, align 4, !tbaa !5
  %2680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2667, ptr noundef @.str.2, i32 noundef %2668, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 205, ptr noundef %2671, ptr noundef %2674, ptr noundef %2677, i32 noundef %2679) #11
  br label %2698

2681:                                             ; preds = %2659, %2652
  %2682 = load i32, ptr %66, align 4, !tbaa !5
  %2683 = call ptr @__errno_location() #12
  store i32 %2682, ptr %2683, align 4, !tbaa !5
  %2684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2685 = load i32, ptr @test_count, align 4, !tbaa !5
  %2686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2687 = load i32, ptr %2686, align 4, !tbaa !5
  %2688 = call ptr @s2n_strerror(i32 noundef %2687, ptr noundef @.str.4)
  %2689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2690 = load i32, ptr %2689, align 4, !tbaa !5
  %2691 = call ptr @s2n_strerror_debug(i32 noundef %2690, ptr noundef @.str.4)
  %2692 = call ptr @__errno_location() #12
  %2693 = load i32, ptr %2692, align 4, !tbaa !5
  %2694 = call ptr @strerror(i32 noundef %2693) #11
  %2695 = call ptr @__errno_location() #12
  %2696 = load i32, ptr %2695, align 4, !tbaa !5
  %2697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2684, ptr noundef @.str.5, i32 noundef %2685, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 205, ptr noundef %2688, ptr noundef %2691, ptr noundef %2694, i32 noundef %2696) #11
  br label %2698

2698:                                             ; preds = %2681, %2664
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %2699

2699:                                             ; preds = %2698
  br label %2700

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

2701:                                             ; No predecessors!
  br label %2702

2702:                                             ; preds = %2701
  br label %2703

2703:                                             ; preds = %2702, %2637
  br label %2704

2704:                                             ; preds = %2703
  br label %2705

2705:                                             ; preds = %2704
  call void @llvm.lifetime.start.p0(i64 12, ptr %67) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %67, ptr align 1 @__const.main.test_data, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  store i32 0, ptr %68, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #11
  %2706 = load ptr, ptr %53, align 8, !tbaa !9
  %2707 = getelementptr inbounds [12 x i8], ptr %67, i64 0, i64 0
  %2708 = call i64 @s2n_send(ptr noundef %2706, ptr noundef %2707, i64 noundef 12, ptr noundef %68)
  store i64 %2708, ptr %69, align 8, !tbaa !15
  br label %2709

2709:                                             ; preds = %2705
  %2710 = load i32, ptr @test_count, align 4, !tbaa !5
  %2711 = add nsw i32 %2710, 1
  store i32 %2711, ptr @test_count, align 4, !tbaa !5
  %2712 = load i64, ptr %69, align 8, !tbaa !15
  %2713 = icmp eq i64 %2712, 12
  br i1 %2713, label %2767, label %2714

2714:                                             ; preds = %2709
  br label %2715

2715:                                             ; preds = %2714
  br label %2716

2716:                                             ; preds = %2715
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  %2717 = call ptr @__errno_location() #12
  %2718 = load i32, ptr %2717, align 4, !tbaa !5
  store i32 %2718, ptr %70, align 4, !tbaa !5
  %2719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2720 = call i32 @s2n_print_stacktrace(ptr noundef %2719)
  %2721 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2722 = trunc i8 %2721 to i1
  br i1 %2722, label %2723, label %2745

2723:                                             ; preds = %2716
  %2724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2725 = call i32 @fileno(ptr noundef %2724) #11
  %2726 = call i32 @isatty(i32 noundef %2725) #11
  %2727 = icmp ne i32 %2726, 0
  br i1 %2727, label %2728, label %2745

2728:                                             ; preds = %2723
  %2729 = load i32, ptr %70, align 4, !tbaa !5
  %2730 = call ptr @__errno_location() #12
  store i32 %2729, ptr %2730, align 4, !tbaa !5
  %2731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2732 = load i32, ptr @test_count, align 4, !tbaa !5
  %2733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2734 = load i32, ptr %2733, align 4, !tbaa !5
  %2735 = call ptr @s2n_strerror(i32 noundef %2734, ptr noundef @.str.4)
  %2736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2737 = load i32, ptr %2736, align 4, !tbaa !5
  %2738 = call ptr @s2n_strerror_debug(i32 noundef %2737, ptr noundef @.str.4)
  %2739 = call ptr @__errno_location() #12
  %2740 = load i32, ptr %2739, align 4, !tbaa !5
  %2741 = call ptr @strerror(i32 noundef %2740) #11
  %2742 = call ptr @__errno_location() #12
  %2743 = load i32, ptr %2742, align 4, !tbaa !5
  %2744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2731, ptr noundef @.str.2, i32 noundef %2732, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 211, ptr noundef %2735, ptr noundef %2738, ptr noundef %2741, i32 noundef %2743) #11
  br label %2762

2745:                                             ; preds = %2723, %2716
  %2746 = load i32, ptr %70, align 4, !tbaa !5
  %2747 = call ptr @__errno_location() #12
  store i32 %2746, ptr %2747, align 4, !tbaa !5
  %2748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2749 = load i32, ptr @test_count, align 4, !tbaa !5
  %2750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2751 = load i32, ptr %2750, align 4, !tbaa !5
  %2752 = call ptr @s2n_strerror(i32 noundef %2751, ptr noundef @.str.4)
  %2753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2754 = load i32, ptr %2753, align 4, !tbaa !5
  %2755 = call ptr @s2n_strerror_debug(i32 noundef %2754, ptr noundef @.str.4)
  %2756 = call ptr @__errno_location() #12
  %2757 = load i32, ptr %2756, align 4, !tbaa !5
  %2758 = call ptr @strerror(i32 noundef %2757) #11
  %2759 = call ptr @__errno_location() #12
  %2760 = load i32, ptr %2759, align 4, !tbaa !5
  %2761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2748, ptr noundef @.str.5, i32 noundef %2749, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 211, ptr noundef %2752, ptr noundef %2755, ptr noundef %2758, i32 noundef %2760) #11
  br label %2762

2762:                                             ; preds = %2745, %2728
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %2763

2763:                                             ; preds = %2762
  br label %2764

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

2765:                                             ; No predecessors!
  br label %2766

2766:                                             ; preds = %2765
  br label %2767

2767:                                             ; preds = %2766, %2709
  br label %2768

2768:                                             ; preds = %2767
  br label %2769

2769:                                             ; preds = %2768
  call void @llvm.lifetime.start.p0(i64 40, ptr %71) #11
  %2770 = getelementptr inbounds %struct.s2n_test_io_stuffer_pair, ptr %60, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %71, ptr align 8 %2770, i64 40, i1 false), !tbaa.struct !56
  br label %2771

2771:                                             ; preds = %2769
  %2772 = load i32, ptr @test_count, align 4, !tbaa !5
  %2773 = add nsw i32 %2772, 1
  store i32 %2773, ptr @test_count, align 4, !tbaa !5
  %2774 = call i32 @s2n_stuffer_skip_read(ptr noundef %71, i32 noundef 5)
  %2775 = icmp eq i32 %2774, -1
  br i1 %2775, label %2776, label %2829

2776:                                             ; preds = %2771
  br label %2777

2777:                                             ; preds = %2776
  br label %2778

2778:                                             ; preds = %2777
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #11
  %2779 = call ptr @__errno_location() #12
  %2780 = load i32, ptr %2779, align 4, !tbaa !5
  store i32 %2780, ptr %72, align 4, !tbaa !5
  %2781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2782 = call i32 @s2n_print_stacktrace(ptr noundef %2781)
  %2783 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2784 = trunc i8 %2783 to i1
  br i1 %2784, label %2785, label %2807

2785:                                             ; preds = %2778
  %2786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2787 = call i32 @fileno(ptr noundef %2786) #11
  %2788 = call i32 @isatty(i32 noundef %2787) #11
  %2789 = icmp ne i32 %2788, 0
  br i1 %2789, label %2790, label %2807

2790:                                             ; preds = %2785
  %2791 = load i32, ptr %72, align 4, !tbaa !5
  %2792 = call ptr @__errno_location() #12
  store i32 %2791, ptr %2792, align 4, !tbaa !5
  %2793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2794 = load i32, ptr @test_count, align 4, !tbaa !5
  %2795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2796 = load i32, ptr %2795, align 4, !tbaa !5
  %2797 = call ptr @s2n_strerror(i32 noundef %2796, ptr noundef @.str.4)
  %2798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2799 = load i32, ptr %2798, align 4, !tbaa !5
  %2800 = call ptr @s2n_strerror_debug(i32 noundef %2799, ptr noundef @.str.4)
  %2801 = call ptr @__errno_location() #12
  %2802 = load i32, ptr %2801, align 4, !tbaa !5
  %2803 = call ptr @strerror(i32 noundef %2802) #11
  %2804 = call ptr @__errno_location() #12
  %2805 = load i32, ptr %2804, align 4, !tbaa !5
  %2806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2793, ptr noundef @.str.2, i32 noundef %2794, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 216, ptr noundef %2797, ptr noundef %2800, ptr noundef %2803, i32 noundef %2805) #11
  br label %2824

2807:                                             ; preds = %2785, %2778
  %2808 = load i32, ptr %72, align 4, !tbaa !5
  %2809 = call ptr @__errno_location() #12
  store i32 %2808, ptr %2809, align 4, !tbaa !5
  %2810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2811 = load i32, ptr @test_count, align 4, !tbaa !5
  %2812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2813 = load i32, ptr %2812, align 4, !tbaa !5
  %2814 = call ptr @s2n_strerror(i32 noundef %2813, ptr noundef @.str.4)
  %2815 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2816 = load i32, ptr %2815, align 4, !tbaa !5
  %2817 = call ptr @s2n_strerror_debug(i32 noundef %2816, ptr noundef @.str.4)
  %2818 = call ptr @__errno_location() #12
  %2819 = load i32, ptr %2818, align 4, !tbaa !5
  %2820 = call ptr @strerror(i32 noundef %2819) #11
  %2821 = call ptr @__errno_location() #12
  %2822 = load i32, ptr %2821, align 4, !tbaa !5
  %2823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2810, ptr noundef @.str.5, i32 noundef %2811, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 216, ptr noundef %2814, ptr noundef %2817, ptr noundef %2820, i32 noundef %2822) #11
  br label %2824

2824:                                             ; preds = %2807, %2790
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %2825

2825:                                             ; preds = %2824
  br label %2826

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

2827:                                             ; No predecessors!
  br label %2828

2828:                                             ; preds = %2827
  br label %2829

2829:                                             ; preds = %2828, %2771
  br label %2830

2830:                                             ; preds = %2829
  br label %2831

2831:                                             ; preds = %2830
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #11
  %2832 = call ptr @s2n_stuffer_raw_read(ptr noundef %71, i32 noundef 1)
  store ptr %2832, ptr %73, align 8, !tbaa !9
  br label %2833

2833:                                             ; preds = %2831
  %2834 = load i32, ptr @test_count, align 4, !tbaa !5
  %2835 = add nsw i32 %2834, 1
  store i32 %2835, ptr @test_count, align 4, !tbaa !5
  %2836 = load ptr, ptr %73, align 8, !tbaa !9
  %2837 = icmp eq ptr %2836, null
  br i1 %2837, label %2838, label %2891

2838:                                             ; preds = %2833
  br label %2839

2839:                                             ; preds = %2838
  br label %2840

2840:                                             ; preds = %2839
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #11
  %2841 = call ptr @__errno_location() #12
  %2842 = load i32, ptr %2841, align 4, !tbaa !5
  store i32 %2842, ptr %74, align 4, !tbaa !5
  %2843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2844 = call i32 @s2n_print_stacktrace(ptr noundef %2843)
  %2845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2846 = trunc i8 %2845 to i1
  br i1 %2846, label %2847, label %2869

2847:                                             ; preds = %2840
  %2848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2849 = call i32 @fileno(ptr noundef %2848) #11
  %2850 = call i32 @isatty(i32 noundef %2849) #11
  %2851 = icmp ne i32 %2850, 0
  br i1 %2851, label %2852, label %2869

2852:                                             ; preds = %2847
  %2853 = load i32, ptr %74, align 4, !tbaa !5
  %2854 = call ptr @__errno_location() #12
  store i32 %2853, ptr %2854, align 4, !tbaa !5
  %2855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2856 = load i32, ptr @test_count, align 4, !tbaa !5
  %2857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2858 = load i32, ptr %2857, align 4, !tbaa !5
  %2859 = call ptr @s2n_strerror(i32 noundef %2858, ptr noundef @.str.4)
  %2860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2861 = load i32, ptr %2860, align 4, !tbaa !5
  %2862 = call ptr @s2n_strerror_debug(i32 noundef %2861, ptr noundef @.str.4)
  %2863 = call ptr @__errno_location() #12
  %2864 = load i32, ptr %2863, align 4, !tbaa !5
  %2865 = call ptr @strerror(i32 noundef %2864) #11
  %2866 = call ptr @__errno_location() #12
  %2867 = load i32, ptr %2866, align 4, !tbaa !5
  %2868 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2855, ptr noundef @.str.2, i32 noundef %2856, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 218, ptr noundef %2859, ptr noundef %2862, ptr noundef %2865, i32 noundef %2867) #11
  br label %2886

2869:                                             ; preds = %2847, %2840
  %2870 = load i32, ptr %74, align 4, !tbaa !5
  %2871 = call ptr @__errno_location() #12
  store i32 %2870, ptr %2871, align 4, !tbaa !5
  %2872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2873 = load i32, ptr @test_count, align 4, !tbaa !5
  %2874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2875 = load i32, ptr %2874, align 4, !tbaa !5
  %2876 = call ptr @s2n_strerror(i32 noundef %2875, ptr noundef @.str.4)
  %2877 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2878 = load i32, ptr %2877, align 4, !tbaa !5
  %2879 = call ptr @s2n_strerror_debug(i32 noundef %2878, ptr noundef @.str.4)
  %2880 = call ptr @__errno_location() #12
  %2881 = load i32, ptr %2880, align 4, !tbaa !5
  %2882 = call ptr @strerror(i32 noundef %2881) #11
  %2883 = call ptr @__errno_location() #12
  %2884 = load i32, ptr %2883, align 4, !tbaa !5
  %2885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2872, ptr noundef @.str.5, i32 noundef %2873, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 218, ptr noundef %2876, ptr noundef %2879, ptr noundef %2882, i32 noundef %2884) #11
  br label %2886

2886:                                             ; preds = %2869, %2852
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %2887

2887:                                             ; preds = %2886
  br label %2888

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

2889:                                             ; No predecessors!
  br label %2890

2890:                                             ; preds = %2889
  br label %2891

2891:                                             ; preds = %2890, %2833
  br label %2892

2892:                                             ; preds = %2891
  br label %2893

2893:                                             ; preds = %2892
  %2894 = load ptr, ptr %73, align 8, !tbaa !9
  %2895 = load i8, ptr %2894, align 1, !tbaa !17
  %2896 = zext i8 %2895 to i32
  %2897 = add nsw i32 %2896, 1
  %2898 = trunc i32 %2897 to i8
  store i8 %2898, ptr %2894, align 1, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 12, ptr %75) #11
  call void @llvm.memset.p0.i64(ptr align 1 %75, i8 0, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #11
  %2899 = load ptr, ptr %55, align 8, !tbaa !9
  %2900 = getelementptr inbounds [12 x i8], ptr %75, i64 0, i64 0
  %2901 = call i64 @s2n_recv(ptr noundef %2899, ptr noundef %2900, i64 noundef 12, ptr noundef %68)
  store i64 %2901, ptr %76, align 8, !tbaa !15
  br label %2902

2902:                                             ; preds = %2893
  br label %2903

2903:                                             ; preds = %2902
  br label %2904

2904:                                             ; preds = %2903
  %2905 = load i32, ptr @test_count, align 4, !tbaa !5
  %2906 = add nsw i32 %2905, 1
  store i32 %2906, ptr @test_count, align 4, !tbaa !5
  %2907 = load i64, ptr %76, align 8, !tbaa !15
  %2908 = icmp eq i64 %2907, -1
  br i1 %2908, label %2962, label %2909

2909:                                             ; preds = %2904
  br label %2910

2910:                                             ; preds = %2909
  br label %2911

2911:                                             ; preds = %2910
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #11
  %2912 = call ptr @__errno_location() #12
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  store i32 %2913, ptr %77, align 4, !tbaa !5
  %2914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2915 = call i32 @s2n_print_stacktrace(ptr noundef %2914)
  %2916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2917 = trunc i8 %2916 to i1
  br i1 %2917, label %2918, label %2940

2918:                                             ; preds = %2911
  %2919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2920 = call i32 @fileno(ptr noundef %2919) #11
  %2921 = call i32 @isatty(i32 noundef %2920) #11
  %2922 = icmp ne i32 %2921, 0
  br i1 %2922, label %2923, label %2940

2923:                                             ; preds = %2918
  %2924 = load i32, ptr %77, align 4, !tbaa !5
  %2925 = call ptr @__errno_location() #12
  store i32 %2924, ptr %2925, align 4, !tbaa !5
  %2926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2927 = load i32, ptr @test_count, align 4, !tbaa !5
  %2928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2929 = load i32, ptr %2928, align 4, !tbaa !5
  %2930 = call ptr @s2n_strerror(i32 noundef %2929, ptr noundef @.str.4)
  %2931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2932 = load i32, ptr %2931, align 4, !tbaa !5
  %2933 = call ptr @s2n_strerror_debug(i32 noundef %2932, ptr noundef @.str.4)
  %2934 = call ptr @__errno_location() #12
  %2935 = load i32, ptr %2934, align 4, !tbaa !5
  %2936 = call ptr @strerror(i32 noundef %2935) #11
  %2937 = call ptr @__errno_location() #12
  %2938 = load i32, ptr %2937, align 4, !tbaa !5
  %2939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2926, ptr noundef @.str.2, i32 noundef %2927, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 224, ptr noundef %2930, ptr noundef %2933, ptr noundef %2936, i32 noundef %2938) #11
  br label %2957

2940:                                             ; preds = %2918, %2911
  %2941 = load i32, ptr %77, align 4, !tbaa !5
  %2942 = call ptr @__errno_location() #12
  store i32 %2941, ptr %2942, align 4, !tbaa !5
  %2943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2944 = load i32, ptr @test_count, align 4, !tbaa !5
  %2945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2946 = load i32, ptr %2945, align 4, !tbaa !5
  %2947 = call ptr @s2n_strerror(i32 noundef %2946, ptr noundef @.str.4)
  %2948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2949 = load i32, ptr %2948, align 4, !tbaa !5
  %2950 = call ptr @s2n_strerror_debug(i32 noundef %2949, ptr noundef @.str.4)
  %2951 = call ptr @__errno_location() #12
  %2952 = load i32, ptr %2951, align 4, !tbaa !5
  %2953 = call ptr @strerror(i32 noundef %2952) #11
  %2954 = call ptr @__errno_location() #12
  %2955 = load i32, ptr %2954, align 4, !tbaa !5
  %2956 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2943, ptr noundef @.str.5, i32 noundef %2944, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 224, ptr noundef %2947, ptr noundef %2950, ptr noundef %2953, i32 noundef %2955) #11
  br label %2957

2957:                                             ; preds = %2940, %2923
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  br label %2958

2958:                                             ; preds = %2957
  br label %2959

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

2960:                                             ; No predecessors!
  br label %2961

2961:                                             ; preds = %2960
  br label %2962

2962:                                             ; preds = %2961, %2904
  br label %2963

2963:                                             ; preds = %2962
  br label %2964

2964:                                             ; preds = %2963
  br label %2965

2965:                                             ; preds = %2964
  %2966 = load i32, ptr @test_count, align 4, !tbaa !5
  %2967 = add nsw i32 %2966, 1
  store i32 %2967, ptr @test_count, align 4, !tbaa !5
  %2968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2969 = load i32, ptr %2968, align 4, !tbaa !5
  %2970 = icmp eq i32 %2969, 335544321
  br i1 %2970, label %3024, label %2971

2971:                                             ; preds = %2965
  br label %2972

2972:                                             ; preds = %2971
  br label %2973

2973:                                             ; preds = %2972
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #11
  %2974 = call ptr @__errno_location() #12
  %2975 = load i32, ptr %2974, align 4, !tbaa !5
  store i32 %2975, ptr %78, align 4, !tbaa !5
  %2976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2977 = call i32 @s2n_print_stacktrace(ptr noundef %2976)
  %2978 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2979 = trunc i8 %2978 to i1
  br i1 %2979, label %2980, label %3002

2980:                                             ; preds = %2973
  %2981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2982 = call i32 @fileno(ptr noundef %2981) #11
  %2983 = call i32 @isatty(i32 noundef %2982) #11
  %2984 = icmp ne i32 %2983, 0
  br i1 %2984, label %2985, label %3002

2985:                                             ; preds = %2980
  %2986 = load i32, ptr %78, align 4, !tbaa !5
  %2987 = call ptr @__errno_location() #12
  store i32 %2986, ptr %2987, align 4, !tbaa !5
  %2988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2989 = load i32, ptr @test_count, align 4, !tbaa !5
  %2990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2991 = load i32, ptr %2990, align 4, !tbaa !5
  %2992 = call ptr @s2n_strerror(i32 noundef %2991, ptr noundef @.str.4)
  %2993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2994 = load i32, ptr %2993, align 4, !tbaa !5
  %2995 = call ptr @s2n_strerror_debug(i32 noundef %2994, ptr noundef @.str.4)
  %2996 = call ptr @__errno_location() #12
  %2997 = load i32, ptr %2996, align 4, !tbaa !5
  %2998 = call ptr @strerror(i32 noundef %2997) #11
  %2999 = call ptr @__errno_location() #12
  %3000 = load i32, ptr %2999, align 4, !tbaa !5
  %3001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2988, ptr noundef @.str.2, i32 noundef %2989, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 224, ptr noundef %2992, ptr noundef %2995, ptr noundef %2998, i32 noundef %3000) #11
  br label %3019

3002:                                             ; preds = %2980, %2973
  %3003 = load i32, ptr %78, align 4, !tbaa !5
  %3004 = call ptr @__errno_location() #12
  store i32 %3003, ptr %3004, align 4, !tbaa !5
  %3005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3006 = load i32, ptr @test_count, align 4, !tbaa !5
  %3007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3008 = load i32, ptr %3007, align 4, !tbaa !5
  %3009 = call ptr @s2n_strerror(i32 noundef %3008, ptr noundef @.str.4)
  %3010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3011 = load i32, ptr %3010, align 4, !tbaa !5
  %3012 = call ptr @s2n_strerror_debug(i32 noundef %3011, ptr noundef @.str.4)
  %3013 = call ptr @__errno_location() #12
  %3014 = load i32, ptr %3013, align 4, !tbaa !5
  %3015 = call ptr @strerror(i32 noundef %3014) #11
  %3016 = call ptr @__errno_location() #12
  %3017 = load i32, ptr %3016, align 4, !tbaa !5
  %3018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3005, ptr noundef @.str.5, i32 noundef %3006, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 224, ptr noundef %3009, ptr noundef %3012, ptr noundef %3015, i32 noundef %3017) #11
  br label %3019

3019:                                             ; preds = %3002, %2985
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  br label %3020

3020:                                             ; preds = %3019
  br label %3021

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

3022:                                             ; No predecessors!
  br label %3023

3023:                                             ; preds = %3022
  br label %3024

3024:                                             ; preds = %3023, %2965
  br label %3025

3025:                                             ; preds = %3024
  br label %3026

3026:                                             ; preds = %3025
  br label %3027

3027:                                             ; preds = %3026
  %3028 = load i32, ptr @test_count, align 4, !tbaa !5
  %3029 = add nsw i32 %3028, 1
  store i32 %3029, ptr @test_count, align 4, !tbaa !5
  %3030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3031 = load i32, ptr %3030, align 4, !tbaa !5
  %3032 = call ptr @s2n_strerror_debug(i32 noundef %3031, ptr noundef @.str.4)
  %3033 = icmp eq ptr %3032, null
  br i1 %3033, label %3034, label %3087

3034:                                             ; preds = %3027
  br label %3035

3035:                                             ; preds = %3034
  br label %3036

3036:                                             ; preds = %3035
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #11
  %3037 = call ptr @__errno_location() #12
  %3038 = load i32, ptr %3037, align 4, !tbaa !5
  store i32 %3038, ptr %79, align 4, !tbaa !5
  %3039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3040 = call i32 @s2n_print_stacktrace(ptr noundef %3039)
  %3041 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3042 = trunc i8 %3041 to i1
  br i1 %3042, label %3043, label %3065

3043:                                             ; preds = %3036
  %3044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3045 = call i32 @fileno(ptr noundef %3044) #11
  %3046 = call i32 @isatty(i32 noundef %3045) #11
  %3047 = icmp ne i32 %3046, 0
  br i1 %3047, label %3048, label %3065

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

3065:                                             ; preds = %3043, %3036
  %3066 = load i32, ptr %79, align 4, !tbaa !5
  %3067 = call ptr @__errno_location() #12
  store i32 %3066, ptr %3067, align 4, !tbaa !5
  %3068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3069 = load i32, ptr @test_count, align 4, !tbaa !5
  %3070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3071 = load i32, ptr %3070, align 4, !tbaa !5
  %3072 = call ptr @s2n_strerror(i32 noundef %3071, ptr noundef @.str.4)
  %3073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3074 = load i32, ptr %3073, align 4, !tbaa !5
  %3075 = call ptr @s2n_strerror_debug(i32 noundef %3074, ptr noundef @.str.4)
  %3076 = call ptr @__errno_location() #12
  %3077 = load i32, ptr %3076, align 4, !tbaa !5
  %3078 = call ptr @strerror(i32 noundef %3077) #11
  %3079 = call ptr @__errno_location() #12
  %3080 = load i32, ptr %3079, align 4, !tbaa !5
  %3081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3068, ptr noundef @.str.5, i32 noundef %3069, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 224, ptr noundef %3072, ptr noundef %3075, ptr noundef %3078, i32 noundef %3080) #11
  br label %3082

3082:                                             ; preds = %3065, %3048
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %3083

3083:                                             ; preds = %3082
  br label %3084

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

3085:                                             ; No predecessors!
  br label %3086

3086:                                             ; preds = %3085
  br label %3087

3087:                                             ; preds = %3086, %3027
  br label %3088

3088:                                             ; preds = %3087
  br label %3089

3089:                                             ; preds = %3088
  br label %3090

3090:                                             ; preds = %3089
  br label %3091

3091:                                             ; preds = %3090
  br label %3092

3092:                                             ; preds = %3091
  %3093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3093, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3094 = call ptr @__errno_location() #12
  store i32 0, ptr %3094, align 4, !tbaa !5
  br label %3095

3095:                                             ; preds = %3092
  br label %3096

3096:                                             ; preds = %3095
  br label %3097

3097:                                             ; preds = %3096
  br label %3098

3098:                                             ; preds = %3097
  br label %3099

3099:                                             ; preds = %3098
  %3100 = load i32, ptr @test_count, align 4, !tbaa !5
  %3101 = add nsw i32 %3100, 1
  store i32 %3101, ptr @test_count, align 4, !tbaa !5
  %3102 = load ptr, ptr %55, align 8, !tbaa !9
  %3103 = getelementptr inbounds %struct.s2n_connection, ptr %3102, i32 0, i32 40
  %3104 = getelementptr inbounds %struct.s2n_stuffer, ptr %3103, i32 0, i32 3
  %3105 = load i32, ptr %3104, align 8, !tbaa !57
  %3106 = icmp eq i32 %3105, 0
  br i1 %3106, label %3160, label %3107

3107:                                             ; preds = %3099
  br label %3108

3108:                                             ; preds = %3107
  br label %3109

3109:                                             ; preds = %3108
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #11
  %3110 = call ptr @__errno_location() #12
  %3111 = load i32, ptr %3110, align 4, !tbaa !5
  store i32 %3111, ptr %80, align 4, !tbaa !5
  %3112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3113 = call i32 @s2n_print_stacktrace(ptr noundef %3112)
  %3114 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3115 = trunc i8 %3114 to i1
  br i1 %3115, label %3116, label %3138

3116:                                             ; preds = %3109
  %3117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3118 = call i32 @fileno(ptr noundef %3117) #11
  %3119 = call i32 @isatty(i32 noundef %3118) #11
  %3120 = icmp ne i32 %3119, 0
  br i1 %3120, label %3121, label %3138

3121:                                             ; preds = %3116
  %3122 = load i32, ptr %80, align 4, !tbaa !5
  %3123 = call ptr @__errno_location() #12
  store i32 %3122, ptr %3123, align 4, !tbaa !5
  %3124 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3125 = load i32, ptr @test_count, align 4, !tbaa !5
  %3126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3127 = load i32, ptr %3126, align 4, !tbaa !5
  %3128 = call ptr @s2n_strerror(i32 noundef %3127, ptr noundef @.str.4)
  %3129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3130 = load i32, ptr %3129, align 4, !tbaa !5
  %3131 = call ptr @s2n_strerror_debug(i32 noundef %3130, ptr noundef @.str.4)
  %3132 = call ptr @__errno_location() #12
  %3133 = load i32, ptr %3132, align 4, !tbaa !5
  %3134 = call ptr @strerror(i32 noundef %3133) #11
  %3135 = call ptr @__errno_location() #12
  %3136 = load i32, ptr %3135, align 4, !tbaa !5
  %3137 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3124, ptr noundef @.str.2, i32 noundef %3125, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 227, ptr noundef %3128, ptr noundef %3131, ptr noundef %3134, i32 noundef %3136) #11
  br label %3155

3138:                                             ; preds = %3116, %3109
  %3139 = load i32, ptr %80, align 4, !tbaa !5
  %3140 = call ptr @__errno_location() #12
  store i32 %3139, ptr %3140, align 4, !tbaa !5
  %3141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3142 = load i32, ptr @test_count, align 4, !tbaa !5
  %3143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3144 = load i32, ptr %3143, align 4, !tbaa !5
  %3145 = call ptr @s2n_strerror(i32 noundef %3144, ptr noundef @.str.4)
  %3146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3147 = load i32, ptr %3146, align 4, !tbaa !5
  %3148 = call ptr @s2n_strerror_debug(i32 noundef %3147, ptr noundef @.str.4)
  %3149 = call ptr @__errno_location() #12
  %3150 = load i32, ptr %3149, align 4, !tbaa !5
  %3151 = call ptr @strerror(i32 noundef %3150) #11
  %3152 = call ptr @__errno_location() #12
  %3153 = load i32, ptr %3152, align 4, !tbaa !5
  %3154 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3141, ptr noundef @.str.5, i32 noundef %3142, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 227, ptr noundef %3145, ptr noundef %3148, ptr noundef %3151, i32 noundef %3153) #11
  br label %3155

3155:                                             ; preds = %3138, %3121
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %3156

3156:                                             ; preds = %3155
  br label %3157

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

3158:                                             ; No predecessors!
  br label %3159

3159:                                             ; preds = %3158
  br label %3160

3160:                                             ; preds = %3159, %3099
  br label %3161

3161:                                             ; preds = %3160
  br label %3162

3162:                                             ; preds = %3161
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr %75) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %71) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  call void @llvm.lifetime.end.p0(i64 12, ptr %67) #11
  %3163 = call i32 @s2n_io_stuffer_pair_free(ptr noundef %60)
  %3164 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  store i32 %3163, ptr %3164, align 4
  call void @llvm.lifetime.end.p0(i64 80, ptr %60) #11
  %3165 = call i32 @s2n_connection_ptr_free(ptr noundef %55)
  %3166 = getelementptr inbounds %struct.s2n_result, ptr %82, i32 0, i32 0
  store i32 %3165, ptr %3166, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #11
  %3167 = call i32 @s2n_connection_ptr_free(ptr noundef %53)
  %3168 = getelementptr inbounds %struct.s2n_result, ptr %83, i32 0, i32 0
  store i32 %3167, ptr %3168, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #11
  %3169 = call i32 @s2n_config_ptr_free(ptr noundef %48)
  %3170 = getelementptr inbounds %struct.s2n_result, ptr %84, i32 0, i32 0
  store i32 %3169, ptr %3170, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #11
  br label %3171

3171:                                             ; preds = %3162, %1877
  %3172 = load i64, ptr %47, align 8, !tbaa !15
  %3173 = add i64 %3172, 1
  store i64 %3173, ptr %47, align 8, !tbaa !15
  br label %1864, !llvm.loop !58

3174:                                             ; preds = %1867
  br label %3175

3175:                                             ; preds = %3174
  br label %3176

3176:                                             ; preds = %3175
  %3177 = call i32 @s2n_cleanup()
  %3178 = icmp eq i32 %3177, -1
  br i1 %3178, label %3179, label %3232

3179:                                             ; preds = %3176
  br label %3180

3180:                                             ; preds = %3179
  br label %3181

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

3188:                                             ; preds = %3181
  %3189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3190 = call i32 @fileno(ptr noundef %3189) #11
  %3191 = call i32 @isatty(i32 noundef %3190) #11
  %3192 = icmp ne i32 %3191, 0
  br i1 %3192, label %3193, label %3210

3193:                                             ; preds = %3188
  %3194 = load i32, ptr %85, align 4, !tbaa !5
  %3195 = call ptr @__errno_location() #12
  store i32 %3194, ptr %3195, align 4, !tbaa !5
  %3196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3197 = load i32, ptr @test_count, align 4, !tbaa !5
  %3198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3199 = load i32, ptr %3198, align 4, !tbaa !5
  %3200 = call ptr @s2n_strerror(i32 noundef %3199, ptr noundef @.str.4)
  %3201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3202 = load i32, ptr %3201, align 4, !tbaa !5
  %3203 = call ptr @s2n_strerror_debug(i32 noundef %3202, ptr noundef @.str.4)
  %3204 = call ptr @__errno_location() #12
  %3205 = load i32, ptr %3204, align 4, !tbaa !5
  %3206 = call ptr @strerror(i32 noundef %3205) #11
  %3207 = call ptr @__errno_location() #12
  %3208 = load i32, ptr %3207, align 4, !tbaa !5
  %3209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3196, ptr noundef @.str.2, i32 noundef %3197, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 230, ptr noundef %3200, ptr noundef %3203, ptr noundef %3206, i32 noundef %3208) #11
  br label %3227

3210:                                             ; preds = %3188, %3181
  %3211 = load i32, ptr %85, align 4, !tbaa !5
  %3212 = call ptr @__errno_location() #12
  store i32 %3211, ptr %3212, align 4, !tbaa !5
  %3213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3214 = load i32, ptr @test_count, align 4, !tbaa !5
  %3215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3216 = load i32, ptr %3215, align 4, !tbaa !5
  %3217 = call ptr @s2n_strerror(i32 noundef %3216, ptr noundef @.str.4)
  %3218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3219 = load i32, ptr %3218, align 4, !tbaa !5
  %3220 = call ptr @s2n_strerror_debug(i32 noundef %3219, ptr noundef @.str.4)
  %3221 = call ptr @__errno_location() #12
  %3222 = load i32, ptr %3221, align 4, !tbaa !5
  %3223 = call ptr @strerror(i32 noundef %3222) #11
  %3224 = call ptr @__errno_location() #12
  %3225 = load i32, ptr %3224, align 4, !tbaa !5
  %3226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3213, ptr noundef @.str.5, i32 noundef %3214, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 230, ptr noundef %3217, ptr noundef %3220, ptr noundef %3223, i32 noundef %3225) #11
  br label %3227

3227:                                             ; preds = %3210, %3193
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  br label %3228

3228:                                             ; preds = %3227
  br label %3229

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

3230:                                             ; No predecessors!
  br label %3231

3231:                                             ; preds = %3230
  br label %3232

3232:                                             ; preds = %3231, %3176
  br label %3233

3233:                                             ; preds = %3232
  br label %3234

3234:                                             ; preds = %3233
  br label %3235

3235:                                             ; preds = %3234
  br label %3236

3236:                                             ; preds = %3235
  %3237 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %3238 = icmp eq i32 %3237, -1
  br i1 %3238, label %3239, label %3292

3239:                                             ; preds = %3236
  br label %3240

3240:                                             ; preds = %3239
  br label %3241

3241:                                             ; preds = %3240
  call void @llvm.lifetime.start.p0(i64 4, ptr %86) #11
  %3242 = call ptr @__errno_location() #12
  %3243 = load i32, ptr %3242, align 4, !tbaa !5
  store i32 %3243, ptr %86, align 4, !tbaa !5
  %3244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3245 = call i32 @s2n_print_stacktrace(ptr noundef %3244)
  %3246 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3247 = trunc i8 %3246 to i1
  br i1 %3247, label %3248, label %3270

3248:                                             ; preds = %3241
  %3249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3250 = call i32 @fileno(ptr noundef %3249) #11
  %3251 = call i32 @isatty(i32 noundef %3250) #11
  %3252 = icmp ne i32 %3251, 0
  br i1 %3252, label %3253, label %3270

3253:                                             ; preds = %3248
  %3254 = load i32, ptr %86, align 4, !tbaa !5
  %3255 = call ptr @__errno_location() #12
  store i32 %3254, ptr %3255, align 4, !tbaa !5
  %3256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3257 = load i32, ptr @test_count, align 4, !tbaa !5
  %3258 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3259 = load i32, ptr %3258, align 4, !tbaa !5
  %3260 = call ptr @s2n_strerror(i32 noundef %3259, ptr noundef @.str.4)
  %3261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3262 = load i32, ptr %3261, align 4, !tbaa !5
  %3263 = call ptr @s2n_strerror_debug(i32 noundef %3262, ptr noundef @.str.4)
  %3264 = call ptr @__errno_location() #12
  %3265 = load i32, ptr %3264, align 4, !tbaa !5
  %3266 = call ptr @strerror(i32 noundef %3265) #11
  %3267 = call ptr @__errno_location() #12
  %3268 = load i32, ptr %3267, align 4, !tbaa !5
  %3269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3256, ptr noundef @.str.2, i32 noundef %3257, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 230, ptr noundef %3260, ptr noundef %3263, ptr noundef %3266, i32 noundef %3268) #11
  br label %3287

3270:                                             ; preds = %3248, %3241
  %3271 = load i32, ptr %86, align 4, !tbaa !5
  %3272 = call ptr @__errno_location() #12
  store i32 %3271, ptr %3272, align 4, !tbaa !5
  %3273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3274 = load i32, ptr @test_count, align 4, !tbaa !5
  %3275 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3276 = load i32, ptr %3275, align 4, !tbaa !5
  %3277 = call ptr @s2n_strerror(i32 noundef %3276, ptr noundef @.str.4)
  %3278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3279 = load i32, ptr %3278, align 4, !tbaa !5
  %3280 = call ptr @s2n_strerror_debug(i32 noundef %3279, ptr noundef @.str.4)
  %3281 = call ptr @__errno_location() #12
  %3282 = load i32, ptr %3281, align 4, !tbaa !5
  %3283 = call ptr @strerror(i32 noundef %3282) #11
  %3284 = call ptr @__errno_location() #12
  %3285 = load i32, ptr %3284, align 4, !tbaa !5
  %3286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3273, ptr noundef @.str.5, i32 noundef %3274, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 230, ptr noundef %3277, ptr noundef %3280, ptr noundef %3283, i32 noundef %3285) #11
  br label %3287

3287:                                             ; preds = %3270, %3253
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  br label %3288

3288:                                             ; preds = %3287
  br label %3289

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

3290:                                             ; No predecessors!
  br label %3291

3291:                                             ; preds = %3290
  br label %3292

3292:                                             ; preds = %3291, %3236
  br label %3293

3293:                                             ; preds = %3292
  br label %3294

3294:                                             ; preds = %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 %3313

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

3302:                                             ; preds = %3297
  %3303 = load i32, ptr @test_count, align 4, !tbaa !5
  %3304 = icmp ne i32 %3303, 0
  br i1 %3304, label %3305, label %3309

3305:                                             ; preds = %3302
  %3306 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3307 = load i32, ptr @test_count, align 4, !tbaa !5
  %3308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3306, ptr noundef @.str.48, i32 noundef %3307) #11
  br label %3312

3309:                                             ; preds = %3302
  %3310 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3310, ptr noundef @.str.49) #11
  br label %3312

3312:                                             ; preds = %3309, %3305
  br label %3324

3313:                                             ; preds = %3297, %3294
  %3314 = load i32, ptr @test_count, align 4, !tbaa !5
  %3315 = icmp ne i32 %3314, 0
  br i1 %3315, label %3316, label %3320

3316:                                             ; preds = %3313
  %3317 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3318 = load i32, ptr @test_count, align 4, !tbaa !5
  %3319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3317, ptr noundef @.str.50, i32 noundef %3318) #11
  br label %3323

3320:                                             ; preds = %3313
  %3321 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3321, ptr noundef @.str.51) #11
  br label %3323

3323:                                             ; preds = %3320, %3316
  br label %3324

3324:                                             ; preds = %3323, %3312
  store i32 0, ptr %3, align 4
  store i32 1, ptr %87, align 4
  br label %3329

3325:                                             ; No predecessors!
  br label %3326

3326:                                             ; preds = %3325
  br label %3327

3327:                                             ; preds = %3326
  br label %3328

3328:                                             ; preds = %3327
  store i32 0, ptr %87, align 4
  br label %3329

3329:                                             ; preds = %3328, %3324
  call void @llvm.lifetime.end.p0(i64 32, ptr %46) #11
  %3330 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef %9)
  %3331 = getelementptr inbounds %struct.s2n_result, ptr %88, i32 0, i32 0
  store i32 %3330, ptr %3331, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #11
  %3332 = load i32, ptr %87, align 4
  switch i32 %3332, label %3335 [
    i32 0, label %3333
    i32 1, label %3333
  ]

3333:                                             ; preds = %3329, %3329
  %3334 = load i32, ptr %3, align 4
  ret i32 %3334

3335:                                             ; preds = %3329
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) #2

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

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

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

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

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

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

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

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_stuffer_reread(ptr noundef) #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) #2

declare ptr @s2n_config_new_minimal() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

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

declare i32 @s2n_config_disable_x509_verification(ptr noundef) #2

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

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

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

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

declare i32 @s2n_io_stuffer_pair_free(ptr noundef) #2

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

declare i32 @s2n_io_stuffer_pair_init(ptr noundef) #2

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

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

declare i64 @s2n_send(ptr noundef, ptr noundef, i64 noundef, ptr noundef) #2

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

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

declare i64 @s2n_recv(ptr noundef, ptr noundef, i64 noundef, ptr noundef) #2

declare i32 @s2n_cleanup() #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !16, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{!7, !7, i64 0}
!18 = !{!19, !19, i64 0}
!19 = !{!"short", !7, i64 0}
!20 = !{!21, !7, i64 8}
!21 = !{!"", !7, i64 0, !19, i64 6, !7, i64 8, !7, i64 9}
!22 = !{!21, !7, i64 9}
!23 = !{!21, !19, i64 6}
!24 = !{!25, !6, i64 1804}
!25 = !{!"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, !26, i64 160, !16, i64 168, !16, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !27, i64 240, !10, i64 632, !10, i64 640, !28, i64 648, !34, i64 1144, !37, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !39, i64 1776, !39, i64 1816, !39, i64 1856, !39, i64 1896, !6, i64 1936, !16, i64 1944, !7, i64 1952, !39, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !40, i64 2004, !40, i64 2008, !41, i64 2016, !19, i64 2208, !6, i64 2212, !19, i64 2216, !16, i64 2224, !7, i64 2232, !16, i64 2240, !16, i64 2248, !16, i64 2256, !40, i64 2264, !40, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !33, i64 2792, !6, i64 2816, !33, i64 2824, !33, i64 2848, !33, i64 2872, !43, i64 2896, !45, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !33, i64 3784, !6, i64 3808, !47, i64 3816, !7, i64 3848, !39, i64 3992, !33, i64 4032, !33, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !19, i64 4084, !19, i64 4086, !6, i64 4088, !6, i64 4092, !33, i64 4096, !6, i64 4120, !48, i64 4128, !40, i64 4176, !7, i64 4180, !7, i64 4181}
!26 = !{!"s2n_timer", !16, i64 0}
!27 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!28 = !{!"s2n_kex_parameters", !29, i64 0, !30, i64 8, !7, i64 24, !30, i64 56, !31, i64 72, !31, i64 184, !7, i64 296, !32, i64 360, !33, i64 448, !33, i64 472}
!29 = !{!"s2n_dh_params", !10, i64 0}
!30 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!31 = !{!"s2n_kem_group_params", !10, i64 0, !32, i64 8, !30, i64 96}
!32 = !{!"s2n_kem_params", !10, i64 0, !33, i64 8, !33, i64 32, !33, i64 56, !12, i64 80}
!33 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!34 = !{!"s2n_handshake_parameters", !35, i64 0, !35, i64 48, !33, i64 96, !6, i64 120, !36, 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}
!35 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!36 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!37 = !{!"s2n_psk_parameters", !6, i64 0, !38, i64 8, !19, i64 40, !19, i64 42, !10, i64 48, !6, i64 56}
!38 = !{!"s2n_array", !33, i64 0, !6, i64 24, !6, i64 28}
!39 = !{!"s2n_stuffer", !33, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!40 = !{!"", !6, i64 0}
!41 = !{!"s2n_handshake", !39, 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, !42, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!42 = !{!"s2n_offered_early_data", !10, i64 0}
!43 = !{!"s2n_client_hello", !33, i64 0, !44, i64 24, !33, i64 728, !33, i64 752, !33, 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}
!44 = !{!"", !7, i64 0, !33, i64 672, !19, i64 696}
!45 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !19, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !46, i64 48, !12, i64 52}
!46 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!47 = !{!"s2n_ticket_fields", !33, i64 0, !6, i64 24}
!48 = !{!"s2n_post_handshake", !39, i64 0, !7, i64 40}
!49 = !{!25, !6, i64 1800}
!50 = distinct !{!50, !51}
!51 = !{!"llvm.loop.mustprogress"}
!52 = !{!53, !7, i64 8}
!53 = !{!"", !10, i64 0, !7, i64 8}
!54 = !{!53, !10, i64 0}
!55 = !{!25, !7, i64 220}
!56 = !{i64 0, i64 8, !9, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 1, !17, i64 24, i64 4, !5, i64 28, i64 4, !5, i64 32, i64 4, !5, i64 36, i64 1, !17}
!57 = !{!25, !6, i64 1888}
!58 = distinct !{!58, !51}


; 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.anon = type { [5 x i8], i16, i8, i8 }
%struct.anon.0 = type { ptr, i8 }
%struct.s2n_test_io_stuffer_pair = type { %struct.s2n_stuffer, %struct.s2n_stuffer }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@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 [79 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 [60 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [200 x i8], align 1
@__const.main.test_cases = external hidden unnamed_addr constant [11 x %struct.anon], align 16
@.str.11 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [109 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [65 x i8], align 1
@__const.main.policy_test_cases = external hidden unnamed_addr constant [2 x %struct.anon.0], align 16
@.str.27 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [81 x i8], align 1
@__const.main.test_data = external hidden unnamed_addr constant [12 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.51 = 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 ptr, align 8
  %4 = alloca [11 x %struct.anon], align 16
  %5 = alloca ptr, align 8
  %6 = alloca i8, align 1
  %7 = alloca i8, align 1
  %8 = alloca i16, align 2
  %9 = alloca ptr, align 8
  %10 = alloca i8, align 1
  %11 = alloca i8, align 1
  %12 = alloca i16, align 2
  %13 = alloca ptr, align 8
  %14 = alloca ptr, align 8
  %15 = alloca ptr, align 8
  %16 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %17 = alloca [12 x i8], align 1
  %18 = alloca i32, align 4
  %19 = alloca %struct.s2n_stuffer, align 8
  %20 = alloca [12 x i8], align 1
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %21 = load ptr, ptr @stdout, align 8, !tbaa !9
  %22 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %21, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #12
  %23 = load ptr, ptr @stdout, align 8, !tbaa !9
  %24 = tail call i32 @fflush(ptr noundef %23)
  %25 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %26 = icmp eq i32 %25, -1
  br i1 %26, label %27, label %51

27:                                               ; preds = %2
  %28 = tail call ptr @__errno_location() #13
  %29 = load i32, ptr %28, align 4, !tbaa !5
  %30 = load ptr, ptr @stderr, align 8, !tbaa !9
  %31 = tail call i32 @s2n_print_stacktrace(ptr noundef %30) #12
  %32 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %33 = trunc nuw i8 %32 to i1
  br i1 %33, label %34, label %38

34:                                               ; preds = %27
  %35 = load ptr, ptr @stderr, align 8, !tbaa !9
  %36 = tail call i32 @fileno(ptr noundef %35) #12
  %37 = tail call i32 @isatty(i32 noundef %36) #12
  %.not176 = icmp eq i32 %37, 0
  br i1 %.not176, label %38, label %39

38:                                               ; preds = %34, %27
  br label %39

39:                                               ; preds = %34, %38
  %.str.5.sink = phi ptr [ @.str.5, %38 ], [ @.str.2, %34 ]
  store i32 %29, ptr %28, align 4, !tbaa !5
  %40 = load ptr, ptr @stderr, align 8, !tbaa !9
  %41 = load i32, ptr @test_count, align 4, !tbaa !5
  %42 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %43 = load i32, ptr %42, align 4, !tbaa !5
  %44 = tail call ptr @s2n_strerror(i32 noundef %43, ptr noundef nonnull @.str.4) #12
  %45 = load i32, ptr %42, align 4, !tbaa !5
  %46 = tail call ptr @s2n_strerror_debug(i32 noundef %45, ptr noundef nonnull @.str.4) #12
  %47 = load i32, ptr %28, align 4, !tbaa !5
  %48 = tail call ptr @strerror(i32 noundef %47) #12
  %49 = load i32, ptr %28, align 4, !tbaa !5
  %50 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %40, ptr noundef nonnull %.str.5.sink, i32 noundef %41, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 26, ptr noundef %44, ptr noundef %46, ptr noundef %48, i32 noundef %49) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

51:                                               ; preds = %2
  %52 = load i32, ptr @test_count, align 4, !tbaa !5
  %53 = add nsw i32 %52, 1
  store i32 %53, ptr @test_count, align 4, !tbaa !5
  %54 = tail call i32 @s2n_enable_atexit() #12
  %55 = icmp eq i32 %54, -1
  br i1 %55, label %56, label %80

56:                                               ; preds = %51
  %57 = tail call ptr @__errno_location() #13
  %58 = load i32, ptr %57, align 4, !tbaa !5
  %59 = load ptr, ptr @stderr, align 8, !tbaa !9
  %60 = tail call i32 @s2n_print_stacktrace(ptr noundef %59) #12
  %61 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %62 = trunc nuw i8 %61 to i1
  br i1 %62, label %63, label %67

63:                                               ; preds = %56
  %64 = load ptr, ptr @stderr, align 8, !tbaa !9
  %65 = tail call i32 @fileno(ptr noundef %64) #12
  %66 = tail call i32 @isatty(i32 noundef %65) #12
  %.not175 = icmp eq i32 %66, 0
  br i1 %.not175, label %67, label %68

67:                                               ; preds = %63, %56
  br label %68

68:                                               ; preds = %63, %67
  %.str.5.sink189 = phi ptr [ @.str.5, %67 ], [ @.str.2, %63 ]
  store i32 %58, ptr %57, align 4, !tbaa !5
  %69 = load ptr, ptr @stderr, align 8, !tbaa !9
  %70 = load i32, ptr @test_count, align 4, !tbaa !5
  %71 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %72 = load i32, ptr %71, align 4, !tbaa !5
  %73 = tail call ptr @s2n_strerror(i32 noundef %72, ptr noundef nonnull @.str.4) #12
  %74 = load i32, ptr %71, align 4, !tbaa !5
  %75 = tail call ptr @s2n_strerror_debug(i32 noundef %74, ptr noundef nonnull @.str.4) #12
  %76 = load i32, ptr %57, align 4, !tbaa !5
  %77 = tail call ptr @strerror(i32 noundef %76) #12
  %78 = load i32, ptr %57, align 4, !tbaa !5
  %79 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %69, ptr noundef nonnull %.str.5.sink189, i32 noundef %70, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 26, ptr noundef %73, ptr noundef %75, ptr noundef %77, i32 noundef %78) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

80:                                               ; preds = %51
  %81 = tail call i32 @s2n_init() #12
  %82 = icmp eq i32 %81, -1
  br i1 %82, label %83, label %107

83:                                               ; preds = %80
  %84 = tail call ptr @__errno_location() #13
  %85 = load i32, ptr %84, align 4, !tbaa !5
  %86 = load ptr, ptr @stderr, align 8, !tbaa !9
  %87 = tail call i32 @s2n_print_stacktrace(ptr noundef %86) #12
  %88 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %89 = trunc nuw i8 %88 to i1
  br i1 %89, label %90, label %94

90:                                               ; preds = %83
  %91 = load ptr, ptr @stderr, align 8, !tbaa !9
  %92 = tail call i32 @fileno(ptr noundef %91) #12
  %93 = tail call i32 @isatty(i32 noundef %92) #12
  %.not174 = icmp eq i32 %93, 0
  br i1 %.not174, label %94, label %95

94:                                               ; preds = %90, %83
  br label %95

95:                                               ; preds = %90, %94
  %.str.5.sink200 = phi ptr [ @.str.5, %94 ], [ @.str.2, %90 ]
  store i32 %85, ptr %84, align 4, !tbaa !5
  %96 = load ptr, ptr @stderr, align 8, !tbaa !9
  %97 = load i32, ptr @test_count, align 4, !tbaa !5
  %98 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %99 = load i32, ptr %98, align 4, !tbaa !5
  %100 = tail call ptr @s2n_strerror(i32 noundef %99, ptr noundef nonnull @.str.4) #12
  %101 = load i32, ptr %98, align 4, !tbaa !5
  %102 = tail call ptr @s2n_strerror_debug(i32 noundef %101, ptr noundef nonnull @.str.4) #12
  %103 = load i32, ptr %84, align 4, !tbaa !5
  %104 = tail call ptr @strerror(i32 noundef %103) #12
  %105 = load i32, ptr %84, align 4, !tbaa !5
  %106 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %96, ptr noundef nonnull %.str.5.sink200, i32 noundef %97, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 26, ptr noundef %100, ptr noundef %102, ptr noundef %104, i32 noundef %105) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

107:                                              ; preds = %80
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #12
  store ptr null, ptr %3, align 8, !tbaa !9
  %108 = load i32, ptr @test_count, align 4, !tbaa !5
  %109 = add nsw i32 %108, 1
  store i32 %109, ptr @test_count, align 4, !tbaa !5
  %110 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %3, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.9) #12
  %111 = icmp eq i32 %110, -1
  br i1 %111, label %112, label %136

112:                                              ; preds = %107
  %113 = tail call ptr @__errno_location() #13
  %114 = load i32, ptr %113, align 4, !tbaa !5
  %115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %116 = call i32 @s2n_print_stacktrace(ptr noundef %115) #12
  %117 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %118 = trunc nuw i8 %117 to i1
  br i1 %118, label %119, label %123

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

123:                                              ; preds = %119, %112
  br label %124

124:                                              ; preds = %119, %123
  %.str.5.sink211 = phi ptr [ @.str.5, %123 ], [ @.str.2, %119 ]
  store i32 %114, ptr %113, align 4, !tbaa !5
  %125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %126 = load i32, ptr @test_count, align 4, !tbaa !5
  %127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %128 = load i32, ptr %127, align 4, !tbaa !5
  %129 = call ptr @s2n_strerror(i32 noundef %128, ptr noundef nonnull @.str.4) #12
  %130 = load i32, ptr %127, align 4, !tbaa !5
  %131 = call ptr @s2n_strerror_debug(i32 noundef %130, ptr noundef nonnull @.str.4) #12
  %132 = load i32, ptr %113, align 4, !tbaa !5
  %133 = call ptr @strerror(i32 noundef %132) #12
  %134 = load i32, ptr %113, align 4, !tbaa !5
  %135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %125, ptr noundef nonnull %.str.5.sink211, i32 noundef %126, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 31, ptr noundef %129, ptr noundef %131, ptr noundef %133, i32 noundef %134) #14
  call void @exit(i32 noundef 1) #15
  unreachable

136:                                              ; preds = %107
  call void @llvm.lifetime.start.p0(i64 110, ptr nonnull %4) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(110) %4, ptr noundef nonnull align 16 dereferenceable(110) @__const.main.test_cases, i64 110, i1 false)
  br label %142

137:                                              ; preds = %383
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #12
  %138 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %138, ptr %9, align 8, !tbaa !9
  %139 = load i32, ptr @test_count, align 4, !tbaa !5
  %140 = add nsw i32 %139, 1
  store i32 %140, ptr @test_count, align 4, !tbaa !5
  %141 = icmp eq ptr %138, null
  br i1 %141, label %386, label %410

142:                                              ; preds = %136, %383
  %.0177 = phi i64 [ 0, %136 ], [ %385, %383 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #12
  %143 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %143, ptr %5, align 8, !tbaa !9
  %144 = load i32, ptr @test_count, align 4, !tbaa !5
  %145 = add nsw i32 %144, 1
  store i32 %145, ptr @test_count, align 4, !tbaa !5
  %146 = icmp eq ptr %143, null
  br i1 %146, label %147, label %171

147:                                              ; preds = %142
  %148 = tail call ptr @__errno_location() #13
  %149 = load i32, ptr %148, align 4, !tbaa !5
  %150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %151 = call i32 @s2n_print_stacktrace(ptr noundef %150) #12
  %152 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %153 = trunc nuw i8 %152 to i1
  br i1 %153, label %154, label %158

154:                                              ; preds = %147
  %155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %156 = call i32 @fileno(ptr noundef %155) #12
  %157 = call i32 @isatty(i32 noundef %156) #12
  %.not172 = icmp eq i32 %157, 0
  br i1 %.not172, label %158, label %159

158:                                              ; preds = %154, %147
  br label %159

159:                                              ; preds = %154, %158
  %.str.5.sink222 = phi ptr [ @.str.5, %158 ], [ @.str.2, %154 ]
  store i32 %149, ptr %148, align 4, !tbaa !5
  %160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %161 = load i32, ptr @test_count, align 4, !tbaa !5
  %162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %163 = load i32, ptr %162, align 4, !tbaa !5
  %164 = call ptr @s2n_strerror(i32 noundef %163, ptr noundef nonnull @.str.4) #12
  %165 = load i32, ptr %162, align 4, !tbaa !5
  %166 = call ptr @s2n_strerror_debug(i32 noundef %165, ptr noundef nonnull @.str.4) #12
  %167 = load i32, ptr %148, align 4, !tbaa !5
  %168 = call ptr @strerror(i32 noundef %167) #12
  %169 = load i32, ptr %148, align 4, !tbaa !5
  %170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %160, ptr noundef nonnull %.str.5.sink222, i32 noundef %161, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 113, ptr noundef %164, ptr noundef %166, ptr noundef %168, i32 noundef %169) #14
  call void @exit(i32 noundef 1) #15
  unreachable

171:                                              ; preds = %142
  %172 = add nsw i32 %144, 2
  store i32 %172, ptr @test_count, align 4, !tbaa !5
  %173 = getelementptr inbounds i8, ptr %143, i64 1776
  %174 = getelementptr inbounds [11 x %struct.anon], ptr %4, i64 0, i64 %.0177
  %175 = call i32 @s2n_stuffer_write_bytes(ptr noundef nonnull %173, ptr noundef nonnull %174, i32 noundef 5) #12
  %176 = icmp eq i32 %175, -1
  br i1 %176, label %177, label %201

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

184:                                              ; preds = %177
  %185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %186 = call i32 @fileno(ptr noundef %185) #12
  %187 = call i32 @isatty(i32 noundef %186) #12
  %.not171 = icmp eq i32 %187, 0
  br i1 %.not171, label %188, label %189

188:                                              ; preds = %184, %177
  br label %189

189:                                              ; preds = %184, %188
  %.str.5.sink233 = phi ptr [ @.str.5, %188 ], [ @.str.2, %184 ]
  store i32 %179, ptr %178, align 4, !tbaa !5
  %190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %191 = load i32, ptr @test_count, align 4, !tbaa !5
  %192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %193 = load i32, ptr %192, align 4, !tbaa !5
  %194 = call ptr @s2n_strerror(i32 noundef %193, ptr noundef nonnull @.str.4) #12
  %195 = load i32, ptr %192, align 4, !tbaa !5
  %196 = call ptr @s2n_strerror_debug(i32 noundef %195, ptr noundef nonnull @.str.4) #12
  %197 = load i32, ptr %178, align 4, !tbaa !5
  %198 = call ptr @strerror(i32 noundef %197) #12
  %199 = load i32, ptr %178, align 4, !tbaa !5
  %200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %190, ptr noundef nonnull %.str.5.sink233, i32 noundef %191, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %194, ptr noundef %196, ptr noundef %198, i32 noundef %199) #14
  call void @exit(i32 noundef 1) #15
  unreachable

201:                                              ; preds = %171
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #12
  store i8 0, ptr %6, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #12
  store i8 0, ptr %7, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %8) #12
  store i16 0, ptr %8, align 2, !tbaa !16
  %202 = load i32, ptr @test_count, align 4, !tbaa !5
  %203 = add nsw i32 %202, 1
  store i32 %203, ptr @test_count, align 4, !tbaa !5
  %204 = load ptr, ptr %5, align 8, !tbaa !9
  %205 = call i32 @s2n_sslv2_record_header_parse(ptr noundef %204, ptr noundef nonnull %6, ptr noundef nonnull %7, ptr noundef nonnull %8) #12
  %206 = icmp eq i32 %205, -1
  br i1 %206, label %207, label %231

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

214:                                              ; preds = %207
  %215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %216 = call i32 @fileno(ptr noundef %215) #12
  %217 = call i32 @isatty(i32 noundef %216) #12
  %.not170 = icmp eq i32 %217, 0
  br i1 %.not170, label %218, label %219

218:                                              ; preds = %214, %207
  br label %219

219:                                              ; preds = %214, %218
  %.str.5.sink244 = phi ptr [ @.str.5, %218 ], [ @.str.2, %214 ]
  store i32 %209, ptr %208, align 4, !tbaa !5
  %220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %221 = load i32, ptr @test_count, align 4, !tbaa !5
  %222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %223 = load i32, ptr %222, align 4, !tbaa !5
  %224 = call ptr @s2n_strerror(i32 noundef %223, ptr noundef nonnull @.str.4) #12
  %225 = load i32, ptr %222, align 4, !tbaa !5
  %226 = call ptr @s2n_strerror_debug(i32 noundef %225, ptr noundef nonnull @.str.4) #12
  %227 = load i32, ptr %208, align 4, !tbaa !5
  %228 = call ptr @strerror(i32 noundef %227) #12
  %229 = load i32, ptr %208, align 4, !tbaa !5
  %230 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %220, ptr noundef nonnull %.str.5.sink244, i32 noundef %221, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef %224, ptr noundef %226, ptr noundef %228, i32 noundef %229) #14
  call void @exit(i32 noundef 1) #15
  unreachable

231:                                              ; preds = %201
  %232 = load i32, ptr @test_count, align 4, !tbaa !5
  %233 = add nsw i32 %232, 1
  store i32 %233, ptr @test_count, align 4, !tbaa !5
  %234 = getelementptr inbounds i8, ptr %174, i64 8
  %235 = load i8, ptr %234, align 2, !tbaa !18
  %236 = load i8, ptr %6, align 1, !tbaa !15
  %237 = icmp eq i8 %235, %236
  br i1 %237, label %262, label %238

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

245:                                              ; preds = %238
  %246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %247 = call i32 @fileno(ptr noundef %246) #12
  %248 = call i32 @isatty(i32 noundef %247) #12
  %.not165 = icmp eq i32 %248, 0
  br i1 %.not165, label %249, label %250

249:                                              ; preds = %245, %238
  br label %250

250:                                              ; preds = %245, %249
  %.str.5.sink255 = phi ptr [ @.str.5, %249 ], [ @.str.2, %245 ]
  store i32 %240, ptr %239, align 4, !tbaa !5
  %251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %252 = load i32, ptr @test_count, align 4, !tbaa !5
  %253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %254 = load i32, ptr %253, align 4, !tbaa !5
  %255 = call ptr @s2n_strerror(i32 noundef %254, ptr noundef nonnull @.str.4) #12
  %256 = load i32, ptr %253, align 4, !tbaa !5
  %257 = call ptr @s2n_strerror_debug(i32 noundef %256, ptr noundef nonnull @.str.4) #12
  %258 = load i32, ptr %239, align 4, !tbaa !5
  %259 = call ptr @strerror(i32 noundef %258) #12
  %260 = load i32, ptr %239, align 4, !tbaa !5
  %261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %251, ptr noundef nonnull %.str.5.sink255, i32 noundef %252, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef %255, ptr noundef %257, ptr noundef %259, i32 noundef %260) #14
  call void @exit(i32 noundef 1) #15
  unreachable

262:                                              ; preds = %231
  %263 = add nsw i32 %232, 2
  store i32 %263, ptr @test_count, align 4, !tbaa !5
  %264 = getelementptr inbounds i8, ptr %174, i64 9
  %265 = load i8, ptr %264, align 1, !tbaa !20
  %266 = load i8, ptr %7, align 1, !tbaa !15
  %267 = icmp eq i8 %265, %266
  br i1 %267, label %292, label %268

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

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

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

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

292:                                              ; preds = %262
  %293 = add nsw i32 %232, 3
  store i32 %293, ptr @test_count, align 4, !tbaa !5
  %294 = getelementptr inbounds i8, ptr %174, i64 6
  %295 = load i16, ptr %294, align 2, !tbaa !21
  %296 = load i16, ptr %8, align 2, !tbaa !16
  %297 = icmp eq i16 %295, %296
  br i1 %297, label %322, label %298

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

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

309:                                              ; preds = %305, %298
  br label %310

310:                                              ; preds = %305, %309
  %.str.5.sink277 = phi ptr [ @.str.5, %309 ], [ @.str.2, %305 ]
  store i32 %300, ptr %299, align 4, !tbaa !5
  %311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %312 = load i32, ptr @test_count, align 4, !tbaa !5
  %313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = call ptr @s2n_strerror(i32 noundef %314, ptr noundef nonnull @.str.4) #12
  %316 = load i32, ptr %313, align 4, !tbaa !5
  %317 = call ptr @s2n_strerror_debug(i32 noundef %316, ptr noundef nonnull @.str.4) #12
  %318 = load i32, ptr %299, align 4, !tbaa !5
  %319 = call ptr @strerror(i32 noundef %318) #12
  %320 = load i32, ptr %299, align 4, !tbaa !5
  %321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %311, ptr noundef nonnull %.str.5.sink277, i32 noundef %312, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %315, ptr noundef %317, ptr noundef %319, i32 noundef %320) #14
  call void @exit(i32 noundef 1) #15
  unreachable

322:                                              ; preds = %292
  %323 = add nsw i32 %232, 4
  store i32 %323, ptr @test_count, align 4, !tbaa !5
  %324 = load ptr, ptr %5, align 8, !tbaa !9
  %325 = getelementptr inbounds i8, ptr %324, i64 1768
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(5) %325, ptr noundef nonnull dereferenceable(5) %174, i64 5)
  %326 = icmp eq i32 %bcmp, 0
  br i1 %326, label %351, label %327

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

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

338:                                              ; preds = %334, %327
  br label %339

339:                                              ; preds = %334, %338
  %.str.5.sink288 = phi ptr [ @.str.5, %338 ], [ @.str.2, %334 ]
  store i32 %329, ptr %328, 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 nonnull @.str.4) #12
  %345 = load i32, ptr %342, align 4, !tbaa !5
  %346 = call ptr @s2n_strerror_debug(i32 noundef %345, ptr noundef nonnull @.str.4) #12
  %347 = load i32, ptr %328, align 4, !tbaa !5
  %348 = call ptr @strerror(i32 noundef %347) #12
  %349 = load i32, ptr %328, align 4, !tbaa !5
  %350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %340, ptr noundef nonnull %.str.5.sink288, i32 noundef %341, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %344, ptr noundef %346, ptr noundef %348, i32 noundef %349) #14
  call void @exit(i32 noundef 1) #15
  unreachable

351:                                              ; preds = %322
  %352 = add nsw i32 %232, 5
  store i32 %352, ptr @test_count, align 4, !tbaa !5
  %353 = getelementptr inbounds i8, ptr %324, i64 1804
  %354 = load i32, ptr %353, align 4, !tbaa !22
  %355 = getelementptr inbounds i8, ptr %324, i64 1800
  %356 = load i32, ptr %355, align 8, !tbaa !48
  %357 = sub i32 %354, %356
  %358 = icmp eq i32 %357, 5
  br i1 %358, label %383, label %359

359:                                              ; preds = %351
  %360 = tail call ptr @__errno_location() #13
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %363 = call i32 @s2n_print_stacktrace(ptr noundef %362) #12
  %364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %365 = trunc nuw i8 %364 to i1
  br i1 %365, label %366, label %370

366:                                              ; preds = %359
  %367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %368 = call i32 @fileno(ptr noundef %367) #12
  %369 = call i32 @isatty(i32 noundef %368) #12
  %.not169 = icmp eq i32 %369, 0
  br i1 %.not169, label %370, label %371

370:                                              ; preds = %366, %359
  br label %371

371:                                              ; preds = %366, %370
  %.str.5.sink299 = phi ptr [ @.str.5, %370 ], [ @.str.2, %366 ]
  store i32 %361, ptr %360, align 4, !tbaa !5
  %372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %373 = load i32, ptr @test_count, align 4, !tbaa !5
  %374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %375 = load i32, ptr %374, align 4, !tbaa !5
  %376 = call ptr @s2n_strerror(i32 noundef %375, ptr noundef nonnull @.str.4) #12
  %377 = load i32, ptr %374, align 4, !tbaa !5
  %378 = call ptr @s2n_strerror_debug(i32 noundef %377, ptr noundef nonnull @.str.4) #12
  %379 = load i32, ptr %360, align 4, !tbaa !5
  %380 = call ptr @strerror(i32 noundef %379) #12
  %381 = load i32, ptr %360, align 4, !tbaa !5
  %382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %372, ptr noundef nonnull %.str.5.sink299, i32 noundef %373, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %376, ptr noundef %378, ptr noundef %380, i32 noundef %381) #14
  call void @exit(i32 noundef 1) #15
  unreachable

383:                                              ; preds = %351
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #12
  %384 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #12
  %385 = add nuw nsw i64 %.0177, 1
  %exitcond.not = icmp eq i64 %385, 11
  br i1 %exitcond.not, label %137, label %142, !llvm.loop !49

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

393:                                              ; preds = %386
  %394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %395 = call i32 @fileno(ptr noundef %394) #12
  %396 = call i32 @isatty(i32 noundef %395) #12
  %.not164 = icmp eq i32 %396, 0
  br i1 %.not164, label %397, label %398

397:                                              ; preds = %393, %386
  br label %398

398:                                              ; preds = %393, %397
  %.str.5.sink310 = phi ptr [ @.str.5, %397 ], [ @.str.2, %393 ]
  store i32 %388, ptr %387, align 4, !tbaa !5
  %399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %400 = load i32, ptr @test_count, align 4, !tbaa !5
  %401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %402 = load i32, ptr %401, align 4, !tbaa !5
  %403 = call ptr @s2n_strerror(i32 noundef %402, ptr noundef nonnull @.str.4) #12
  %404 = load i32, ptr %401, align 4, !tbaa !5
  %405 = call ptr @s2n_strerror_debug(i32 noundef %404, ptr noundef nonnull @.str.4) #12
  %406 = load i32, ptr %387, align 4, !tbaa !5
  %407 = call ptr @strerror(i32 noundef %406) #12
  %408 = load i32, ptr %387, align 4, !tbaa !5
  %409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %399, ptr noundef nonnull %.str.5.sink310, i32 noundef %400, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %403, ptr noundef %405, ptr noundef %407, i32 noundef %408) #14
  call void @exit(i32 noundef 1) #15
  unreachable

410:                                              ; preds = %137
  %411 = add nsw i32 %139, 2
  store i32 %411, ptr @test_count, align 4, !tbaa !5
  %412 = getelementptr inbounds i8, ptr %138, i64 1776
  %413 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %412, i32 noundef 5) #12
  %414 = icmp eq i32 %413, -1
  br i1 %414, label %415, label %439

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

422:                                              ; preds = %415
  %423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %424 = call i32 @fileno(ptr noundef %423) #12
  %425 = call i32 @isatty(i32 noundef %424) #12
  %.not163 = icmp eq i32 %425, 0
  br i1 %.not163, label %426, label %427

426:                                              ; preds = %422, %415
  br label %427

427:                                              ; preds = %422, %426
  %.str.5.sink321 = phi ptr [ @.str.5, %426 ], [ @.str.2, %422 ]
  store i32 %417, ptr %416, align 4, !tbaa !5
  %428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %429 = load i32, ptr @test_count, align 4, !tbaa !5
  %430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %431 = load i32, ptr %430, align 4, !tbaa !5
  %432 = call ptr @s2n_strerror(i32 noundef %431, ptr noundef nonnull @.str.4) #12
  %433 = load i32, ptr %430, align 4, !tbaa !5
  %434 = call ptr @s2n_strerror_debug(i32 noundef %433, ptr noundef nonnull @.str.4) #12
  %435 = load i32, ptr %416, align 4, !tbaa !5
  %436 = call ptr @strerror(i32 noundef %435) #12
  %437 = load i32, ptr %416, align 4, !tbaa !5
  %438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %428, ptr noundef nonnull %.str.5.sink321, i32 noundef %429, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 140, ptr noundef %432, ptr noundef %434, ptr noundef %436, i32 noundef %437) #14
  call void @exit(i32 noundef 1) #15
  unreachable

439:                                              ; preds = %410
  %440 = load ptr, ptr %9, align 8, !tbaa !9
  %441 = getelementptr inbounds i8, ptr %440, i64 1768
  store i8 -128, ptr %441, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #12
  store i8 0, ptr %10, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #12
  store i8 0, ptr %11, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %12) #12
  store i16 0, ptr %12, align 2, !tbaa !16
  %442 = getelementptr inbounds i8, ptr %440, i64 1769
  store i8 2, ptr %442, align 1, !tbaa !15
  %443 = load i32, ptr @test_count, align 4, !tbaa !5
  %444 = add nsw i32 %443, 1
  store i32 %444, ptr @test_count, align 4, !tbaa !5
  %445 = call i32 @s2n_sslv2_record_header_parse(ptr noundef %440, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef nonnull %12) #12
  %446 = icmp eq i32 %445, -1
  br i1 %446, label %471, label %447

447:                                              ; preds = %439
  %448 = tail call ptr @__errno_location() #13
  %449 = load i32, ptr %448, align 4, !tbaa !5
  %450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %451 = call i32 @s2n_print_stacktrace(ptr noundef %450) #12
  %452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %453 = trunc nuw i8 %452 to i1
  br i1 %453, label %454, label %458

454:                                              ; preds = %447
  %455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %456 = call i32 @fileno(ptr noundef %455) #12
  %457 = call i32 @isatty(i32 noundef %456) #12
  %.not = icmp eq i32 %457, 0
  br i1 %.not, label %458, label %459

458:                                              ; preds = %454, %447
  br label %459

459:                                              ; preds = %454, %458
  %.str.5.sink332 = phi ptr [ @.str.5, %458 ], [ @.str.2, %454 ]
  store i32 %449, ptr %448, align 4, !tbaa !5
  %460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %461 = load i32, ptr @test_count, align 4, !tbaa !5
  %462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %463 = load i32, ptr %462, align 4, !tbaa !5
  %464 = call ptr @s2n_strerror(i32 noundef %463, ptr noundef nonnull @.str.4) #12
  %465 = load i32, ptr %462, align 4, !tbaa !5
  %466 = call ptr @s2n_strerror_debug(i32 noundef %465, ptr noundef nonnull @.str.4) #12
  %467 = load i32, ptr %448, align 4, !tbaa !5
  %468 = call ptr @strerror(i32 noundef %467) #12
  %469 = load i32, ptr %448, align 4, !tbaa !5
  %470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %460, ptr noundef nonnull %.str.5.sink332, i32 noundef %461, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef %464, ptr noundef %466, ptr noundef %468, i32 noundef %469) #14
  call void @exit(i32 noundef 1) #15
  unreachable

471:                                              ; preds = %439
  %472 = load i32, ptr @test_count, align 4, !tbaa !5
  %473 = add nsw i32 %472, 1
  store i32 %473, ptr @test_count, align 4, !tbaa !5
  %474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = icmp eq i32 %475, 335544322
  br i1 %476, label %500, label %477

477:                                              ; preds = %471
  %478 = tail call ptr @__errno_location() #13
  %479 = load i32, ptr %478, align 4, !tbaa !5
  %480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %481 = call i32 @s2n_print_stacktrace(ptr noundef %480) #12
  %482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %483 = trunc nuw i8 %482 to i1
  br i1 %483, label %484, label %488

484:                                              ; preds = %477
  %485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %486 = call i32 @fileno(ptr noundef %485) #12
  %487 = call i32 @isatty(i32 noundef %486) #12
  %.not126 = icmp eq i32 %487, 0
  br i1 %.not126, label %488, label %489

488:                                              ; preds = %484, %477
  br label %489

489:                                              ; preds = %484, %488
  %.str.5.sink343 = phi ptr [ @.str.5, %488 ], [ @.str.2, %484 ]
  store i32 %479, ptr %478, align 4, !tbaa !5
  %490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %491 = load i32, ptr @test_count, align 4, !tbaa !5
  %492 = load i32, ptr %474, align 4, !tbaa !5
  %493 = call ptr @s2n_strerror(i32 noundef %492, ptr noundef nonnull @.str.4) #12
  %494 = load i32, ptr %474, align 4, !tbaa !5
  %495 = call ptr @s2n_strerror_debug(i32 noundef %494, ptr noundef nonnull @.str.4) #12
  %496 = load i32, ptr %478, align 4, !tbaa !5
  %497 = call ptr @strerror(i32 noundef %496) #12
  %498 = load i32, ptr %478, align 4, !tbaa !5
  %499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %490, ptr noundef nonnull %.str.5.sink343, i32 noundef %491, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef %493, ptr noundef %495, ptr noundef %497, i32 noundef %498) #14
  call void @exit(i32 noundef 1) #15
  unreachable

500:                                              ; preds = %471
  %501 = add nsw i32 %472, 2
  store i32 %501, ptr @test_count, align 4, !tbaa !5
  %502 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #12
  %503 = icmp eq ptr %502, null
  br i1 %503, label %504, label %527

504:                                              ; preds = %500
  %505 = tail call ptr @__errno_location() #13
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %508 = call i32 @s2n_print_stacktrace(ptr noundef %507) #12
  %509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %510 = trunc nuw i8 %509 to i1
  br i1 %510, label %511, label %515

511:                                              ; preds = %504
  %512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %513 = call i32 @fileno(ptr noundef %512) #12
  %514 = call i32 @isatty(i32 noundef %513) #12
  %.not162 = icmp eq i32 %514, 0
  br i1 %.not162, label %515, label %516

515:                                              ; preds = %511, %504
  br label %516

516:                                              ; preds = %511, %515
  %.str.5.sink352 = phi ptr [ @.str.5, %515 ], [ @.str.2, %511 ]
  store i32 %506, ptr %505, align 4, !tbaa !5
  %517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %518 = load i32, ptr @test_count, align 4, !tbaa !5
  %519 = load i32, ptr %474, align 4, !tbaa !5
  %520 = call ptr @s2n_strerror(i32 noundef %519, ptr noundef nonnull @.str.4) #12
  %521 = load i32, ptr %474, align 4, !tbaa !5
  %522 = call ptr @s2n_strerror_debug(i32 noundef %521, ptr noundef nonnull @.str.4) #12
  %523 = load i32, ptr %505, align 4, !tbaa !5
  %524 = call ptr @strerror(i32 noundef %523) #12
  %525 = load i32, ptr %505, align 4, !tbaa !5
  %526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %517, ptr noundef nonnull %.str.5.sink352, i32 noundef %518, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 149, ptr noundef %520, ptr noundef %522, ptr noundef %524, i32 noundef %525) #14
  call void @exit(i32 noundef 1) #15
  unreachable

527:                                              ; preds = %500
  store i32 0, ptr %474, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %528 = tail call ptr @__errno_location() #13
  store i32 0, ptr %528, align 4, !tbaa !5
  %529 = load i32, ptr @test_count, align 4, !tbaa !5
  %530 = add nsw i32 %529, 1
  store i32 %530, ptr @test_count, align 4, !tbaa !5
  %531 = load ptr, ptr %9, align 8, !tbaa !9
  %532 = getelementptr inbounds i8, ptr %531, i64 1804
  %533 = load i32, ptr %532, align 4, !tbaa !22
  %534 = getelementptr inbounds i8, ptr %531, i64 1800
  %535 = load i32, ptr %534, align 8, !tbaa !48
  %536 = sub i32 %533, %535
  %537 = icmp eq i32 %536, 3
  br i1 %537, label %560, label %538

538:                                              ; preds = %527
  %539 = load i32, ptr %528, align 4, !tbaa !5
  %540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %541 = call i32 @s2n_print_stacktrace(ptr noundef %540) #12
  %542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %543 = trunc nuw i8 %542 to i1
  br i1 %543, label %544, label %548

544:                                              ; preds = %538
  %545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %546 = call i32 @fileno(ptr noundef %545) #12
  %547 = call i32 @isatty(i32 noundef %546) #12
  %.not127 = icmp eq i32 %547, 0
  br i1 %.not127, label %548, label %549

548:                                              ; preds = %544, %538
  br label %549

549:                                              ; preds = %544, %548
  %.str.5.sink361 = phi ptr [ @.str.5, %548 ], [ @.str.2, %544 ]
  store i32 %539, ptr %528, align 4, !tbaa !5
  %550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %551 = load i32, ptr @test_count, align 4, !tbaa !5
  %552 = load i32, ptr %474, align 4, !tbaa !5
  %553 = call ptr @s2n_strerror(i32 noundef %552, ptr noundef nonnull @.str.4) #12
  %554 = load i32, ptr %474, align 4, !tbaa !5
  %555 = call ptr @s2n_strerror_debug(i32 noundef %554, ptr noundef nonnull @.str.4) #12
  %556 = load i32, ptr %528, align 4, !tbaa !5
  %557 = call ptr @strerror(i32 noundef %556) #12
  %558 = load i32, ptr %528, align 4, !tbaa !5
  %559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %550, ptr noundef nonnull %.str.5.sink361, i32 noundef %551, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %553, ptr noundef %555, ptr noundef %557, i32 noundef %558) #14
  call void @exit(i32 noundef 1) #15
  unreachable

560:                                              ; preds = %527
  %561 = add nsw i32 %529, 2
  store i32 %561, ptr @test_count, align 4, !tbaa !5
  %562 = getelementptr inbounds i8, ptr %531, i64 1776
  %563 = call i32 @s2n_stuffer_reread(ptr noundef nonnull %562) #12
  %564 = icmp eq i32 %563, -1
  br i1 %564, label %565, label %587

565:                                              ; preds = %560
  %566 = load i32, ptr %528, align 4, !tbaa !5
  %567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %568 = call i32 @s2n_print_stacktrace(ptr noundef %567) #12
  %569 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %570 = trunc nuw i8 %569 to i1
  br i1 %570, label %571, label %575

571:                                              ; preds = %565
  %572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %573 = call i32 @fileno(ptr noundef %572) #12
  %574 = call i32 @isatty(i32 noundef %573) #12
  %.not161 = icmp eq i32 %574, 0
  br i1 %.not161, label %575, label %576

575:                                              ; preds = %571, %565
  br label %576

576:                                              ; preds = %571, %575
  %.str.5.sink370 = phi ptr [ @.str.5, %575 ], [ @.str.2, %571 ]
  store i32 %566, ptr %528, align 4, !tbaa !5
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = load i32, ptr @test_count, align 4, !tbaa !5
  %579 = load i32, ptr %474, align 4, !tbaa !5
  %580 = call ptr @s2n_strerror(i32 noundef %579, ptr noundef nonnull @.str.4) #12
  %581 = load i32, ptr %474, align 4, !tbaa !5
  %582 = call ptr @s2n_strerror_debug(i32 noundef %581, ptr noundef nonnull @.str.4) #12
  %583 = load i32, ptr %528, align 4, !tbaa !5
  %584 = call ptr @strerror(i32 noundef %583) #12
  %585 = load i32, ptr %528, align 4, !tbaa !5
  %586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %577, ptr noundef nonnull %.str.5.sink370, i32 noundef %578, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %580, ptr noundef %582, ptr noundef %584, i32 noundef %585) #14
  call void @exit(i32 noundef 1) #15
  unreachable

587:                                              ; preds = %560
  %588 = load ptr, ptr %9, align 8, !tbaa !9
  %589 = getelementptr inbounds i8, ptr %588, i64 1769
  store i8 3, ptr %589, align 1, !tbaa !15
  %590 = load i32, ptr @test_count, align 4, !tbaa !5
  %591 = add nsw i32 %590, 1
  store i32 %591, ptr @test_count, align 4, !tbaa !5
  %592 = call i32 @s2n_sslv2_record_header_parse(ptr noundef %588, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef nonnull %12) #12
  %593 = icmp eq i32 %592, -1
  br i1 %593, label %594, label %616

594:                                              ; preds = %587
  %595 = load i32, ptr %528, align 4, !tbaa !5
  %596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %597 = call i32 @s2n_print_stacktrace(ptr noundef %596) #12
  %598 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %599 = trunc nuw i8 %598 to i1
  br i1 %599, label %600, label %604

600:                                              ; preds = %594
  %601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %602 = call i32 @fileno(ptr noundef %601) #12
  %603 = call i32 @isatty(i32 noundef %602) #12
  %.not160 = icmp eq i32 %603, 0
  br i1 %.not160, label %604, label %605

604:                                              ; preds = %600, %594
  br label %605

605:                                              ; preds = %600, %604
  %.str.5.sink379 = phi ptr [ @.str.5, %604 ], [ @.str.2, %600 ]
  store i32 %595, ptr %528, align 4, !tbaa !5
  %606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %607 = load i32, ptr @test_count, align 4, !tbaa !5
  %608 = load i32, ptr %474, align 4, !tbaa !5
  %609 = call ptr @s2n_strerror(i32 noundef %608, ptr noundef nonnull @.str.4) #12
  %610 = load i32, ptr %474, align 4, !tbaa !5
  %611 = call ptr @s2n_strerror_debug(i32 noundef %610, ptr noundef nonnull @.str.4) #12
  %612 = load i32, ptr %528, align 4, !tbaa !5
  %613 = call ptr @strerror(i32 noundef %612) #12
  %614 = load i32, ptr %528, align 4, !tbaa !5
  %615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %606, ptr noundef nonnull %.str.5.sink379, i32 noundef %607, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 154, ptr noundef %609, ptr noundef %611, ptr noundef %613, i32 noundef %614) #14
  call void @exit(i32 noundef 1) #15
  unreachable

616:                                              ; preds = %587
  %617 = load i32, ptr @test_count, align 4, !tbaa !5
  %618 = add nsw i32 %617, 1
  store i32 %618, ptr @test_count, align 4, !tbaa !5
  %619 = load ptr, ptr %9, align 8, !tbaa !9
  %620 = getelementptr inbounds i8, ptr %619, i64 1804
  %621 = load i32, ptr %620, align 4, !tbaa !22
  %622 = getelementptr inbounds i8, ptr %619, i64 1800
  %623 = load i32, ptr %622, align 8, !tbaa !48
  %624 = sub i32 %621, %623
  %625 = icmp eq i32 %624, 5
  br i1 %625, label %648, label %626

626:                                              ; preds = %616
  %627 = load i32, ptr %528, align 4, !tbaa !5
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = call i32 @s2n_print_stacktrace(ptr noundef %628) #12
  %630 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %631 = trunc nuw i8 %630 to i1
  br i1 %631, label %632, label %636

632:                                              ; preds = %626
  %633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %634 = call i32 @fileno(ptr noundef %633) #12
  %635 = call i32 @isatty(i32 noundef %634) #12
  %.not128 = icmp eq i32 %635, 0
  br i1 %.not128, label %636, label %637

636:                                              ; preds = %632, %626
  br label %637

637:                                              ; preds = %632, %636
  %.str.5.sink388 = phi ptr [ @.str.5, %636 ], [ @.str.2, %632 ]
  store i32 %627, ptr %528, align 4, !tbaa !5
  %638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %639 = load i32, ptr @test_count, align 4, !tbaa !5
  %640 = load i32, ptr %474, align 4, !tbaa !5
  %641 = call ptr @s2n_strerror(i32 noundef %640, ptr noundef nonnull @.str.4) #12
  %642 = load i32, ptr %474, align 4, !tbaa !5
  %643 = call ptr @s2n_strerror_debug(i32 noundef %642, ptr noundef nonnull @.str.4) #12
  %644 = load i32, ptr %528, align 4, !tbaa !5
  %645 = call ptr @strerror(i32 noundef %644) #12
  %646 = load i32, ptr %528, align 4, !tbaa !5
  %647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %638, ptr noundef nonnull %.str.5.sink388, i32 noundef %639, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 155, ptr noundef %641, ptr noundef %643, ptr noundef %645, i32 noundef %646) #14
  call void @exit(i32 noundef 1) #15
  unreachable

648:                                              ; preds = %616
  %649 = add nsw i32 %617, 2
  store i32 %649, ptr @test_count, align 4, !tbaa !5
  %650 = getelementptr inbounds i8, ptr %619, i64 1776
  %651 = call i32 @s2n_stuffer_reread(ptr noundef nonnull %650) #12
  %652 = icmp eq i32 %651, -1
  br i1 %652, label %653, label %675

653:                                              ; preds = %648
  %654 = load i32, ptr %528, align 4, !tbaa !5
  %655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %656 = call i32 @s2n_print_stacktrace(ptr noundef %655) #12
  %657 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %658 = trunc nuw i8 %657 to i1
  br i1 %658, label %659, label %663

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

663:                                              ; preds = %659, %653
  br label %664

664:                                              ; preds = %659, %663
  %.str.5.sink397 = phi ptr [ @.str.5, %663 ], [ @.str.2, %659 ]
  store i32 %654, ptr %528, align 4, !tbaa !5
  %665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %666 = load i32, ptr @test_count, align 4, !tbaa !5
  %667 = load i32, ptr %474, align 4, !tbaa !5
  %668 = call ptr @s2n_strerror(i32 noundef %667, ptr noundef nonnull @.str.4) #12
  %669 = load i32, ptr %474, align 4, !tbaa !5
  %670 = call ptr @s2n_strerror_debug(i32 noundef %669, ptr noundef nonnull @.str.4) #12
  %671 = load i32, ptr %528, align 4, !tbaa !5
  %672 = call ptr @strerror(i32 noundef %671) #12
  %673 = load i32, ptr %528, align 4, !tbaa !5
  %674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %665, ptr noundef nonnull %.str.5.sink397, i32 noundef %666, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 156, ptr noundef %668, ptr noundef %670, ptr noundef %672, i32 noundef %673) #14
  call void @exit(i32 noundef 1) #15
  unreachable

675:                                              ; preds = %648
  %676 = load ptr, ptr %9, align 8, !tbaa !9
  %677 = getelementptr inbounds i8, ptr %676, i64 1769
  store i8 0, ptr %677, align 1, !tbaa !15
  %678 = load i32, ptr @test_count, align 4, !tbaa !5
  %679 = add nsw i32 %678, 1
  store i32 %679, ptr @test_count, align 4, !tbaa !5
  %680 = call i32 @s2n_sslv2_record_header_parse(ptr noundef %676, ptr noundef nonnull %10, ptr noundef nonnull %11, ptr noundef nonnull %12) #12
  %681 = icmp eq i32 %680, -1
  br i1 %681, label %704, label %682

682:                                              ; preds = %675
  %683 = load i32, ptr %528, align 4, !tbaa !5
  %684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %685 = call i32 @s2n_print_stacktrace(ptr noundef %684) #12
  %686 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %687 = trunc nuw i8 %686 to i1
  br i1 %687, label %688, label %692

688:                                              ; preds = %682
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = call i32 @fileno(ptr noundef %689) #12
  %691 = call i32 @isatty(i32 noundef %690) #12
  %.not129 = icmp eq i32 %691, 0
  br i1 %.not129, label %692, label %693

692:                                              ; preds = %688, %682
  br label %693

693:                                              ; preds = %688, %692
  %.str.5.sink406 = phi ptr [ @.str.5, %692 ], [ @.str.2, %688 ]
  store i32 %683, ptr %528, align 4, !tbaa !5
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = load i32, ptr @test_count, align 4, !tbaa !5
  %696 = load i32, ptr %474, align 4, !tbaa !5
  %697 = call ptr @s2n_strerror(i32 noundef %696, ptr noundef nonnull @.str.4) #12
  %698 = load i32, ptr %474, align 4, !tbaa !5
  %699 = call ptr @s2n_strerror_debug(i32 noundef %698, ptr noundef nonnull @.str.4) #12
  %700 = load i32, ptr %528, align 4, !tbaa !5
  %701 = call ptr @strerror(i32 noundef %700) #12
  %702 = load i32, ptr %528, align 4, !tbaa !5
  %703 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %694, ptr noundef nonnull %.str.5.sink406, i32 noundef %695, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %697, ptr noundef %699, ptr noundef %701, i32 noundef %702) #14
  call void @exit(i32 noundef 1) #15
  unreachable

704:                                              ; preds = %675
  %705 = load i32, ptr @test_count, align 4, !tbaa !5
  %706 = add nsw i32 %705, 1
  store i32 %706, ptr @test_count, align 4, !tbaa !5
  %707 = load i32, ptr %474, align 4, !tbaa !5
  %708 = icmp eq i32 %707, 335544322
  br i1 %708, label %731, label %709

709:                                              ; preds = %704
  %710 = load i32, ptr %528, align 4, !tbaa !5
  %711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %712 = call i32 @s2n_print_stacktrace(ptr noundef %711) #12
  %713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %714 = trunc nuw i8 %713 to i1
  br i1 %714, label %715, label %719

715:                                              ; preds = %709
  %716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %717 = call i32 @fileno(ptr noundef %716) #12
  %718 = call i32 @isatty(i32 noundef %717) #12
  %.not130 = icmp eq i32 %718, 0
  br i1 %.not130, label %719, label %720

719:                                              ; preds = %715, %709
  br label %720

720:                                              ; preds = %715, %719
  %.str.5.sink415 = phi ptr [ @.str.5, %719 ], [ @.str.2, %715 ]
  store i32 %710, ptr %528, align 4, !tbaa !5
  %721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %722 = load i32, ptr @test_count, align 4, !tbaa !5
  %723 = load i32, ptr %474, align 4, !tbaa !5
  %724 = call ptr @s2n_strerror(i32 noundef %723, ptr noundef nonnull @.str.4) #12
  %725 = load i32, ptr %474, align 4, !tbaa !5
  %726 = call ptr @s2n_strerror_debug(i32 noundef %725, ptr noundef nonnull @.str.4) #12
  %727 = load i32, ptr %528, align 4, !tbaa !5
  %728 = call ptr @strerror(i32 noundef %727) #12
  %729 = load i32, ptr %528, align 4, !tbaa !5
  %730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %721, ptr noundef nonnull %.str.5.sink415, i32 noundef %722, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %724, ptr noundef %726, ptr noundef %728, i32 noundef %729) #14
  call void @exit(i32 noundef 1) #15
  unreachable

731:                                              ; preds = %704
  %732 = add nsw i32 %705, 2
  store i32 %732, ptr @test_count, align 4, !tbaa !5
  %733 = call ptr @s2n_strerror_debug(i32 noundef 335544322, ptr noundef nonnull @.str.4) #12
  %734 = icmp eq ptr %733, null
  br i1 %734, label %735, label %757

735:                                              ; preds = %731
  %736 = load i32, ptr %528, align 4, !tbaa !5
  %737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %738 = call i32 @s2n_print_stacktrace(ptr noundef %737) #12
  %739 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %740 = trunc nuw i8 %739 to i1
  br i1 %740, label %741, label %745

741:                                              ; preds = %735
  %742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %743 = call i32 @fileno(ptr noundef %742) #12
  %744 = call i32 @isatty(i32 noundef %743) #12
  %.not158 = icmp eq i32 %744, 0
  br i1 %.not158, label %745, label %746

745:                                              ; preds = %741, %735
  br label %746

746:                                              ; preds = %741, %745
  %.str.5.sink424 = phi ptr [ @.str.5, %745 ], [ @.str.2, %741 ]
  store i32 %736, ptr %528, align 4, !tbaa !5
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = load i32, ptr @test_count, align 4, !tbaa !5
  %749 = load i32, ptr %474, align 4, !tbaa !5
  %750 = call ptr @s2n_strerror(i32 noundef %749, ptr noundef nonnull @.str.4) #12
  %751 = load i32, ptr %474, align 4, !tbaa !5
  %752 = call ptr @s2n_strerror_debug(i32 noundef %751, ptr noundef nonnull @.str.4) #12
  %753 = load i32, ptr %528, align 4, !tbaa !5
  %754 = call ptr @strerror(i32 noundef %753) #12
  %755 = load i32, ptr %528, align 4, !tbaa !5
  %756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %747, ptr noundef nonnull %.str.5.sink424, i32 noundef %748, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %750, ptr noundef %752, ptr noundef %754, i32 noundef %755) #14
  call void @exit(i32 noundef 1) #15
  unreachable

757:                                              ; preds = %731
  store i32 0, ptr %474, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %528, align 4, !tbaa !5
  %758 = load i32, ptr @test_count, align 4, !tbaa !5
  %759 = add nsw i32 %758, 1
  store i32 %759, ptr @test_count, align 4, !tbaa !5
  %760 = load ptr, ptr %9, align 8, !tbaa !9
  %761 = getelementptr inbounds i8, ptr %760, i64 1804
  %762 = load i32, ptr %761, align 4, !tbaa !22
  %763 = getelementptr inbounds i8, ptr %760, i64 1800
  %764 = load i32, ptr %763, align 8, !tbaa !48
  %765 = sub i32 %762, %764
  %766 = icmp eq i32 %765, 3
  br i1 %766, label %789, label %767

767:                                              ; preds = %757
  %768 = load i32, ptr %528, align 4, !tbaa !5
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = call i32 @s2n_print_stacktrace(ptr noundef %769) #12
  %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) #12
  %776 = call i32 @isatty(i32 noundef %775) #12
  %.not131 = icmp eq i32 %776, 0
  br i1 %.not131, label %777, label %778

777:                                              ; preds = %773, %767
  br label %778

778:                                              ; preds = %773, %777
  %.str.5.sink433 = phi ptr [ @.str.5, %777 ], [ @.str.2, %773 ]
  store i32 %768, ptr %528, 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 %474, align 4, !tbaa !5
  %782 = call ptr @s2n_strerror(i32 noundef %781, ptr noundef nonnull @.str.4) #12
  %783 = load i32, ptr %474, align 4, !tbaa !5
  %784 = call ptr @s2n_strerror_debug(i32 noundef %783, ptr noundef nonnull @.str.4) #12
  %785 = load i32, ptr %528, align 4, !tbaa !5
  %786 = call ptr @strerror(i32 noundef %785) #12
  %787 = load i32, ptr %528, align 4, !tbaa !5
  %788 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %779, ptr noundef nonnull %.str.5.sink433, i32 noundef %780, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %782, ptr noundef %784, ptr noundef %786, i32 noundef %787) #14
  call void @exit(i32 noundef 1) #15
  unreachable

789:                                              ; preds = %757
  %790 = add nsw i32 %758, 2
  store i32 %790, ptr @test_count, align 4, !tbaa !5
  %791 = getelementptr inbounds i8, ptr %760, i64 1776
  %792 = call i32 @s2n_stuffer_reread(ptr noundef nonnull %791) #12
  %793 = icmp eq i32 %792, -1
  br i1 %793, label %794, label %816

794:                                              ; preds = %789
  %795 = load i32, ptr %528, align 4, !tbaa !5
  %796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %797 = call i32 @s2n_print_stacktrace(ptr noundef %796) #12
  %798 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %799 = trunc nuw i8 %798 to i1
  br i1 %799, label %800, label %804

800:                                              ; preds = %794
  %801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %802 = call i32 @fileno(ptr noundef %801) #12
  %803 = call i32 @isatty(i32 noundef %802) #12
  %.not157 = icmp eq i32 %803, 0
  br i1 %.not157, label %804, label %805

804:                                              ; preds = %800, %794
  br label %805

805:                                              ; preds = %800, %804
  %.str.5.sink442 = phi ptr [ @.str.5, %804 ], [ @.str.2, %800 ]
  store i32 %795, ptr %528, align 4, !tbaa !5
  %806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %807 = load i32, ptr @test_count, align 4, !tbaa !5
  %808 = load i32, ptr %474, align 4, !tbaa !5
  %809 = call ptr @s2n_strerror(i32 noundef %808, ptr noundef nonnull @.str.4) #12
  %810 = load i32, ptr %474, align 4, !tbaa !5
  %811 = call ptr @s2n_strerror_debug(i32 noundef %810, ptr noundef nonnull @.str.4) #12
  %812 = load i32, ptr %528, align 4, !tbaa !5
  %813 = call ptr @strerror(i32 noundef %812) #12
  %814 = load i32, ptr %528, align 4, !tbaa !5
  %815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %806, ptr noundef nonnull %.str.5.sink442, i32 noundef %807, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %809, ptr noundef %811, ptr noundef %813, i32 noundef %814) #14
  call void @exit(i32 noundef 1) #15
  unreachable

816:                                              ; preds = %789
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #12
  %817 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 110, ptr nonnull %4) #12
  %818 = getelementptr inbounds i8, ptr %16, i64 40
  br label %822

819:                                              ; preds = %1391
  %820 = call i32 @s2n_cleanup() #12
  %821 = icmp eq i32 %820, -1
  br i1 %821, label %1392, label %1414

822:                                              ; preds = %816, %1391
  %823 = phi i1 [ true, %816 ], [ false, %1391 ]
  %.0122178 = phi i64 [ 0, %816 ], [ 1, %1391 ]
  %824 = getelementptr inbounds [2 x %struct.anon.0], ptr @__const.main.policy_test_cases, i64 0, i64 %.0122178
  %825 = getelementptr inbounds i8, ptr %824, i64 8
  %826 = load i8, ptr %825, align 8, !tbaa !51
  %827 = icmp eq i8 %826, 34
  br i1 %827, label %828, label %830

828:                                              ; preds = %822
  %829 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #12
  br i1 %829, label %830, label %1391

830:                                              ; preds = %828, %822
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #12
  %831 = call ptr @s2n_config_new_minimal() #12
  store ptr %831, ptr %13, align 8, !tbaa !9
  %832 = load i32, ptr @test_count, align 4, !tbaa !5
  %833 = add nsw i32 %832, 1
  store i32 %833, ptr @test_count, align 4, !tbaa !5
  %834 = icmp eq ptr %831, null
  br i1 %834, label %835, label %857

835:                                              ; preds = %830
  %836 = load i32, ptr %528, align 4, !tbaa !5
  %837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %838 = call i32 @s2n_print_stacktrace(ptr noundef %837) #12
  %839 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %840 = trunc nuw i8 %839 to i1
  br i1 %840, label %841, label %845

841:                                              ; preds = %835
  %842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %843 = call i32 @fileno(ptr noundef %842) #12
  %844 = call i32 @isatty(i32 noundef %843) #12
  %.not156 = icmp eq i32 %844, 0
  br i1 %.not156, label %845, label %846

845:                                              ; preds = %841, %835
  br label %846

846:                                              ; preds = %841, %845
  %.str.5.sink451 = phi ptr [ @.str.5, %845 ], [ @.str.2, %841 ]
  store i32 %836, ptr %528, align 4, !tbaa !5
  %847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %848 = load i32, ptr @test_count, align 4, !tbaa !5
  %849 = load i32, ptr %474, align 4, !tbaa !5
  %850 = call ptr @s2n_strerror(i32 noundef %849, ptr noundef nonnull @.str.4) #12
  %851 = load i32, ptr %474, align 4, !tbaa !5
  %852 = call ptr @s2n_strerror_debug(i32 noundef %851, ptr noundef nonnull @.str.4) #12
  %853 = load i32, ptr %528, align 4, !tbaa !5
  %854 = call ptr @strerror(i32 noundef %853) #12
  %855 = load i32, ptr %528, align 4, !tbaa !5
  %856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %847, ptr noundef nonnull %.str.5.sink451, i32 noundef %848, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 182, ptr noundef %850, ptr noundef %852, ptr noundef %854, i32 noundef %855) #14
  call void @exit(i32 noundef 1) #15
  unreachable

857:                                              ; preds = %830
  %858 = add nsw i32 %832, 2
  store i32 %858, ptr @test_count, align 4, !tbaa !5
  %859 = load ptr, ptr %3, align 8, !tbaa !9
  %860 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef nonnull %831, ptr noundef %859) #12
  %861 = icmp eq i32 %860, -1
  br i1 %861, label %862, label %884

862:                                              ; preds = %857
  %863 = load i32, ptr %528, align 4, !tbaa !5
  %864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %865 = call i32 @s2n_print_stacktrace(ptr noundef %864) #12
  %866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %867 = trunc nuw i8 %866 to i1
  br i1 %867, label %868, label %872

868:                                              ; preds = %862
  %869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %870 = call i32 @fileno(ptr noundef %869) #12
  %871 = call i32 @isatty(i32 noundef %870) #12
  %.not155 = icmp eq i32 %871, 0
  br i1 %.not155, label %872, label %873

872:                                              ; preds = %868, %862
  br label %873

873:                                              ; preds = %868, %872
  %.str.5.sink460 = phi ptr [ @.str.5, %872 ], [ @.str.2, %868 ]
  store i32 %863, ptr %528, align 4, !tbaa !5
  %874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %875 = load i32, ptr @test_count, align 4, !tbaa !5
  %876 = load i32, ptr %474, align 4, !tbaa !5
  %877 = call ptr @s2n_strerror(i32 noundef %876, ptr noundef nonnull @.str.4) #12
  %878 = load i32, ptr %474, align 4, !tbaa !5
  %879 = call ptr @s2n_strerror_debug(i32 noundef %878, ptr noundef nonnull @.str.4) #12
  %880 = load i32, ptr %528, align 4, !tbaa !5
  %881 = call ptr @strerror(i32 noundef %880) #12
  %882 = load i32, ptr %528, align 4, !tbaa !5
  %883 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %874, ptr noundef nonnull %.str.5.sink460, i32 noundef %875, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 183, ptr noundef %877, ptr noundef %879, ptr noundef %881, i32 noundef %882) #14
  call void @exit(i32 noundef 1) #15
  unreachable

884:                                              ; preds = %857
  %885 = load i32, ptr @test_count, align 4, !tbaa !5
  %886 = add nsw i32 %885, 1
  store i32 %886, ptr @test_count, align 4, !tbaa !5
  %887 = load ptr, ptr %13, align 8, !tbaa !9
  %888 = call i32 @s2n_config_disable_x509_verification(ptr noundef %887) #12
  %889 = icmp eq i32 %888, -1
  br i1 %889, label %890, label %912

890:                                              ; preds = %884
  %891 = load i32, ptr %528, align 4, !tbaa !5
  %892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %893 = call i32 @s2n_print_stacktrace(ptr noundef %892) #12
  %894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %895 = trunc nuw i8 %894 to i1
  br i1 %895, label %896, label %900

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

900:                                              ; preds = %896, %890
  br label %901

901:                                              ; preds = %896, %900
  %.str.5.sink469 = phi ptr [ @.str.5, %900 ], [ @.str.2, %896 ]
  store i32 %891, ptr %528, align 4, !tbaa !5
  %902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %903 = load i32, ptr @test_count, align 4, !tbaa !5
  %904 = load i32, ptr %474, align 4, !tbaa !5
  %905 = call ptr @s2n_strerror(i32 noundef %904, ptr noundef nonnull @.str.4) #12
  %906 = load i32, ptr %474, align 4, !tbaa !5
  %907 = call ptr @s2n_strerror_debug(i32 noundef %906, ptr noundef nonnull @.str.4) #12
  %908 = load i32, ptr %528, align 4, !tbaa !5
  %909 = call ptr @strerror(i32 noundef %908) #12
  %910 = load i32, ptr %528, align 4, !tbaa !5
  %911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %902, ptr noundef nonnull %.str.5.sink469, i32 noundef %903, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 184, ptr noundef %905, ptr noundef %907, ptr noundef %909, i32 noundef %910) #14
  call void @exit(i32 noundef 1) #15
  unreachable

912:                                              ; preds = %884
  %913 = load i32, ptr @test_count, align 4, !tbaa !5
  %914 = add nsw i32 %913, 1
  store i32 %914, ptr @test_count, align 4, !tbaa !5
  %915 = load ptr, ptr %13, align 8, !tbaa !9
  %916 = load ptr, ptr %824, align 16, !tbaa !53
  %917 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %915, ptr noundef %916) #12
  %918 = icmp eq i32 %917, -1
  br i1 %918, label %919, label %941

919:                                              ; preds = %912
  %920 = load i32, ptr %528, align 4, !tbaa !5
  %921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %922 = call i32 @s2n_print_stacktrace(ptr noundef %921) #12
  %923 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %924 = trunc nuw i8 %923 to i1
  br i1 %924, label %925, label %929

925:                                              ; preds = %919
  %926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %927 = call i32 @fileno(ptr noundef %926) #12
  %928 = call i32 @isatty(i32 noundef %927) #12
  %.not153 = icmp eq i32 %928, 0
  br i1 %.not153, label %929, label %930

929:                                              ; preds = %925, %919
  br label %930

930:                                              ; preds = %925, %929
  %.str.5.sink478 = phi ptr [ @.str.5, %929 ], [ @.str.2, %925 ]
  store i32 %920, ptr %528, align 4, !tbaa !5
  %931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %932 = load i32, ptr @test_count, align 4, !tbaa !5
  %933 = load i32, ptr %474, align 4, !tbaa !5
  %934 = call ptr @s2n_strerror(i32 noundef %933, ptr noundef nonnull @.str.4) #12
  %935 = load i32, ptr %474, align 4, !tbaa !5
  %936 = call ptr @s2n_strerror_debug(i32 noundef %935, ptr noundef nonnull @.str.4) #12
  %937 = load i32, ptr %528, align 4, !tbaa !5
  %938 = call ptr @strerror(i32 noundef %937) #12
  %939 = load i32, ptr %528, align 4, !tbaa !5
  %940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %931, ptr noundef nonnull %.str.5.sink478, i32 noundef %932, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 185, ptr noundef %934, ptr noundef %936, ptr noundef %938, i32 noundef %939) #14
  call void @exit(i32 noundef 1) #15
  unreachable

941:                                              ; preds = %912
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #12
  %942 = call ptr @s2n_connection_new(i32 noundef 1) #12
  store ptr %942, ptr %14, align 8, !tbaa !9
  %943 = load i32, ptr @test_count, align 4, !tbaa !5
  %944 = add nsw i32 %943, 1
  store i32 %944, ptr @test_count, align 4, !tbaa !5
  %945 = icmp eq ptr %942, null
  br i1 %945, label %946, label %968

946:                                              ; preds = %941
  %947 = load i32, ptr %528, align 4, !tbaa !5
  %948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %949 = call i32 @s2n_print_stacktrace(ptr noundef %948) #12
  %950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %951 = trunc nuw i8 %950 to i1
  br i1 %951, label %952, label %956

952:                                              ; preds = %946
  %953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %954 = call i32 @fileno(ptr noundef %953) #12
  %955 = call i32 @isatty(i32 noundef %954) #12
  %.not152 = icmp eq i32 %955, 0
  br i1 %.not152, label %956, label %957

956:                                              ; preds = %952, %946
  br label %957

957:                                              ; preds = %952, %956
  %.str.5.sink487 = phi ptr [ @.str.5, %956 ], [ @.str.2, %952 ]
  store i32 %947, ptr %528, align 4, !tbaa !5
  %958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %959 = load i32, ptr @test_count, align 4, !tbaa !5
  %960 = load i32, ptr %474, align 4, !tbaa !5
  %961 = call ptr @s2n_strerror(i32 noundef %960, ptr noundef nonnull @.str.4) #12
  %962 = load i32, ptr %474, align 4, !tbaa !5
  %963 = call ptr @s2n_strerror_debug(i32 noundef %962, ptr noundef nonnull @.str.4) #12
  %964 = load i32, ptr %528, align 4, !tbaa !5
  %965 = call ptr @strerror(i32 noundef %964) #12
  %966 = load i32, ptr %528, align 4, !tbaa !5
  %967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %958, ptr noundef nonnull %.str.5.sink487, i32 noundef %959, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 189, ptr noundef %961, ptr noundef %963, ptr noundef %965, i32 noundef %966) #14
  call void @exit(i32 noundef 1) #15
  unreachable

968:                                              ; preds = %941
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #12
  %969 = call ptr @s2n_connection_new(i32 noundef 0) #12
  store ptr %969, ptr %15, align 8, !tbaa !9
  %970 = load i32, ptr @test_count, align 4, !tbaa !5
  %971 = add nsw i32 %970, 1
  store i32 %971, ptr @test_count, align 4, !tbaa !5
  %972 = icmp eq ptr %969, null
  br i1 %972, label %973, label %995

973:                                              ; preds = %968
  %974 = load i32, ptr %528, align 4, !tbaa !5
  %975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %976 = call i32 @s2n_print_stacktrace(ptr noundef %975) #12
  %977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %978 = trunc nuw i8 %977 to i1
  br i1 %978, label %979, label %983

979:                                              ; preds = %973
  %980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %981 = call i32 @fileno(ptr noundef %980) #12
  %982 = call i32 @isatty(i32 noundef %981) #12
  %.not151 = icmp eq i32 %982, 0
  br i1 %.not151, label %983, label %984

983:                                              ; preds = %979, %973
  br label %984

984:                                              ; preds = %979, %983
  %.str.5.sink496 = phi ptr [ @.str.5, %983 ], [ @.str.2, %979 ]
  store i32 %974, ptr %528, align 4, !tbaa !5
  %985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %986 = load i32, ptr @test_count, align 4, !tbaa !5
  %987 = load i32, ptr %474, align 4, !tbaa !5
  %988 = call ptr @s2n_strerror(i32 noundef %987, ptr noundef nonnull @.str.4) #12
  %989 = load i32, ptr %474, align 4, !tbaa !5
  %990 = call ptr @s2n_strerror_debug(i32 noundef %989, ptr noundef nonnull @.str.4) #12
  %991 = load i32, ptr %528, align 4, !tbaa !5
  %992 = call ptr @strerror(i32 noundef %991) #12
  %993 = load i32, ptr %528, align 4, !tbaa !5
  %994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %985, ptr noundef nonnull %.str.5.sink496, i32 noundef %986, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 192, ptr noundef %988, ptr noundef %990, ptr noundef %992, i32 noundef %993) #14
  call void @exit(i32 noundef 1) #15
  unreachable

995:                                              ; preds = %968
  %996 = add nsw i32 %970, 2
  store i32 %996, ptr @test_count, align 4, !tbaa !5
  %997 = load ptr, ptr %14, align 8, !tbaa !9
  %998 = load ptr, ptr %13, align 8, !tbaa !9
  %999 = call i32 @s2n_connection_set_config(ptr noundef %997, ptr noundef %998) #12
  %1000 = icmp eq i32 %999, -1
  br i1 %1000, label %1001, label %1023

1001:                                             ; preds = %995
  %1002 = load i32, ptr %528, align 4, !tbaa !5
  %1003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1004 = call i32 @s2n_print_stacktrace(ptr noundef %1003) #12
  %1005 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1006 = trunc nuw i8 %1005 to i1
  br i1 %1006, label %1007, label %1011

1007:                                             ; preds = %1001
  %1008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1009 = call i32 @fileno(ptr noundef %1008) #12
  %1010 = call i32 @isatty(i32 noundef %1009) #12
  %.not150 = icmp eq i32 %1010, 0
  br i1 %.not150, label %1011, label %1012

1011:                                             ; preds = %1007, %1001
  br label %1012

1012:                                             ; preds = %1007, %1011
  %.str.5.sink505 = phi ptr [ @.str.5, %1011 ], [ @.str.2, %1007 ]
  store i32 %1002, ptr %528, align 4, !tbaa !5
  %1013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1014 = load i32, ptr @test_count, align 4, !tbaa !5
  %1015 = load i32, ptr %474, align 4, !tbaa !5
  %1016 = call ptr @s2n_strerror(i32 noundef %1015, ptr noundef nonnull @.str.4) #12
  %1017 = load i32, ptr %474, align 4, !tbaa !5
  %1018 = call ptr @s2n_strerror_debug(i32 noundef %1017, ptr noundef nonnull @.str.4) #12
  %1019 = load i32, ptr %528, align 4, !tbaa !5
  %1020 = call ptr @strerror(i32 noundef %1019) #12
  %1021 = load i32, ptr %528, align 4, !tbaa !5
  %1022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1013, ptr noundef nonnull %.str.5.sink505, i32 noundef %1014, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 194, ptr noundef %1016, ptr noundef %1018, ptr noundef %1020, i32 noundef %1021) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1023:                                             ; preds = %995
  %1024 = load i32, ptr @test_count, align 4, !tbaa !5
  %1025 = add nsw i32 %1024, 1
  store i32 %1025, ptr @test_count, align 4, !tbaa !5
  %1026 = load ptr, ptr %15, align 8, !tbaa !9
  %1027 = load ptr, ptr %13, align 8, !tbaa !9
  %1028 = call i32 @s2n_connection_set_config(ptr noundef %1026, ptr noundef %1027) #12
  %1029 = icmp eq i32 %1028, -1
  br i1 %1029, label %1030, label %1052

1030:                                             ; preds = %1023
  %1031 = load i32, ptr %528, align 4, !tbaa !5
  %1032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1033 = call i32 @s2n_print_stacktrace(ptr noundef %1032) #12
  %1034 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1035 = trunc nuw i8 %1034 to i1
  br i1 %1035, label %1036, label %1040

1036:                                             ; preds = %1030
  %1037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1038 = call i32 @fileno(ptr noundef %1037) #12
  %1039 = call i32 @isatty(i32 noundef %1038) #12
  %.not149 = icmp eq i32 %1039, 0
  br i1 %.not149, label %1040, label %1041

1040:                                             ; preds = %1036, %1030
  br label %1041

1041:                                             ; preds = %1036, %1040
  %.str.5.sink514 = phi ptr [ @.str.5, %1040 ], [ @.str.2, %1036 ]
  store i32 %1031, ptr %528, align 4, !tbaa !5
  %1042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1043 = load i32, ptr @test_count, align 4, !tbaa !5
  %1044 = load i32, ptr %474, align 4, !tbaa !5
  %1045 = call ptr @s2n_strerror(i32 noundef %1044, ptr noundef nonnull @.str.4) #12
  %1046 = load i32, ptr %474, align 4, !tbaa !5
  %1047 = call ptr @s2n_strerror_debug(i32 noundef %1046, ptr noundef nonnull @.str.4) #12
  %1048 = load i32, ptr %528, align 4, !tbaa !5
  %1049 = call ptr @strerror(i32 noundef %1048) #12
  %1050 = load i32, ptr %528, align 4, !tbaa !5
  %1051 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1042, ptr noundef nonnull %.str.5.sink514, i32 noundef %1043, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef %1045, ptr noundef %1047, ptr noundef %1049, i32 noundef %1050) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1052:                                             ; preds = %1023
  %1053 = load i32, ptr @test_count, align 4, !tbaa !5
  %1054 = add nsw i32 %1053, 1
  store i32 %1054, ptr @test_count, align 4, !tbaa !5
  %1055 = load ptr, ptr %15, align 8, !tbaa !9
  %1056 = call i32 @s2n_connection_set_blinding(ptr noundef %1055, i32 noundef 1) #12
  %1057 = icmp eq i32 %1056, -1
  br i1 %1057, label %1058, label %1080

1058:                                             ; preds = %1052
  %1059 = load i32, ptr %528, align 4, !tbaa !5
  %1060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1061 = call i32 @s2n_print_stacktrace(ptr noundef %1060) #12
  %1062 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1063 = trunc nuw i8 %1062 to i1
  br i1 %1063, label %1064, label %1068

1064:                                             ; preds = %1058
  %1065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1066 = call i32 @fileno(ptr noundef %1065) #12
  %1067 = call i32 @isatty(i32 noundef %1066) #12
  %.not148 = icmp eq i32 %1067, 0
  br i1 %.not148, label %1068, label %1069

1068:                                             ; preds = %1064, %1058
  br label %1069

1069:                                             ; preds = %1064, %1068
  %.str.5.sink523 = phi ptr [ @.str.5, %1068 ], [ @.str.2, %1064 ]
  store i32 %1059, ptr %528, align 4, !tbaa !5
  %1070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1071 = load i32, ptr @test_count, align 4, !tbaa !5
  %1072 = load i32, ptr %474, align 4, !tbaa !5
  %1073 = call ptr @s2n_strerror(i32 noundef %1072, ptr noundef nonnull @.str.4) #12
  %1074 = load i32, ptr %474, align 4, !tbaa !5
  %1075 = call ptr @s2n_strerror_debug(i32 noundef %1074, ptr noundef nonnull @.str.4) #12
  %1076 = load i32, ptr %528, align 4, !tbaa !5
  %1077 = call ptr @strerror(i32 noundef %1076) #12
  %1078 = load i32, ptr %528, align 4, !tbaa !5
  %1079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1070, ptr noundef nonnull %.str.5.sink523, i32 noundef %1071, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 197, ptr noundef %1073, ptr noundef %1075, ptr noundef %1077, i32 noundef %1078) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1080:                                             ; preds = %1052
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %16) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %16, i8 0, i64 80, i1 false)
  %1081 = load i32, ptr @test_count, align 4, !tbaa !5
  %1082 = add nsw i32 %1081, 1
  store i32 %1082, ptr @test_count, align 4, !tbaa !5
  %1083 = call i32 @s2n_io_stuffer_pair_init(ptr noundef nonnull %16) #12
  %1084 = call zeroext i1 @s2n_result_is_ok(i32 %1083)
  br i1 %1084, label %1107, label %1085

1085:                                             ; preds = %1080
  %1086 = load i32, ptr %528, align 4, !tbaa !5
  %1087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1088 = call i32 @s2n_print_stacktrace(ptr noundef %1087) #12
  %1089 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1090 = trunc nuw i8 %1089 to i1
  br i1 %1090, label %1091, label %1095

1091:                                             ; preds = %1085
  %1092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1093 = call i32 @fileno(ptr noundef %1092) #12
  %1094 = call i32 @isatty(i32 noundef %1093) #12
  %.not137 = icmp eq i32 %1094, 0
  br i1 %.not137, label %1095, label %1096

1095:                                             ; preds = %1091, %1085
  br label %1096

1096:                                             ; preds = %1091, %1095
  %.str.5.sink532 = phi ptr [ @.str.5, %1095 ], [ @.str.2, %1091 ]
  store i32 %1086, ptr %528, align 4, !tbaa !5
  %1097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1098 = load i32, ptr @test_count, align 4, !tbaa !5
  %1099 = load i32, ptr %474, align 4, !tbaa !5
  %1100 = call ptr @s2n_strerror(i32 noundef %1099, ptr noundef nonnull @.str.4) #12
  %1101 = load i32, ptr %474, align 4, !tbaa !5
  %1102 = call ptr @s2n_strerror_debug(i32 noundef %1101, ptr noundef nonnull @.str.4) #12
  %1103 = load i32, ptr %528, align 4, !tbaa !5
  %1104 = call ptr @strerror(i32 noundef %1103) #12
  %1105 = load i32, ptr %528, align 4, !tbaa !5
  %1106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1097, ptr noundef nonnull %.str.5.sink532, i32 noundef %1098, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %1100, ptr noundef %1102, ptr noundef %1104, i32 noundef %1105) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1107:                                             ; preds = %1080
  %1108 = load i32, ptr @test_count, align 4, !tbaa !5
  %1109 = add nsw i32 %1108, 1
  store i32 %1109, ptr @test_count, align 4, !tbaa !5
  %1110 = load ptr, ptr %14, align 8, !tbaa !9
  %1111 = load ptr, ptr %15, align 8, !tbaa !9
  %1112 = call i32 @s2n_connections_set_io_stuffer_pair(ptr noundef %1110, ptr noundef %1111, ptr noundef nonnull %16) #12
  %1113 = call zeroext i1 @s2n_result_is_ok(i32 %1112)
  br i1 %1113, label %1136, label %1114

1114:                                             ; preds = %1107
  %1115 = load i32, ptr %528, align 4, !tbaa !5
  %1116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1117 = call i32 @s2n_print_stacktrace(ptr noundef %1116) #12
  %1118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1119 = trunc nuw i8 %1118 to i1
  br i1 %1119, label %1120, label %1124

1120:                                             ; preds = %1114
  %1121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1122 = call i32 @fileno(ptr noundef %1121) #12
  %1123 = call i32 @isatty(i32 noundef %1122) #12
  %.not138 = icmp eq i32 %1123, 0
  br i1 %.not138, label %1124, label %1125

1124:                                             ; preds = %1120, %1114
  br label %1125

1125:                                             ; preds = %1120, %1124
  %.str.5.sink541 = phi ptr [ @.str.5, %1124 ], [ @.str.2, %1120 ]
  store i32 %1115, ptr %528, align 4, !tbaa !5
  %1126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1127 = load i32, ptr @test_count, align 4, !tbaa !5
  %1128 = load i32, ptr %474, align 4, !tbaa !5
  %1129 = call ptr @s2n_strerror(i32 noundef %1128, ptr noundef nonnull @.str.4) #12
  %1130 = load i32, ptr %474, align 4, !tbaa !5
  %1131 = call ptr @s2n_strerror_debug(i32 noundef %1130, ptr noundef nonnull @.str.4) #12
  %1132 = load i32, ptr %528, align 4, !tbaa !5
  %1133 = call ptr @strerror(i32 noundef %1132) #12
  %1134 = load i32, ptr %528, align 4, !tbaa !5
  %1135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1126, ptr noundef nonnull %.str.5.sink541, i32 noundef %1127, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 202, ptr noundef %1129, ptr noundef %1131, ptr noundef %1133, i32 noundef %1134) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1136:                                             ; preds = %1107
  %1137 = load i32, ptr @test_count, align 4, !tbaa !5
  %1138 = add nsw i32 %1137, 1
  store i32 %1138, ptr @test_count, align 4, !tbaa !5
  %1139 = load ptr, ptr %15, align 8, !tbaa !9
  %1140 = load ptr, ptr %14, align 8, !tbaa !9
  %1141 = call i32 @s2n_negotiate_test_server_and_client(ptr noundef %1139, ptr noundef %1140) #12
  %1142 = icmp eq i32 %1141, -1
  br i1 %1142, label %1143, label %1165

1143:                                             ; preds = %1136
  %1144 = load i32, ptr %528, align 4, !tbaa !5
  %1145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1146 = call i32 @s2n_print_stacktrace(ptr noundef %1145) #12
  %1147 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1148 = trunc nuw i8 %1147 to i1
  br i1 %1148, label %1149, label %1153

1149:                                             ; preds = %1143
  %1150 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1151 = call i32 @fileno(ptr noundef %1150) #12
  %1152 = call i32 @isatty(i32 noundef %1151) #12
  %.not147 = icmp eq i32 %1152, 0
  br i1 %.not147, label %1153, label %1154

1153:                                             ; preds = %1149, %1143
  br label %1154

1154:                                             ; preds = %1149, %1153
  %.str.5.sink550 = phi ptr [ @.str.5, %1153 ], [ @.str.2, %1149 ]
  store i32 %1144, ptr %528, align 4, !tbaa !5
  %1155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1156 = load i32, ptr @test_count, align 4, !tbaa !5
  %1157 = load i32, ptr %474, align 4, !tbaa !5
  %1158 = call ptr @s2n_strerror(i32 noundef %1157, ptr noundef nonnull @.str.4) #12
  %1159 = load i32, ptr %474, align 4, !tbaa !5
  %1160 = call ptr @s2n_strerror_debug(i32 noundef %1159, ptr noundef nonnull @.str.4) #12
  %1161 = load i32, ptr %528, align 4, !tbaa !5
  %1162 = call ptr @strerror(i32 noundef %1161) #12
  %1163 = load i32, ptr %528, align 4, !tbaa !5
  %1164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1155, ptr noundef nonnull %.str.5.sink550, i32 noundef %1156, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 204, ptr noundef %1158, ptr noundef %1160, ptr noundef %1162, i32 noundef %1163) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1165:                                             ; preds = %1136
  %1166 = load i32, ptr @test_count, align 4, !tbaa !5
  %1167 = add nsw i32 %1166, 1
  store i32 %1167, ptr @test_count, align 4, !tbaa !5
  %1168 = load ptr, ptr %15, align 8, !tbaa !9
  %1169 = getelementptr inbounds i8, ptr %1168, i64 220
  %1170 = load i8, ptr %1169, align 4, !tbaa !54
  %1171 = icmp eq i8 %1170, %826
  br i1 %1171, label %1194, label %1172

1172:                                             ; preds = %1165
  %1173 = load i32, ptr %528, align 4, !tbaa !5
  %1174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1175 = call i32 @s2n_print_stacktrace(ptr noundef %1174) #12
  %1176 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1177 = trunc nuw i8 %1176 to i1
  br i1 %1177, label %1178, label %1182

1178:                                             ; preds = %1172
  %1179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1180 = call i32 @fileno(ptr noundef %1179) #12
  %1181 = call i32 @isatty(i32 noundef %1180) #12
  %.not139 = icmp eq i32 %1181, 0
  br i1 %.not139, label %1182, label %1183

1182:                                             ; preds = %1178, %1172
  br label %1183

1183:                                             ; preds = %1178, %1182
  %.str.5.sink559 = phi ptr [ @.str.5, %1182 ], [ @.str.2, %1178 ]
  store i32 %1173, ptr %528, align 4, !tbaa !5
  %1184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1185 = load i32, ptr @test_count, align 4, !tbaa !5
  %1186 = load i32, ptr %474, align 4, !tbaa !5
  %1187 = call ptr @s2n_strerror(i32 noundef %1186, ptr noundef nonnull @.str.4) #12
  %1188 = load i32, ptr %474, align 4, !tbaa !5
  %1189 = call ptr @s2n_strerror_debug(i32 noundef %1188, ptr noundef nonnull @.str.4) #12
  %1190 = load i32, ptr %528, align 4, !tbaa !5
  %1191 = call ptr @strerror(i32 noundef %1190) #12
  %1192 = load i32, ptr %528, align 4, !tbaa !5
  %1193 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1184, ptr noundef nonnull %.str.5.sink559, i32 noundef %1185, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 205, ptr noundef %1187, ptr noundef %1189, ptr noundef %1191, i32 noundef %1192) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1194:                                             ; preds = %1165
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %17) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(12) %17, ptr noundef nonnull align 1 dereferenceable(12) @__const.main.test_data, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %18) #12
  store i32 0, ptr %18, align 4, !tbaa !5
  %1195 = load ptr, ptr %14, align 8, !tbaa !9
  %1196 = call i64 @s2n_send(ptr noundef %1195, ptr noundef nonnull %17, i64 noundef 12, ptr noundef nonnull %18) #12
  %1197 = load i32, ptr @test_count, align 4, !tbaa !5
  %1198 = add nsw i32 %1197, 1
  store i32 %1198, ptr @test_count, align 4, !tbaa !5
  %1199 = icmp eq i64 %1196, 12
  br i1 %1199, label %1222, label %1200

1200:                                             ; preds = %1194
  %1201 = load i32, ptr %528, align 4, !tbaa !5
  %1202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1203 = call i32 @s2n_print_stacktrace(ptr noundef %1202) #12
  %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) #12
  %1209 = call i32 @isatty(i32 noundef %1208) #12
  %.not140 = icmp eq i32 %1209, 0
  br i1 %.not140, label %1210, label %1211

1210:                                             ; preds = %1206, %1200
  br label %1211

1211:                                             ; preds = %1206, %1210
  %.str.5.sink568 = phi ptr [ @.str.5, %1210 ], [ @.str.2, %1206 ]
  store i32 %1201, ptr %528, 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 %474, align 4, !tbaa !5
  %1215 = call ptr @s2n_strerror(i32 noundef %1214, ptr noundef nonnull @.str.4) #12
  %1216 = load i32, ptr %474, align 4, !tbaa !5
  %1217 = call ptr @s2n_strerror_debug(i32 noundef %1216, ptr noundef nonnull @.str.4) #12
  %1218 = load i32, ptr %528, align 4, !tbaa !5
  %1219 = call ptr @strerror(i32 noundef %1218) #12
  %1220 = load i32, ptr %528, align 4, !tbaa !5
  %1221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1212, ptr noundef nonnull %.str.5.sink568, i32 noundef %1213, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 211, ptr noundef %1215, ptr noundef %1217, ptr noundef %1219, i32 noundef %1220) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1222:                                             ; preds = %1194
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %19) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %19, ptr noundef nonnull align 8 dereferenceable(40) %818, i64 40, i1 false), !tbaa.struct !55
  %1223 = add nsw i32 %1197, 2
  store i32 %1223, ptr @test_count, align 4, !tbaa !5
  %1224 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %19, i32 noundef 5) #12
  %1225 = icmp eq i32 %1224, -1
  br i1 %1225, label %1226, label %1248

1226:                                             ; preds = %1222
  %1227 = load i32, ptr %528, align 4, !tbaa !5
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = call i32 @s2n_print_stacktrace(ptr noundef %1228) #12
  %1230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1231 = trunc nuw i8 %1230 to i1
  br i1 %1231, label %1232, label %1236

1232:                                             ; preds = %1226
  %1233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1234 = call i32 @fileno(ptr noundef %1233) #12
  %1235 = call i32 @isatty(i32 noundef %1234) #12
  %.not146 = icmp eq i32 %1235, 0
  br i1 %.not146, label %1236, label %1237

1236:                                             ; preds = %1232, %1226
  br label %1237

1237:                                             ; preds = %1232, %1236
  %.str.5.sink577 = phi ptr [ @.str.5, %1236 ], [ @.str.2, %1232 ]
  store i32 %1227, ptr %528, align 4, !tbaa !5
  %1238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1239 = load i32, ptr @test_count, align 4, !tbaa !5
  %1240 = load i32, ptr %474, align 4, !tbaa !5
  %1241 = call ptr @s2n_strerror(i32 noundef %1240, ptr noundef nonnull @.str.4) #12
  %1242 = load i32, ptr %474, align 4, !tbaa !5
  %1243 = call ptr @s2n_strerror_debug(i32 noundef %1242, ptr noundef nonnull @.str.4) #12
  %1244 = load i32, ptr %528, align 4, !tbaa !5
  %1245 = call ptr @strerror(i32 noundef %1244) #12
  %1246 = load i32, ptr %528, align 4, !tbaa !5
  %1247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1238, ptr noundef nonnull %.str.5.sink577, i32 noundef %1239, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 216, ptr noundef %1241, ptr noundef %1243, ptr noundef %1245, i32 noundef %1246) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1248:                                             ; preds = %1222
  %1249 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %19, i32 noundef 1) #12
  %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 = icmp eq ptr %1249, null
  br i1 %1252, label %1253, label %1275

1253:                                             ; preds = %1248
  %1254 = load i32, ptr %528, align 4, !tbaa !5
  %1255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1256 = call i32 @s2n_print_stacktrace(ptr noundef %1255) #12
  %1257 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1258 = trunc nuw i8 %1257 to i1
  br i1 %1258, label %1259, label %1263

1259:                                             ; preds = %1253
  %1260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1261 = call i32 @fileno(ptr noundef %1260) #12
  %1262 = call i32 @isatty(i32 noundef %1261) #12
  %.not145 = icmp eq i32 %1262, 0
  br i1 %.not145, label %1263, label %1264

1263:                                             ; preds = %1259, %1253
  br label %1264

1264:                                             ; preds = %1259, %1263
  %.str.5.sink586 = phi ptr [ @.str.5, %1263 ], [ @.str.2, %1259 ]
  store i32 %1254, ptr %528, align 4, !tbaa !5
  %1265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1266 = load i32, ptr @test_count, align 4, !tbaa !5
  %1267 = load i32, ptr %474, align 4, !tbaa !5
  %1268 = call ptr @s2n_strerror(i32 noundef %1267, ptr noundef nonnull @.str.4) #12
  %1269 = load i32, ptr %474, align 4, !tbaa !5
  %1270 = call ptr @s2n_strerror_debug(i32 noundef %1269, ptr noundef nonnull @.str.4) #12
  %1271 = load i32, ptr %528, align 4, !tbaa !5
  %1272 = call ptr @strerror(i32 noundef %1271) #12
  %1273 = load i32, ptr %528, align 4, !tbaa !5
  %1274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1265, ptr noundef nonnull %.str.5.sink586, i32 noundef %1266, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 218, ptr noundef %1268, ptr noundef %1270, ptr noundef %1272, i32 noundef %1273) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1275:                                             ; preds = %1248
  %1276 = load i8, ptr %1249, align 1, !tbaa !15
  %1277 = add i8 %1276, 1
  store i8 %1277, ptr %1249, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %20) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(12) %20, i8 0, i64 12, i1 false)
  %1278 = load ptr, ptr %15, align 8, !tbaa !9
  %1279 = call i64 @s2n_recv(ptr noundef %1278, ptr noundef nonnull %20, i64 noundef 12, ptr noundef nonnull %18) #12
  %1280 = load i32, ptr @test_count, align 4, !tbaa !5
  %1281 = add nsw i32 %1280, 1
  store i32 %1281, ptr @test_count, align 4, !tbaa !5
  %1282 = icmp eq i64 %1279, -1
  br i1 %1282, label %1305, label %1283

1283:                                             ; preds = %1275
  %1284 = load i32, ptr %528, align 4, !tbaa !5
  %1285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1286 = call i32 @s2n_print_stacktrace(ptr noundef %1285) #12
  %1287 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1288 = trunc nuw i8 %1287 to i1
  br i1 %1288, label %1289, label %1293

1289:                                             ; preds = %1283
  %1290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1291 = call i32 @fileno(ptr noundef %1290) #12
  %1292 = call i32 @isatty(i32 noundef %1291) #12
  %.not141 = icmp eq i32 %1292, 0
  br i1 %.not141, label %1293, label %1294

1293:                                             ; preds = %1289, %1283
  br label %1294

1294:                                             ; preds = %1289, %1293
  %.str.5.sink595 = phi ptr [ @.str.5, %1293 ], [ @.str.2, %1289 ]
  store i32 %1284, ptr %528, align 4, !tbaa !5
  %1295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1296 = load i32, ptr @test_count, align 4, !tbaa !5
  %1297 = load i32, ptr %474, align 4, !tbaa !5
  %1298 = call ptr @s2n_strerror(i32 noundef %1297, ptr noundef nonnull @.str.4) #12
  %1299 = load i32, ptr %474, align 4, !tbaa !5
  %1300 = call ptr @s2n_strerror_debug(i32 noundef %1299, ptr noundef nonnull @.str.4) #12
  %1301 = load i32, ptr %528, align 4, !tbaa !5
  %1302 = call ptr @strerror(i32 noundef %1301) #12
  %1303 = load i32, ptr %528, align 4, !tbaa !5
  %1304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1295, ptr noundef nonnull %.str.5.sink595, i32 noundef %1296, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 224, ptr noundef %1298, ptr noundef %1300, ptr noundef %1302, i32 noundef %1303) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1305:                                             ; preds = %1275
  %1306 = add nsw i32 %1280, 2
  store i32 %1306, ptr @test_count, align 4, !tbaa !5
  %1307 = load i32, ptr %474, align 4, !tbaa !5
  %1308 = icmp eq i32 %1307, 335544321
  br i1 %1308, label %1331, label %1309

1309:                                             ; preds = %1305
  %1310 = load i32, ptr %528, align 4, !tbaa !5
  %1311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1312 = call i32 @s2n_print_stacktrace(ptr noundef %1311) #12
  %1313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1314 = trunc nuw i8 %1313 to i1
  br i1 %1314, label %1315, label %1319

1315:                                             ; preds = %1309
  %1316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1317 = call i32 @fileno(ptr noundef %1316) #12
  %1318 = call i32 @isatty(i32 noundef %1317) #12
  %.not142 = icmp eq i32 %1318, 0
  br i1 %.not142, label %1319, label %1320

1319:                                             ; preds = %1315, %1309
  br label %1320

1320:                                             ; preds = %1315, %1319
  %.str.5.sink604 = phi ptr [ @.str.5, %1319 ], [ @.str.2, %1315 ]
  store i32 %1310, ptr %528, align 4, !tbaa !5
  %1321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1322 = load i32, ptr @test_count, align 4, !tbaa !5
  %1323 = load i32, ptr %474, align 4, !tbaa !5
  %1324 = call ptr @s2n_strerror(i32 noundef %1323, ptr noundef nonnull @.str.4) #12
  %1325 = load i32, ptr %474, align 4, !tbaa !5
  %1326 = call ptr @s2n_strerror_debug(i32 noundef %1325, ptr noundef nonnull @.str.4) #12
  %1327 = load i32, ptr %528, align 4, !tbaa !5
  %1328 = call ptr @strerror(i32 noundef %1327) #12
  %1329 = load i32, ptr %528, align 4, !tbaa !5
  %1330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1321, ptr noundef nonnull %.str.5.sink604, i32 noundef %1322, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 224, ptr noundef %1324, ptr noundef %1326, ptr noundef %1328, i32 noundef %1329) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1331:                                             ; preds = %1305
  %1332 = add nsw i32 %1280, 3
  store i32 %1332, ptr @test_count, align 4, !tbaa !5
  %1333 = call ptr @s2n_strerror_debug(i32 noundef 335544321, ptr noundef nonnull @.str.4) #12
  %1334 = icmp eq ptr %1333, null
  br i1 %1334, label %1335, label %1357

1335:                                             ; preds = %1331
  %1336 = load i32, ptr %528, align 4, !tbaa !5
  %1337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1338 = call i32 @s2n_print_stacktrace(ptr noundef %1337) #12
  %1339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1340 = trunc nuw i8 %1339 to i1
  br i1 %1340, label %1341, label %1345

1341:                                             ; preds = %1335
  %1342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1343 = call i32 @fileno(ptr noundef %1342) #12
  %1344 = call i32 @isatty(i32 noundef %1343) #12
  %.not144 = icmp eq i32 %1344, 0
  br i1 %.not144, label %1345, label %1346

1345:                                             ; preds = %1341, %1335
  br label %1346

1346:                                             ; preds = %1341, %1345
  %.str.5.sink613 = phi ptr [ @.str.5, %1345 ], [ @.str.2, %1341 ]
  store i32 %1336, ptr %528, align 4, !tbaa !5
  %1347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1348 = load i32, ptr @test_count, align 4, !tbaa !5
  %1349 = load i32, ptr %474, align 4, !tbaa !5
  %1350 = call ptr @s2n_strerror(i32 noundef %1349, ptr noundef nonnull @.str.4) #12
  %1351 = load i32, ptr %474, align 4, !tbaa !5
  %1352 = call ptr @s2n_strerror_debug(i32 noundef %1351, ptr noundef nonnull @.str.4) #12
  %1353 = load i32, ptr %528, align 4, !tbaa !5
  %1354 = call ptr @strerror(i32 noundef %1353) #12
  %1355 = load i32, ptr %528, align 4, !tbaa !5
  %1356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1347, ptr noundef nonnull %.str.5.sink613, i32 noundef %1348, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 224, ptr noundef %1350, ptr noundef %1352, ptr noundef %1354, i32 noundef %1355) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1357:                                             ; preds = %1331
  store i32 0, ptr %474, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %528, align 4, !tbaa !5
  %1358 = load i32, ptr @test_count, align 4, !tbaa !5
  %1359 = add nsw i32 %1358, 1
  store i32 %1359, ptr @test_count, align 4, !tbaa !5
  %1360 = load ptr, ptr %15, align 8, !tbaa !9
  %1361 = getelementptr inbounds i8, ptr %1360, i64 1888
  %1362 = load i32, ptr %1361, align 8, !tbaa !56
  %1363 = icmp eq i32 %1362, 0
  br i1 %1363, label %1386, label %1364

1364:                                             ; preds = %1357
  %1365 = load i32, ptr %528, align 4, !tbaa !5
  %1366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1367 = call i32 @s2n_print_stacktrace(ptr noundef %1366) #12
  %1368 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1369 = trunc nuw i8 %1368 to i1
  br i1 %1369, label %1370, label %1374

1370:                                             ; preds = %1364
  %1371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1372 = call i32 @fileno(ptr noundef %1371) #12
  %1373 = call i32 @isatty(i32 noundef %1372) #12
  %.not143 = icmp eq i32 %1373, 0
  br i1 %.not143, label %1374, label %1375

1374:                                             ; preds = %1370, %1364
  br label %1375

1375:                                             ; preds = %1370, %1374
  %.str.5.sink622 = phi ptr [ @.str.5, %1374 ], [ @.str.2, %1370 ]
  store i32 %1365, ptr %528, align 4, !tbaa !5
  %1376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1377 = load i32, ptr @test_count, align 4, !tbaa !5
  %1378 = load i32, ptr %474, align 4, !tbaa !5
  %1379 = call ptr @s2n_strerror(i32 noundef %1378, ptr noundef nonnull @.str.4) #12
  %1380 = load i32, ptr %474, align 4, !tbaa !5
  %1381 = call ptr @s2n_strerror_debug(i32 noundef %1380, ptr noundef nonnull @.str.4) #12
  %1382 = load i32, ptr %528, align 4, !tbaa !5
  %1383 = call ptr @strerror(i32 noundef %1382) #12
  %1384 = load i32, ptr %528, align 4, !tbaa !5
  %1385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1376, ptr noundef nonnull %.str.5.sink622, i32 noundef %1377, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 227, ptr noundef %1379, ptr noundef %1381, ptr noundef %1383, i32 noundef %1384) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1386:                                             ; preds = %1357
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %17) #12
  %1387 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %16) #12
  %1388 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #12
  %1389 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #12
  %1390 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #12
  br label %1391

1391:                                             ; preds = %828, %1386
  br i1 %823, label %822, label %819, !llvm.loop !57

1392:                                             ; preds = %819
  %1393 = load i32, ptr %528, align 4, !tbaa !5
  %1394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1395 = call i32 @s2n_print_stacktrace(ptr noundef %1394) #12
  %1396 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1397 = trunc nuw i8 %1396 to i1
  br i1 %1397, label %1398, label %1402

1398:                                             ; preds = %1392
  %1399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1400 = call i32 @fileno(ptr noundef %1399) #12
  %1401 = call i32 @isatty(i32 noundef %1400) #12
  %.not136 = icmp eq i32 %1401, 0
  br i1 %.not136, label %1402, label %1403

1402:                                             ; preds = %1398, %1392
  br label %1403

1403:                                             ; preds = %1398, %1402
  %.str.5.sink631 = phi ptr [ @.str.5, %1402 ], [ @.str.2, %1398 ]
  store i32 %1393, ptr %528, align 4, !tbaa !5
  %1404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1405 = load i32, ptr @test_count, align 4, !tbaa !5
  %1406 = load i32, ptr %474, align 4, !tbaa !5
  %1407 = call ptr @s2n_strerror(i32 noundef %1406, ptr noundef nonnull @.str.4) #12
  %1408 = load i32, ptr %474, align 4, !tbaa !5
  %1409 = call ptr @s2n_strerror_debug(i32 noundef %1408, ptr noundef nonnull @.str.4) #12
  %1410 = load i32, ptr %528, align 4, !tbaa !5
  %1411 = call ptr @strerror(i32 noundef %1410) #12
  %1412 = load i32, ptr %528, align 4, !tbaa !5
  %1413 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1404, ptr noundef nonnull %.str.5.sink631, i32 noundef %1405, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 230, ptr noundef %1407, ptr noundef %1409, ptr noundef %1411, i32 noundef %1412) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1414:                                             ; preds = %819
  %1415 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %1416 = icmp eq i32 %1415, -1
  br i1 %1416, label %1417, label %1439

1417:                                             ; preds = %1414
  %1418 = load i32, ptr %528, align 4, !tbaa !5
  %1419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1420 = call i32 @s2n_print_stacktrace(ptr noundef %1419) #12
  %1421 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1422 = trunc nuw i8 %1421 to i1
  br i1 %1422, label %1423, label %1427

1423:                                             ; preds = %1417
  %1424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1425 = call i32 @fileno(ptr noundef %1424) #12
  %1426 = call i32 @isatty(i32 noundef %1425) #12
  %.not135 = icmp eq i32 %1426, 0
  br i1 %.not135, label %1427, label %1428

1427:                                             ; preds = %1423, %1417
  br label %1428

1428:                                             ; preds = %1423, %1427
  %.str.5.sink640 = phi ptr [ @.str.5, %1427 ], [ @.str.2, %1423 ]
  store i32 %1418, ptr %528, align 4, !tbaa !5
  %1429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1430 = load i32, ptr @test_count, align 4, !tbaa !5
  %1431 = load i32, ptr %474, align 4, !tbaa !5
  %1432 = call ptr @s2n_strerror(i32 noundef %1431, ptr noundef nonnull @.str.4) #12
  %1433 = load i32, ptr %474, align 4, !tbaa !5
  %1434 = call ptr @s2n_strerror_debug(i32 noundef %1433, ptr noundef nonnull @.str.4) #12
  %1435 = load i32, ptr %528, align 4, !tbaa !5
  %1436 = call ptr @strerror(i32 noundef %1435) #12
  %1437 = load i32, ptr %528, align 4, !tbaa !5
  %1438 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1429, ptr noundef nonnull %.str.5.sink640, i32 noundef %1430, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 230, ptr noundef %1432, ptr noundef %1434, ptr noundef %1436, i32 noundef %1437) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1439:                                             ; preds = %1414
  %1440 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1441 = trunc nuw i8 %1440 to i1
  br i1 %1441, label %1442, label %1453

1442:                                             ; preds = %1439
  %1443 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1444 = call i32 @fileno(ptr noundef %1443) #12
  %1445 = call i32 @isatty(i32 noundef %1444) #12
  %.not132 = icmp eq i32 %1445, 0
  br i1 %.not132, label %1453, label %1446

1446:                                             ; preds = %1442
  %1447 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not134 = icmp eq i32 %1447, 0
  %1448 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not134, label %1451, label %1449

1449:                                             ; preds = %1446
  %1450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1448, ptr noundef nonnull @.str.48, i32 noundef %1447) #12
  br label %1460

1451:                                             ; preds = %1446
  %1452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1448, ptr noundef nonnull @.str.49) #12
  br label %1460

1453:                                             ; preds = %1442, %1439
  %1454 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not133 = icmp eq i32 %1454, 0
  %1455 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not133, label %1458, label %1456

1456:                                             ; preds = %1453
  %1457 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1455, ptr noundef nonnull @.str.50, i32 noundef %1454) #12
  br label %1460

1458:                                             ; preds = %1453
  %1459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1455, ptr noundef nonnull @.str.51) #12
  br label %1460

1460:                                             ; preds = %1456, %1458, %1449, %1451
  %1461 = call i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef nonnull %3) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #12
  ret i32 0
}

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

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_write_bytes(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_sslv2_record_header_parse(ptr noundef, ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_skip_write(ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_stuffer_reread(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #2

declare ptr @s2n_config_new_minimal() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_disable_x509_verification(ptr noundef) local_unnamed_addr #2

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

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

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

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

declare i32 @s2n_io_stuffer_pair_free(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_io_stuffer_pair_init(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connections_set_io_stuffer_pair(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i64 @s2n_send(ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_skip_read(ptr noundef, i32 noundef) local_unnamed_addr #2

declare ptr @s2n_stuffer_raw_read(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i64 @s2n_recv(ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #11

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nofree nounwind willreturn memory(argmem: read) }
attributes #12 = { nounwind }
attributes #13 = { nounwind willreturn memory(none) }
attributes #14 = { cold nounwind }
attributes #15 = { 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 = !{!17, !17, i64 0}
!17 = !{!"short", !7, i64 0}
!18 = !{!19, !7, i64 8}
!19 = !{!"", !7, i64 0, !17, i64 6, !7, i64 8, !7, i64 9}
!20 = !{!19, !7, i64 9}
!21 = !{!19, !17, i64 6}
!22 = !{!23, !6, i64 1804}
!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, !25, i64 168, !25, 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, !26, i64 240, !10, i64 632, !10, i64 640, !27, i64 648, !33, i64 1144, !36, 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, !25, 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, !17, i64 2208, !6, i64 2212, !17, i64 2216, !25, i64 2224, !7, i64 2232, !25, i64 2240, !25, i64 2248, !25, i64 2256, !39, i64 2264, !39, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !32, i64 2792, !6, i64 2816, !32, i64 2824, !32, i64 2848, !32, i64 2872, !42, i64 2896, !44, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !32, i64 3784, !6, i64 3808, !46, i64 3816, !7, i64 3848, !38, i64 3992, !32, i64 4032, !32, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !17, i64 4084, !17, i64 4086, !6, i64 4088, !6, i64 4092, !32, i64 4096, !6, i64 4120, !47, i64 4128, !39, i64 4176, !7, i64 4180, !7, i64 4181}
!24 = !{!"s2n_timer", !25, i64 0}
!25 = !{!"long", !7, i64 0}
!26 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!27 = !{!"s2n_kex_parameters", !28, i64 0, !29, i64 8, !7, i64 24, !29, i64 56, !30, i64 72, !30, i64 184, !7, i64 296, !31, i64 360, !32, i64 448, !32, i64 472}
!28 = !{!"s2n_dh_params", !10, i64 0}
!29 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!30 = !{!"s2n_kem_group_params", !10, i64 0, !31, i64 8, !29, i64 96}
!31 = !{!"s2n_kem_params", !10, i64 0, !32, i64 8, !32, i64 32, !32, i64 56, !12, i64 80}
!32 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!33 = !{!"s2n_handshake_parameters", !34, i64 0, !34, i64 48, !32, i64 96, !6, i64 120, !35, 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}
!34 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!35 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!36 = !{!"s2n_psk_parameters", !6, i64 0, !37, i64 8, !17, i64 40, !17, i64 42, !10, i64 48, !6, i64 56}
!37 = !{!"s2n_array", !32, i64 0, !6, i64 24, !6, i64 28}
!38 = !{!"s2n_stuffer", !32, 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", !32, i64 0, !43, i64 24, !32, i64 728, !32, i64 752, !32, 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, !32, i64 672, !17, i64 696}
!44 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !17, 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", !32, i64 0, !6, i64 24}
!47 = !{!"s2n_post_handshake", !38, i64 0, !7, i64 40}
!48 = !{!23, !6, i64 1800}
!49 = distinct !{!49, !50}
!50 = !{!"llvm.loop.mustprogress"}
!51 = !{!52, !7, i64 8}
!52 = !{!"", !10, i64 0, !7, i64 8}
!53 = !{!52, !10, i64 0}
!54 = !{!23, !7, i64 220}
!55 = !{i64 0, i64 8, !9, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 1, !15, i64 24, i64 4, !5, i64 28, i64 4, !5, i64 32, i64 4, !5, i64 36, i64 1, !15}
!56 = !{!23, !6, i64 1888}
!57 = distinct !{!57, !50}


; Effective O3 passes: ADCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,LICMPass,LoopRotatePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass