; LLVM IR from aws/s2n-tls :: tests/unit (s2n_mem_allocator_test)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.s2n_test_io_pair = type { i32, i32 }
%struct.s2n_result = type { i32 }
%struct.s2n_connection = type { i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, [22 x i8], [22 x i8], [22 x i8], i32, i32, %struct.s2n_timer, i64, i64, [32 x i8], i8, i8, i8, i8, i8, i8, i8, ptr, ptr, %struct.s2n_secrets, ptr, ptr, %struct.s2n_kex_parameters, %struct.s2n_handshake_parameters, %struct.s2n_psk_parameters, ptr, i8, i32, [5 x i8], %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, %struct.s2n_stuffer, i32, i64, [2 x i8], %struct.s2n_stuffer, i8, i8, i8, i8, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, %struct.s2n_handshake, i16, i32, i16, i64, i8, i64, i64, i64, %struct.s2n_atomic_flag, %struct.s2n_atomic_flag, [256 x i8], [256 x i8], i32, %struct.s2n_blob, i32, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_client_hello, %struct.s2n_x509_validator, ptr, ptr, i8, i32, %struct.s2n_blob, i32, %struct.s2n_ticket_fields, [138 x i8], %struct.s2n_stuffer, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8, i16, i16, i32, i32, %struct.s2n_blob, i32, %struct.s2n_post_handshake, %struct.s2n_atomic_flag, i8, i8 }
%struct.s2n_timer = type { i64 }
%struct.s2n_secrets = type { %union.anon, i32 }
%union.anon = type { %struct.s2n_tls13_secrets }
%struct.s2n_tls13_secrets = type { [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], [48 x i8], i32 }
%struct.s2n_kex_parameters = type { %struct.s2n_dh_params, %struct.s2n_ecc_evp_params, [4 x ptr], %struct.s2n_ecc_evp_params, %struct.s2n_kem_group_params, %struct.s2n_kem_group_params, [8 x ptr], %struct.s2n_kem_params, %struct.s2n_blob, %struct.s2n_blob }
%struct.s2n_dh_params = type { ptr }
%struct.s2n_ecc_evp_params = type { ptr, ptr }
%struct.s2n_kem_group_params = type { ptr, %struct.s2n_kem_params, %struct.s2n_ecc_evp_params }
%struct.s2n_kem_params = type { ptr, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8 }
%struct.s2n_handshake_parameters = type { %struct.s2n_pkey, %struct.s2n_pkey, %struct.s2n_blob, i32, %struct.s2n_sig_scheme_list, ptr, ptr, ptr, [4 x ptr], [4 x ptr], i8, i8, [32 x i8], [32 x i8] }
%struct.s2n_pkey = type { ptr, ptr, ptr, ptr, ptr, ptr }
%struct.s2n_sig_scheme_list = type { [128 x i16], i8 }
%struct.s2n_psk_parameters = type { i32, %struct.s2n_array, i16, i16, ptr, i32 }
%struct.s2n_array = type { %struct.s2n_blob, i32, i32 }
%struct.s2n_handshake = type { %struct.s2n_stuffer, ptr, [8 x i8], [48 x i8], [48 x i8], i8, i32, i32, i32, i32, %struct.s2n_offered_early_data, i8, i32 }
%struct.s2n_offered_early_data = type { ptr }
%struct.s2n_client_hello = type { %struct.s2n_blob, %struct.s2n_parsed_extensions_list, %struct.s2n_blob, %struct.s2n_blob, %struct.s2n_blob, i8, i8, i8 }
%struct.s2n_parsed_extensions_list = type { [21 x %struct.s2n_parsed_extension], %struct.s2n_blob, i16 }
%struct.s2n_parsed_extension = type { %struct.s2n_blob, i16, i16, i8 }
%struct.s2n_x509_validator = type { ptr, ptr, i8, i8, i16, ptr, i32, ptr, %struct.s2n_cert_validation_info, i8 }
%struct.s2n_cert_validation_info = type { i8, [3 x i8] }
%struct.s2n_ticket_fields = type { %struct.s2n_blob, i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [81 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [76 x i8], align 1
@certificate_paths = external hidden global [2 x ptr], align 16
@.str.19 = external hidden unnamed_addr constant [94 x i8], align 1
@private_key_paths = external hidden global [2 x ptr], align 16
@.str.20 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

declare ptr @s2n_connection_new(i32 noundef) #2

declare ptr @s2n_config_new() #2

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

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

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

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

declare i32 @s2n_connection_release_buffers(ptr noundef) #2

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

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

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

; 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 ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i64, align 8
  %21 = alloca i32, align 4
  %22 = alloca [2 x ptr], align 16
  %23 = alloca %struct.s2n_test_io_pair, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca i64, align 8
  %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 [65535 x i8], align 16
  %45 = alloca i32, align 4
  %46 = alloca ptr, align 8
  %47 = alloca i32, align 4
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i64, 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_result, align 4
  %61 = alloca %struct.s2n_result, align 4
  %62 = alloca i32, align 4
  %63 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #8
  store i32 0, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #8
  store ptr null, ptr %8, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #8
  store ptr null, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #8
  store ptr null, ptr %10, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #8
  %64 = call i32 @s2n_mem_set_callbacks(ptr noundef @custom_mem_init, ptr noundef @custom_mem_cleanup, ptr noundef @custom_mem_malloc, ptr noundef @custom_mem_free)
  store i32 %64, ptr %11, align 4, !tbaa !5
  br label %65

65:                                               ; preds = %2
  br label %66

66:                                               ; preds = %65
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %67 = load ptr, ptr @stdout, align 8, !tbaa !9
  %68 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %67, ptr noundef @.str, ptr noundef @.str.1) #8
  %69 = load ptr, ptr @stdout, align 8, !tbaa !9
  %70 = call i32 @fflush(ptr noundef %69)
  br label %71

71:                                               ; preds = %66
  %72 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %73 = icmp eq i32 %72, -1
  br i1 %73, label %74, label %127

74:                                               ; preds = %71
  br label %75

75:                                               ; preds = %74
  br label %76

76:                                               ; preds = %75
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  %77 = call ptr @__errno_location() #9
  %78 = load i32, ptr %77, align 4, !tbaa !5
  store i32 %78, ptr %12, align 4, !tbaa !5
  %79 = load ptr, ptr @stderr, align 8, !tbaa !9
  %80 = call i32 @s2n_print_stacktrace(ptr noundef %79)
  %81 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %82 = trunc i8 %81 to i1
  br i1 %82, label %83, label %105

83:                                               ; preds = %76
  %84 = load ptr, ptr @stderr, align 8, !tbaa !9
  %85 = call i32 @fileno(ptr noundef %84) #8
  %86 = call i32 @isatty(i32 noundef %85) #8
  %87 = icmp ne i32 %86, 0
  br i1 %87, label %88, label %105

88:                                               ; preds = %83
  %89 = load i32, ptr %12, align 4, !tbaa !5
  %90 = call ptr @__errno_location() #9
  store i32 %89, ptr %90, align 4, !tbaa !5
  %91 = load ptr, ptr @stderr, align 8, !tbaa !9
  %92 = load i32, ptr @test_count, align 4, !tbaa !5
  %93 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %94 = load i32, ptr %93, align 4, !tbaa !5
  %95 = call ptr @s2n_strerror(i32 noundef %94, ptr noundef @.str.4)
  %96 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %97 = load i32, ptr %96, align 4, !tbaa !5
  %98 = call ptr @s2n_strerror_debug(i32 noundef %97, ptr noundef @.str.4)
  %99 = call ptr @__errno_location() #9
  %100 = load i32, ptr %99, align 4, !tbaa !5
  %101 = call ptr @strerror(i32 noundef %100) #8
  %102 = call ptr @__errno_location() #9
  %103 = load i32, ptr %102, align 4, !tbaa !5
  %104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %91, ptr noundef @.str.2, i32 noundef %92, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 161, ptr noundef %95, ptr noundef %98, ptr noundef %101, i32 noundef %103) #8
  br label %122

105:                                              ; preds = %83, %76
  %106 = load i32, ptr %12, align 4, !tbaa !5
  %107 = call ptr @__errno_location() #9
  store i32 %106, ptr %107, align 4, !tbaa !5
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = load i32, ptr @test_count, align 4, !tbaa !5
  %110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %111 = load i32, ptr %110, align 4, !tbaa !5
  %112 = call ptr @s2n_strerror(i32 noundef %111, ptr noundef @.str.4)
  %113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %114 = load i32, ptr %113, align 4, !tbaa !5
  %115 = call ptr @s2n_strerror_debug(i32 noundef %114, ptr noundef @.str.4)
  %116 = call ptr @__errno_location() #9
  %117 = load i32, ptr %116, align 4, !tbaa !5
  %118 = call ptr @strerror(i32 noundef %117) #8
  %119 = call ptr @__errno_location() #9
  %120 = load i32, ptr %119, align 4, !tbaa !5
  %121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %108, ptr noundef @.str.5, i32 noundef %109, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 161, ptr noundef %112, ptr noundef %115, ptr noundef %118, i32 noundef %120) #8
  br label %122

122:                                              ; preds = %105, %88
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  br label %123

123:                                              ; preds = %122
  br label %124

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

125:                                              ; No predecessors!
  br label %126

126:                                              ; preds = %125
  br label %127

127:                                              ; preds = %126, %71
  br label %128

128:                                              ; preds = %127
  br label %129

129:                                              ; preds = %128
  br label %130

130:                                              ; preds = %129
  %131 = load i32, ptr @test_count, align 4, !tbaa !5
  %132 = add nsw i32 %131, 1
  store i32 %132, ptr @test_count, align 4, !tbaa !5
  %133 = call i32 @s2n_enable_atexit()
  %134 = icmp eq i32 %133, -1
  br i1 %134, label %135, label %188

135:                                              ; preds = %130
  br label %136

136:                                              ; preds = %135
  br label %137

137:                                              ; preds = %136
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #8
  %138 = call ptr @__errno_location() #9
  %139 = load i32, ptr %138, align 4, !tbaa !5
  store i32 %139, ptr %13, align 4, !tbaa !5
  %140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %141 = call i32 @s2n_print_stacktrace(ptr noundef %140)
  %142 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %143 = trunc i8 %142 to i1
  br i1 %143, label %144, label %166

144:                                              ; preds = %137
  %145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %146 = call i32 @fileno(ptr noundef %145) #8
  %147 = call i32 @isatty(i32 noundef %146) #8
  %148 = icmp ne i32 %147, 0
  br i1 %148, label %149, label %166

149:                                              ; preds = %144
  %150 = load i32, ptr %13, align 4, !tbaa !5
  %151 = call ptr @__errno_location() #9
  store i32 %150, ptr %151, align 4, !tbaa !5
  %152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %153 = load i32, ptr @test_count, align 4, !tbaa !5
  %154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %155 = load i32, ptr %154, align 4, !tbaa !5
  %156 = call ptr @s2n_strerror(i32 noundef %155, ptr noundef @.str.4)
  %157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %158 = load i32, ptr %157, align 4, !tbaa !5
  %159 = call ptr @s2n_strerror_debug(i32 noundef %158, ptr noundef @.str.4)
  %160 = call ptr @__errno_location() #9
  %161 = load i32, ptr %160, align 4, !tbaa !5
  %162 = call ptr @strerror(i32 noundef %161) #8
  %163 = call ptr @__errno_location() #9
  %164 = load i32, ptr %163, align 4, !tbaa !5
  %165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %152, ptr noundef @.str.2, i32 noundef %153, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 161, ptr noundef %156, ptr noundef %159, ptr noundef %162, i32 noundef %164) #8
  br label %183

166:                                              ; preds = %144, %137
  %167 = load i32, ptr %13, align 4, !tbaa !5
  %168 = call ptr @__errno_location() #9
  store i32 %167, ptr %168, align 4, !tbaa !5
  %169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %170 = load i32, ptr @test_count, align 4, !tbaa !5
  %171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %172 = load i32, ptr %171, align 4, !tbaa !5
  %173 = call ptr @s2n_strerror(i32 noundef %172, ptr noundef @.str.4)
  %174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %175 = load i32, ptr %174, align 4, !tbaa !5
  %176 = call ptr @s2n_strerror_debug(i32 noundef %175, ptr noundef @.str.4)
  %177 = call ptr @__errno_location() #9
  %178 = load i32, ptr %177, align 4, !tbaa !5
  %179 = call ptr @strerror(i32 noundef %178) #8
  %180 = call ptr @__errno_location() #9
  %181 = load i32, ptr %180, align 4, !tbaa !5
  %182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %169, ptr noundef @.str.5, i32 noundef %170, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 161, ptr noundef %173, ptr noundef %176, ptr noundef %179, i32 noundef %181) #8
  br label %183

183:                                              ; preds = %166, %149
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #8
  br label %184

184:                                              ; preds = %183
  br label %185

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

186:                                              ; No predecessors!
  br label %187

187:                                              ; preds = %186
  br label %188

188:                                              ; preds = %187, %130
  br label %189

189:                                              ; preds = %188
  br label %190

190:                                              ; preds = %189
  br label %191

191:                                              ; preds = %190
  br label %192

192:                                              ; preds = %191
  br label %193

193:                                              ; preds = %192
  %194 = call i32 @s2n_init()
  %195 = icmp eq i32 %194, -1
  br i1 %195, label %196, label %249

196:                                              ; preds = %193
  br label %197

197:                                              ; preds = %196
  br label %198

198:                                              ; preds = %197
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  %199 = call ptr @__errno_location() #9
  %200 = load i32, ptr %199, align 4, !tbaa !5
  store i32 %200, ptr %14, align 4, !tbaa !5
  %201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %202 = call i32 @s2n_print_stacktrace(ptr noundef %201)
  %203 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %204 = trunc i8 %203 to i1
  br i1 %204, label %205, label %227

205:                                              ; preds = %198
  %206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %207 = call i32 @fileno(ptr noundef %206) #8
  %208 = call i32 @isatty(i32 noundef %207) #8
  %209 = icmp ne i32 %208, 0
  br i1 %209, label %210, label %227

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

227:                                              ; preds = %205, %198
  %228 = load i32, ptr %14, align 4, !tbaa !5
  %229 = call ptr @__errno_location() #9
  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() #9
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = call ptr @strerror(i32 noundef %239) #8
  %241 = call ptr @__errno_location() #9
  %242 = load i32, ptr %241, align 4, !tbaa !5
  %243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %230, ptr noundef @.str.5, i32 noundef %231, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 161, ptr noundef %234, ptr noundef %237, ptr noundef %240, i32 noundef %242) #8
  br label %244

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

245:                                              ; preds = %244
  br label %246

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

247:                                              ; No predecessors!
  br label %248

248:                                              ; preds = %247
  br label %249

249:                                              ; preds = %248, %193
  br label %250

250:                                              ; preds = %249
  br label %251

251:                                              ; preds = %250
  br label %252

252:                                              ; preds = %251
  br label %253

253:                                              ; preds = %252
  br label %254

254:                                              ; preds = %253
  %255 = load i32, ptr @test_count, align 4, !tbaa !5
  %256 = add nsw i32 %255, 1
  store i32 %256, ptr @test_count, align 4, !tbaa !5
  %257 = call i32 (...) @s2n_disable_tls13_in_test()
  %258 = icmp eq i32 %257, -1
  br i1 %258, label %259, label %312

259:                                              ; preds = %254
  br label %260

260:                                              ; preds = %259
  br label %261

261:                                              ; preds = %260
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  %262 = call ptr @__errno_location() #9
  %263 = load i32, ptr %262, align 4, !tbaa !5
  store i32 %263, ptr %15, align 4, !tbaa !5
  %264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %265 = call i32 @s2n_print_stacktrace(ptr noundef %264)
  %266 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %267 = trunc i8 %266 to i1
  br i1 %267, label %268, label %290

268:                                              ; preds = %261
  %269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %270 = call i32 @fileno(ptr noundef %269) #8
  %271 = call i32 @isatty(i32 noundef %270) #8
  %272 = icmp ne i32 %271, 0
  br i1 %272, label %273, label %290

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

290:                                              ; preds = %268, %261
  %291 = load i32, ptr %15, align 4, !tbaa !5
  %292 = call ptr @__errno_location() #9
  store i32 %291, ptr %292, align 4, !tbaa !5
  %293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %294 = load i32, ptr @test_count, align 4, !tbaa !5
  %295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %296 = load i32, ptr %295, align 4, !tbaa !5
  %297 = call ptr @s2n_strerror(i32 noundef %296, ptr noundef @.str.4)
  %298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %299 = load i32, ptr %298, align 4, !tbaa !5
  %300 = call ptr @s2n_strerror_debug(i32 noundef %299, ptr noundef @.str.4)
  %301 = call ptr @__errno_location() #9
  %302 = load i32, ptr %301, align 4, !tbaa !5
  %303 = call ptr @strerror(i32 noundef %302) #8
  %304 = call ptr @__errno_location() #9
  %305 = load i32, ptr %304, align 4, !tbaa !5
  %306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %293, ptr noundef @.str.5, i32 noundef %294, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 162, ptr noundef %297, ptr noundef %300, ptr noundef %303, i32 noundef %305) #8
  br label %307

307:                                              ; preds = %290, %273
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  br label %308

308:                                              ; preds = %307
  br label %309

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

310:                                              ; No predecessors!
  br label %311

311:                                              ; preds = %310
  br label %312

312:                                              ; preds = %311, %254
  br label %313

313:                                              ; preds = %312
  br label %314

314:                                              ; preds = %313
  br label %315

315:                                              ; preds = %314
  br label %316

316:                                              ; preds = %315
  %317 = load i32, ptr @test_count, align 4, !tbaa !5
  %318 = add nsw i32 %317, 1
  store i32 %318, ptr @test_count, align 4, !tbaa !5
  %319 = call i32 @s2n_mem_set_callbacks(ptr noundef @custom_mem_init, ptr noundef @custom_mem_cleanup, ptr noundef @custom_mem_malloc, ptr noundef @custom_mem_free)
  %320 = icmp eq i32 %319, -1
  br i1 %320, label %374, label %321

321:                                              ; preds = %316
  br label %322

322:                                              ; preds = %321
  br label %323

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

330:                                              ; preds = %323
  %331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %332 = call i32 @fileno(ptr noundef %331) #8
  %333 = call i32 @isatty(i32 noundef %332) #8
  %334 = icmp ne i32 %333, 0
  br i1 %334, label %335, label %352

335:                                              ; preds = %330
  %336 = load i32, ptr %16, align 4, !tbaa !5
  %337 = call ptr @__errno_location() #9
  store i32 %336, ptr %337, align 4, !tbaa !5
  %338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %339 = load i32, ptr @test_count, align 4, !tbaa !5
  %340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %341 = load i32, ptr %340, align 4, !tbaa !5
  %342 = call ptr @s2n_strerror(i32 noundef %341, ptr noundef @.str.4)
  %343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %344 = load i32, ptr %343, align 4, !tbaa !5
  %345 = call ptr @s2n_strerror_debug(i32 noundef %344, ptr noundef @.str.4)
  %346 = call ptr @__errno_location() #9
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = call ptr @strerror(i32 noundef %347) #8
  %349 = call ptr @__errno_location() #9
  %350 = load i32, ptr %349, align 4, !tbaa !5
  %351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %338, ptr noundef @.str.2, i32 noundef %339, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 165, ptr noundef %342, ptr noundef %345, ptr noundef %348, i32 noundef %350) #8
  br label %369

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

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

370:                                              ; preds = %369
  br label %371

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

372:                                              ; No predecessors!
  br label %373

373:                                              ; preds = %372
  br label %374

374:                                              ; preds = %373, %316
  br label %375

375:                                              ; preds = %374
  br label %376

376:                                              ; preds = %375
  br label %377

377:                                              ; preds = %376
  %378 = load i32, ptr @test_count, align 4, !tbaa !5
  %379 = add nsw i32 %378, 1
  store i32 %379, ptr @test_count, align 4, !tbaa !5
  %380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %381 = load i32, ptr %380, align 4, !tbaa !5
  %382 = icmp eq i32 %381, 0
  br i1 %382, label %383, label %436

383:                                              ; preds = %377
  br label %384

384:                                              ; preds = %383
  br label %385

385:                                              ; preds = %384
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  %386 = call ptr @__errno_location() #9
  %387 = load i32, ptr %386, align 4, !tbaa !5
  store i32 %387, ptr %17, align 4, !tbaa !5
  %388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %389 = call i32 @s2n_print_stacktrace(ptr noundef %388)
  %390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %391 = trunc i8 %390 to i1
  br i1 %391, label %392, label %414

392:                                              ; preds = %385
  %393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %394 = call i32 @fileno(ptr noundef %393) #8
  %395 = call i32 @isatty(i32 noundef %394) #8
  %396 = icmp ne i32 %395, 0
  br i1 %396, label %397, label %414

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

414:                                              ; preds = %392, %385
  %415 = load i32, ptr %17, align 4, !tbaa !5
  %416 = call ptr @__errno_location() #9
  store i32 %415, ptr %416, align 4, !tbaa !5
  %417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %418 = load i32, ptr @test_count, align 4, !tbaa !5
  %419 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %420 = load i32, ptr %419, align 4, !tbaa !5
  %421 = call ptr @s2n_strerror(i32 noundef %420, ptr noundef @.str.4)
  %422 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %423 = load i32, ptr %422, align 4, !tbaa !5
  %424 = call ptr @s2n_strerror_debug(i32 noundef %423, ptr noundef @.str.4)
  %425 = call ptr @__errno_location() #9
  %426 = load i32, ptr %425, align 4, !tbaa !5
  %427 = call ptr @strerror(i32 noundef %426) #8
  %428 = call ptr @__errno_location() #9
  %429 = load i32, ptr %428, align 4, !tbaa !5
  %430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %417, ptr noundef @.str.5, i32 noundef %418, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 165, ptr noundef %421, ptr noundef %424, ptr noundef %427, i32 noundef %429) #8
  br label %431

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

432:                                              ; preds = %431
  br label %433

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

434:                                              ; No predecessors!
  br label %435

435:                                              ; preds = %434
  br label %436

436:                                              ; preds = %435, %377
  br label %437

437:                                              ; preds = %436
  br label %438

438:                                              ; preds = %437
  br label %439

439:                                              ; preds = %438
  %440 = load i32, ptr @test_count, align 4, !tbaa !5
  %441 = add nsw i32 %440, 1
  store i32 %441, 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_debug(i32 noundef %443, ptr noundef @.str.4)
  %445 = icmp eq ptr %444, null
  br i1 %445, label %446, label %499

446:                                              ; preds = %439
  br label %447

447:                                              ; preds = %446
  br label %448

448:                                              ; preds = %447
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #8
  %449 = call ptr @__errno_location() #9
  %450 = load i32, ptr %449, align 4, !tbaa !5
  store i32 %450, ptr %18, align 4, !tbaa !5
  %451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %452 = call i32 @s2n_print_stacktrace(ptr noundef %451)
  %453 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %454 = trunc i8 %453 to i1
  br i1 %454, label %455, label %477

455:                                              ; preds = %448
  %456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %457 = call i32 @fileno(ptr noundef %456) #8
  %458 = call i32 @isatty(i32 noundef %457) #8
  %459 = icmp ne i32 %458, 0
  br i1 %459, label %460, label %477

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

477:                                              ; preds = %455, %448
  %478 = load i32, ptr %18, align 4, !tbaa !5
  %479 = call ptr @__errno_location() #9
  store i32 %478, ptr %479, align 4, !tbaa !5
  %480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %481 = load i32, ptr @test_count, align 4, !tbaa !5
  %482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %483 = load i32, ptr %482, align 4, !tbaa !5
  %484 = call ptr @s2n_strerror(i32 noundef %483, ptr noundef @.str.4)
  %485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %486 = load i32, ptr %485, align 4, !tbaa !5
  %487 = call ptr @s2n_strerror_debug(i32 noundef %486, ptr noundef @.str.4)
  %488 = call ptr @__errno_location() #9
  %489 = load i32, ptr %488, align 4, !tbaa !5
  %490 = call ptr @strerror(i32 noundef %489) #8
  %491 = call ptr @__errno_location() #9
  %492 = load i32, ptr %491, align 4, !tbaa !5
  %493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %480, ptr noundef @.str.5, i32 noundef %481, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 165, ptr noundef %484, ptr noundef %487, ptr noundef %490, i32 noundef %492) #8
  br label %494

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

495:                                              ; preds = %494
  br label %496

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

497:                                              ; No predecessors!
  br label %498

498:                                              ; preds = %497
  br label %499

499:                                              ; preds = %498, %439
  br label %500

500:                                              ; preds = %499
  br label %501

501:                                              ; preds = %500
  br label %502

502:                                              ; preds = %501
  %503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %503, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %504 = call ptr @__errno_location() #9
  store i32 0, ptr %504, align 4, !tbaa !5
  br label %505

505:                                              ; preds = %502
  br label %506

506:                                              ; preds = %505
  br label %507

507:                                              ; preds = %506
  br label %508

508:                                              ; preds = %507
  br label %509

509:                                              ; preds = %508
  %510 = load i32, ptr @test_count, align 4, !tbaa !5
  %511 = add nsw i32 %510, 1
  store i32 %511, ptr @test_count, align 4, !tbaa !5
  %512 = load i32, ptr %11, align 4, !tbaa !5
  %513 = icmp eq i32 %512, -1
  br i1 %513, label %514, label %567

514:                                              ; preds = %509
  br label %515

515:                                              ; preds = %514
  br label %516

516:                                              ; preds = %515
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #8
  %517 = call ptr @__errno_location() #9
  %518 = load i32, ptr %517, align 4, !tbaa !5
  store i32 %518, ptr %19, align 4, !tbaa !5
  %519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %520 = call i32 @s2n_print_stacktrace(ptr noundef %519)
  %521 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %522 = trunc i8 %521 to i1
  br i1 %522, label %523, label %545

523:                                              ; preds = %516
  %524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %525 = call i32 @fileno(ptr noundef %524) #8
  %526 = call i32 @isatty(i32 noundef %525) #8
  %527 = icmp ne i32 %526, 0
  br i1 %527, label %528, label %545

528:                                              ; preds = %523
  %529 = load i32, ptr %19, align 4, !tbaa !5
  %530 = call ptr @__errno_location() #9
  store i32 %529, ptr %530, align 4, !tbaa !5
  %531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %532 = load i32, ptr @test_count, align 4, !tbaa !5
  %533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %534 = load i32, ptr %533, align 4, !tbaa !5
  %535 = call ptr @s2n_strerror(i32 noundef %534, ptr noundef @.str.4)
  %536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %537 = load i32, ptr %536, align 4, !tbaa !5
  %538 = call ptr @s2n_strerror_debug(i32 noundef %537, ptr noundef @.str.4)
  %539 = call ptr @__errno_location() #9
  %540 = load i32, ptr %539, align 4, !tbaa !5
  %541 = call ptr @strerror(i32 noundef %540) #8
  %542 = call ptr @__errno_location() #9
  %543 = load i32, ptr %542, align 4, !tbaa !5
  %544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %531, ptr noundef @.str.2, i32 noundef %532, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 167, ptr noundef %535, ptr noundef %538, ptr noundef %541, i32 noundef %543) #8
  br label %562

545:                                              ; preds = %523, %516
  %546 = load i32, ptr %19, align 4, !tbaa !5
  %547 = call ptr @__errno_location() #9
  store i32 %546, ptr %547, align 4, !tbaa !5
  %548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %549 = load i32, ptr @test_count, align 4, !tbaa !5
  %550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %551 = load i32, ptr %550, align 4, !tbaa !5
  %552 = call ptr @s2n_strerror(i32 noundef %551, ptr noundef @.str.4)
  %553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %554 = load i32, ptr %553, align 4, !tbaa !5
  %555 = call ptr @s2n_strerror_debug(i32 noundef %554, ptr noundef @.str.4)
  %556 = call ptr @__errno_location() #9
  %557 = load i32, ptr %556, align 4, !tbaa !5
  %558 = call ptr @strerror(i32 noundef %557) #8
  %559 = call ptr @__errno_location() #9
  %560 = load i32, ptr %559, align 4, !tbaa !5
  %561 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %548, ptr noundef @.str.5, i32 noundef %549, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 167, ptr noundef %552, ptr noundef %555, ptr noundef %558, i32 noundef %560) #8
  br label %562

562:                                              ; preds = %545, %528
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #8
  br label %563

563:                                              ; preds = %562
  br label %564

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

565:                                              ; No predecessors!
  br label %566

566:                                              ; preds = %565
  br label %567

567:                                              ; preds = %566, %509
  br label %568

568:                                              ; preds = %567
  br label %569

569:                                              ; preds = %568
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  store i64 0, ptr %20, align 8, !tbaa !15
  br label %570

570:                                              ; preds = %2168, %569
  %571 = load i64, ptr %20, align 8, !tbaa !15
  %572 = icmp ule i64 %571, 1
  br i1 %572, label %574, label %573

573:                                              ; preds = %570
  store i32 58, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  br label %2171

574:                                              ; preds = %570
  call void @llvm.lifetime.start.p0(i64 16, ptr %22) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #8
  br label %575

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

580:                                              ; preds = %575
  br label %581

581:                                              ; preds = %580
  br label %582

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

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

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

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

628:                                              ; preds = %611, %594
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #8
  br label %629

629:                                              ; preds = %628
  br label %630

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

631:                                              ; No predecessors!
  br label %632

632:                                              ; preds = %631
  br label %633

633:                                              ; preds = %632, %575
  br label %634

634:                                              ; preds = %633
  br label %635

635:                                              ; preds = %634
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #8
  %636 = call i32 @fork() #8
  store i32 %636, ptr %25, align 4, !tbaa !5
  %637 = load i32, ptr %25, align 4, !tbaa !5
  %638 = icmp eq i32 %637, 0
  br i1 %638, label %639, label %701

639:                                              ; preds = %635
  br label %640

640:                                              ; preds = %639
  %641 = load i32, ptr @test_count, align 4, !tbaa !5
  %642 = add nsw i32 %641, 1
  store i32 %642, ptr @test_count, align 4, !tbaa !5
  %643 = call i32 @s2n_io_pair_close_one_end(ptr noundef %23, i32 noundef 0)
  %644 = icmp eq i32 %643, -1
  br i1 %644, label %645, label %698

645:                                              ; preds = %640
  br label %646

646:                                              ; preds = %645
  br label %647

647:                                              ; preds = %646
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #8
  %648 = call ptr @__errno_location() #9
  %649 = load i32, ptr %648, align 4, !tbaa !5
  store i32 %649, ptr %26, align 4, !tbaa !5
  %650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %651 = call i32 @s2n_print_stacktrace(ptr noundef %650)
  %652 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %653 = trunc i8 %652 to i1
  br i1 %653, label %654, label %676

654:                                              ; preds = %647
  %655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %656 = call i32 @fileno(ptr noundef %655) #8
  %657 = call i32 @isatty(i32 noundef %656) #8
  %658 = icmp ne i32 %657, 0
  br i1 %658, label %659, label %676

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

676:                                              ; preds = %654, %647
  %677 = load i32, ptr %26, align 4, !tbaa !5
  %678 = call ptr @__errno_location() #9
  store i32 %677, ptr %678, align 4, !tbaa !5
  %679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %680 = load i32, ptr @test_count, align 4, !tbaa !5
  %681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %682 = load i32, ptr %681, align 4, !tbaa !5
  %683 = call ptr @s2n_strerror(i32 noundef %682, ptr noundef @.str.4)
  %684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %685 = load i32, ptr %684, align 4, !tbaa !5
  %686 = call ptr @s2n_strerror_debug(i32 noundef %685, ptr noundef @.str.4)
  %687 = call ptr @__errno_location() #9
  %688 = load i32, ptr %687, align 4, !tbaa !5
  %689 = call ptr @strerror(i32 noundef %688) #8
  %690 = call ptr @__errno_location() #9
  %691 = load i32, ptr %690, align 4, !tbaa !5
  %692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %679, ptr noundef @.str.5, i32 noundef %680, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 180, ptr noundef %683, ptr noundef %686, ptr noundef %689, i32 noundef %691) #8
  br label %693

693:                                              ; preds = %676, %659
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #8
  br label %694

694:                                              ; preds = %693
  br label %695

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

696:                                              ; No predecessors!
  br label %697

697:                                              ; preds = %696
  br label %698

698:                                              ; preds = %697, %640
  br label %699

699:                                              ; preds = %698
  br label %700

700:                                              ; preds = %699
  call void @mock_client(ptr noundef %23)
  br label %701

701:                                              ; preds = %700, %635
  br label %702

702:                                              ; preds = %701
  %703 = load i32, ptr @test_count, align 4, !tbaa !5
  %704 = add nsw i32 %703, 1
  store i32 %704, ptr @test_count, align 4, !tbaa !5
  %705 = call noalias ptr @malloc(i64 noundef 12000) #11
  store ptr %705, ptr %8, align 8, !tbaa !9
  %706 = icmp eq ptr %705, null
  br i1 %706, label %707, label %760

707:                                              ; preds = %702
  br label %708

708:                                              ; preds = %707
  br label %709

709:                                              ; preds = %708
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #8
  %710 = call ptr @__errno_location() #9
  %711 = load i32, ptr %710, align 4, !tbaa !5
  store i32 %711, ptr %27, align 4, !tbaa !5
  %712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %713 = call i32 @s2n_print_stacktrace(ptr noundef %712)
  %714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %715 = trunc i8 %714 to i1
  br i1 %715, label %716, label %738

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

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

738:                                              ; preds = %716, %709
  %739 = load i32, ptr %27, align 4, !tbaa !5
  %740 = call ptr @__errno_location() #9
  store i32 %739, ptr %740, align 4, !tbaa !5
  %741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %742 = load i32, ptr @test_count, align 4, !tbaa !5
  %743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %744 = load i32, ptr %743, align 4, !tbaa !5
  %745 = call ptr @s2n_strerror(i32 noundef %744, ptr noundef @.str.4)
  %746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %747 = load i32, ptr %746, align 4, !tbaa !5
  %748 = call ptr @s2n_strerror_debug(i32 noundef %747, ptr noundef @.str.4)
  %749 = call ptr @__errno_location() #9
  %750 = load i32, ptr %749, align 4, !tbaa !5
  %751 = call ptr @strerror(i32 noundef %750) #8
  %752 = call ptr @__errno_location() #9
  %753 = load i32, ptr %752, align 4, !tbaa !5
  %754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %741, ptr noundef @.str.5, i32 noundef %742, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 186, ptr noundef %745, ptr noundef %748, ptr noundef %751, i32 noundef %753) #8
  br label %755

755:                                              ; preds = %738, %721
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #8
  br label %756

756:                                              ; preds = %755
  br label %757

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

758:                                              ; No predecessors!
  br label %759

759:                                              ; preds = %758
  br label %760

760:                                              ; preds = %759, %702
  br label %761

761:                                              ; preds = %760
  br label %762

762:                                              ; preds = %761
  br label %763

763:                                              ; preds = %762
  %764 = load i32, ptr @test_count, align 4, !tbaa !5
  %765 = add nsw i32 %764, 1
  store i32 %765, ptr @test_count, align 4, !tbaa !5
  %766 = call noalias ptr @malloc(i64 noundef 12000) #11
  store ptr %766, ptr %9, align 8, !tbaa !9
  %767 = icmp eq ptr %766, null
  br i1 %767, label %768, label %821

768:                                              ; preds = %763
  br label %769

769:                                              ; preds = %768
  br label %770

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

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

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

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

816:                                              ; preds = %799, %782
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #8
  br label %817

817:                                              ; preds = %816
  br label %818

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

819:                                              ; No predecessors!
  br label %820

820:                                              ; preds = %819
  br label %821

821:                                              ; preds = %820, %763
  br label %822

822:                                              ; preds = %821
  br label %823

823:                                              ; preds = %822
  br label %824

824:                                              ; preds = %823
  %825 = load i32, ptr @test_count, align 4, !tbaa !5
  %826 = add nsw i32 %825, 1
  store i32 %826, ptr @test_count, align 4, !tbaa !5
  %827 = call noalias ptr @malloc(i64 noundef 12000) #11
  store ptr %827, ptr %10, align 8, !tbaa !9
  %828 = icmp eq ptr %827, null
  br i1 %828, label %829, label %882

829:                                              ; preds = %824
  br label %830

830:                                              ; preds = %829
  br label %831

831:                                              ; preds = %830
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #8
  %832 = call ptr @__errno_location() #9
  %833 = load i32, ptr %832, align 4, !tbaa !5
  store i32 %833, ptr %29, align 4, !tbaa !5
  %834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %835 = call i32 @s2n_print_stacktrace(ptr noundef %834)
  %836 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %837 = trunc i8 %836 to i1
  br i1 %837, label %838, label %860

838:                                              ; preds = %831
  %839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %840 = call i32 @fileno(ptr noundef %839) #8
  %841 = call i32 @isatty(i32 noundef %840) #8
  %842 = icmp ne i32 %841, 0
  br i1 %842, label %843, label %860

843:                                              ; preds = %838
  %844 = load i32, ptr %29, align 4, !tbaa !5
  %845 = call ptr @__errno_location() #9
  store i32 %844, ptr %845, align 4, !tbaa !5
  %846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %847 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %849, ptr noundef @.str.4)
  %851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %852 = load i32, ptr %851, align 4, !tbaa !5
  %853 = call ptr @s2n_strerror_debug(i32 noundef %852, ptr noundef @.str.4)
  %854 = call ptr @__errno_location() #9
  %855 = load i32, ptr %854, align 4, !tbaa !5
  %856 = call ptr @strerror(i32 noundef %855) #8
  %857 = call ptr @__errno_location() #9
  %858 = load i32, ptr %857, align 4, !tbaa !5
  %859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %846, ptr noundef @.str.2, i32 noundef %847, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 188, ptr noundef %850, ptr noundef %853, ptr noundef %856, i32 noundef %858) #8
  br label %877

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

877:                                              ; preds = %860, %843
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #8
  br label %878

878:                                              ; preds = %877
  br label %879

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

880:                                              ; No predecessors!
  br label %881

881:                                              ; preds = %880
  br label %882

882:                                              ; preds = %881, %824
  br label %883

883:                                              ; preds = %882
  br label %884

884:                                              ; preds = %883
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  %885 = call ptr @s2n_config_new()
  store ptr %885, ptr %30, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  %886 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %886, ptr %31, align 8, !tbaa !9
  br label %887

887:                                              ; preds = %884
  %888 = load i32, ptr @test_count, align 4, !tbaa !5
  %889 = add nsw i32 %888, 1
  store i32 %889, ptr @test_count, align 4, !tbaa !5
  %890 = call i32 @s2n_io_pair_close_one_end(ptr noundef %23, i32 noundef 1)
  %891 = icmp eq i32 %890, -1
  br i1 %891, label %892, label %945

892:                                              ; preds = %887
  br label %893

893:                                              ; preds = %892
  br label %894

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

901:                                              ; preds = %894
  %902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %903 = call i32 @fileno(ptr noundef %902) #8
  %904 = call i32 @isatty(i32 noundef %903) #8
  %905 = icmp ne i32 %904, 0
  br i1 %905, label %906, label %923

906:                                              ; preds = %901
  %907 = load i32, ptr %32, align 4, !tbaa !5
  %908 = call ptr @__errno_location() #9
  store i32 %907, ptr %908, align 4, !tbaa !5
  %909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %910 = load i32, ptr @test_count, align 4, !tbaa !5
  %911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %912 = load i32, ptr %911, align 4, !tbaa !5
  %913 = call ptr @s2n_strerror(i32 noundef %912, ptr noundef @.str.4)
  %914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %915 = load i32, ptr %914, align 4, !tbaa !5
  %916 = call ptr @s2n_strerror_debug(i32 noundef %915, ptr noundef @.str.4)
  %917 = call ptr @__errno_location() #9
  %918 = load i32, ptr %917, align 4, !tbaa !5
  %919 = call ptr @strerror(i32 noundef %918) #8
  %920 = call ptr @__errno_location() #9
  %921 = load i32, ptr %920, align 4, !tbaa !5
  %922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %909, ptr noundef @.str.2, i32 noundef %910, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 196, ptr noundef %913, ptr noundef %916, ptr noundef %919, i32 noundef %921) #8
  br label %940

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

940:                                              ; preds = %923, %906
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #8
  br label %941

941:                                              ; preds = %940
  br label %942

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

943:                                              ; No predecessors!
  br label %944

944:                                              ; preds = %943
  br label %945

945:                                              ; preds = %944, %887
  br label %946

946:                                              ; preds = %945
  br label %947

947:                                              ; preds = %946
  %948 = load ptr, ptr %31, align 8, !tbaa !9
  %949 = getelementptr inbounds %struct.s2n_connection, ptr %948, i32 0, i32 22
  store i8 33, ptr %949, align 1, !tbaa !17
  %950 = load ptr, ptr %31, align 8, !tbaa !9
  %951 = getelementptr inbounds %struct.s2n_connection, ptr %950, i32 0, i32 21
  store i8 33, ptr %951, align 2, !tbaa !43
  %952 = load ptr, ptr %31, align 8, !tbaa !9
  %953 = getelementptr inbounds %struct.s2n_connection, ptr %952, i32 0, i32 23
  store i8 33, ptr %953, align 4, !tbaa !44
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #8
  store i64 0, ptr %33, align 8, !tbaa !15
  br label %954

954:                                              ; preds = %1283, %947
  %955 = load i64, ptr %33, align 8, !tbaa !15
  %956 = icmp ult i64 %955, 2
  br i1 %956, label %958, label %957

957:                                              ; preds = %954
  store i32 97, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  br label %1286

958:                                              ; preds = %954
  br label %959

959:                                              ; preds = %958
  %960 = load i32, ptr @test_count, align 4, !tbaa !5
  %961 = add nsw i32 %960, 1
  store i32 %961, ptr @test_count, align 4, !tbaa !5
  %962 = load i64, ptr %33, align 8, !tbaa !15
  %963 = getelementptr inbounds [2 x ptr], ptr @certificate_paths, i64 0, i64 %962
  %964 = load ptr, ptr %963, align 8, !tbaa !9
  %965 = load ptr, ptr %8, align 8, !tbaa !9
  %966 = call i32 @s2n_read_test_pem(ptr noundef %964, ptr noundef %965, i64 noundef 12000)
  %967 = icmp eq i32 %966, -1
  br i1 %967, label %968, label %1021

968:                                              ; preds = %959
  br label %969

969:                                              ; preds = %968
  br label %970

970:                                              ; preds = %969
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #8
  %971 = call ptr @__errno_location() #9
  %972 = load i32, ptr %971, align 4, !tbaa !5
  store i32 %972, ptr %34, align 4, !tbaa !5
  %973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %974 = call i32 @s2n_print_stacktrace(ptr noundef %973)
  %975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %976 = trunc i8 %975 to i1
  br i1 %976, label %977, label %999

977:                                              ; preds = %970
  %978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %979 = call i32 @fileno(ptr noundef %978) #8
  %980 = call i32 @isatty(i32 noundef %979) #8
  %981 = icmp ne i32 %980, 0
  br i1 %981, label %982, label %999

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

999:                                              ; preds = %977, %970
  %1000 = load i32, ptr %34, align 4, !tbaa !5
  %1001 = call ptr @__errno_location() #9
  store i32 %1000, ptr %1001, align 4, !tbaa !5
  %1002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1003 = load i32, ptr @test_count, align 4, !tbaa !5
  %1004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1005 = load i32, ptr %1004, align 4, !tbaa !5
  %1006 = call ptr @s2n_strerror(i32 noundef %1005, ptr noundef @.str.4)
  %1007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1008 = load i32, ptr %1007, align 4, !tbaa !5
  %1009 = call ptr @s2n_strerror_debug(i32 noundef %1008, ptr noundef @.str.4)
  %1010 = call ptr @__errno_location() #9
  %1011 = load i32, ptr %1010, align 4, !tbaa !5
  %1012 = call ptr @strerror(i32 noundef %1011) #8
  %1013 = call ptr @__errno_location() #9
  %1014 = load i32, ptr %1013, align 4, !tbaa !5
  %1015 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1002, ptr noundef @.str.5, i32 noundef %1003, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 203, ptr noundef %1006, ptr noundef %1009, ptr noundef %1012, i32 noundef %1014) #8
  br label %1016

1016:                                             ; preds = %999, %982
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #8
  br label %1017

1017:                                             ; preds = %1016
  br label %1018

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

1019:                                             ; No predecessors!
  br label %1020

1020:                                             ; preds = %1019
  br label %1021

1021:                                             ; preds = %1020, %959
  br label %1022

1022:                                             ; preds = %1021
  br label %1023

1023:                                             ; preds = %1022
  br label %1024

1024:                                             ; preds = %1023
  %1025 = load i32, ptr @test_count, align 4, !tbaa !5
  %1026 = add nsw i32 %1025, 1
  store i32 %1026, ptr @test_count, align 4, !tbaa !5
  %1027 = load i64, ptr %33, align 8, !tbaa !15
  %1028 = getelementptr inbounds [2 x ptr], ptr @private_key_paths, i64 0, i64 %1027
  %1029 = load ptr, ptr %1028, align 8, !tbaa !9
  %1030 = load ptr, ptr %9, align 8, !tbaa !9
  %1031 = call i32 @s2n_read_test_pem(ptr noundef %1029, ptr noundef %1030, i64 noundef 12000)
  %1032 = icmp eq i32 %1031, -1
  br i1 %1032, label %1033, label %1086

1033:                                             ; preds = %1024
  br label %1034

1034:                                             ; preds = %1033
  br label %1035

1035:                                             ; preds = %1034
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #8
  %1036 = call ptr @__errno_location() #9
  %1037 = load i32, ptr %1036, align 4, !tbaa !5
  store i32 %1037, ptr %35, align 4, !tbaa !5
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = call i32 @s2n_print_stacktrace(ptr noundef %1038)
  %1040 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1041 = trunc i8 %1040 to i1
  br i1 %1041, label %1042, label %1064

1042:                                             ; preds = %1035
  %1043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1044 = call i32 @fileno(ptr noundef %1043) #8
  %1045 = call i32 @isatty(i32 noundef %1044) #8
  %1046 = icmp ne i32 %1045, 0
  br i1 %1046, label %1047, label %1064

1047:                                             ; preds = %1042
  %1048 = load i32, ptr %35, align 4, !tbaa !5
  %1049 = call ptr @__errno_location() #9
  store i32 %1048, ptr %1049, align 4, !tbaa !5
  %1050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1051 = load i32, ptr @test_count, align 4, !tbaa !5
  %1052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1053 = load i32, ptr %1052, align 4, !tbaa !5
  %1054 = call ptr @s2n_strerror(i32 noundef %1053, ptr noundef @.str.4)
  %1055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1056 = load i32, ptr %1055, align 4, !tbaa !5
  %1057 = call ptr @s2n_strerror_debug(i32 noundef %1056, ptr noundef @.str.4)
  %1058 = call ptr @__errno_location() #9
  %1059 = load i32, ptr %1058, align 4, !tbaa !5
  %1060 = call ptr @strerror(i32 noundef %1059) #8
  %1061 = call ptr @__errno_location() #9
  %1062 = load i32, ptr %1061, align 4, !tbaa !5
  %1063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1050, ptr noundef @.str.2, i32 noundef %1051, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 204, ptr noundef %1054, ptr noundef %1057, ptr noundef %1060, i32 noundef %1062) #8
  br label %1081

1064:                                             ; preds = %1042, %1035
  %1065 = load i32, ptr %35, align 4, !tbaa !5
  %1066 = call ptr @__errno_location() #9
  store i32 %1065, ptr %1066, align 4, !tbaa !5
  %1067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1068 = load i32, 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 = call ptr @s2n_strerror(i32 noundef %1070, ptr noundef @.str.4)
  %1072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1073 = load i32, ptr %1072, align 4, !tbaa !5
  %1074 = call ptr @s2n_strerror_debug(i32 noundef %1073, ptr noundef @.str.4)
  %1075 = call ptr @__errno_location() #9
  %1076 = load i32, ptr %1075, align 4, !tbaa !5
  %1077 = call ptr @strerror(i32 noundef %1076) #8
  %1078 = call ptr @__errno_location() #9
  %1079 = load i32, ptr %1078, align 4, !tbaa !5
  %1080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1067, ptr noundef @.str.5, i32 noundef %1068, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 204, ptr noundef %1071, ptr noundef %1074, ptr noundef %1077, i32 noundef %1079) #8
  br label %1081

1081:                                             ; preds = %1064, %1047
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #8
  br label %1082

1082:                                             ; preds = %1081
  br label %1083

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

1084:                                             ; No predecessors!
  br label %1085

1085:                                             ; preds = %1084
  br label %1086

1086:                                             ; preds = %1085, %1024
  br label %1087

1087:                                             ; preds = %1086
  br label %1088

1088:                                             ; preds = %1087
  br label %1089

1089:                                             ; preds = %1088
  %1090 = load i32, ptr @test_count, align 4, !tbaa !5
  %1091 = add nsw i32 %1090, 1
  store i32 %1091, ptr @test_count, align 4, !tbaa !5
  %1092 = call ptr @s2n_cert_chain_and_key_new()
  %1093 = load i64, ptr %33, align 8, !tbaa !15
  %1094 = getelementptr inbounds [2 x ptr], ptr %22, i64 0, i64 %1093
  store ptr %1092, ptr %1094, align 8, !tbaa !9
  %1095 = icmp eq ptr %1092, null
  br i1 %1095, label %1096, label %1149

1096:                                             ; preds = %1089
  br label %1097

1097:                                             ; preds = %1096
  br label %1098

1098:                                             ; preds = %1097
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #8
  %1099 = call ptr @__errno_location() #9
  %1100 = load i32, ptr %1099, align 4, !tbaa !5
  store i32 %1100, ptr %36, align 4, !tbaa !5
  %1101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1102 = call i32 @s2n_print_stacktrace(ptr noundef %1101)
  %1103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1104 = trunc i8 %1103 to i1
  br i1 %1104, label %1105, label %1127

1105:                                             ; preds = %1098
  %1106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1107 = call i32 @fileno(ptr noundef %1106) #8
  %1108 = call i32 @isatty(i32 noundef %1107) #8
  %1109 = icmp ne i32 %1108, 0
  br i1 %1109, label %1110, label %1127

1110:                                             ; preds = %1105
  %1111 = load i32, ptr %36, align 4, !tbaa !5
  %1112 = call ptr @__errno_location() #9
  store i32 %1111, ptr %1112, align 4, !tbaa !5
  %1113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1114 = load i32, ptr @test_count, align 4, !tbaa !5
  %1115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1116 = load i32, ptr %1115, align 4, !tbaa !5
  %1117 = call ptr @s2n_strerror(i32 noundef %1116, ptr noundef @.str.4)
  %1118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = call ptr @s2n_strerror_debug(i32 noundef %1119, ptr noundef @.str.4)
  %1121 = call ptr @__errno_location() #9
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = call ptr @strerror(i32 noundef %1122) #8
  %1124 = call ptr @__errno_location() #9
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1113, ptr noundef @.str.2, i32 noundef %1114, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 205, ptr noundef %1117, ptr noundef %1120, ptr noundef %1123, i32 noundef %1125) #8
  br label %1144

1127:                                             ; preds = %1105, %1098
  %1128 = load i32, ptr %36, align 4, !tbaa !5
  %1129 = call ptr @__errno_location() #9
  store i32 %1128, ptr %1129, align 4, !tbaa !5
  %1130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1131 = load i32, ptr @test_count, align 4, !tbaa !5
  %1132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1133 = load i32, ptr %1132, align 4, !tbaa !5
  %1134 = call ptr @s2n_strerror(i32 noundef %1133, ptr noundef @.str.4)
  %1135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1136 = load i32, ptr %1135, align 4, !tbaa !5
  %1137 = call ptr @s2n_strerror_debug(i32 noundef %1136, ptr noundef @.str.4)
  %1138 = call ptr @__errno_location() #9
  %1139 = load i32, ptr %1138, align 4, !tbaa !5
  %1140 = call ptr @strerror(i32 noundef %1139) #8
  %1141 = call ptr @__errno_location() #9
  %1142 = load i32, ptr %1141, align 4, !tbaa !5
  %1143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1130, ptr noundef @.str.5, i32 noundef %1131, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 205, ptr noundef %1134, ptr noundef %1137, ptr noundef %1140, i32 noundef %1142) #8
  br label %1144

1144:                                             ; preds = %1127, %1110
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #8
  br label %1145

1145:                                             ; preds = %1144
  br label %1146

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

1147:                                             ; No predecessors!
  br label %1148

1148:                                             ; preds = %1147
  br label %1149

1149:                                             ; preds = %1148, %1089
  br label %1150

1150:                                             ; preds = %1149
  br label %1151

1151:                                             ; preds = %1150
  br label %1152

1152:                                             ; preds = %1151
  %1153 = load i32, ptr @test_count, align 4, !tbaa !5
  %1154 = add nsw i32 %1153, 1
  store i32 %1154, ptr @test_count, align 4, !tbaa !5
  %1155 = load i64, ptr %33, align 8, !tbaa !15
  %1156 = getelementptr inbounds [2 x ptr], ptr %22, i64 0, i64 %1155
  %1157 = load ptr, ptr %1156, align 8, !tbaa !9
  %1158 = load ptr, ptr %8, align 8, !tbaa !9
  %1159 = load ptr, ptr %9, align 8, !tbaa !9
  %1160 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef %1157, ptr noundef %1158, ptr noundef %1159)
  %1161 = icmp eq i32 %1160, -1
  br i1 %1161, label %1162, label %1215

1162:                                             ; preds = %1152
  br label %1163

1163:                                             ; preds = %1162
  br label %1164

1164:                                             ; preds = %1163
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #8
  %1165 = call ptr @__errno_location() #9
  %1166 = load i32, ptr %1165, align 4, !tbaa !5
  store i32 %1166, ptr %37, align 4, !tbaa !5
  %1167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1168 = call i32 @s2n_print_stacktrace(ptr noundef %1167)
  %1169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1170 = trunc i8 %1169 to i1
  br i1 %1170, label %1171, label %1193

1171:                                             ; preds = %1164
  %1172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1173 = call i32 @fileno(ptr noundef %1172) #8
  %1174 = call i32 @isatty(i32 noundef %1173) #8
  %1175 = icmp ne i32 %1174, 0
  br i1 %1175, label %1176, label %1193

1176:                                             ; preds = %1171
  %1177 = load i32, ptr %37, align 4, !tbaa !5
  %1178 = call ptr @__errno_location() #9
  store i32 %1177, ptr %1178, align 4, !tbaa !5
  %1179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1180 = load i32, ptr @test_count, align 4, !tbaa !5
  %1181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1182 = load i32, ptr %1181, align 4, !tbaa !5
  %1183 = call ptr @s2n_strerror(i32 noundef %1182, ptr noundef @.str.4)
  %1184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1185 = load i32, ptr %1184, align 4, !tbaa !5
  %1186 = call ptr @s2n_strerror_debug(i32 noundef %1185, ptr noundef @.str.4)
  %1187 = call ptr @__errno_location() #9
  %1188 = load i32, ptr %1187, align 4, !tbaa !5
  %1189 = call ptr @strerror(i32 noundef %1188) #8
  %1190 = call ptr @__errno_location() #9
  %1191 = load i32, ptr %1190, align 4, !tbaa !5
  %1192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1179, ptr noundef @.str.2, i32 noundef %1180, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 206, ptr noundef %1183, ptr noundef %1186, ptr noundef %1189, i32 noundef %1191) #8
  br label %1210

1193:                                             ; preds = %1171, %1164
  %1194 = load i32, ptr %37, align 4, !tbaa !5
  %1195 = call ptr @__errno_location() #9
  store i32 %1194, ptr %1195, align 4, !tbaa !5
  %1196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1197 = load i32, ptr @test_count, align 4, !tbaa !5
  %1198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1199 = load i32, ptr %1198, align 4, !tbaa !5
  %1200 = call ptr @s2n_strerror(i32 noundef %1199, ptr noundef @.str.4)
  %1201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1202 = load i32, ptr %1201, align 4, !tbaa !5
  %1203 = call ptr @s2n_strerror_debug(i32 noundef %1202, ptr noundef @.str.4)
  %1204 = call ptr @__errno_location() #9
  %1205 = load i32, ptr %1204, align 4, !tbaa !5
  %1206 = call ptr @strerror(i32 noundef %1205) #8
  %1207 = call ptr @__errno_location() #9
  %1208 = load i32, ptr %1207, align 4, !tbaa !5
  %1209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1196, ptr noundef @.str.5, i32 noundef %1197, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 206, ptr noundef %1200, ptr noundef %1203, ptr noundef %1206, i32 noundef %1208) #8
  br label %1210

1210:                                             ; preds = %1193, %1176
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #8
  br label %1211

1211:                                             ; preds = %1210
  br label %1212

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

1213:                                             ; No predecessors!
  br label %1214

1214:                                             ; preds = %1213
  br label %1215

1215:                                             ; preds = %1214, %1152
  br label %1216

1216:                                             ; preds = %1215
  br label %1217

1217:                                             ; preds = %1216
  br label %1218

1218:                                             ; preds = %1217
  %1219 = load i32, ptr @test_count, align 4, !tbaa !5
  %1220 = add nsw i32 %1219, 1
  store i32 %1220, ptr @test_count, align 4, !tbaa !5
  %1221 = load ptr, ptr %30, align 8, !tbaa !9
  %1222 = load i64, ptr %33, align 8, !tbaa !15
  %1223 = getelementptr inbounds [2 x ptr], ptr %22, i64 0, i64 %1222
  %1224 = load ptr, ptr %1223, align 8, !tbaa !9
  %1225 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %1221, ptr noundef %1224)
  %1226 = icmp eq i32 %1225, -1
  br i1 %1226, label %1227, label %1280

1227:                                             ; preds = %1218
  br label %1228

1228:                                             ; preds = %1227
  br label %1229

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

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

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

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

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

1276:                                             ; preds = %1275
  br label %1277

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

1278:                                             ; No predecessors!
  br label %1279

1279:                                             ; preds = %1278
  br label %1280

1280:                                             ; preds = %1279, %1218
  br label %1281

1281:                                             ; preds = %1280
  br label %1282

1282:                                             ; preds = %1281
  br label %1283

1283:                                             ; preds = %1282
  %1284 = load i64, ptr %33, align 8, !tbaa !15
  %1285 = add i64 %1284, 1
  store i64 %1285, ptr %33, align 8, !tbaa !15
  br label %954, !llvm.loop !45

1286:                                             ; preds = %957
  %1287 = load i64, ptr %20, align 8, !tbaa !15
  %1288 = icmp ne i64 %1287, 0
  br i1 %1288, label %1289, label %1415

1289:                                             ; preds = %1286
  br label %1290

1290:                                             ; preds = %1289
  %1291 = load i32, ptr @test_count, align 4, !tbaa !5
  %1292 = add nsw i32 %1291, 1
  store i32 %1292, ptr @test_count, align 4, !tbaa !5
  %1293 = load ptr, ptr %10, align 8, !tbaa !9
  %1294 = call i32 @s2n_read_test_pem(ptr noundef @.str.24, ptr noundef %1293, i64 noundef 12000)
  %1295 = icmp eq i32 %1294, -1
  br i1 %1295, label %1296, label %1349

1296:                                             ; preds = %1290
  br label %1297

1297:                                             ; preds = %1296
  br label %1298

1298:                                             ; preds = %1297
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #8
  %1299 = call ptr @__errno_location() #9
  %1300 = load i32, ptr %1299, align 4, !tbaa !5
  store i32 %1300, ptr %39, align 4, !tbaa !5
  %1301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1302 = call i32 @s2n_print_stacktrace(ptr noundef %1301)
  %1303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1304 = trunc i8 %1303 to i1
  br i1 %1304, label %1305, label %1327

1305:                                             ; preds = %1298
  %1306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1307 = call i32 @fileno(ptr noundef %1306) #8
  %1308 = call i32 @isatty(i32 noundef %1307) #8
  %1309 = icmp ne i32 %1308, 0
  br i1 %1309, label %1310, label %1327

1310:                                             ; preds = %1305
  %1311 = load i32, ptr %39, align 4, !tbaa !5
  %1312 = call ptr @__errno_location() #9
  store i32 %1311, ptr %1312, align 4, !tbaa !5
  %1313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1314 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1316, ptr noundef @.str.4)
  %1318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1319 = load i32, ptr %1318, align 4, !tbaa !5
  %1320 = call ptr @s2n_strerror_debug(i32 noundef %1319, ptr noundef @.str.4)
  %1321 = call ptr @__errno_location() #9
  %1322 = load i32, ptr %1321, align 4, !tbaa !5
  %1323 = call ptr @strerror(i32 noundef %1322) #8
  %1324 = call ptr @__errno_location() #9
  %1325 = load i32, ptr %1324, align 4, !tbaa !5
  %1326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1313, ptr noundef @.str.2, i32 noundef %1314, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 211, ptr noundef %1317, ptr noundef %1320, ptr noundef %1323, i32 noundef %1325) #8
  br label %1344

1327:                                             ; preds = %1305, %1298
  %1328 = load i32, ptr %39, align 4, !tbaa !5
  %1329 = call ptr @__errno_location() #9
  store i32 %1328, ptr %1329, align 4, !tbaa !5
  %1330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1331 = load i32, ptr @test_count, align 4, !tbaa !5
  %1332 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1333 = load i32, ptr %1332, align 4, !tbaa !5
  %1334 = call ptr @s2n_strerror(i32 noundef %1333, ptr noundef @.str.4)
  %1335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1336 = load i32, ptr %1335, align 4, !tbaa !5
  %1337 = call ptr @s2n_strerror_debug(i32 noundef %1336, ptr noundef @.str.4)
  %1338 = call ptr @__errno_location() #9
  %1339 = load i32, ptr %1338, align 4, !tbaa !5
  %1340 = call ptr @strerror(i32 noundef %1339) #8
  %1341 = call ptr @__errno_location() #9
  %1342 = load i32, ptr %1341, align 4, !tbaa !5
  %1343 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1330, ptr noundef @.str.5, i32 noundef %1331, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 211, ptr noundef %1334, ptr noundef %1337, ptr noundef %1340, i32 noundef %1342) #8
  br label %1344

1344:                                             ; preds = %1327, %1310
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #8
  br label %1345

1345:                                             ; preds = %1344
  br label %1346

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

1347:                                             ; No predecessors!
  br label %1348

1348:                                             ; preds = %1347
  br label %1349

1349:                                             ; preds = %1348, %1290
  br label %1350

1350:                                             ; preds = %1349
  br label %1351

1351:                                             ; preds = %1350
  br label %1352

1352:                                             ; preds = %1351
  %1353 = load i32, ptr @test_count, align 4, !tbaa !5
  %1354 = add nsw i32 %1353, 1
  store i32 %1354, ptr @test_count, align 4, !tbaa !5
  %1355 = load ptr, ptr %30, align 8, !tbaa !9
  %1356 = load ptr, ptr %10, align 8, !tbaa !9
  %1357 = call i32 @s2n_config_add_dhparams(ptr noundef %1355, ptr noundef %1356)
  %1358 = icmp eq i32 %1357, -1
  br i1 %1358, label %1359, label %1412

1359:                                             ; preds = %1352
  br label %1360

1360:                                             ; preds = %1359
  br label %1361

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

1368:                                             ; preds = %1361
  %1369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1370 = call i32 @fileno(ptr noundef %1369) #8
  %1371 = call i32 @isatty(i32 noundef %1370) #8
  %1372 = icmp ne i32 %1371, 0
  br i1 %1372, label %1373, label %1390

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

1390:                                             ; preds = %1368, %1361
  %1391 = load i32, ptr %40, align 4, !tbaa !5
  %1392 = call ptr @__errno_location() #9
  store i32 %1391, ptr %1392, align 4, !tbaa !5
  %1393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1394 = load i32, ptr @test_count, align 4, !tbaa !5
  %1395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1396 = load i32, ptr %1395, align 4, !tbaa !5
  %1397 = call ptr @s2n_strerror(i32 noundef %1396, ptr noundef @.str.4)
  %1398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1399 = load i32, ptr %1398, align 4, !tbaa !5
  %1400 = call ptr @s2n_strerror_debug(i32 noundef %1399, ptr noundef @.str.4)
  %1401 = call ptr @__errno_location() #9
  %1402 = load i32, ptr %1401, align 4, !tbaa !5
  %1403 = call ptr @strerror(i32 noundef %1402) #8
  %1404 = call ptr @__errno_location() #9
  %1405 = load i32, ptr %1404, align 4, !tbaa !5
  %1406 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1393, ptr noundef @.str.5, i32 noundef %1394, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 212, ptr noundef %1397, ptr noundef %1400, ptr noundef %1403, i32 noundef %1405) #8
  br label %1407

1407:                                             ; preds = %1390, %1373
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #8
  br label %1408

1408:                                             ; preds = %1407
  br label %1409

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

1410:                                             ; No predecessors!
  br label %1411

1411:                                             ; preds = %1410
  br label %1412

1412:                                             ; preds = %1411, %1352
  br label %1413

1413:                                             ; preds = %1412
  br label %1414

1414:                                             ; preds = %1413
  br label %1415

1415:                                             ; preds = %1414, %1286
  br label %1416

1416:                                             ; preds = %1415
  %1417 = load i32, ptr @test_count, align 4, !tbaa !5
  %1418 = add nsw i32 %1417, 1
  store i32 %1418, ptr @test_count, align 4, !tbaa !5
  %1419 = load ptr, ptr %31, align 8, !tbaa !9
  %1420 = load ptr, ptr %30, align 8, !tbaa !9
  %1421 = call i32 @s2n_connection_set_config(ptr noundef %1419, ptr noundef %1420)
  %1422 = icmp eq i32 %1421, -1
  br i1 %1422, label %1423, label %1476

1423:                                             ; preds = %1416
  br label %1424

1424:                                             ; preds = %1423
  br label %1425

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

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

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

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

1471:                                             ; preds = %1454, %1437
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #8
  br label %1472

1472:                                             ; preds = %1471
  br label %1473

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

1474:                                             ; No predecessors!
  br label %1475

1475:                                             ; preds = %1474
  br label %1476

1476:                                             ; preds = %1475, %1416
  br label %1477

1477:                                             ; preds = %1476
  br label %1478

1478:                                             ; preds = %1477
  br label %1479

1479:                                             ; preds = %1478
  %1480 = load i32, ptr @test_count, align 4, !tbaa !5
  %1481 = add nsw i32 %1480, 1
  store i32 %1481, ptr @test_count, align 4, !tbaa !5
  %1482 = load ptr, ptr %31, align 8, !tbaa !9
  %1483 = call i32 @s2n_connection_set_io_pair(ptr noundef %1482, ptr noundef %23)
  %1484 = icmp eq i32 %1483, -1
  br i1 %1484, label %1485, label %1538

1485:                                             ; preds = %1479
  br label %1486

1486:                                             ; preds = %1485
  br label %1487

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

1494:                                             ; preds = %1487
  %1495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1496 = call i32 @fileno(ptr noundef %1495) #8
  %1497 = call i32 @isatty(i32 noundef %1496) #8
  %1498 = icmp ne i32 %1497, 0
  br i1 %1498, label %1499, label %1516

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

1516:                                             ; preds = %1494, %1487
  %1517 = load i32, ptr %42, align 4, !tbaa !5
  %1518 = call ptr @__errno_location() #9
  store i32 %1517, ptr %1518, align 4, !tbaa !5
  %1519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1520 = load i32, ptr @test_count, align 4, !tbaa !5
  %1521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1522 = load i32, ptr %1521, align 4, !tbaa !5
  %1523 = call ptr @s2n_strerror(i32 noundef %1522, ptr noundef @.str.4)
  %1524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1525 = load i32, ptr %1524, align 4, !tbaa !5
  %1526 = call ptr @s2n_strerror_debug(i32 noundef %1525, ptr noundef @.str.4)
  %1527 = call ptr @__errno_location() #9
  %1528 = load i32, ptr %1527, align 4, !tbaa !5
  %1529 = call ptr @strerror(i32 noundef %1528) #8
  %1530 = call ptr @__errno_location() #9
  %1531 = load i32, ptr %1530, align 4, !tbaa !5
  %1532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1519, ptr noundef @.str.5, i32 noundef %1520, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 218, ptr noundef %1523, ptr noundef %1526, ptr noundef %1529, i32 noundef %1531) #8
  br label %1533

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

1534:                                             ; preds = %1533
  br label %1535

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

1536:                                             ; No predecessors!
  br label %1537

1537:                                             ; preds = %1536
  br label %1538

1538:                                             ; preds = %1537, %1479
  br label %1539

1539:                                             ; preds = %1538
  br label %1540

1540:                                             ; preds = %1539
  br label %1541

1541:                                             ; preds = %1540
  %1542 = load i32, ptr @test_count, align 4, !tbaa !5
  %1543 = add nsw i32 %1542, 1
  store i32 %1543, ptr @test_count, align 4, !tbaa !5
  %1544 = load ptr, ptr %31, align 8, !tbaa !9
  %1545 = call i32 @s2n_negotiate(ptr noundef %1544, ptr noundef %6)
  %1546 = icmp eq i32 %1545, -1
  br i1 %1546, label %1547, label %1600

1547:                                             ; preds = %1541
  br label %1548

1548:                                             ; preds = %1547
  br label %1549

1549:                                             ; preds = %1548
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #8
  %1550 = call ptr @__errno_location() #9
  %1551 = load i32, ptr %1550, align 4, !tbaa !5
  store i32 %1551, ptr %43, align 4, !tbaa !5
  %1552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1553 = call i32 @s2n_print_stacktrace(ptr noundef %1552)
  %1554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1555 = trunc i8 %1554 to i1
  br i1 %1555, label %1556, label %1578

1556:                                             ; preds = %1549
  %1557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1558 = call i32 @fileno(ptr noundef %1557) #8
  %1559 = call i32 @isatty(i32 noundef %1558) #8
  %1560 = icmp ne i32 %1559, 0
  br i1 %1560, label %1561, label %1578

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

1578:                                             ; preds = %1556, %1549
  %1579 = load i32, ptr %43, align 4, !tbaa !5
  %1580 = call ptr @__errno_location() #9
  store i32 %1579, ptr %1580, align 4, !tbaa !5
  %1581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1582 = load i32, ptr @test_count, align 4, !tbaa !5
  %1583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1584 = load i32, ptr %1583, align 4, !tbaa !5
  %1585 = call ptr @s2n_strerror(i32 noundef %1584, ptr noundef @.str.4)
  %1586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1587 = load i32, ptr %1586, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror_debug(i32 noundef %1587, ptr noundef @.str.4)
  %1589 = call ptr @__errno_location() #9
  %1590 = load i32, ptr %1589, align 4, !tbaa !5
  %1591 = call ptr @strerror(i32 noundef %1590) #8
  %1592 = call ptr @__errno_location() #9
  %1593 = load i32, ptr %1592, align 4, !tbaa !5
  %1594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1581, ptr noundef @.str.5, i32 noundef %1582, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 221, ptr noundef %1585, ptr noundef %1588, ptr noundef %1591, i32 noundef %1593) #8
  br label %1595

1595:                                             ; preds = %1578, %1561
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #8
  br label %1596

1596:                                             ; preds = %1595
  br label %1597

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

1598:                                             ; No predecessors!
  br label %1599

1599:                                             ; preds = %1598
  br label %1600

1600:                                             ; preds = %1599, %1541
  br label %1601

1601:                                             ; preds = %1600
  br label %1602

1602:                                             ; preds = %1601
  call void @llvm.lifetime.start.p0(i64 65535, ptr %44) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #8
  store i32 1, ptr %45, align 4, !tbaa !5
  br label %1603

1603:                                             ; preds = %1825, %1602
  %1604 = load i32, ptr %45, align 4, !tbaa !5
  %1605 = icmp slt i32 %1604, 65535
  br i1 %1605, label %1607, label %1606

1606:                                             ; preds = %1603
  store i32 160, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #8
  br label %1828

1607:                                             ; preds = %1603
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #8
  %1608 = getelementptr inbounds [65535 x i8], ptr %44, i64 0, i64 0
  store ptr %1608, ptr %46, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #8
  %1609 = load i32, ptr %45, align 4, !tbaa !5
  store i32 %1609, ptr %47, align 4, !tbaa !5
  br label %1610

1610:                                             ; preds = %1684, %1607
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #8
  store i32 0, ptr %48, align 4, !tbaa !5
  br label %1611

1611:                                             ; preds = %1610
  %1612 = load i32, ptr @test_count, align 4, !tbaa !5
  %1613 = add nsw i32 %1612, 1
  store i32 %1613, ptr @test_count, align 4, !tbaa !5
  %1614 = load ptr, ptr %31, align 8, !tbaa !9
  %1615 = load ptr, ptr %46, align 8, !tbaa !9
  %1616 = load i32, ptr %47, align 4, !tbaa !5
  %1617 = sext i32 %1616 to i64
  %1618 = call i64 @s2n_recv(ptr noundef %1614, ptr noundef %1615, i64 noundef %1617, ptr noundef %6)
  %1619 = trunc i64 %1618 to i32
  store i32 %1619, ptr %48, align 4, !tbaa !5
  %1620 = icmp eq i32 %1619, -1
  br i1 %1620, label %1621, label %1674

1621:                                             ; preds = %1611
  br label %1622

1622:                                             ; preds = %1621
  br label %1623

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

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

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

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

1669:                                             ; preds = %1652, %1635
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #8
  br label %1670

1670:                                             ; preds = %1669
  br label %1671

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

1672:                                             ; No predecessors!
  br label %1673

1673:                                             ; preds = %1672
  br label %1674

1674:                                             ; preds = %1673, %1611
  br label %1675

1675:                                             ; preds = %1674
  br label %1676

1676:                                             ; preds = %1675
  %1677 = load i32, ptr %48, align 4, !tbaa !5
  %1678 = load i32, ptr %47, align 4, !tbaa !5
  %1679 = sub nsw i32 %1678, %1677
  store i32 %1679, ptr %47, align 4, !tbaa !5
  %1680 = load i32, ptr %48, align 4, !tbaa !5
  %1681 = load ptr, ptr %46, align 8, !tbaa !9
  %1682 = sext i32 %1680 to i64
  %1683 = getelementptr inbounds i8, ptr %1681, i64 %1682
  store ptr %1683, ptr %46, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #8
  br label %1684

1684:                                             ; preds = %1676
  %1685 = load i32, ptr %47, align 4, !tbaa !5
  %1686 = icmp ne i32 %1685, 0
  br i1 %1686, label %1610, label %1687, !llvm.loop !47

1687:                                             ; preds = %1684
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #8
  store i32 0, ptr %50, align 4, !tbaa !5
  br label %1688

1688:                                             ; preds = %1759, %1687
  %1689 = load i32, ptr %50, align 4, !tbaa !5
  %1690 = load i32, ptr %45, align 4, !tbaa !5
  %1691 = icmp slt i32 %1689, %1690
  br i1 %1691, label %1693, label %1692

1692:                                             ; preds = %1688
  store i32 171, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #8
  br label %1762

1693:                                             ; preds = %1688
  br label %1694

1694:                                             ; preds = %1693
  %1695 = load i32, ptr @test_count, align 4, !tbaa !5
  %1696 = add nsw i32 %1695, 1
  store i32 %1696, ptr @test_count, align 4, !tbaa !5
  %1697 = load i32, ptr %50, align 4, !tbaa !5
  %1698 = sext i32 %1697 to i64
  %1699 = getelementptr inbounds [65535 x i8], ptr %44, i64 0, i64 %1698
  %1700 = load i8, ptr %1699, align 1, !tbaa !48
  %1701 = sext i8 %1700 to i32
  %1702 = icmp eq i32 %1701, 33
  br i1 %1702, label %1756, label %1703

1703:                                             ; preds = %1694
  br label %1704

1704:                                             ; preds = %1703
  br label %1705

1705:                                             ; preds = %1704
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #8
  %1706 = call ptr @__errno_location() #9
  %1707 = load i32, ptr %1706, align 4, !tbaa !5
  store i32 %1707, ptr %51, align 4, !tbaa !5
  %1708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1709 = call i32 @s2n_print_stacktrace(ptr noundef %1708)
  %1710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1711 = trunc i8 %1710 to i1
  br i1 %1711, label %1712, label %1734

1712:                                             ; preds = %1705
  %1713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1714 = call i32 @fileno(ptr noundef %1713) #8
  %1715 = call i32 @isatty(i32 noundef %1714) #8
  %1716 = icmp ne i32 %1715, 0
  br i1 %1716, label %1717, label %1734

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

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

1751:                                             ; preds = %1734, %1717
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #8
  br label %1752

1752:                                             ; preds = %1751
  br label %1753

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

1754:                                             ; No predecessors!
  br label %1755

1755:                                             ; preds = %1754
  br label %1756

1756:                                             ; preds = %1755, %1694
  br label %1757

1757:                                             ; preds = %1756
  br label %1758

1758:                                             ; preds = %1757
  br label %1759

1759:                                             ; preds = %1758
  %1760 = load i32, ptr %50, align 4, !tbaa !5
  %1761 = add nsw i32 %1760, 1
  store i32 %1761, ptr %50, align 4, !tbaa !5
  br label %1688, !llvm.loop !49

1762:                                             ; preds = %1692
  br label %1763

1763:                                             ; preds = %1762
  %1764 = load i32, ptr @test_count, align 4, !tbaa !5
  %1765 = add nsw i32 %1764, 1
  store i32 %1765, ptr @test_count, align 4, !tbaa !5
  %1766 = load ptr, ptr %31, align 8, !tbaa !9
  %1767 = call i32 @s2n_connection_release_buffers(ptr noundef %1766)
  %1768 = icmp eq i32 %1767, -1
  br i1 %1768, label %1769, label %1822

1769:                                             ; preds = %1763
  br label %1770

1770:                                             ; preds = %1769
  br label %1771

1771:                                             ; preds = %1770
  call void @llvm.lifetime.start.p0(i64 4, ptr %52) #8
  %1772 = call ptr @__errno_location() #9
  %1773 = load i32, ptr %1772, align 4, !tbaa !5
  store i32 %1773, ptr %52, align 4, !tbaa !5
  %1774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1775 = call i32 @s2n_print_stacktrace(ptr noundef %1774)
  %1776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1777 = trunc i8 %1776 to i1
  br i1 %1777, label %1778, label %1800

1778:                                             ; preds = %1771
  %1779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1780 = call i32 @fileno(ptr noundef %1779) #8
  %1781 = call i32 @isatty(i32 noundef %1780) #8
  %1782 = icmp ne i32 %1781, 0
  br i1 %1782, label %1783, label %1800

1783:                                             ; preds = %1778
  %1784 = load i32, ptr %52, align 4, !tbaa !5
  %1785 = call ptr @__errno_location() #9
  store i32 %1784, ptr %1785, align 4, !tbaa !5
  %1786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1787 = load i32, ptr @test_count, align 4, !tbaa !5
  %1788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = call ptr @s2n_strerror(i32 noundef %1789, ptr noundef @.str.4)
  %1791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1792 = load i32, ptr %1791, align 4, !tbaa !5
  %1793 = call ptr @s2n_strerror_debug(i32 noundef %1792, ptr noundef @.str.4)
  %1794 = call ptr @__errno_location() #9
  %1795 = load i32, ptr %1794, align 4, !tbaa !5
  %1796 = call ptr @strerror(i32 noundef %1795) #8
  %1797 = call ptr @__errno_location() #9
  %1798 = load i32, ptr %1797, align 4, !tbaa !5
  %1799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1786, ptr noundef @.str.2, i32 noundef %1787, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 241, ptr noundef %1790, ptr noundef %1793, ptr noundef %1796, i32 noundef %1798) #8
  br label %1817

1800:                                             ; preds = %1778, %1771
  %1801 = load i32, ptr %52, align 4, !tbaa !5
  %1802 = call ptr @__errno_location() #9
  store i32 %1801, ptr %1802, align 4, !tbaa !5
  %1803 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1804 = load i32, ptr @test_count, align 4, !tbaa !5
  %1805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1806 = load i32, ptr %1805, align 4, !tbaa !5
  %1807 = call ptr @s2n_strerror(i32 noundef %1806, ptr noundef @.str.4)
  %1808 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1809 = load i32, ptr %1808, align 4, !tbaa !5
  %1810 = call ptr @s2n_strerror_debug(i32 noundef %1809, ptr noundef @.str.4)
  %1811 = call ptr @__errno_location() #9
  %1812 = load i32, ptr %1811, align 4, !tbaa !5
  %1813 = call ptr @strerror(i32 noundef %1812) #8
  %1814 = call ptr @__errno_location() #9
  %1815 = load i32, ptr %1814, align 4, !tbaa !5
  %1816 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1803, ptr noundef @.str.5, i32 noundef %1804, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 241, ptr noundef %1807, ptr noundef %1810, ptr noundef %1813, i32 noundef %1815) #8
  br label %1817

1817:                                             ; preds = %1800, %1783
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #8
  br label %1818

1818:                                             ; preds = %1817
  br label %1819

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

1820:                                             ; No predecessors!
  br label %1821

1821:                                             ; preds = %1820
  br label %1822

1822:                                             ; preds = %1821, %1763
  br label %1823

1823:                                             ; preds = %1822
  br label %1824

1824:                                             ; preds = %1823
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #8
  br label %1825

1825:                                             ; preds = %1824
  %1826 = load i32, ptr %45, align 4, !tbaa !5
  %1827 = add nsw i32 %1826, 100
  store i32 %1827, ptr %45, align 4, !tbaa !5
  br label %1603, !llvm.loop !50

1828:                                             ; preds = %1606
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #8
  store i32 -1, ptr %53, align 4, !tbaa !5
  br label %1829

1829:                                             ; preds = %1900, %1828
  %1830 = load ptr, ptr %31, align 8, !tbaa !9
  %1831 = call i32 @s2n_shutdown(ptr noundef %1830, ptr noundef %6)
  store i32 %1831, ptr %53, align 4, !tbaa !5
  br label %1832

1832:                                             ; preds = %1829
  %1833 = load i32, ptr @test_count, align 4, !tbaa !5
  %1834 = add nsw i32 %1833, 1
  store i32 %1834, ptr @test_count, align 4, !tbaa !5
  %1835 = load i32, ptr %53, align 4, !tbaa !5
  %1836 = icmp eq i32 %1835, 0
  br i1 %1836, label %1897, label %1837

1837:                                             ; preds = %1832
  %1838 = call ptr @__errno_location() #9
  %1839 = load i32, ptr %1838, align 4, !tbaa !5
  %1840 = icmp eq i32 %1839, 11
  br i1 %1840, label %1841, label %1844

1841:                                             ; preds = %1837
  %1842 = load i32, ptr %6, align 4, !tbaa !5
  %1843 = icmp ne i32 %1842, 0
  br i1 %1843, label %1897, label %1844

1844:                                             ; preds = %1841, %1837
  br label %1845

1845:                                             ; preds = %1844
  br label %1846

1846:                                             ; preds = %1845
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #8
  %1847 = call ptr @__errno_location() #9
  %1848 = load i32, ptr %1847, align 4, !tbaa !5
  store i32 %1848, ptr %54, align 4, !tbaa !5
  %1849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1850 = call i32 @s2n_print_stacktrace(ptr noundef %1849)
  %1851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1852 = trunc i8 %1851 to i1
  br i1 %1852, label %1853, label %1875

1853:                                             ; preds = %1846
  %1854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1855 = call i32 @fileno(ptr noundef %1854) #8
  %1856 = call i32 @isatty(i32 noundef %1855) #8
  %1857 = icmp ne i32 %1856, 0
  br i1 %1857, label %1858, label %1875

1858:                                             ; preds = %1853
  %1859 = load i32, ptr %54, align 4, !tbaa !5
  %1860 = call ptr @__errno_location() #9
  store i32 %1859, ptr %1860, align 4, !tbaa !5
  %1861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1862 = load i32, ptr @test_count, align 4, !tbaa !5
  %1863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1864 = load i32, ptr %1863, align 4, !tbaa !5
  %1865 = call ptr @s2n_strerror(i32 noundef %1864, ptr noundef @.str.4)
  %1866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1867 = load i32, ptr %1866, align 4, !tbaa !5
  %1868 = call ptr @s2n_strerror_debug(i32 noundef %1867, ptr noundef @.str.4)
  %1869 = call ptr @__errno_location() #9
  %1870 = load i32, ptr %1869, align 4, !tbaa !5
  %1871 = call ptr @strerror(i32 noundef %1870) #8
  %1872 = call ptr @__errno_location() #9
  %1873 = load i32, ptr %1872, align 4, !tbaa !5
  %1874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1861, ptr noundef @.str.2, i32 noundef %1862, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 247, ptr noundef %1865, ptr noundef %1868, ptr noundef %1871, i32 noundef %1873) #8
  br label %1892

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

1892:                                             ; preds = %1875, %1858
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #8
  br label %1893

1893:                                             ; preds = %1892
  br label %1894

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

1895:                                             ; No predecessors!
  br label %1896

1896:                                             ; preds = %1895
  br label %1897

1897:                                             ; preds = %1896, %1841, %1832
  br label %1898

1898:                                             ; preds = %1897
  br label %1899

1899:                                             ; preds = %1898
  br label %1900

1900:                                             ; preds = %1899
  %1901 = load i32, ptr %53, align 4, !tbaa !5
  %1902 = icmp ne i32 %1901, 0
  br i1 %1902, label %1829, label %1903, !llvm.loop !51

1903:                                             ; preds = %1900
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #8
  store i64 0, ptr %55, align 8, !tbaa !15
  br label %1904

1904:                                             ; preds = %1973, %1903
  %1905 = load i64, ptr %55, align 8, !tbaa !15
  %1906 = icmp ult i64 %1905, 2
  br i1 %1906, label %1908, label %1907

1907:                                             ; preds = %1904
  store i32 194, ptr %21, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  br label %1976

1908:                                             ; preds = %1904
  br label %1909

1909:                                             ; preds = %1908
  %1910 = load i32, ptr @test_count, align 4, !tbaa !5
  %1911 = add nsw i32 %1910, 1
  store i32 %1911, ptr @test_count, align 4, !tbaa !5
  %1912 = load i64, ptr %55, align 8, !tbaa !15
  %1913 = getelementptr inbounds [2 x ptr], ptr %22, i64 0, i64 %1912
  %1914 = load ptr, ptr %1913, align 8, !tbaa !9
  %1915 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %1914)
  %1916 = icmp eq i32 %1915, -1
  br i1 %1916, label %1917, label %1970

1917:                                             ; preds = %1909
  br label %1918

1918:                                             ; preds = %1917
  br label %1919

1919:                                             ; preds = %1918
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #8
  %1920 = call ptr @__errno_location() #9
  %1921 = load i32, ptr %1920, align 4, !tbaa !5
  store i32 %1921, ptr %56, align 4, !tbaa !5
  %1922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1923 = call i32 @s2n_print_stacktrace(ptr noundef %1922)
  %1924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1925 = trunc i8 %1924 to i1
  br i1 %1925, label %1926, label %1948

1926:                                             ; preds = %1919
  %1927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1928 = call i32 @fileno(ptr noundef %1927) #8
  %1929 = call i32 @isatty(i32 noundef %1928) #8
  %1930 = icmp ne i32 %1929, 0
  br i1 %1930, label %1931, label %1948

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

1948:                                             ; preds = %1926, %1919
  %1949 = load i32, ptr %56, align 4, !tbaa !5
  %1950 = call ptr @__errno_location() #9
  store i32 %1949, ptr %1950, align 4, !tbaa !5
  %1951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1952 = load i32, ptr @test_count, align 4, !tbaa !5
  %1953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1954 = load i32, ptr %1953, align 4, !tbaa !5
  %1955 = call ptr @s2n_strerror(i32 noundef %1954, ptr noundef @.str.4)
  %1956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1957 = load i32, ptr %1956, align 4, !tbaa !5
  %1958 = call ptr @s2n_strerror_debug(i32 noundef %1957, ptr noundef @.str.4)
  %1959 = call ptr @__errno_location() #9
  %1960 = load i32, ptr %1959, align 4, !tbaa !5
  %1961 = call ptr @strerror(i32 noundef %1960) #8
  %1962 = call ptr @__errno_location() #9
  %1963 = load i32, ptr %1962, align 4, !tbaa !5
  %1964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1951, ptr noundef @.str.5, i32 noundef %1952, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 251, ptr noundef %1955, ptr noundef %1958, ptr noundef %1961, i32 noundef %1963) #8
  br label %1965

1965:                                             ; preds = %1948, %1931
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #8
  br label %1966

1966:                                             ; preds = %1965
  br label %1967

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

1968:                                             ; No predecessors!
  br label %1969

1969:                                             ; preds = %1968
  br label %1970

1970:                                             ; preds = %1969, %1909
  br label %1971

1971:                                             ; preds = %1970
  br label %1972

1972:                                             ; preds = %1971
  br label %1973

1973:                                             ; preds = %1972
  %1974 = load i64, ptr %55, align 8, !tbaa !15
  %1975 = add i64 %1974, 1
  store i64 %1975, ptr %55, align 8, !tbaa !15
  br label %1904, !llvm.loop !52

1976:                                             ; preds = %1907
  br label %1977

1977:                                             ; preds = %1976
  %1978 = load i32, ptr @test_count, align 4, !tbaa !5
  %1979 = add nsw i32 %1978, 1
  store i32 %1979, ptr @test_count, align 4, !tbaa !5
  %1980 = call i32 @waitpid(i32 noundef -1, ptr noundef %7, i32 noundef 0)
  %1981 = load i32, ptr %25, align 4, !tbaa !5
  %1982 = icmp eq i32 %1980, %1981
  br i1 %1982, label %2036, label %1983

1983:                                             ; preds = %1977
  br label %1984

1984:                                             ; preds = %1983
  br label %1985

1985:                                             ; preds = %1984
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #8
  %1986 = call ptr @__errno_location() #9
  %1987 = load i32, ptr %1986, align 4, !tbaa !5
  store i32 %1987, ptr %57, align 4, !tbaa !5
  %1988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1989 = call i32 @s2n_print_stacktrace(ptr noundef %1988)
  %1990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1991 = trunc i8 %1990 to i1
  br i1 %1991, label %1992, label %2014

1992:                                             ; preds = %1985
  %1993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1994 = call i32 @fileno(ptr noundef %1993) #8
  %1995 = call i32 @isatty(i32 noundef %1994) #8
  %1996 = icmp ne i32 %1995, 0
  br i1 %1996, label %1997, label %2014

1997:                                             ; preds = %1992
  %1998 = load i32, ptr %57, align 4, !tbaa !5
  %1999 = call ptr @__errno_location() #9
  store i32 %1998, ptr %1999, align 4, !tbaa !5
  %2000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2001 = load i32, ptr @test_count, align 4, !tbaa !5
  %2002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2003 = load i32, ptr %2002, align 4, !tbaa !5
  %2004 = call ptr @s2n_strerror(i32 noundef %2003, ptr noundef @.str.4)
  %2005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2006 = load i32, ptr %2005, align 4, !tbaa !5
  %2007 = call ptr @s2n_strerror_debug(i32 noundef %2006, ptr noundef @.str.4)
  %2008 = call ptr @__errno_location() #9
  %2009 = load i32, ptr %2008, align 4, !tbaa !5
  %2010 = call ptr @strerror(i32 noundef %2009) #8
  %2011 = call ptr @__errno_location() #9
  %2012 = load i32, ptr %2011, align 4, !tbaa !5
  %2013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2000, ptr noundef @.str.2, i32 noundef %2001, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 255, ptr noundef %2004, ptr noundef %2007, ptr noundef %2010, i32 noundef %2012) #8
  br label %2031

2014:                                             ; preds = %1992, %1985
  %2015 = load i32, ptr %57, align 4, !tbaa !5
  %2016 = call ptr @__errno_location() #9
  store i32 %2015, ptr %2016, align 4, !tbaa !5
  %2017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2018 = load i32, ptr @test_count, align 4, !tbaa !5
  %2019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2020 = load i32, ptr %2019, align 4, !tbaa !5
  %2021 = call ptr @s2n_strerror(i32 noundef %2020, ptr noundef @.str.4)
  %2022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2023 = load i32, ptr %2022, align 4, !tbaa !5
  %2024 = call ptr @s2n_strerror_debug(i32 noundef %2023, ptr noundef @.str.4)
  %2025 = call ptr @__errno_location() #9
  %2026 = load i32, ptr %2025, align 4, !tbaa !5
  %2027 = call ptr @strerror(i32 noundef %2026) #8
  %2028 = call ptr @__errno_location() #9
  %2029 = load i32, ptr %2028, align 4, !tbaa !5
  %2030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2017, ptr noundef @.str.5, i32 noundef %2018, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 255, ptr noundef %2021, ptr noundef %2024, ptr noundef %2027, i32 noundef %2029) #8
  br label %2031

2031:                                             ; preds = %2014, %1997
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #8
  br label %2032

2032:                                             ; preds = %2031
  br label %2033

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

2034:                                             ; No predecessors!
  br label %2035

2035:                                             ; preds = %2034
  br label %2036

2036:                                             ; preds = %2035, %1977
  br label %2037

2037:                                             ; preds = %2036
  br label %2038

2038:                                             ; preds = %2037
  br label %2039

2039:                                             ; preds = %2038
  %2040 = load i32, ptr @test_count, align 4, !tbaa !5
  %2041 = add nsw i32 %2040, 1
  store i32 %2041, ptr @test_count, align 4, !tbaa !5
  %2042 = load i32, ptr %7, align 4, !tbaa !5
  %2043 = icmp eq i32 %2042, 0
  br i1 %2043, label %2097, label %2044

2044:                                             ; preds = %2039
  br label %2045

2045:                                             ; preds = %2044
  br label %2046

2046:                                             ; preds = %2045
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #8
  %2047 = call ptr @__errno_location() #9
  %2048 = load i32, ptr %2047, align 4, !tbaa !5
  store i32 %2048, ptr %58, align 4, !tbaa !5
  %2049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2050 = call i32 @s2n_print_stacktrace(ptr noundef %2049)
  %2051 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2052 = trunc i8 %2051 to i1
  br i1 %2052, label %2053, label %2075

2053:                                             ; preds = %2046
  %2054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2055 = call i32 @fileno(ptr noundef %2054) #8
  %2056 = call i32 @isatty(i32 noundef %2055) #8
  %2057 = icmp ne i32 %2056, 0
  br i1 %2057, label %2058, label %2075

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

2075:                                             ; preds = %2053, %2046
  %2076 = load i32, ptr %58, align 4, !tbaa !5
  %2077 = call ptr @__errno_location() #9
  store i32 %2076, ptr %2077, align 4, !tbaa !5
  %2078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2079 = load i32, ptr @test_count, align 4, !tbaa !5
  %2080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2081 = load i32, ptr %2080, align 4, !tbaa !5
  %2082 = call ptr @s2n_strerror(i32 noundef %2081, ptr noundef @.str.4)
  %2083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2084 = load i32, ptr %2083, align 4, !tbaa !5
  %2085 = call ptr @s2n_strerror_debug(i32 noundef %2084, ptr noundef @.str.4)
  %2086 = call ptr @__errno_location() #9
  %2087 = load i32, ptr %2086, align 4, !tbaa !5
  %2088 = call ptr @strerror(i32 noundef %2087) #8
  %2089 = call ptr @__errno_location() #9
  %2090 = load i32, ptr %2089, align 4, !tbaa !5
  %2091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2078, ptr noundef @.str.5, i32 noundef %2079, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 256, ptr noundef %2082, ptr noundef %2085, ptr noundef %2088, i32 noundef %2090) #8
  br label %2092

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

2093:                                             ; preds = %2092
  br label %2094

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

2095:                                             ; No predecessors!
  br label %2096

2096:                                             ; preds = %2095
  br label %2097

2097:                                             ; preds = %2096, %2039
  br label %2098

2098:                                             ; preds = %2097
  br label %2099

2099:                                             ; preds = %2098
  br label %2100

2100:                                             ; preds = %2099
  %2101 = load i32, ptr @test_count, align 4, !tbaa !5
  %2102 = add nsw i32 %2101, 1
  store i32 %2102, ptr @test_count, align 4, !tbaa !5
  %2103 = call i32 @s2n_io_pair_close_one_end(ptr noundef %23, i32 noundef 0)
  %2104 = icmp eq i32 %2103, -1
  br i1 %2104, label %2105, label %2158

2105:                                             ; preds = %2100
  br label %2106

2106:                                             ; preds = %2105
  br label %2107

2107:                                             ; preds = %2106
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #8
  %2108 = call ptr @__errno_location() #9
  %2109 = load i32, ptr %2108, align 4, !tbaa !5
  store i32 %2109, ptr %59, align 4, !tbaa !5
  %2110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2111 = call i32 @s2n_print_stacktrace(ptr noundef %2110)
  %2112 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2113 = trunc i8 %2112 to i1
  br i1 %2113, label %2114, label %2136

2114:                                             ; preds = %2107
  %2115 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2116 = call i32 @fileno(ptr noundef %2115) #8
  %2117 = call i32 @isatty(i32 noundef %2116) #8
  %2118 = icmp ne i32 %2117, 0
  br i1 %2118, label %2119, label %2136

2119:                                             ; preds = %2114
  %2120 = load i32, ptr %59, align 4, !tbaa !5
  %2121 = call ptr @__errno_location() #9
  store i32 %2120, ptr %2121, align 4, !tbaa !5
  %2122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2123 = load i32, ptr @test_count, align 4, !tbaa !5
  %2124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2125 = load i32, ptr %2124, align 4, !tbaa !5
  %2126 = call ptr @s2n_strerror(i32 noundef %2125, ptr noundef @.str.4)
  %2127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2128 = load i32, ptr %2127, align 4, !tbaa !5
  %2129 = call ptr @s2n_strerror_debug(i32 noundef %2128, ptr noundef @.str.4)
  %2130 = call ptr @__errno_location() #9
  %2131 = load i32, ptr %2130, align 4, !tbaa !5
  %2132 = call ptr @strerror(i32 noundef %2131) #8
  %2133 = call ptr @__errno_location() #9
  %2134 = load i32, ptr %2133, align 4, !tbaa !5
  %2135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2122, ptr noundef @.str.2, i32 noundef %2123, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 257, ptr noundef %2126, ptr noundef %2129, ptr noundef %2132, i32 noundef %2134) #8
  br label %2153

2136:                                             ; preds = %2114, %2107
  %2137 = load i32, ptr %59, align 4, !tbaa !5
  %2138 = call ptr @__errno_location() #9
  store i32 %2137, ptr %2138, align 4, !tbaa !5
  %2139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2140 = load i32, ptr @test_count, align 4, !tbaa !5
  %2141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2142 = load i32, ptr %2141, align 4, !tbaa !5
  %2143 = call ptr @s2n_strerror(i32 noundef %2142, ptr noundef @.str.4)
  %2144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2145 = load i32, ptr %2144, align 4, !tbaa !5
  %2146 = call ptr @s2n_strerror_debug(i32 noundef %2145, ptr noundef @.str.4)
  %2147 = call ptr @__errno_location() #9
  %2148 = load i32, ptr %2147, align 4, !tbaa !5
  %2149 = call ptr @strerror(i32 noundef %2148) #8
  %2150 = call ptr @__errno_location() #9
  %2151 = load i32, ptr %2150, align 4, !tbaa !5
  %2152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2139, ptr noundef @.str.5, i32 noundef %2140, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 257, ptr noundef %2143, ptr noundef %2146, ptr noundef %2149, i32 noundef %2151) #8
  br label %2153

2153:                                             ; preds = %2136, %2119
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #8
  br label %2154

2154:                                             ; preds = %2153
  br label %2155

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

2156:                                             ; No predecessors!
  br label %2157

2157:                                             ; preds = %2156
  br label %2158

2158:                                             ; preds = %2157, %2100
  br label %2159

2159:                                             ; preds = %2158
  br label %2160

2160:                                             ; preds = %2159
  %2161 = load ptr, ptr %8, align 8, !tbaa !9
  call void @free(ptr noundef %2161) #8
  %2162 = load ptr, ptr %9, align 8, !tbaa !9
  call void @free(ptr noundef %2162) #8
  %2163 = load ptr, ptr %10, align 8, !tbaa !9
  call void @free(ptr noundef %2163) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 65535, ptr %44) #8
  %2164 = call i32 @s2n_connection_ptr_free(ptr noundef %31)
  %2165 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  store i32 %2164, ptr %2165, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  %2166 = call i32 @s2n_config_ptr_free(ptr noundef %30)
  %2167 = getelementptr inbounds %struct.s2n_result, ptr %61, i32 0, i32 0
  store i32 %2166, ptr %2167, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #8
  br label %2168

2168:                                             ; preds = %2160
  %2169 = load i64, ptr %20, align 8, !tbaa !15
  %2170 = add i64 %2169, 1
  store i64 %2170, ptr %20, align 8, !tbaa !15
  br label %570, !llvm.loop !53

2171:                                             ; preds = %573
  br label %2172

2172:                                             ; preds = %2171
  br label %2173

2173:                                             ; preds = %2172
  %2174 = call i32 @s2n_cleanup()
  %2175 = icmp eq i32 %2174, -1
  br i1 %2175, label %2176, label %2229

2176:                                             ; preds = %2173
  br label %2177

2177:                                             ; preds = %2176
  br label %2178

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

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

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

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

2224:                                             ; preds = %2207, %2190
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #8
  br label %2225

2225:                                             ; preds = %2224
  br label %2226

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

2227:                                             ; No predecessors!
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

2229:                                             ; preds = %2228, %2173
  br label %2230

2230:                                             ; preds = %2229
  br label %2231

2231:                                             ; preds = %2230
  br label %2232

2232:                                             ; preds = %2231
  br label %2233

2233:                                             ; preds = %2232
  %2234 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %2235 = icmp eq i32 %2234, -1
  br i1 %2235, label %2236, label %2289

2236:                                             ; preds = %2233
  br label %2237

2237:                                             ; preds = %2236
  br label %2238

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

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

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

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

2284:                                             ; preds = %2267, %2250
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #8
  br label %2285

2285:                                             ; preds = %2284
  br label %2286

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

2287:                                             ; No predecessors!
  br label %2288

2288:                                             ; preds = %2287
  br label %2289

2289:                                             ; preds = %2288, %2233
  br label %2290

2290:                                             ; preds = %2289
  br label %2291

2291:                                             ; preds = %2290
  %2292 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2293 = trunc i8 %2292 to i1
  br i1 %2293, label %2294, label %2310

2294:                                             ; preds = %2291
  %2295 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2296 = call i32 @fileno(ptr noundef %2295) #8
  %2297 = call i32 @isatty(i32 noundef %2296) #8
  %2298 = icmp ne i32 %2297, 0
  br i1 %2298, label %2299, label %2310

2299:                                             ; preds = %2294
  %2300 = load i32, ptr @test_count, align 4, !tbaa !5
  %2301 = icmp ne i32 %2300, 0
  br i1 %2301, label %2302, label %2306

2302:                                             ; preds = %2299
  %2303 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2304 = load i32, ptr @test_count, align 4, !tbaa !5
  %2305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2303, ptr noundef @.str.39, i32 noundef %2304) #8
  br label %2309

2306:                                             ; preds = %2299
  %2307 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2308 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2307, ptr noundef @.str.40) #8
  br label %2309

2309:                                             ; preds = %2306, %2302
  br label %2321

2310:                                             ; preds = %2294, %2291
  %2311 = load i32, ptr @test_count, align 4, !tbaa !5
  %2312 = icmp ne i32 %2311, 0
  br i1 %2312, label %2313, label %2317

2313:                                             ; preds = %2310
  %2314 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2315 = load i32, ptr @test_count, align 4, !tbaa !5
  %2316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2314, ptr noundef @.str.41, i32 noundef %2315) #8
  br label %2320

2317:                                             ; preds = %2310
  %2318 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2319 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2318, ptr noundef @.str.42) #8
  br label %2320

2320:                                             ; preds = %2317, %2313
  br label %2321

2321:                                             ; preds = %2320, %2309
  store i32 0, ptr %3, align 4
  store i32 1, ptr %21, align 4
  br label %2326

2322:                                             ; No predecessors!
  br label %2323

2323:                                             ; preds = %2322
  br label %2324

2324:                                             ; preds = %2323
  br label %2325

2325:                                             ; preds = %2324
  store i32 0, ptr %3, align 4
  store i32 1, ptr %21, align 4
  br label %2326

2326:                                             ; preds = %2325, %2321
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #8
  %2327 = load i32, ptr %3, align 4
  ret i32 %2327
}

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

; Function Attrs: nounwind uwtable
declare hidden i32 @custom_mem_init() #0

; Function Attrs: nounwind uwtable
declare hidden i32 @custom_mem_cleanup() #0

; Function Attrs: nounwind uwtable
declare hidden i32 @custom_mem_malloc(ptr noundef, i32 noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @custom_mem_free(ptr noundef, i32 noundef) #0

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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) #6

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare i32 @s2n_disable_tls13_in_test(...) #2

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_io_pair_init(ptr noundef) #2

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

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

declare i32 @s2n_config_ptr_free(ptr noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) #2

declare ptr @s2n_cert_chain_and_key_new() #2

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

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

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

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

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #2

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

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

declare i32 @s2n_cleanup() #2

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

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

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


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

%struct.s2n_test_io_pair = type { i32, i32 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [81 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [31 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [76 x i8], align 1
@certificate_paths = external hidden local_unnamed_addr global [2 x ptr], align 16
@.str.19 = external hidden unnamed_addr constant [94 x i8], align 1
@private_key_paths = external hidden local_unnamed_addr global [2 x ptr], align 16
@.str.20 = external hidden unnamed_addr constant [95 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [25 x i8], align 1

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

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

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

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

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

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

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

declare i32 @s2n_connection_release_buffers(ptr noundef) local_unnamed_addr #2

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

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

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

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca %struct.s2n_test_io_pair, align 4
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca [65535 x i8], align 16
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %3) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #10
  store i32 0, ptr %4, align 4, !tbaa !5
  %9 = tail call i32 @s2n_mem_set_callbacks(ptr noundef nonnull @custom_mem_init, ptr noundef nonnull @custom_mem_cleanup, ptr noundef nonnull @custom_mem_malloc, ptr noundef nonnull @custom_mem_free) #10
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %10 = load ptr, ptr @stdout, align 8, !tbaa !9
  %11 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #10
  %12 = load ptr, ptr @stdout, align 8, !tbaa !9
  %13 = tail call i32 @fflush(ptr noundef %12)
  %14 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #10
  %15 = icmp eq i32 %14, -1
  br i1 %15, label %16, label %40

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

23:                                               ; preds = %16
  %24 = load ptr, ptr @stderr, align 8, !tbaa !9
  %25 = tail call i32 @fileno(ptr noundef %24) #10
  %26 = tail call i32 @isatty(i32 noundef %25) #10
  %.not162 = icmp eq i32 %26, 0
  br i1 %.not162, label %27, label %28

27:                                               ; preds = %23, %16
  br label %28

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

40:                                               ; preds = %2
  %41 = load i32, ptr @test_count, align 4, !tbaa !5
  %42 = add nsw i32 %41, 1
  store i32 %42, ptr @test_count, align 4, !tbaa !5
  %43 = tail call i32 @s2n_enable_atexit() #10
  %44 = icmp eq i32 %43, -1
  br i1 %44, label %45, label %69

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

52:                                               ; preds = %45
  %53 = load ptr, ptr @stderr, align 8, !tbaa !9
  %54 = tail call i32 @fileno(ptr noundef %53) #10
  %55 = tail call i32 @isatty(i32 noundef %54) #10
  %.not161 = icmp eq i32 %55, 0
  br i1 %.not161, label %56, label %57

56:                                               ; preds = %52, %45
  br label %57

57:                                               ; preds = %52, %56
  %.str.5.sink198 = phi ptr [ @.str.5, %56 ], [ @.str.2, %52 ]
  store i32 %47, ptr %46, align 4, !tbaa !5
  %58 = load ptr, ptr @stderr, align 8, !tbaa !9
  %59 = load i32, ptr @test_count, align 4, !tbaa !5
  %60 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %61 = load i32, ptr %60, align 4, !tbaa !5
  %62 = tail call ptr @s2n_strerror(i32 noundef %61, ptr noundef nonnull @.str.4) #10
  %63 = load i32, ptr %60, align 4, !tbaa !5
  %64 = tail call ptr @s2n_strerror_debug(i32 noundef %63, ptr noundef nonnull @.str.4) #10
  %65 = load i32, ptr %46, align 4, !tbaa !5
  %66 = tail call ptr @strerror(i32 noundef %65) #10
  %67 = load i32, ptr %46, align 4, !tbaa !5
  %68 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %58, ptr noundef nonnull %.str.5.sink198, i32 noundef %59, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %62, ptr noundef %64, ptr noundef %66, i32 noundef %67) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

69:                                               ; preds = %40
  %70 = tail call i32 @s2n_init() #10
  %71 = icmp eq i32 %70, -1
  br i1 %71, label %72, label %96

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

79:                                               ; preds = %72
  %80 = load ptr, ptr @stderr, align 8, !tbaa !9
  %81 = tail call i32 @fileno(ptr noundef %80) #10
  %82 = tail call i32 @isatty(i32 noundef %81) #10
  %.not160 = icmp eq i32 %82, 0
  br i1 %.not160, label %83, label %84

83:                                               ; preds = %79, %72
  br label %84

84:                                               ; preds = %79, %83
  %.str.5.sink209 = phi ptr [ @.str.5, %83 ], [ @.str.2, %79 ]
  store i32 %74, ptr %73, align 4, !tbaa !5
  %85 = load ptr, ptr @stderr, align 8, !tbaa !9
  %86 = load i32, ptr @test_count, align 4, !tbaa !5
  %87 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %88 = load i32, ptr %87, align 4, !tbaa !5
  %89 = tail call ptr @s2n_strerror(i32 noundef %88, ptr noundef nonnull @.str.4) #10
  %90 = load i32, ptr %87, align 4, !tbaa !5
  %91 = tail call ptr @s2n_strerror_debug(i32 noundef %90, ptr noundef nonnull @.str.4) #10
  %92 = load i32, ptr %73, align 4, !tbaa !5
  %93 = tail call ptr @strerror(i32 noundef %92) #10
  %94 = load i32, ptr %73, align 4, !tbaa !5
  %95 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %85, ptr noundef nonnull %.str.5.sink209, i32 noundef %86, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %89, ptr noundef %91, ptr noundef %93, i32 noundef %94) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

96:                                               ; preds = %69
  %97 = load i32, ptr @test_count, align 4, !tbaa !5
  %98 = add nsw i32 %97, 1
  store i32 %98, ptr @test_count, align 4, !tbaa !5
  %99 = tail call i32 (...) @s2n_disable_tls13_in_test() #10
  %100 = icmp eq i32 %99, -1
  br i1 %100, label %101, label %125

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

108:                                              ; preds = %101
  %109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %110 = tail call i32 @fileno(ptr noundef %109) #10
  %111 = tail call i32 @isatty(i32 noundef %110) #10
  %.not159 = icmp eq i32 %111, 0
  br i1 %.not159, label %112, label %113

112:                                              ; preds = %108, %101
  br label %113

113:                                              ; preds = %108, %112
  %.str.5.sink220 = phi ptr [ @.str.5, %112 ], [ @.str.2, %108 ]
  store i32 %103, ptr %102, align 4, !tbaa !5
  %114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %115 = load i32, ptr @test_count, align 4, !tbaa !5
  %116 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %117 = load i32, ptr %116, align 4, !tbaa !5
  %118 = tail call ptr @s2n_strerror(i32 noundef %117, ptr noundef nonnull @.str.4) #10
  %119 = load i32, ptr %116, align 4, !tbaa !5
  %120 = tail call ptr @s2n_strerror_debug(i32 noundef %119, ptr noundef nonnull @.str.4) #10
  %121 = load i32, ptr %102, align 4, !tbaa !5
  %122 = tail call ptr @strerror(i32 noundef %121) #10
  %123 = load i32, ptr %102, align 4, !tbaa !5
  %124 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %114, ptr noundef nonnull %.str.5.sink220, i32 noundef %115, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %118, ptr noundef %120, ptr noundef %122, i32 noundef %123) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

125:                                              ; preds = %96
  %126 = load i32, ptr @test_count, align 4, !tbaa !5
  %127 = add nsw i32 %126, 1
  store i32 %127, ptr @test_count, align 4, !tbaa !5
  %128 = tail call i32 @s2n_mem_set_callbacks(ptr noundef nonnull @custom_mem_init, ptr noundef nonnull @custom_mem_cleanup, ptr noundef nonnull @custom_mem_malloc, ptr noundef nonnull @custom_mem_free) #10
  %129 = icmp eq i32 %128, -1
  br i1 %129, label %154, label %130

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

137:                                              ; preds = %130
  %138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %139 = tail call i32 @fileno(ptr noundef %138) #10
  %140 = tail call i32 @isatty(i32 noundef %139) #10
  %.not = icmp eq i32 %140, 0
  br i1 %.not, label %141, label %142

141:                                              ; preds = %137, %130
  br label %142

142:                                              ; preds = %137, %141
  %.str.5.sink231 = phi ptr [ @.str.5, %141 ], [ @.str.2, %137 ]
  store i32 %132, ptr %131, align 4, !tbaa !5
  %143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %144 = load i32, ptr @test_count, align 4, !tbaa !5
  %145 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %146 = load i32, ptr %145, align 4, !tbaa !5
  %147 = tail call ptr @s2n_strerror(i32 noundef %146, ptr noundef nonnull @.str.4) #10
  %148 = load i32, ptr %145, align 4, !tbaa !5
  %149 = tail call ptr @s2n_strerror_debug(i32 noundef %148, ptr noundef nonnull @.str.4) #10
  %150 = load i32, ptr %131, align 4, !tbaa !5
  %151 = tail call ptr @strerror(i32 noundef %150) #10
  %152 = load i32, ptr %131, align 4, !tbaa !5
  %153 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %143, ptr noundef nonnull %.str.5.sink231, i32 noundef %144, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 165, ptr noundef %147, ptr noundef %149, ptr noundef %151, i32 noundef %152) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

154:                                              ; preds = %125
  %155 = load i32, ptr @test_count, align 4, !tbaa !5
  %156 = add nsw i32 %155, 1
  store i32 %156, ptr @test_count, align 4, !tbaa !5
  %157 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %158 = load i32, ptr %157, align 4, !tbaa !5
  %159 = icmp eq i32 %158, 0
  br i1 %159, label %160, label %183

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

167:                                              ; preds = %160
  %168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %169 = tail call i32 @fileno(ptr noundef %168) #10
  %170 = tail call i32 @isatty(i32 noundef %169) #10
  %.not158 = icmp eq i32 %170, 0
  br i1 %.not158, label %171, label %172

171:                                              ; preds = %167, %160
  br label %172

172:                                              ; preds = %167, %171
  %.str.5.sink242 = phi ptr [ @.str.5, %171 ], [ @.str.2, %167 ]
  store i32 %162, ptr %161, align 4, !tbaa !5
  %173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %174 = load i32, ptr @test_count, align 4, !tbaa !5
  %175 = load i32, ptr %157, align 4, !tbaa !5
  %176 = tail call ptr @s2n_strerror(i32 noundef %175, ptr noundef nonnull @.str.4) #10
  %177 = load i32, ptr %157, align 4, !tbaa !5
  %178 = tail call ptr @s2n_strerror_debug(i32 noundef %177, ptr noundef nonnull @.str.4) #10
  %179 = load i32, ptr %161, align 4, !tbaa !5
  %180 = tail call ptr @strerror(i32 noundef %179) #10
  %181 = load i32, ptr %161, align 4, !tbaa !5
  %182 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %173, ptr noundef nonnull %.str.5.sink242, i32 noundef %174, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 165, ptr noundef %176, ptr noundef %178, ptr noundef %180, i32 noundef %181) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

183:                                              ; preds = %154
  %184 = add nsw i32 %155, 2
  store i32 %184, ptr @test_count, align 4, !tbaa !5
  %185 = tail call ptr @s2n_strerror_debug(i32 noundef %158, ptr noundef nonnull @.str.4) #10
  %186 = icmp eq ptr %185, null
  br i1 %186, label %187, label %210

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

194:                                              ; preds = %187
  %195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %196 = tail call i32 @fileno(ptr noundef %195) #10
  %197 = tail call i32 @isatty(i32 noundef %196) #10
  %.not157 = icmp eq i32 %197, 0
  br i1 %.not157, label %198, label %199

198:                                              ; preds = %194, %187
  br label %199

199:                                              ; preds = %194, %198
  %.str.5.sink251 = phi ptr [ @.str.5, %198 ], [ @.str.2, %194 ]
  store i32 %189, ptr %188, align 4, !tbaa !5
  %200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %201 = load i32, ptr @test_count, align 4, !tbaa !5
  %202 = load i32, ptr %157, align 4, !tbaa !5
  %203 = tail call ptr @s2n_strerror(i32 noundef %202, ptr noundef nonnull @.str.4) #10
  %204 = load i32, ptr %157, align 4, !tbaa !5
  %205 = tail call ptr @s2n_strerror_debug(i32 noundef %204, ptr noundef nonnull @.str.4) #10
  %206 = load i32, ptr %188, align 4, !tbaa !5
  %207 = tail call ptr @strerror(i32 noundef %206) #10
  %208 = load i32, ptr %188, align 4, !tbaa !5
  %209 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %200, ptr noundef nonnull %.str.5.sink251, i32 noundef %201, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 165, ptr noundef %203, ptr noundef %205, ptr noundef %207, i32 noundef %208) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

210:                                              ; preds = %183
  store i32 0, ptr %157, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #10
  %211 = tail call ptr @__errno_location() #11
  store i32 0, ptr %211, align 4, !tbaa !5
  %212 = load i32, ptr @test_count, align 4, !tbaa !5
  %213 = add nsw i32 %212, 1
  store i32 %213, ptr @test_count, align 4, !tbaa !5
  %214 = icmp eq i32 %9, -1
  br i1 %214, label %215, label %.preheader166

215:                                              ; preds = %210
  %216 = load i32, ptr %211, align 4, !tbaa !5
  %217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %218 = tail call i32 @s2n_print_stacktrace(ptr noundef %217) #10
  %219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %220 = trunc nuw i8 %219 to i1
  br i1 %220, label %221, label %225

221:                                              ; preds = %215
  %222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %223 = tail call i32 @fileno(ptr noundef %222) #10
  %224 = tail call i32 @isatty(i32 noundef %223) #10
  %.not156 = icmp eq i32 %224, 0
  br i1 %.not156, label %225, label %226

225:                                              ; preds = %221, %215
  br label %226

226:                                              ; preds = %221, %225
  %.str.5.sink260 = phi ptr [ @.str.5, %225 ], [ @.str.2, %221 ]
  store i32 %216, ptr %211, align 4, !tbaa !5
  %227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %228 = load i32, ptr @test_count, align 4, !tbaa !5
  %229 = load i32, ptr %157, align 4, !tbaa !5
  %230 = tail call ptr @s2n_strerror(i32 noundef %229, ptr noundef nonnull @.str.4) #10
  %231 = load i32, ptr %157, align 4, !tbaa !5
  %232 = tail call ptr @s2n_strerror_debug(i32 noundef %231, ptr noundef nonnull @.str.4) #10
  %233 = load i32, ptr %211, align 4, !tbaa !5
  %234 = tail call ptr @strerror(i32 noundef %233) #10
  %235 = load i32, ptr %211, align 4, !tbaa !5
  %236 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %227, ptr noundef nonnull %.str.5.sink260, i32 noundef %228, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %230, ptr noundef %232, ptr noundef %234, i32 noundef %235) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

237:                                              ; preds = %950
  %238 = call i32 @s2n_cleanup() #10
  %239 = icmp eq i32 %238, -1
  br i1 %239, label %953, label %975

.preheader166:                                    ; preds = %210, %950
  %.not129 = phi i1 [ false, %950 ], [ true, %210 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #10
  %240 = load i32, ptr @test_count, align 4, !tbaa !5
  %241 = add nsw i32 %240, 1
  store i32 %241, ptr @test_count, align 4, !tbaa !5
  %242 = call i32 @s2n_io_pair_init(ptr noundef nonnull %5) #10
  %243 = icmp eq i32 %242, -1
  br i1 %243, label %244, label %266

244:                                              ; preds = %.preheader166
  %245 = load i32, ptr %211, align 4, !tbaa !5
  %246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %247 = call i32 @s2n_print_stacktrace(ptr noundef %246) #10
  %248 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %249 = trunc nuw i8 %248 to i1
  br i1 %249, label %250, label %254

250:                                              ; preds = %244
  %251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %252 = call i32 @fileno(ptr noundef %251) #10
  %253 = call i32 @isatty(i32 noundef %252) #10
  %.not155 = icmp eq i32 %253, 0
  br i1 %.not155, label %254, label %255

254:                                              ; preds = %250, %244
  br label %255

255:                                              ; preds = %250, %254
  %.str.5.sink269 = phi ptr [ @.str.5, %254 ], [ @.str.2, %250 ]
  store i32 %245, ptr %211, align 4, !tbaa !5
  %256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %257 = load i32, ptr @test_count, align 4, !tbaa !5
  %258 = load i32, ptr %157, align 4, !tbaa !5
  %259 = call ptr @s2n_strerror(i32 noundef %258, ptr noundef nonnull @.str.4) #10
  %260 = load i32, ptr %157, align 4, !tbaa !5
  %261 = call ptr @s2n_strerror_debug(i32 noundef %260, ptr noundef nonnull @.str.4) #10
  %262 = load i32, ptr %211, align 4, !tbaa !5
  %263 = call ptr @strerror(i32 noundef %262) #10
  %264 = load i32, ptr %211, align 4, !tbaa !5
  %265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %256, ptr noundef nonnull %.str.5.sink269, i32 noundef %257, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %259, ptr noundef %261, ptr noundef %263, i32 noundef %264) #12
  call void @exit(i32 noundef 1) #13
  unreachable

266:                                              ; preds = %.preheader166
  %267 = call i32 @fork() #10
  %268 = icmp eq i32 %267, 0
  br i1 %268, label %269, label %297

269:                                              ; preds = %266
  %270 = load i32, ptr @test_count, align 4, !tbaa !5
  %271 = add nsw i32 %270, 1
  store i32 %271, ptr @test_count, align 4, !tbaa !5
  %272 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %5, i32 noundef 0) #10
  %273 = icmp eq i32 %272, -1
  br i1 %273, label %274, label %296

274:                                              ; preds = %269
  %275 = load i32, ptr %211, align 4, !tbaa !5
  %276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %277 = call i32 @s2n_print_stacktrace(ptr noundef %276) #10
  %278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %279 = trunc nuw i8 %278 to i1
  br i1 %279, label %280, label %284

280:                                              ; preds = %274
  %281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %282 = call i32 @fileno(ptr noundef %281) #10
  %283 = call i32 @isatty(i32 noundef %282) #10
  %.not154 = icmp eq i32 %283, 0
  br i1 %.not154, label %284, label %285

284:                                              ; preds = %280, %274
  br label %285

285:                                              ; preds = %280, %284
  %.str.5.sink278 = phi ptr [ @.str.5, %284 ], [ @.str.2, %280 ]
  store i32 %275, ptr %211, align 4, !tbaa !5
  %286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %287 = load i32, ptr @test_count, align 4, !tbaa !5
  %288 = load i32, ptr %157, align 4, !tbaa !5
  %289 = call ptr @s2n_strerror(i32 noundef %288, ptr noundef nonnull @.str.4) #10
  %290 = load i32, ptr %157, align 4, !tbaa !5
  %291 = call ptr @s2n_strerror_debug(i32 noundef %290, ptr noundef nonnull @.str.4) #10
  %292 = load i32, ptr %211, align 4, !tbaa !5
  %293 = call ptr @strerror(i32 noundef %292) #10
  %294 = load i32, ptr %211, align 4, !tbaa !5
  %295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %286, ptr noundef nonnull %.str.5.sink278, i32 noundef %287, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %289, ptr noundef %291, ptr noundef %293, i32 noundef %294) #12
  call void @exit(i32 noundef 1) #13
  unreachable

296:                                              ; preds = %269
  call void @mock_client(ptr noundef nonnull %5)
  br label %297

297:                                              ; preds = %266, %296
  %298 = load i32, ptr @test_count, align 4, !tbaa !5
  %299 = add nsw i32 %298, 1
  store i32 %299, ptr @test_count, align 4, !tbaa !5
  %300 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #14
  %301 = icmp eq ptr %300, null
  br i1 %301, label %302, label %324

302:                                              ; preds = %297
  %303 = load i32, ptr %211, align 4, !tbaa !5
  %304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %305 = call i32 @s2n_print_stacktrace(ptr noundef %304) #10
  %306 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %307 = trunc nuw i8 %306 to i1
  br i1 %307, label %308, label %312

308:                                              ; preds = %302
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = call i32 @fileno(ptr noundef %309) #10
  %311 = call i32 @isatty(i32 noundef %310) #10
  %.not153 = icmp eq i32 %311, 0
  br i1 %.not153, label %312, label %313

312:                                              ; preds = %308, %302
  br label %313

313:                                              ; preds = %308, %312
  %.str.5.sink287 = phi ptr [ @.str.5, %312 ], [ @.str.2, %308 ]
  store i32 %303, ptr %211, align 4, !tbaa !5
  %314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %315 = load i32, ptr @test_count, align 4, !tbaa !5
  %316 = load i32, ptr %157, align 4, !tbaa !5
  %317 = call ptr @s2n_strerror(i32 noundef %316, ptr noundef nonnull @.str.4) #10
  %318 = load i32, ptr %157, align 4, !tbaa !5
  %319 = call ptr @s2n_strerror_debug(i32 noundef %318, ptr noundef nonnull @.str.4) #10
  %320 = load i32, ptr %211, align 4, !tbaa !5
  %321 = call ptr @strerror(i32 noundef %320) #10
  %322 = load i32, ptr %211, align 4, !tbaa !5
  %323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %314, ptr noundef nonnull %.str.5.sink287, i32 noundef %315, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 186, ptr noundef %317, ptr noundef %319, ptr noundef %321, i32 noundef %322) #12
  call void @exit(i32 noundef 1) #13
  unreachable

324:                                              ; preds = %297
  %325 = add nsw i32 %298, 2
  store i32 %325, ptr @test_count, align 4, !tbaa !5
  %326 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #14
  %327 = icmp eq ptr %326, null
  br i1 %327, label %328, label %350

328:                                              ; preds = %324
  %329 = load i32, ptr %211, align 4, !tbaa !5
  %330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %331 = call i32 @s2n_print_stacktrace(ptr noundef %330) #10
  %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 = %328
  %335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %336 = call i32 @fileno(ptr noundef %335) #10
  %337 = call i32 @isatty(i32 noundef %336) #10
  %.not152 = icmp eq i32 %337, 0
  br i1 %.not152, label %338, label %339

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

339:                                              ; preds = %334, %338
  %.str.5.sink296 = phi ptr [ @.str.5, %338 ], [ @.str.2, %334 ]
  store i32 %329, ptr %211, align 4, !tbaa !5
  %340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %341 = load i32, ptr @test_count, align 4, !tbaa !5
  %342 = load i32, ptr %157, align 4, !tbaa !5
  %343 = call ptr @s2n_strerror(i32 noundef %342, ptr noundef nonnull @.str.4) #10
  %344 = load i32, ptr %157, align 4, !tbaa !5
  %345 = call ptr @s2n_strerror_debug(i32 noundef %344, ptr noundef nonnull @.str.4) #10
  %346 = load i32, ptr %211, align 4, !tbaa !5
  %347 = call ptr @strerror(i32 noundef %346) #10
  %348 = load i32, ptr %211, align 4, !tbaa !5
  %349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %340, ptr noundef nonnull %.str.5.sink296, i32 noundef %341, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 187, ptr noundef %343, ptr noundef %345, ptr noundef %347, i32 noundef %348) #12
  call void @exit(i32 noundef 1) #13
  unreachable

350:                                              ; preds = %324
  %351 = add nsw i32 %298, 3
  store i32 %351, ptr @test_count, align 4, !tbaa !5
  %352 = call noalias dereferenceable_or_null(12000) ptr @malloc(i64 noundef 12000) #14
  %353 = icmp eq ptr %352, null
  br i1 %353, label %354, label %376

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

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

364:                                              ; preds = %360, %354
  br label %365

365:                                              ; preds = %360, %364
  %.str.5.sink305 = phi ptr [ @.str.5, %364 ], [ @.str.2, %360 ]
  store i32 %355, ptr %211, align 4, !tbaa !5
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = load i32, ptr @test_count, align 4, !tbaa !5
  %368 = load i32, ptr %157, align 4, !tbaa !5
  %369 = call ptr @s2n_strerror(i32 noundef %368, ptr noundef nonnull @.str.4) #10
  %370 = load i32, ptr %157, align 4, !tbaa !5
  %371 = call ptr @s2n_strerror_debug(i32 noundef %370, ptr noundef nonnull @.str.4) #10
  %372 = load i32, ptr %211, align 4, !tbaa !5
  %373 = call ptr @strerror(i32 noundef %372) #10
  %374 = load i32, ptr %211, align 4, !tbaa !5
  %375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %366, ptr noundef nonnull %.str.5.sink305, i32 noundef %367, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 188, ptr noundef %369, ptr noundef %371, ptr noundef %373, i32 noundef %374) #12
  call void @exit(i32 noundef 1) #13
  unreachable

376:                                              ; preds = %350
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #10
  %377 = call ptr @s2n_config_new() #10
  store ptr %377, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #10
  %378 = call ptr @s2n_connection_new(i32 noundef 0) #10
  store ptr %378, ptr %7, align 8, !tbaa !9
  %379 = load i32, ptr @test_count, align 4, !tbaa !5
  %380 = add nsw i32 %379, 1
  store i32 %380, ptr @test_count, align 4, !tbaa !5
  %381 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %5, i32 noundef 1) #10
  %382 = icmp eq i32 %381, -1
  br i1 %382, label %383, label %405

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

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

393:                                              ; preds = %389, %383
  br label %394

394:                                              ; preds = %389, %393
  %.str.5.sink314 = phi ptr [ @.str.5, %393 ], [ @.str.2, %389 ]
  store i32 %384, ptr %211, align 4, !tbaa !5
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = load i32, ptr @test_count, align 4, !tbaa !5
  %397 = load i32, ptr %157, align 4, !tbaa !5
  %398 = call ptr @s2n_strerror(i32 noundef %397, ptr noundef nonnull @.str.4) #10
  %399 = load i32, ptr %157, align 4, !tbaa !5
  %400 = call ptr @s2n_strerror_debug(i32 noundef %399, ptr noundef nonnull @.str.4) #10
  %401 = load i32, ptr %211, align 4, !tbaa !5
  %402 = call ptr @strerror(i32 noundef %401) #10
  %403 = load i32, ptr %211, align 4, !tbaa !5
  %404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %395, ptr noundef nonnull %.str.5.sink314, i32 noundef %396, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 196, ptr noundef %398, ptr noundef %400, ptr noundef %402, i32 noundef %403) #12
  call void @exit(i32 noundef 1) #13
  unreachable

405:                                              ; preds = %376
  %406 = load ptr, ptr %7, align 8, !tbaa !9
  %407 = getelementptr inbounds i8, ptr %406, i64 219
  store i8 33, ptr %407, align 1, !tbaa !15
  %408 = getelementptr inbounds i8, ptr %406, i64 218
  store i8 33, ptr %408, align 2, !tbaa !42
  %409 = getelementptr inbounds i8, ptr %406, i64 220
  store i8 33, ptr %409, align 4, !tbaa !43
  %410 = load i32, ptr @test_count, align 4, !tbaa !5
  %411 = add nsw i32 %410, 1
  store i32 %411, ptr @test_count, align 4, !tbaa !5
  %412 = load ptr, ptr @certificate_paths, align 16, !tbaa !9
  %413 = call i32 @s2n_read_test_pem(ptr noundef %412, ptr noundef nonnull %300, i64 noundef 12000) #10
  %414 = icmp eq i32 %413, -1
  br i1 %414, label %444, label %466

415:                                              ; preds = %548
  %416 = load i32, ptr @test_count, align 4, !tbaa !5
  %417 = add nsw i32 %416, 1
  store i32 %417, ptr @test_count, align 4, !tbaa !5
  %418 = load ptr, ptr getelementptr inbounds (i8, ptr @certificate_paths, i64 8), align 8, !tbaa !9
  %419 = call i32 @s2n_read_test_pem(ptr noundef %418, ptr noundef nonnull %300, i64 noundef 12000) #10
  %420 = icmp eq i32 %419, -1
  br i1 %420, label %444, label %421

421:                                              ; preds = %415
  %422 = load i32, ptr @test_count, align 4, !tbaa !5
  %423 = add nsw i32 %422, 1
  store i32 %423, ptr @test_count, align 4, !tbaa !5
  %424 = load ptr, ptr getelementptr inbounds (i8, ptr @private_key_paths, i64 8), align 8, !tbaa !9
  %425 = call i32 @s2n_read_test_pem(ptr noundef %424, ptr noundef nonnull %326, i64 noundef 12000) #10
  %426 = icmp eq i32 %425, -1
  br i1 %426, label %472, label %427

427:                                              ; preds = %421
  %428 = load i32, ptr @test_count, align 4, !tbaa !5
  %429 = add nsw i32 %428, 1
  store i32 %429, ptr @test_count, align 4, !tbaa !5
  %430 = call ptr @s2n_cert_chain_and_key_new() #10
  %431 = icmp eq ptr %430, null
  br i1 %431, label %499, label %432

432:                                              ; preds = %427
  %433 = load i32, ptr @test_count, align 4, !tbaa !5
  %434 = add nsw i32 %433, 1
  store i32 %434, ptr @test_count, align 4, !tbaa !5
  %435 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef nonnull %430, ptr noundef nonnull %300, ptr noundef nonnull %326) #10
  %436 = icmp eq i32 %435, -1
  br i1 %436, label %526, label %437

437:                                              ; preds = %432
  %438 = load i32, ptr @test_count, align 4, !tbaa !5
  %439 = add nsw i32 %438, 1
  store i32 %439, ptr @test_count, align 4, !tbaa !5
  %440 = load ptr, ptr %6, align 8, !tbaa !9
  %441 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %440, ptr noundef nonnull %430) #10
  %442 = icmp eq i32 %441, -1
  br i1 %442, label %554, label %443

443:                                              ; preds = %437
  br i1 %.not129, label %631, label %576

444:                                              ; preds = %415, %405
  %445 = load i32, ptr %211, align 4, !tbaa !5
  %446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %447 = call i32 @s2n_print_stacktrace(ptr noundef %446) #10
  %448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %449 = trunc nuw i8 %448 to i1
  br i1 %449, label %450, label %454

450:                                              ; preds = %444
  %451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %452 = call i32 @fileno(ptr noundef %451) #10
  %453 = call i32 @isatty(i32 noundef %452) #10
  %.not149 = icmp eq i32 %453, 0
  br i1 %.not149, label %454, label %455

454:                                              ; preds = %450, %444
  br label %455

455:                                              ; preds = %450, %454
  %.str.5.sink323 = phi ptr [ @.str.5, %454 ], [ @.str.2, %450 ]
  store i32 %445, ptr %211, align 4, !tbaa !5
  %456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %457 = load i32, ptr @test_count, align 4, !tbaa !5
  %458 = load i32, ptr %157, align 4, !tbaa !5
  %459 = call ptr @s2n_strerror(i32 noundef %458, ptr noundef nonnull @.str.4) #10
  %460 = load i32, ptr %157, align 4, !tbaa !5
  %461 = call ptr @s2n_strerror_debug(i32 noundef %460, ptr noundef nonnull @.str.4) #10
  %462 = load i32, ptr %211, align 4, !tbaa !5
  %463 = call ptr @strerror(i32 noundef %462) #10
  %464 = load i32, ptr %211, align 4, !tbaa !5
  %465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %456, ptr noundef nonnull %.str.5.sink323, i32 noundef %457, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 203, ptr noundef %459, ptr noundef %461, ptr noundef %463, i32 noundef %464) #12
  call void @exit(i32 noundef 1) #13
  unreachable

466:                                              ; preds = %405
  %467 = load i32, ptr @test_count, align 4, !tbaa !5
  %468 = add nsw i32 %467, 1
  store i32 %468, ptr @test_count, align 4, !tbaa !5
  %469 = load ptr, ptr @private_key_paths, align 16, !tbaa !9
  %470 = call i32 @s2n_read_test_pem(ptr noundef %469, ptr noundef nonnull %326, i64 noundef 12000) #10
  %471 = icmp eq i32 %470, -1
  br i1 %471, label %472, label %494

472:                                              ; preds = %421, %466
  %473 = load i32, ptr %211, align 4, !tbaa !5
  %474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %475 = call i32 @s2n_print_stacktrace(ptr noundef %474) #10
  %476 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %477 = trunc nuw i8 %476 to i1
  br i1 %477, label %478, label %482

478:                                              ; preds = %472
  %479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %480 = call i32 @fileno(ptr noundef %479) #10
  %481 = call i32 @isatty(i32 noundef %480) #10
  %.not148 = icmp eq i32 %481, 0
  br i1 %.not148, label %482, label %483

482:                                              ; preds = %478, %472
  br label %483

483:                                              ; preds = %478, %482
  %.str.5.sink332 = phi ptr [ @.str.5, %482 ], [ @.str.2, %478 ]
  store i32 %473, ptr %211, align 4, !tbaa !5
  %484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %485 = load i32, ptr @test_count, align 4, !tbaa !5
  %486 = load i32, ptr %157, align 4, !tbaa !5
  %487 = call ptr @s2n_strerror(i32 noundef %486, ptr noundef nonnull @.str.4) #10
  %488 = load i32, ptr %157, align 4, !tbaa !5
  %489 = call ptr @s2n_strerror_debug(i32 noundef %488, ptr noundef nonnull @.str.4) #10
  %490 = load i32, ptr %211, align 4, !tbaa !5
  %491 = call ptr @strerror(i32 noundef %490) #10
  %492 = load i32, ptr %211, align 4, !tbaa !5
  %493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %484, ptr noundef nonnull %.str.5.sink332, i32 noundef %485, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 204, ptr noundef %487, ptr noundef %489, ptr noundef %491, i32 noundef %492) #12
  call void @exit(i32 noundef 1) #13
  unreachable

494:                                              ; preds = %466
  %495 = load i32, ptr @test_count, align 4, !tbaa !5
  %496 = add nsw i32 %495, 1
  store i32 %496, ptr @test_count, align 4, !tbaa !5
  %497 = call ptr @s2n_cert_chain_and_key_new() #10
  %498 = icmp eq ptr %497, null
  br i1 %498, label %499, label %521

499:                                              ; preds = %427, %494
  %500 = load i32, ptr %211, align 4, !tbaa !5
  %501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %502 = call i32 @s2n_print_stacktrace(ptr noundef %501) #10
  %503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %504 = trunc nuw i8 %503 to i1
  br i1 %504, label %505, label %509

505:                                              ; preds = %499
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = call i32 @fileno(ptr noundef %506) #10
  %508 = call i32 @isatty(i32 noundef %507) #10
  %.not147 = icmp eq i32 %508, 0
  br i1 %.not147, label %509, label %510

509:                                              ; preds = %505, %499
  br label %510

510:                                              ; preds = %505, %509
  %.str.5.sink341 = phi ptr [ @.str.5, %509 ], [ @.str.2, %505 ]
  store i32 %500, ptr %211, align 4, !tbaa !5
  %511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %512 = load i32, ptr @test_count, align 4, !tbaa !5
  %513 = load i32, ptr %157, align 4, !tbaa !5
  %514 = call ptr @s2n_strerror(i32 noundef %513, ptr noundef nonnull @.str.4) #10
  %515 = load i32, ptr %157, align 4, !tbaa !5
  %516 = call ptr @s2n_strerror_debug(i32 noundef %515, ptr noundef nonnull @.str.4) #10
  %517 = load i32, ptr %211, align 4, !tbaa !5
  %518 = call ptr @strerror(i32 noundef %517) #10
  %519 = load i32, ptr %211, align 4, !tbaa !5
  %520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %511, ptr noundef nonnull %.str.5.sink341, i32 noundef %512, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 205, ptr noundef %514, ptr noundef %516, ptr noundef %518, i32 noundef %519) #12
  call void @exit(i32 noundef 1) #13
  unreachable

521:                                              ; preds = %494
  %522 = load i32, ptr @test_count, align 4, !tbaa !5
  %523 = add nsw i32 %522, 1
  store i32 %523, ptr @test_count, align 4, !tbaa !5
  %524 = call i32 @s2n_cert_chain_and_key_load_pem(ptr noundef nonnull %497, ptr noundef nonnull %300, ptr noundef nonnull %326) #10
  %525 = icmp eq i32 %524, -1
  br i1 %525, label %526, label %548

526:                                              ; preds = %432, %521
  %527 = load i32, ptr %211, align 4, !tbaa !5
  %528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %529 = call i32 @s2n_print_stacktrace(ptr noundef %528) #10
  %530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %531 = trunc nuw i8 %530 to i1
  br i1 %531, label %532, label %536

532:                                              ; preds = %526
  %533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %534 = call i32 @fileno(ptr noundef %533) #10
  %535 = call i32 @isatty(i32 noundef %534) #10
  %.not146 = icmp eq i32 %535, 0
  br i1 %.not146, label %536, label %537

536:                                              ; preds = %532, %526
  br label %537

537:                                              ; preds = %532, %536
  %.str.5.sink350 = phi ptr [ @.str.5, %536 ], [ @.str.2, %532 ]
  store i32 %527, ptr %211, align 4, !tbaa !5
  %538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %539 = load i32, ptr @test_count, align 4, !tbaa !5
  %540 = load i32, ptr %157, align 4, !tbaa !5
  %541 = call ptr @s2n_strerror(i32 noundef %540, ptr noundef nonnull @.str.4) #10
  %542 = load i32, ptr %157, align 4, !tbaa !5
  %543 = call ptr @s2n_strerror_debug(i32 noundef %542, ptr noundef nonnull @.str.4) #10
  %544 = load i32, ptr %211, align 4, !tbaa !5
  %545 = call ptr @strerror(i32 noundef %544) #10
  %546 = load i32, ptr %211, align 4, !tbaa !5
  %547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %538, ptr noundef nonnull %.str.5.sink350, i32 noundef %539, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %541, ptr noundef %543, ptr noundef %545, i32 noundef %546) #12
  call void @exit(i32 noundef 1) #13
  unreachable

548:                                              ; preds = %521
  %549 = load i32, ptr @test_count, align 4, !tbaa !5
  %550 = add nsw i32 %549, 1
  store i32 %550, ptr @test_count, align 4, !tbaa !5
  %551 = load ptr, ptr %6, align 8, !tbaa !9
  %552 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %551, ptr noundef nonnull %497) #10
  %553 = icmp eq i32 %552, -1
  br i1 %553, label %554, label %415

554:                                              ; preds = %437, %548
  %555 = load i32, ptr %211, align 4, !tbaa !5
  %556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %557 = call i32 @s2n_print_stacktrace(ptr noundef %556) #10
  %558 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %559 = trunc nuw i8 %558 to i1
  br i1 %559, label %560, label %564

560:                                              ; preds = %554
  %561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %562 = call i32 @fileno(ptr noundef %561) #10
  %563 = call i32 @isatty(i32 noundef %562) #10
  %.not145 = icmp eq i32 %563, 0
  br i1 %.not145, label %564, label %565

564:                                              ; preds = %560, %554
  br label %565

565:                                              ; preds = %560, %564
  %.str.5.sink359 = phi ptr [ @.str.5, %564 ], [ @.str.2, %560 ]
  store i32 %555, ptr %211, align 4, !tbaa !5
  %566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %567 = load i32, ptr @test_count, align 4, !tbaa !5
  %568 = load i32, ptr %157, align 4, !tbaa !5
  %569 = call ptr @s2n_strerror(i32 noundef %568, ptr noundef nonnull @.str.4) #10
  %570 = load i32, ptr %157, align 4, !tbaa !5
  %571 = call ptr @s2n_strerror_debug(i32 noundef %570, ptr noundef nonnull @.str.4) #10
  %572 = load i32, ptr %211, align 4, !tbaa !5
  %573 = call ptr @strerror(i32 noundef %572) #10
  %574 = load i32, ptr %211, align 4, !tbaa !5
  %575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %566, ptr noundef nonnull %.str.5.sink359, i32 noundef %567, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 207, ptr noundef %569, ptr noundef %571, ptr noundef %573, i32 noundef %574) #12
  call void @exit(i32 noundef 1) #13
  unreachable

576:                                              ; preds = %443
  %577 = load i32, ptr @test_count, align 4, !tbaa !5
  %578 = add nsw i32 %577, 1
  store i32 %578, ptr @test_count, align 4, !tbaa !5
  %579 = call i32 @s2n_read_test_pem(ptr noundef nonnull @.str.24, ptr noundef nonnull %352, i64 noundef 12000) #10
  %580 = icmp eq i32 %579, -1
  br i1 %580, label %581, label %603

581:                                              ; preds = %576
  %582 = load i32, ptr %211, align 4, !tbaa !5
  %583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %584 = call i32 @s2n_print_stacktrace(ptr noundef %583) #10
  %585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %586 = trunc nuw i8 %585 to i1
  br i1 %586, label %587, label %591

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

591:                                              ; preds = %587, %581
  br label %592

592:                                              ; preds = %587, %591
  %.str.5.sink368 = phi ptr [ @.str.5, %591 ], [ @.str.2, %587 ]
  store i32 %582, ptr %211, align 4, !tbaa !5
  %593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %594 = load i32, ptr @test_count, align 4, !tbaa !5
  %595 = load i32, ptr %157, align 4, !tbaa !5
  %596 = call ptr @s2n_strerror(i32 noundef %595, ptr noundef nonnull @.str.4) #10
  %597 = load i32, ptr %157, align 4, !tbaa !5
  %598 = call ptr @s2n_strerror_debug(i32 noundef %597, ptr noundef nonnull @.str.4) #10
  %599 = load i32, ptr %211, align 4, !tbaa !5
  %600 = call ptr @strerror(i32 noundef %599) #10
  %601 = load i32, ptr %211, align 4, !tbaa !5
  %602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %593, ptr noundef nonnull %.str.5.sink368, i32 noundef %594, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 211, ptr noundef %596, ptr noundef %598, ptr noundef %600, i32 noundef %601) #12
  call void @exit(i32 noundef 1) #13
  unreachable

603:                                              ; preds = %576
  %604 = load i32, ptr @test_count, align 4, !tbaa !5
  %605 = add nsw i32 %604, 1
  store i32 %605, ptr @test_count, align 4, !tbaa !5
  %606 = load ptr, ptr %6, align 8, !tbaa !9
  %607 = call i32 @s2n_config_add_dhparams(ptr noundef %606, ptr noundef nonnull %352) #10
  %608 = icmp eq i32 %607, -1
  br i1 %608, label %609, label %631

609:                                              ; preds = %603
  %610 = load i32, ptr %211, align 4, !tbaa !5
  %611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %612 = call i32 @s2n_print_stacktrace(ptr noundef %611) #10
  %613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %614 = trunc nuw i8 %613 to i1
  br i1 %614, label %615, label %619

615:                                              ; preds = %609
  %616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %617 = call i32 @fileno(ptr noundef %616) #10
  %618 = call i32 @isatty(i32 noundef %617) #10
  %.not143 = icmp eq i32 %618, 0
  br i1 %.not143, label %619, label %620

619:                                              ; preds = %615, %609
  br label %620

620:                                              ; preds = %615, %619
  %.str.5.sink377 = phi ptr [ @.str.5, %619 ], [ @.str.2, %615 ]
  store i32 %610, ptr %211, align 4, !tbaa !5
  %621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %622 = load i32, ptr @test_count, align 4, !tbaa !5
  %623 = load i32, ptr %157, align 4, !tbaa !5
  %624 = call ptr @s2n_strerror(i32 noundef %623, ptr noundef nonnull @.str.4) #10
  %625 = load i32, ptr %157, align 4, !tbaa !5
  %626 = call ptr @s2n_strerror_debug(i32 noundef %625, ptr noundef nonnull @.str.4) #10
  %627 = load i32, ptr %211, align 4, !tbaa !5
  %628 = call ptr @strerror(i32 noundef %627) #10
  %629 = load i32, ptr %211, align 4, !tbaa !5
  %630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %621, ptr noundef nonnull %.str.5.sink377, i32 noundef %622, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 212, ptr noundef %624, ptr noundef %626, ptr noundef %628, i32 noundef %629) #12
  call void @exit(i32 noundef 1) #13
  unreachable

631:                                              ; preds = %443, %603
  %632 = load i32, ptr @test_count, align 4, !tbaa !5
  %633 = add nsw i32 %632, 1
  store i32 %633, ptr @test_count, align 4, !tbaa !5
  %634 = load ptr, ptr %7, align 8, !tbaa !9
  %635 = load ptr, ptr %6, align 8, !tbaa !9
  %636 = call i32 @s2n_connection_set_config(ptr noundef %634, ptr noundef %635) #10
  %637 = icmp eq i32 %636, -1
  br i1 %637, label %638, label %660

638:                                              ; preds = %631
  %639 = load i32, ptr %211, align 4, !tbaa !5
  %640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %641 = call i32 @s2n_print_stacktrace(ptr noundef %640) #10
  %642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %643 = trunc nuw i8 %642 to i1
  br i1 %643, label %644, label %648

644:                                              ; preds = %638
  %645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %646 = call i32 @fileno(ptr noundef %645) #10
  %647 = call i32 @isatty(i32 noundef %646) #10
  %.not142 = icmp eq i32 %647, 0
  br i1 %.not142, label %648, label %649

648:                                              ; preds = %644, %638
  br label %649

649:                                              ; preds = %644, %648
  %.str.5.sink386 = phi ptr [ @.str.5, %648 ], [ @.str.2, %644 ]
  store i32 %639, ptr %211, align 4, !tbaa !5
  %650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %651 = load i32, ptr @test_count, align 4, !tbaa !5
  %652 = load i32, ptr %157, align 4, !tbaa !5
  %653 = call ptr @s2n_strerror(i32 noundef %652, ptr noundef nonnull @.str.4) #10
  %654 = load i32, ptr %157, align 4, !tbaa !5
  %655 = call ptr @s2n_strerror_debug(i32 noundef %654, ptr noundef nonnull @.str.4) #10
  %656 = load i32, ptr %211, align 4, !tbaa !5
  %657 = call ptr @strerror(i32 noundef %656) #10
  %658 = load i32, ptr %211, align 4, !tbaa !5
  %659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %650, ptr noundef nonnull %.str.5.sink386, i32 noundef %651, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %653, ptr noundef %655, ptr noundef %657, i32 noundef %658) #12
  call void @exit(i32 noundef 1) #13
  unreachable

660:                                              ; preds = %631
  %661 = load i32, ptr @test_count, align 4, !tbaa !5
  %662 = add nsw i32 %661, 1
  store i32 %662, ptr @test_count, align 4, !tbaa !5
  %663 = load ptr, ptr %7, align 8, !tbaa !9
  %664 = call i32 @s2n_connection_set_io_pair(ptr noundef %663, ptr noundef nonnull %5) #10
  %665 = icmp eq i32 %664, -1
  br i1 %665, label %666, label %688

666:                                              ; preds = %660
  %667 = load i32, ptr %211, align 4, !tbaa !5
  %668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %669 = call i32 @s2n_print_stacktrace(ptr noundef %668) #10
  %670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %671 = trunc nuw i8 %670 to i1
  br i1 %671, label %672, label %676

672:                                              ; preds = %666
  %673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %674 = call i32 @fileno(ptr noundef %673) #10
  %675 = call i32 @isatty(i32 noundef %674) #10
  %.not141 = icmp eq i32 %675, 0
  br i1 %.not141, label %676, label %677

676:                                              ; preds = %672, %666
  br label %677

677:                                              ; preds = %672, %676
  %.str.5.sink395 = phi ptr [ @.str.5, %676 ], [ @.str.2, %672 ]
  store i32 %667, ptr %211, align 4, !tbaa !5
  %678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %679 = load i32, ptr @test_count, align 4, !tbaa !5
  %680 = load i32, ptr %157, align 4, !tbaa !5
  %681 = call ptr @s2n_strerror(i32 noundef %680, ptr noundef nonnull @.str.4) #10
  %682 = load i32, ptr %157, align 4, !tbaa !5
  %683 = call ptr @s2n_strerror_debug(i32 noundef %682, ptr noundef nonnull @.str.4) #10
  %684 = load i32, ptr %211, align 4, !tbaa !5
  %685 = call ptr @strerror(i32 noundef %684) #10
  %686 = load i32, ptr %211, align 4, !tbaa !5
  %687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %678, ptr noundef nonnull %.str.5.sink395, i32 noundef %679, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 218, ptr noundef %681, ptr noundef %683, ptr noundef %685, i32 noundef %686) #12
  call void @exit(i32 noundef 1) #13
  unreachable

688:                                              ; preds = %660
  %689 = load i32, ptr @test_count, align 4, !tbaa !5
  %690 = add nsw i32 %689, 1
  store i32 %690, ptr @test_count, align 4, !tbaa !5
  %691 = load ptr, ptr %7, align 8, !tbaa !9
  %692 = call i32 @s2n_negotiate(ptr noundef %691, ptr noundef nonnull %3) #10
  %693 = icmp eq i32 %692, -1
  br i1 %693, label %694, label %716

694:                                              ; preds = %688
  %695 = load i32, ptr %211, align 4, !tbaa !5
  %696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %697 = call i32 @s2n_print_stacktrace(ptr noundef %696) #10
  %698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %699 = trunc nuw i8 %698 to i1
  br i1 %699, label %700, label %704

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

704:                                              ; preds = %700, %694
  br label %705

705:                                              ; preds = %700, %704
  %.str.5.sink404 = phi ptr [ @.str.5, %704 ], [ @.str.2, %700 ]
  store i32 %695, ptr %211, align 4, !tbaa !5
  %706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %707 = load i32, ptr @test_count, align 4, !tbaa !5
  %708 = load i32, ptr %157, align 4, !tbaa !5
  %709 = call ptr @s2n_strerror(i32 noundef %708, ptr noundef nonnull @.str.4) #10
  %710 = load i32, ptr %157, align 4, !tbaa !5
  %711 = call ptr @s2n_strerror_debug(i32 noundef %710, ptr noundef nonnull @.str.4) #10
  %712 = load i32, ptr %211, align 4, !tbaa !5
  %713 = call ptr @strerror(i32 noundef %712) #10
  %714 = load i32, ptr %211, align 4, !tbaa !5
  %715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %706, ptr noundef nonnull %.str.5.sink404, i32 noundef %707, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 221, ptr noundef %709, ptr noundef %711, ptr noundef %713, i32 noundef %714) #12
  call void @exit(i32 noundef 1) #13
  unreachable

716:                                              ; preds = %688
  call void @llvm.lifetime.start.p0(i64 65535, ptr nonnull %8) #10
  br label %.preheader163

717:                                              ; preds = %756
  %indvars.iv.next182 = add nuw nsw i64 %indvars.iv181, 100
  %718 = icmp ult i64 %indvars.iv181, 65435
  %indvars.iv.next179 = add nuw nsw i32 %indvars.iv178, 100
  br i1 %718, label %.preheader163, label %.preheader165, !llvm.loop !44

.preheader163:                                    ; preds = %716, %717
  %indvars.iv181 = phi i64 [ 1, %716 ], [ %indvars.iv.next182, %717 ]
  %indvars.iv178 = phi i32 [ 0, %716 ], [ %indvars.iv.next179, %717 ]
  %719 = trunc nuw nsw i64 %indvars.iv181 to i32
  br label %720

720:                                              ; preds = %.preheader163, %750
  %.0115 = phi i32 [ %751, %750 ], [ %719, %.preheader163 ]
  %.0114 = phi ptr [ %753, %750 ], [ %8, %.preheader163 ]
  %721 = load i32, ptr @test_count, align 4, !tbaa !5
  %722 = add nsw i32 %721, 1
  store i32 %722, ptr @test_count, align 4, !tbaa !5
  %723 = load ptr, ptr %7, align 8, !tbaa !9
  %724 = sext i32 %.0115 to i64
  %725 = call i64 @s2n_recv(ptr noundef %723, ptr noundef %.0114, i64 noundef %724, ptr noundef nonnull %3) #10
  %726 = trunc i64 %725 to i32
  %727 = icmp eq i32 %726, -1
  br i1 %727, label %728, label %750

728:                                              ; preds = %720
  %729 = load i32, ptr %211, align 4, !tbaa !5
  %730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %731 = call i32 @s2n_print_stacktrace(ptr noundef %730) #10
  %732 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %733 = trunc nuw i8 %732 to i1
  br i1 %733, label %734, label %738

734:                                              ; preds = %728
  %735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %736 = call i32 @fileno(ptr noundef %735) #10
  %737 = call i32 @isatty(i32 noundef %736) #10
  %.not139 = icmp eq i32 %737, 0
  br i1 %.not139, label %738, label %739

738:                                              ; preds = %734, %728
  br label %739

739:                                              ; preds = %734, %738
  %.str.5.sink413 = phi ptr [ @.str.5, %738 ], [ @.str.2, %734 ]
  store i32 %729, ptr %211, align 4, !tbaa !5
  %740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %741 = load i32, ptr @test_count, align 4, !tbaa !5
  %742 = load i32, ptr %157, align 4, !tbaa !5
  %743 = call ptr @s2n_strerror(i32 noundef %742, ptr noundef nonnull @.str.4) #10
  %744 = load i32, ptr %157, align 4, !tbaa !5
  %745 = call ptr @s2n_strerror_debug(i32 noundef %744, ptr noundef nonnull @.str.4) #10
  %746 = load i32, ptr %211, align 4, !tbaa !5
  %747 = call ptr @strerror(i32 noundef %746) #10
  %748 = load i32, ptr %211, align 4, !tbaa !5
  %749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %740, ptr noundef nonnull %.str.5.sink413, i32 noundef %741, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 230, ptr noundef %743, ptr noundef %745, ptr noundef %747, i32 noundef %748) #12
  call void @exit(i32 noundef 1) #13
  unreachable

750:                                              ; preds = %720
  %751 = sub nsw i32 %.0115, %726
  %sext = shl i64 %725, 32
  %752 = ashr exact i64 %sext, 32
  %753 = getelementptr inbounds i8, ptr %.0114, i64 %752
  %.not136 = icmp eq i32 %751, 0
  br i1 %.not136, label %.preheader, label %720, !llvm.loop !46

.preheader:                                       ; preds = %750
  %test_count.promoted = load i32, ptr @test_count, align 4, !tbaa !5
  %754 = add i32 %test_count.promoted, %indvars.iv178
  br label %761

755:                                              ; preds = %761
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %indvars.iv181
  br i1 %exitcond.not, label %756, label %761, !llvm.loop !47

756:                                              ; preds = %755
  %757 = add nsw i32 %754, 2
  store i32 %757, ptr @test_count, align 4, !tbaa !5
  %758 = load ptr, ptr %7, align 8, !tbaa !9
  %759 = call i32 @s2n_connection_release_buffers(ptr noundef %758) #10
  %760 = icmp eq i32 %759, -1
  br i1 %760, label %789, label %717

761:                                              ; preds = %.preheader, %755
  %indvars.iv = phi i64 [ 0, %.preheader ], [ %indvars.iv.next, %755 ]
  %762 = phi i32 [ %test_count.promoted, %.preheader ], [ %763, %755 ]
  %763 = add nsw i32 %762, 1
  %764 = getelementptr inbounds [65535 x i8], ptr %8, i64 0, i64 %indvars.iv
  %765 = load i8, ptr %764, align 1, !tbaa !48
  %766 = icmp eq i8 %765, 33
  br i1 %766, label %755, label %767

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

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

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

789:                                              ; preds = %756
  %790 = load i32, ptr %211, align 4, !tbaa !5
  %791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %792 = call i32 @s2n_print_stacktrace(ptr noundef %791) #10
  %793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %794 = trunc nuw i8 %793 to i1
  br i1 %794, label %795, label %799

795:                                              ; preds = %789
  %796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %797 = call i32 @fileno(ptr noundef %796) #10
  %798 = call i32 @isatty(i32 noundef %797) #10
  %.not137 = icmp eq i32 %798, 0
  br i1 %.not137, label %799, label %800

799:                                              ; preds = %795, %789
  br label %800

800:                                              ; preds = %795, %799
  %.str.5.sink431 = phi ptr [ @.str.5, %799 ], [ @.str.2, %795 ]
  store i32 %790, ptr %211, align 4, !tbaa !5
  %801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %802 = load i32, ptr @test_count, align 4, !tbaa !5
  %803 = load i32, ptr %157, align 4, !tbaa !5
  %804 = call ptr @s2n_strerror(i32 noundef %803, ptr noundef nonnull @.str.4) #10
  %805 = load i32, ptr %157, align 4, !tbaa !5
  %806 = call ptr @s2n_strerror_debug(i32 noundef %805, ptr noundef nonnull @.str.4) #10
  %807 = load i32, ptr %211, align 4, !tbaa !5
  %808 = call ptr @strerror(i32 noundef %807) #10
  %809 = load i32, ptr %211, align 4, !tbaa !5
  %810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %801, ptr noundef nonnull %.str.5.sink431, i32 noundef %802, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 241, ptr noundef %804, ptr noundef %806, ptr noundef %808, i32 noundef %809) #12
  call void @exit(i32 noundef 1) #13
  unreachable

.preheader165:                                    ; preds = %717, %818
  %811 = load ptr, ptr %7, align 8, !tbaa !9
  %812 = call i32 @s2n_shutdown(ptr noundef %811, ptr noundef nonnull %3) #10
  %813 = load i32, ptr @test_count, align 4, !tbaa !5
  %814 = add nsw i32 %813, 1
  store i32 %814, ptr @test_count, align 4, !tbaa !5
  %cond = icmp eq i32 %812, 0
  br i1 %cond, label %.preheader164.preheader, label %818

.preheader164.preheader:                          ; preds = %.preheader165
  %815 = add nsw i32 %813, 2
  store i32 %815, ptr @test_count, align 4, !tbaa !5
  %816 = call i32 @s2n_cert_chain_and_key_free(ptr noundef nonnull %497) #10
  %817 = icmp eq i32 %816, -1
  br i1 %817, label %853, label %.preheader164.1

818:                                              ; preds = %.preheader165
  %819 = load i32, ptr %211, align 4, !tbaa !5
  %820 = icmp eq i32 %819, 11
  %821 = load i32, ptr %3, align 4
  %822 = icmp ne i32 %821, 0
  %or.cond = select i1 %820, i1 %822, i1 false
  br i1 %or.cond, label %.preheader165, label %823, !llvm.loop !49

823:                                              ; preds = %818
  %824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %825 = call i32 @s2n_print_stacktrace(ptr noundef %824) #10
  %826 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %827 = trunc nuw i8 %826 to i1
  br i1 %827, label %828, label %832

828:                                              ; preds = %823
  %829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %830 = call i32 @fileno(ptr noundef %829) #10
  %831 = call i32 @isatty(i32 noundef %830) #10
  %.not130 = icmp eq i32 %831, 0
  br i1 %.not130, label %832, label %833

832:                                              ; preds = %828, %823
  br label %833

833:                                              ; preds = %828, %832
  %.str.5.sink440 = phi ptr [ @.str.5, %832 ], [ @.str.2, %828 ]
  store i32 %819, ptr %211, align 4, !tbaa !5
  %834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %835 = load i32, ptr @test_count, align 4, !tbaa !5
  %836 = load i32, ptr %157, align 4, !tbaa !5
  %837 = call ptr @s2n_strerror(i32 noundef %836, ptr noundef nonnull @.str.4) #10
  %838 = load i32, ptr %157, align 4, !tbaa !5
  %839 = call ptr @s2n_strerror_debug(i32 noundef %838, ptr noundef nonnull @.str.4) #10
  %840 = load i32, ptr %211, align 4, !tbaa !5
  %841 = call ptr @strerror(i32 noundef %840) #10
  %842 = load i32, ptr %211, align 4, !tbaa !5
  %843 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %834, ptr noundef nonnull %.str.5.sink440, i32 noundef %835, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 247, ptr noundef %837, ptr noundef %839, ptr noundef %841, i32 noundef %842) #12
  call void @exit(i32 noundef 1) #13
  unreachable

.preheader164.1:                                  ; preds = %.preheader164.preheader
  %844 = load i32, ptr @test_count, align 4, !tbaa !5
  %845 = add nsw i32 %844, 1
  store i32 %845, ptr @test_count, align 4, !tbaa !5
  %846 = call i32 @s2n_cert_chain_and_key_free(ptr noundef nonnull %430) #10
  %847 = icmp eq i32 %846, -1
  br i1 %847, label %853, label %848

848:                                              ; preds = %.preheader164.1
  %849 = load i32, ptr @test_count, align 4, !tbaa !5
  %850 = add nsw i32 %849, 1
  store i32 %850, ptr @test_count, align 4, !tbaa !5
  %851 = call i32 @waitpid(i32 noundef -1, ptr noundef nonnull %4, i32 noundef 0) #10
  %852 = icmp eq i32 %851, %267
  br i1 %852, label %897, label %875

853:                                              ; preds = %.preheader164.1, %.preheader164.preheader
  %854 = load i32, ptr %211, align 4, !tbaa !5
  %855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %856 = call i32 @s2n_print_stacktrace(ptr noundef %855) #10
  %857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %858 = trunc nuw i8 %857 to i1
  br i1 %858, label %859, label %863

859:                                              ; preds = %853
  %860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %861 = call i32 @fileno(ptr noundef %860) #10
  %862 = call i32 @isatty(i32 noundef %861) #10
  %.not135 = icmp eq i32 %862, 0
  br i1 %.not135, label %863, label %864

863:                                              ; preds = %859, %853
  br label %864

864:                                              ; preds = %859, %863
  %.str.5.sink449 = phi ptr [ @.str.5, %863 ], [ @.str.2, %859 ]
  store i32 %854, ptr %211, align 4, !tbaa !5
  %865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %866 = load i32, ptr @test_count, align 4, !tbaa !5
  %867 = load i32, ptr %157, align 4, !tbaa !5
  %868 = call ptr @s2n_strerror(i32 noundef %867, ptr noundef nonnull @.str.4) #10
  %869 = load i32, ptr %157, align 4, !tbaa !5
  %870 = call ptr @s2n_strerror_debug(i32 noundef %869, ptr noundef nonnull @.str.4) #10
  %871 = load i32, ptr %211, align 4, !tbaa !5
  %872 = call ptr @strerror(i32 noundef %871) #10
  %873 = load i32, ptr %211, align 4, !tbaa !5
  %874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %865, ptr noundef nonnull %.str.5.sink449, i32 noundef %866, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 251, ptr noundef %868, ptr noundef %870, ptr noundef %872, i32 noundef %873) #12
  call void @exit(i32 noundef 1) #13
  unreachable

875:                                              ; preds = %848
  %876 = load i32, ptr %211, align 4, !tbaa !5
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = call i32 @s2n_print_stacktrace(ptr noundef %877) #10
  %879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %880 = trunc nuw i8 %879 to i1
  br i1 %880, label %881, label %885

881:                                              ; preds = %875
  %882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %883 = call i32 @fileno(ptr noundef %882) #10
  %884 = call i32 @isatty(i32 noundef %883) #10
  %.not132 = icmp eq i32 %884, 0
  br i1 %.not132, label %885, label %886

885:                                              ; preds = %881, %875
  br label %886

886:                                              ; preds = %881, %885
  %.str.5.sink458 = phi ptr [ @.str.5, %885 ], [ @.str.2, %881 ]
  store i32 %876, ptr %211, align 4, !tbaa !5
  %887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %888 = load i32, ptr @test_count, align 4, !tbaa !5
  %889 = load i32, ptr %157, align 4, !tbaa !5
  %890 = call ptr @s2n_strerror(i32 noundef %889, ptr noundef nonnull @.str.4) #10
  %891 = load i32, ptr %157, align 4, !tbaa !5
  %892 = call ptr @s2n_strerror_debug(i32 noundef %891, ptr noundef nonnull @.str.4) #10
  %893 = load i32, ptr %211, align 4, !tbaa !5
  %894 = call ptr @strerror(i32 noundef %893) #10
  %895 = load i32, ptr %211, align 4, !tbaa !5
  %896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %887, ptr noundef nonnull %.str.5.sink458, i32 noundef %888, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 255, ptr noundef %890, ptr noundef %892, ptr noundef %894, i32 noundef %895) #12
  call void @exit(i32 noundef 1) #13
  unreachable

897:                                              ; preds = %848
  %898 = load i32, ptr @test_count, align 4, !tbaa !5
  %899 = add nsw i32 %898, 1
  store i32 %899, ptr @test_count, align 4, !tbaa !5
  %900 = load i32, ptr %4, align 4, !tbaa !5
  %901 = icmp eq i32 %900, 0
  br i1 %901, label %924, label %902

902:                                              ; preds = %897
  %903 = load i32, ptr %211, align 4, !tbaa !5
  %904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %905 = call i32 @s2n_print_stacktrace(ptr noundef %904) #10
  %906 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %907 = trunc nuw i8 %906 to i1
  br i1 %907, label %908, label %912

908:                                              ; preds = %902
  %909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %910 = call i32 @fileno(ptr noundef %909) #10
  %911 = call i32 @isatty(i32 noundef %910) #10
  %.not133 = icmp eq i32 %911, 0
  br i1 %.not133, label %912, label %913

912:                                              ; preds = %908, %902
  br label %913

913:                                              ; preds = %908, %912
  %.str.5.sink467 = phi ptr [ @.str.5, %912 ], [ @.str.2, %908 ]
  store i32 %903, ptr %211, align 4, !tbaa !5
  %914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %915 = load i32, ptr @test_count, align 4, !tbaa !5
  %916 = load i32, ptr %157, align 4, !tbaa !5
  %917 = call ptr @s2n_strerror(i32 noundef %916, ptr noundef nonnull @.str.4) #10
  %918 = load i32, ptr %157, align 4, !tbaa !5
  %919 = call ptr @s2n_strerror_debug(i32 noundef %918, ptr noundef nonnull @.str.4) #10
  %920 = load i32, ptr %211, align 4, !tbaa !5
  %921 = call ptr @strerror(i32 noundef %920) #10
  %922 = load i32, ptr %211, align 4, !tbaa !5
  %923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %914, ptr noundef nonnull %.str.5.sink467, i32 noundef %915, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 256, ptr noundef %917, ptr noundef %919, ptr noundef %921, i32 noundef %922) #12
  call void @exit(i32 noundef 1) #13
  unreachable

924:                                              ; preds = %897
  %925 = add nsw i32 %898, 2
  store i32 %925, ptr @test_count, align 4, !tbaa !5
  %926 = call i32 @s2n_io_pair_close_one_end(ptr noundef nonnull %5, i32 noundef 0) #10
  %927 = icmp eq i32 %926, -1
  br i1 %927, label %928, label %950

928:                                              ; preds = %924
  %929 = load i32, ptr %211, align 4, !tbaa !5
  %930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %931 = call i32 @s2n_print_stacktrace(ptr noundef %930) #10
  %932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %933 = trunc nuw i8 %932 to i1
  br i1 %933, label %934, label %938

934:                                              ; preds = %928
  %935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %936 = call i32 @fileno(ptr noundef %935) #10
  %937 = call i32 @isatty(i32 noundef %936) #10
  %.not134 = icmp eq i32 %937, 0
  br i1 %.not134, label %938, label %939

938:                                              ; preds = %934, %928
  br label %939

939:                                              ; preds = %934, %938
  %.str.5.sink476 = phi ptr [ @.str.5, %938 ], [ @.str.2, %934 ]
  store i32 %929, ptr %211, align 4, !tbaa !5
  %940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %941 = load i32, ptr @test_count, align 4, !tbaa !5
  %942 = load i32, ptr %157, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror(i32 noundef %942, ptr noundef nonnull @.str.4) #10
  %944 = load i32, ptr %157, align 4, !tbaa !5
  %945 = call ptr @s2n_strerror_debug(i32 noundef %944, ptr noundef nonnull @.str.4) #10
  %946 = load i32, ptr %211, align 4, !tbaa !5
  %947 = call ptr @strerror(i32 noundef %946) #10
  %948 = load i32, ptr %211, align 4, !tbaa !5
  %949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %940, ptr noundef nonnull %.str.5.sink476, i32 noundef %941, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 257, ptr noundef %943, ptr noundef %945, ptr noundef %947, i32 noundef %948) #12
  call void @exit(i32 noundef 1) #13
  unreachable

950:                                              ; preds = %924
  call void @free(ptr noundef %300) #10
  call void @free(ptr noundef %326) #10
  call void @free(ptr noundef %352) #10
  call void @llvm.lifetime.end.p0(i64 65535, ptr nonnull %8) #10
  %951 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %7) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10
  %952 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  br i1 %.not129, label %.preheader166, label %237, !llvm.loop !50

953:                                              ; preds = %237
  %954 = load i32, ptr %211, align 4, !tbaa !5
  %955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %956 = call i32 @s2n_print_stacktrace(ptr noundef %955) #10
  %957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %958 = trunc nuw i8 %957 to i1
  br i1 %958, label %959, label %963

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

963:                                              ; preds = %959, %953
  br label %964

964:                                              ; preds = %959, %963
  %.str.5.sink485 = phi ptr [ @.str.5, %963 ], [ @.str.2, %959 ]
  store i32 %954, ptr %211, align 4, !tbaa !5
  %965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %966 = load i32, ptr @test_count, align 4, !tbaa !5
  %967 = load i32, ptr %157, align 4, !tbaa !5
  %968 = call ptr @s2n_strerror(i32 noundef %967, ptr noundef nonnull @.str.4) #10
  %969 = load i32, ptr %157, align 4, !tbaa !5
  %970 = call ptr @s2n_strerror_debug(i32 noundef %969, ptr noundef nonnull @.str.4) #10
  %971 = load i32, ptr %211, align 4, !tbaa !5
  %972 = call ptr @strerror(i32 noundef %971) #10
  %973 = load i32, ptr %211, align 4, !tbaa !5
  %974 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %965, ptr noundef nonnull %.str.5.sink485, i32 noundef %966, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 300, ptr noundef %968, ptr noundef %970, ptr noundef %972, i32 noundef %973) #12
  call void @exit(i32 noundef 1) #13
  unreachable

975:                                              ; preds = %237
  %976 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %977 = icmp eq i32 %976, -1
  br i1 %977, label %978, label %1000

978:                                              ; preds = %975
  %979 = load i32, ptr %211, align 4, !tbaa !5
  %980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %981 = call i32 @s2n_print_stacktrace(ptr noundef %980) #10
  %982 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %983 = trunc nuw i8 %982 to i1
  br i1 %983, label %984, label %988

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

988:                                              ; preds = %984, %978
  br label %989

989:                                              ; preds = %984, %988
  %.str.5.sink494 = phi ptr [ @.str.5, %988 ], [ @.str.2, %984 ]
  store i32 %979, ptr %211, align 4, !tbaa !5
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = load i32, ptr @test_count, align 4, !tbaa !5
  %992 = load i32, ptr %157, align 4, !tbaa !5
  %993 = call ptr @s2n_strerror(i32 noundef %992, ptr noundef nonnull @.str.4) #10
  %994 = load i32, ptr %157, align 4, !tbaa !5
  %995 = call ptr @s2n_strerror_debug(i32 noundef %994, ptr noundef nonnull @.str.4) #10
  %996 = load i32, ptr %211, align 4, !tbaa !5
  %997 = call ptr @strerror(i32 noundef %996) #10
  %998 = load i32, ptr %211, align 4, !tbaa !5
  %999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %990, ptr noundef nonnull %.str.5.sink494, i32 noundef %991, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 300, ptr noundef %993, ptr noundef %995, ptr noundef %997, i32 noundef %998) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1000:                                             ; preds = %975
  %1001 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1002 = trunc nuw i8 %1001 to i1
  br i1 %1002, label %1003, label %1014

1003:                                             ; preds = %1000
  %1004 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1005 = call i32 @fileno(ptr noundef %1004) #10
  %1006 = call i32 @isatty(i32 noundef %1005) #10
  %.not124 = icmp eq i32 %1006, 0
  br i1 %.not124, label %1014, label %1007

1007:                                             ; preds = %1003
  %1008 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not126 = icmp eq i32 %1008, 0
  %1009 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not126, label %1012, label %1010

1010:                                             ; preds = %1007
  %1011 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1009, ptr noundef nonnull @.str.39, i32 noundef %1008) #10
  br label %1021

1012:                                             ; preds = %1007
  %1013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1009, ptr noundef nonnull @.str.40) #10
  br label %1021

1014:                                             ; preds = %1003, %1000
  %1015 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not125 = icmp eq i32 %1015, 0
  %1016 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not125, label %1019, label %1017

1017:                                             ; preds = %1014
  %1018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1016, ptr noundef nonnull @.str.41, i32 noundef %1015) #10
  br label %1021

1019:                                             ; preds = %1014
  %1020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1016, ptr noundef nonnull @.str.42) #10
  br label %1021

1021:                                             ; preds = %1017, %1019, %1010, %1012
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #10
  ret i32 0
}

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

; Function Attrs: nounwind uwtable
declare hidden i32 @custom_mem_init() #0

; Function Attrs: nounwind uwtable
declare hidden i32 @custom_mem_cleanup() #0

; Function Attrs: nounwind uwtable
declare hidden i32 @custom_mem_malloc(ptr noundef, i32 noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @custom_mem_free(ptr noundef, i32 noundef) #0

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

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

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_io_pair_init(ptr noundef) local_unnamed_addr #2

; Function Attrs: nofree nounwind
declare i32 @fork() local_unnamed_addr #4

; Function Attrs: mustprogress nofree nounwind willreturn allockind("alloc,uninitialized") allocsize(0) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @malloc(i64 noundef) local_unnamed_addr #8

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_read_test_pem(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

declare ptr @s2n_cert_chain_and_key_new() local_unnamed_addr #2

declare i32 @s2n_cert_chain_and_key_load_pem(ptr noundef, ptr noundef, 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_add_dhparams(ptr noundef, ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #9

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

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


; Effective O3 passes: ADCEPass,CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass